intentic
Create your workspace
The sandbox itself

Logs

The sandbox's durable debug record

On this page(3 sections)

What log files exist, and a window of one. Captured terminal output, command runs, and the daemon's own log.

GET/logsLogs the sandbox keeps

Every log file the daemon owns: captured terminal output, command runs, and the daemon's own log. Read-only, because only the sandbox writes them.

What you send

Nothing. Call it as it is.

What comes back

FieldType
filesEvery log the sandbox keeps: captured…object[]
nameIts name, which is what the…string
sizeBytesSize in bytesnumber
modifiedAtWhen it last changed, in millisecondsnumber
Try itanswered in this tab
curl
curl "$SANDBOX/logs" \
  -H "x-intentic-control: $INTENTIC_TOKEN"
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.logs.list();
GET/logs/fileRead part of a log

A window of one log file's text. A window rather than the whole thing, because a busy log outgrows any single answer.

What you send

FieldTypeWhere
namerequiredWhich logstringquery
bytesHow much of the end to…numberquery

What comes back

FieldType
nameWhich log this is fromstring
sizeBytesHow large the whole file isnumber
textThe end of it, as textstring
truncatedThere is more before what you…boolean
Try itanswered in this tab
curl
curl "$SANDBOX/logs/file?name=nightly%20changelog" \
  -H "x-intentic-control: $INTENTIC_TOKEN"
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.logs.read({
  "name": "nightly changelog"
});
POST/logs/clientReport what the browser saw

Errors the app caught, stalls it measured, and recoveries it performed, written to a log of their own. The browser is the only witness to these, so without it a bug someone hit in their own browser leaves no record at all.

What you send

FieldTypeWhere
eventsrequiredWhat the browser has to report,…object[]body
seenAtrequiredWhen the browser saw it, in…numberbody
levelrequiredHow bad it was"warn" | "error"body
eventrequiredWhat kind of thing it was,…stringbody
messagerequiredWhat it saidstringbody
routeWhich page they were onstringbody
requestIdWhich daemon call it belonged to,…stringbody
buildWhich build of the app was…stringbody
fieldsWhatever else was worth keepingobjectbody

What comes back

FieldType
recordedHow many were written downnumber
Try itanswered in this tab
curl
curl -X POST "$SANDBOX/logs/client" \
  -H "x-intentic-control: $INTENTIC_TOKEN" \
  -H "content-type: application/json" \
  -d '{"events":[{"seenAt":1,"level":"warn","event":"…","message":"Fix the flaky parser test","route":"…","requestId":"a1b2c3d4","build":"…","fields":{"src/app.ts":"…","README.md":"…"}},{"seenAt":1,"level":"error","event":"…","message":"Fix the flaky parser test","route":"…","requestId":"a1b2c3d4","build":"…","fields":{"src/app.ts":"…","README.md":"…"}}]}'
TypeScript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.logs.report({
  "events": [
    {
      "seenAt": 1,
      "level": "warn",
      "event": "",
      "message": "Fix the flaky parser test",
      "route": "",
      "requestId": "a1b2c3d4",
      "build": "",
      "fields": {
        "src/app.ts": "",
        "README.md": ""
      }
    },
    {
      "seenAt": 1,
      "level": "error",
      "event": "",
      "message": "Fix the flaky parser test",
      "route": "",
      "requestId": "a1b2c3d4",
      "build": "",
      "fields": {
        "src/app.ts": "",
        "README.md": ""
      }
    }
  ]
});

Type to search every page, in the docs and the API reference.