BuildRecord
One attempt to validate or deploy a project into a namespace, recorded whatever its outcome: who, when, how long, what was sent (a list of files with hashes, and the files themselves up to a limit), the build log, and what a deploy produced. Its id is the buildId the build returned. Records are kept for 90 days.
Every list and text is capped in size; the …Truncated flags say when a cap applied. The counts and totals are always exact.
Kind: an object, used in responses.
Fields
Section titled “Fields”Every field is present in a response; empty ones are null.
| Field | Type | Description |
|---|---|---|
namespaceName | string | The namespace named in the route (at most 256 characters). |
namespaceId | uuid | null | The namespace’s id when it existed once the build finished (a first deploy creates it); else null. |
userDisplayName | string | null | The caller’s name when the build ran (a snapshot: a later rename does not change it). |
userEmailAddress | string | null | The caller’s e-mail address when the build ran (a snapshot). |
authenticationMethod | BuildAuthenticationMethod | How the caller authenticated. |
apiKeyId | uuid | null | The id of the API key the build was sent with (never the key itself); null for a bearer token. |
isDeploy | boolean | Whether the request asked to deploy rather than only validate. |
isDeployed | boolean | Whether the definitions were deployed (a successful build with isDeploy). |
outcome | BuildOutcome | How the build ended. |
isFaulted | boolean | Whether the build stopped on an unexpected error (a 5xx) rather than failing with a log; outcome is then Failed. |
durationMilliseconds | integer | How long the build took on the server, in milliseconds. |
counts | BuildRecordCounts | How many files of each kind the request carried. |
errorCount | integer | Error entries in the full build log (exact, even when diagnostics is truncated). |
warningCount | integer | Warning entries in the full build log (exact). |
itemCount | integer | Source files the request carried (exact, even when items is truncated). |
sourcesBytes | integer | Total UTF-8 size of every source file the request carried (exact). |
items | BuildRecordItem[] | Every source file in request order, with its size and hash, up to 2,000. |
itemsTruncated | boolean | Whether items was cut short at its limit. |
sources | BuildRecordSource[] | The source files’ text, whole files only, up to 2 MiB in total (text plus names). Files that do not fit are left out (their item reads sourceStored: false) and sourcesTruncated is set. |
sourcesTruncated | boolean | Whether some source files were left out of sources to keep within its limit. |
diagnostics | BuildRecordDiagnostic[] | The build log as the response carried it, in order. Capped at 1,000 entries and 1 MiB of text; when the cap applies, errors are kept before warnings, then information, then debug entries. |
diagnosticsTruncated | boolean | Whether diagnostics was cut short at its limit. |
deployed | BuildRecordDeployedResource[] | What a deploy created, updated or left unchanged (empty for a validation), up to 2,000. |
deployedTruncated | boolean | Whether deployed was cut short at its limit. |
validationFailures | BuildRecordValidationFailure[] | Why a Rejected build was refused (the 400’s failures, up to 20); empty otherwise. |
userCreatedById | uuid | The id of the user who created it. A call made with an API key is recorded as the key’s user. |
tenantId | uuid | The id of the tenant it belongs to. |
id | uuid | The unique id. Use it in by-id routes and wherever another object refers to this one. |
dateCreated | datetime | When it was created, in UTC. |
dateUpdated | datetime | When it was last changed, in UTC. |
Example
Section titled “Example”{ "namespaceName": "...", "namespaceId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f", "userDisplayName": "...", "userEmailAddress": "...", "authenticationMethod": "Bearer", "apiKeyId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f", "isDeploy": false, "isDeployed": false, "outcome": "Succeeded", "isFaulted": false, "durationMilliseconds": 0, "counts": { "agents": 0, "capsules": 0, "connectors": 0, "externalOperations": 0, "interactions": 0, "apps": 0, "codePipelines": 0, "codePipelineHooks": 0, "prompts": 0, "json": 0, "looms": 0 }, "errorCount": 0, "warningCount": 0, "itemCount": 0, "sourcesBytes": 0, "items": [ { "kind": "Agent", "name": "...", "fileName": "...", "sizeBytes": 0, "sha256": "...", "sourceStored": false } ], "itemsTruncated": false, "sources": [ { "kind": "Agent", "name": "...", "fileName": "...", "content": "..." } ], "sourcesTruncated": false, "diagnostics": [ { "text": "...", "date": "2026-10-26T12:00:00.0000000Z", "logLevel": "Debug", "filename": "...", "lineNumber": 0, "character": 0 } ], "diagnosticsTruncated": false, "deployed": [ { "kind": "Agent", "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f", "name": "...", "version": 0, "mode": "Created" } ], "deployedTruncated": false, "validationFailures": [ { "errorCode": "...", "memberName": "...", "message": "..." } ], "userCreatedById": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f", "tenantId": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f", "id": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f", "dateCreated": "2026-10-26T12:00:00.0000000Z", "dateUpdated": "2026-10-26T12:00:00.0000000Z"}Where it’s used
Section titled “Where it’s used”builds.get(GET /builds/by-id/{id})