Knowledge Base API: schemas

The request and response bodies of the operations in this API.

BulkUpsertPageItemDto

PropertyTypeRequiredDescription
contentstringyesMarkdown content
contentTypeone of "markdown", "folder"noContent type — must be a valid ContentType enum value
expectedContentHashstringnoExpected content hash for optimistic concurrency control. Required for updates — the write only succeeds if the page's current contentHash matches. On mismatch, a conflict result is returned instead of overwriting.
externalIdstringnoExternal system ID (for external sync matching)
externalProviderstringnoExternal system provider name (e.g., confluence)
labelsmap of stringnoCaller-supplied label map (string→string). On upsert, replaces the existing page's labels when supplied. Omit to leave labels unchanged.
parentIdstringnoParent page ID for hierarchy
pipelinePackageIdstringnoPackage identifier from the scaffold manifest (e.g. "DOM-01"). When present, scoped UIs group this page under its package. Persisted on both the Page row (denormalised for fast filter) and on the new PageVersion row (per-write provenance).
slugstringyesURL-friendly slug (used for upsert matching). Lowercase alphanumeric + hyphens only.
titlestringyesPage title

BulkUpsertPageResultDto

PropertyTypeRequiredDescription
actionone of "created", "updated", "failed", "conflict", "skipped"yes
currentHashobject or nullnoCurrent content hash of the page (returned on conflict for caller reconciliation)
errorstringno
idstringno
slugstringyes

BulkUpsertPagesDto

PropertyTypeRequiredDescription
pagesarray of BulkUpsertPageItemDtoyesArray of pages to create or update

BulkUpsertPagesResponseDto

PropertyTypeRequiredDescription
conflictsnumberyes
creatednumberyes
failednumberyes
resultsarray of BulkUpsertPageResultDtoyes
skippednumberyes
updatednumberyes

BulkUpsertPagesResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataBulkUpsertPagesResponseDtoyes

ConnectionFreshnessResponseDto

PropertyTypeRequiredDescription
canPullbooleanyesWhether the integration supports pulling data from the external provider
canPushbooleanyesWhether the integration supports pushing data to the external provider
configuredbooleanyesWhether an integration is configured for this project
healthstringyesHealth status of the integration
lastSyncedAtstring or nullnoISO-8601 timestamp of the last successful sync, or null if never synced
providerstring or nullnoName of the external provider, or null if not configured

ConnectionFreshnessResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataConnectionFreshnessResponseDtoyes

CreateDocumentCommentDto

PropertyTypeRequiredDescription
baseVersionnumberyesPage.version this comment is anchored against.
bodystringyes
replyToIdstringnoParent comment id for threaded replies. Omit for a top-level comment.
targetobjectyesW3C WebAnnotationTarget JSON. artifactId = pageId, versionId = the targeted PageVersion id, version = integer page version. selector carries the anchor (TextQuoteSelector, TextPositionSelector, …).

CreateDocumentDto

PropertyTypeRequiredDescription
kindone of "MARKDOWN_DOCUMENT", "RICH_DOCUMENT"yesWhich collaboration model the document uses: MARKDOWN_DOCUMENT (Monaco source + per-hunk patches) or RICH_DOCUMENT (rendered HTML + anchored comments).
parentIdstringnoOptional parent folder page id (must already exist in the target space and have contentType="folder").
titlestringnoHuman-readable title. Defaults to "Untitled document" so the user can land in the editor with zero friction and rename later.

CreateDocumentKind

Type: one of "MARKDOWN_DOCUMENT", "RICH_DOCUMENT"

CreateIngestionJobDto

PropertyTypeRequiredDescription
formatone of "MARKDOWN_ARCHIVE", "PDF", "DOCX", "PLAIN_TEXT", "MARKDOWN_FILE"yesImport format
parentPageIdstringnoParent folder page id. When set, authored pages are created as children of this folder.
sourceUrlstringnoS3/MinIO object key or URL of the archive
spaceSlugstringyesTarget space slug for imported pages

CreatePageDto

PropertyTypeRequiredDescription
contentstringnoMarkdown content
contentTypestringnoContent type (default: markdown, use folder for container-only nodes)
labelsmap of stringnoCaller-supplied label map (string→string). Free-form metadata for downstream filtering/audit; the service does not interpret values.
parentIdstringnoParent page ID for hierarchy
slugstringyesURL-friendly slug. Single path segment — lowercase alphanumeric with hyphens. Use parentId for hierarchy; do not embed slashes in the slug.
titlestringyesPage title

CreateSpaceDto

PropertyTypeRequiredDescription
dataClassificationDataClassificationnoDECLARED data classification for every page in this space — the space-level FLOOR. A page may RAISE it and can never lower it: the two combine through the kernel monotone join. OMIT it to declare nothing, which is a normal resting state and not a default: an undeclared space contributes nothing to the join, so its documents carry whatever the page declares, or no claim at all.
slugstringyesURL-friendly slug for the space
storeModeKnowledgeStoreModenoContent-sourcing mode, fixed at creation time. OWNED (default): Xema stores authored + mirrored page bodies. FEDERATED: the external provider (via the org's DOCUMENTATION connection) stays the source of truth — Xema stores only index metadata and reads bodies live; the slug must match the provider space key so webhooks link up.
titlestringyesHuman-readable title

DataClassification

DECLARED data classification for every page in this space — the space-level FLOOR. A page may RAISE it and can never lower it: the two combine through the kernel monotone join. OMIT it to declare nothing, which is a normal resting state and not a default: an undeclared space contributes nothing to the join, so its documents carry whatever the page declares, or no claim at all.

Type: one of "public", "internal", "confidential", "secret", "regulated"

DocumentCommentResponseDto

PropertyTypeRequiredDescription
authorIdstringyes
authorTypestringyes
baseVersionnumberyes
bodystringyes
createdAtstring (date-time)yes
idstringyes
pageIdstringyes
replyToIdobjectno
resolvedAtstring (date-time)no
resolvedByobjectno
statusone of "OPEN", "RESOLVED", "STALE"yes
targetobjectyes
updatedAtstring (date-time)yes

DocumentCommentResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of DocumentCommentResponseDtoyes

DocumentCommentResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataDocumentCommentResponseDtoyes

DocumentResponseDto

PropertyTypeRequiredDescription
contentstringyesBody content. Markdown for MARKDOWN_DOCUMENT, HTML for RICH_DOCUMENT.
createdAtstring (date-time)yes
formatone of "MARKDOWN", "HTML"yes
idstringyes
kindone of "MARKDOWN_DOCUMENT", "RICH_DOCUMENT"yes
sessionIdobject or nullnoInteractive Document Buddy session linked to this page. Null briefly after creation if session provisioning is still in flight; the FE should subscribe to the KB realtime stream and re-fetch when it appears.
slugstringyes
spaceIdstringyes
titlestringyes
updatedAtstring (date-time)yes
versionnumberyesMonotonic per-page version. Incremented on every authoring write.

DocumentResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataDocumentResponseDtoyes

EnsureDocumentSessionDto

PropertyTypeRequiredDescription
launchobjectyesagent-session-api's session launch body (CreateSessionDto), relayed verbatim; its validation is agent-session-api's.

EnsureDocumentSessionResponseDto

PropertyTypeRequiredDescription
reboundbooleanyesTrue when the page pointed at a different (gone or terminal) session and now points at this one.
sessionIdstringyesThe live authoring session bound to this page.

EnsureDocumentSessionResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataEnsureDocumentSessionResponseDtoyes

FederationContractionResponseDto

PropertyTypeRequiredDescription
contentHashesSeedednumberyesPages that gained a contentHash computed from the body being dropped. A page that already carried one keeps it — that hash was taken over the PROVIDER body and is the better authority.
pageVersionsDeletednumberyesPageVersion rows deleted. Mirrored history is mirrored state: every version row holds a full body copy.
pagesContractednumberyesPages whose stored body was dropped. Their content is now read live from the provider.
slugstringyesSlug of the space that was contracted.
spaceIdstringyesIdentifier of the space that was contracted.

FederationContractionResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataFederationContractionResponseDtoyes

ImportSessionFileDto

PropertyTypeRequiredDescription
filePathstringyesThe file path within the session workspace.
sessionIdstringyesThe agent session whose workspace file is imported.
slugstringnoSlug of the new page. Required without targetPageId; refused with it.
targetPageIdstringnoAn existing page in this space to write the file into as a new revision. Omit to create a new page.
titlestringnoTitle of the page. Required without targetPageId; with it, omit to keep the page title.

IngestionUploadConfigDto

PropertyTypeRequiredDescription
acceptedExtensionsarray of stringyes
acceptedFormatsarray of one of "PDF", "DOCX", "PLAIN_TEXT", "MARKDOWN_FILE"yes
acceptedMimeTypesarray of stringyes
maxConcurrentJobsPerOrgnumberyesMaximum allowed active ingestion jobs per organization
maxFileSizeBytesnumberyesMaximum allowed size per uploaded file in bytes

IngestionUploadConfigDtoDataEnvelope

PropertyTypeRequiredDescription
dataIngestionUploadConfigDtoyes

KnowledgeStoreMode

Content-sourcing mode of this space (OWNED: bodies stored in Xema; FEDERATED: bodies read live from the external provider).

Type: one of "OWNED", "FEDERATED"

MovePageDto

PropertyTypeRequiredDescription
pageIdsarray of stringyesIDs of the pages to move.
parentIdstring or nullnoNew parent page ID. Pass null or omit to move the pages to the space root.
targetSpaceSlugstringnoTarget space slug. Omit to move within the source space. When set to a different slug, the pages (and all descendants when moving folders) are reparented into the target space; slug collisions in the target space hard-fail with 409.

OpenDocumentSessionDto

PropertyTypeRequiredDescription
kindCreateDocumentKindyes
launchobjectyesagent-session-api's session launch body (CreateSessionDto), relayed verbatim; its validation is agent-session-api's.
parentIdstringnoOptional parent folder page id in the target space.
spaceSlugstringyesTarget KB space slug the document is created under.
titlestringnoDocument title; "Untitled document" when omitted.

OpenDocumentSessionResponseDto

PropertyTypeRequiredDescription
pageDocumentResponseDtoyesThe page, with sessionId bound.
sessionIdstringyesThe authoring session bound to the page.

OpenDocumentSessionResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataOpenDocumentSessionResponseDtoyes

PageResponseDto

PropertyTypeRequiredDescription
authorIdstringyes
authorTypeone of "human", "agent", "service"yes
contentstringyes
contentTypestringyes
createdAtstring (date-time)yes
idstringyes
ingestionSourceDocumentIdstringnoIngestion job id that produced this page, when available.
kindone of "MARKDOWN_DOCUMENT", "RICH_DOCUMENT"yesDocument-kind classification. One of MARKDOWN_DOCUMENT, RICH_DOCUMENT — both A4 Document Buddy pages.
labelsmap of string or nullnoCaller-supplied label map from the latest authoring write.
orientationone of "PORTRAIT", "LANDSCAPE"yesA4 page orientation. Drives both the document preview pagination AND the Document Buddy agent's authoring decisions (column widths, image sizing, table column counts). Mirrored verbatim into workspace context.json so the agent picks it up without parsing.
originalFileDownloadUrlstringnoRelative URL that kb-api streams the original file download from (resolves against the same host as this response). Backed by MinIO object storage.
originalFileMimeTypestringnoOriginal uploaded file mime type when this page comes from ingestion.
originalFileNamestringnoOriginal uploaded filename when this page comes from ingestion.
originalFilePreviewUrlstringnoRelative URL that kb-api streams the original file preview from (resolves against the same host as this response). For DOCX this serves the rendered HTML; for PDFs etc. it serves the raw object from MinIO.
originalFileSizestringnoOriginal uploaded file size in bytes, serialized as string.
pageFormatone of "A4", "A5", "LETTER", "LEGAL", "TABLOID", "ENVELOPE_DL", "ENVELOPE_C5"yesPaper format the document is laid out for (A4 / A5 / Letter / Legal / Tabloid / DL or C5 envelope). Drives the document preview's sheet size AND the Document Buddy agent's authoring decisions (prose density, image widths). Mirrored verbatim into workspace context.json.
parentIdobject or nullno
pipelinePackageIdobject or nullnoPackage id (e.g. "DOM-01") from the scaffold manifest at latest write.
pipelineRunIdobject or nullnoPipeline run id when the latest write was pipeline-scoped.
pipelineStageKeyobject or nullnoPipeline stage key at latest pipeline write.
reviewBaselinestring or nullnoReview baseline for the Document Buddy inline-highlight UX — the last-accepted content snapshot the frontend diffs content against to render Word-style highlights of the agent's UNREVIEWED changes. null means the page is caught up (no unreviewed changes; baseline == content). content always stays the live working content the user sees.
scopeIdobject or nullnoOpaque scope id — runId for PIPELINE_RUN, sessionId for AGENT_SESSION.
scopeTypeone of "PROJECT", "PIPELINE_RUN", "AGENT_SESSION"yesScope of the latest authoring write.
sessionIdstring or nullnoInteractive agent session that co-authors this document, when it is a Document Buddy page (MARKDOWN_DOCUMENT, RICH_DOCUMENT).
slugstringyes
sourceTypeone of "authored", "ingestion_chunk", "ingestion_summary"yes
spaceIdstringyes
statusone of "published", "proposed", "rejected"yes
titlestringyes
updatedAtstring (date-time)yes
versionnumberyes

PageResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of PageResponseDtoyes

PageResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataPageResponseDtoyes

PageResponseDtoPaginatedEnvelope

PropertyTypeRequiredDescription
dataarray of PageResponseDtoyes
paginationPaginationMetayes

PageRouteResponseDto

PropertyTypeRequiredDescription
pageIdstringyesPage row id.
pageSlugstringyesPage slug — second segment of the document URL.
spaceSlugstringyesSpace slug — first segment of the document URL.

PageRouteResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataPageRouteResponseDtoyes

PageSessionResyncResponseDto

PropertyTypeRequiredDescription
sessionResyncSessionResyncyesWhether the page's live authoring session followed the decision. done: a live session re-materialized its working file. skipped: nothing to do (no session, nothing changed, or no live worker). failed: the session plane did not take it; the decision stays applied, so retry POST /pages/{pageId}/session-resync, not the decision.

PageSessionResyncResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataPageSessionResyncResponseDtoyes

PageTreeNodeDto

PropertyTypeRequiredDescription
childrenarray of PageTreeNodeDtoyes
contentTypestringyes
idstringyes
pipelinePackageIdobject or nullno
pipelineRunIdobject or nullno
pipelineStageKeyobject or nullno
scopeIdobject or nullno
scopeTypeone of "PROJECT", "PIPELINE_RUN", "AGENT_SESSION"yes
slugstringyes
statusstringyes
titlestringyes
versionnumberyes

PageTreeNodeDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of PageTreeNodeDtoyes

PageVersionResponseDto

PropertyTypeRequiredDescription
authorIdstringyes
authorTypestringyes
changeNoteobject or nullno
createdAtstring (date-time)yes
idstringyes
pipelinePackageIdobject or nullnoPackage id (e.g. "DOM-01") when scopeType === PIPELINE_RUN.
pipelineStageKeyobject or nullnoPipeline stage key when scopeType === PIPELINE_RUN.
scopeIdobject or nullno
scopeTypeone of "PROJECT", "PIPELINE_RUN", "AGENT_SESSION"yesScope in which this version was authored.
versionnumberyes

PageVersionResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of PageVersionResponseDtoyes

PageVersionResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataPageVersionResponseDtoyes

PaginationMeta

PropertyTypeRequiredDescription
hasMorebooleanno
limitnumberno
nextCursorstring or nullno
pagenumberno
previousCursorstring or nullno
totalnumberno
totalPagesnumberno

PatchOrigin

Type: one of "AGENT_SESSION"

PendingPatchDecisionResponseDto

PropertyTypeRequiredDescription
afterstringyesReplacement text. Empty for a pure deletion, which the editor must still render (struck through) or the change is invisible and unrejectable.
anchorobjectyes1-based inclusive line range in the review baseline. endLine === startLine - 1 encodes a pure insertion positioned before startLine.
baseVersionnumberyesPage.version the anchor was derived against.
beforestringyesExact baseline text this change replaces. Empty for a pure insertion — render it as a deletion when after is empty.
createdAtstringyesISO-8601.
decidedAtstring or nullyesISO-8601.
decidedBystring or nullyes
idstringyes
labelstring or nullyes
originPatchOriginyes
pageIdstringyes
proposalIdstringyesGroups every hunk derived from one settle. A later push supersedes the previous proposal.
rationalestring or nullyesWhy the change was proposed. Always null for AGENT_SESSION: an agent is never asked to explain a change it does not know is under review.
rejectionCommentstring or nullyesThe user's reason for rejecting, so the agent can revise. Reaches the agent as an ordinary user turn, never as a 'rejected suggestion'.
sequencenumberyesApplication order within a proposal. Rejections recompute in this order.
sessionIdstring or nullyes
sessionResyncSessionResyncyesWhether the page's live authoring session followed the decision. done: a live session re-materialized its working file. skipped: nothing to do (no session, nothing changed, or no live worker). failed: the session plane did not take it; the decision stays applied, so retry POST /pages/{pageId}/session-resync, not the decision.
statusPendingPatchStatusyes
workflowJobRunIdstring or nullyes

PendingPatchDecisionResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataPendingPatchDecisionResponseDtoyes

PendingPatchResponseDto

PropertyTypeRequiredDescription
afterstringyesReplacement text. Empty for a pure deletion, which the editor must still render (struck through) or the change is invisible and unrejectable.
anchorobjectyes1-based inclusive line range in the review baseline. endLine === startLine - 1 encodes a pure insertion positioned before startLine.
baseVersionnumberyesPage.version the anchor was derived against.
beforestringyesExact baseline text this change replaces. Empty for a pure insertion — render it as a deletion when after is empty.
createdAtstringyesISO-8601.
decidedAtstring or nullyesISO-8601.
decidedBystring or nullyes
idstringyes
labelstring or nullyes
originPatchOriginyes
pageIdstringyes
proposalIdstringyesGroups every hunk derived from one settle. A later push supersedes the previous proposal.
rationalestring or nullyesWhy the change was proposed. Always null for AGENT_SESSION: an agent is never asked to explain a change it does not know is under review.
rejectionCommentstring or nullyesThe user's reason for rejecting, so the agent can revise. Reaches the agent as an ordinary user turn, never as a 'rejected suggestion'.
sequencenumberyesApplication order within a proposal. Rejections recompute in this order.
sessionIdstring or nullyes
statusPendingPatchStatusyes
workflowJobRunIdstring or nullyes

PendingPatchResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of PendingPatchResponseDtoyes

PendingPatchStatus

Type: one of "PENDING", "ACCEPTED", "REJECTED", "STALE"

ProblemActionableBy

Who can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.

Type: one of "user", "org-admin", "platform", "none"

ProblemDetailsDto

RFC 9457 problem document. The declared members are the reserved core; extension members are TOP-LEVEL and OPEN, owned by the refusing plane.

PropertyTypeRequiredDescription
actionableByProblemActionableBynoWho can act on this refusal: user (correct the input, sign in), org-admin (an administrator of the organisation), platform (the operators of this installation), none (nobody — it cannot succeed). ABSENT when not known; never guessed.
codestringyesSCREAMING_SNAKE_CASE. The machine-branchable refusal, and the value a policy rule, a retry predicate and a UI branch all name.
detailstringnoHuman-readable and specific to THIS occurrence.
errorsarray of ProblemFieldIssueDtonoField-level issues, when the refusal is about the request body.
instancestringnoURI reference identifying the occurrence — a request path, a run, a row.
paramsmap of string or number or booleannoSafe i18n interpolation values for the message keyed by code — typed and allowlisted per code by its declaration. Never server-authored copy, never internal diagnostics.
retryProblemRetrynoWhat a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.
statusnumberyesThe HTTP status code, repeated in the body so a logged document is self-contained.
titlestringyesShort, human-readable, and STABLE for a given type. Never per-occurrence — that is detail.
traceIdstringnoW3C trace-context trace-id, present when the caller sent a traceparent. Omitted rather than invented when it did not.
typestringyesAbsolute URI identifying the refusal TYPE. Derived one-to-one from code, so a caller may branch on either and can never be told two different things. Never about:blank.

ProblemFieldIssueDto

PropertyTypeRequiredDescription
codestringnoSCREAMING_SNAKE_CASE code of THIS issue, for a frontend i18n key. Present when the issue was minted by a declared problem.
detailstringyesProse for logs and developers. A frontend localises from code + params instead.
paramsmap of string or number or booleannoSafe i18n interpolation values for this issue's code.
pointerstringyesRFC 6901 JSON Pointer into the request body. Root is "/".

ProblemRetry

What a retry can achieve: transient (later, unchanged), after-change (only after someone changes something), never (a defect until a fixed version ships). ABSENT when not known.

Type: one of "transient", "after-change", "never"

PutResourceShareDto

PropertyTypeRequiredDescription
expiresAtstring (date-time)noWhen the share lapses.
levelstringyesThe level to grant — one of the type's share relations.
subjectIdstringyes
subjectKindShareGranteeKindyesA user grantee is bound to that user's current membership of the org (422 when not a member).

RejectPatchDto

PropertyTypeRequiredDescription
commentstringnoWhy this change is wrong. Stored on the patch and surfaced to the agent as an ordinary user instruction quoting the text, so it can revise.

ResourceShareDto

PropertyTypeRequiredDescription
expiresAtstring (date-time) or nullyes
grantedBystringyes<kind>:<id> of the principal who granted it.
levelstringyesThe relation the share grants (a level of the type).
membershipActiveboolean or nullyesFor a membership share, whether it is still the user's current membership of the org; false means the user left and the share grants nothing (it can still be removed). Null for every other kind.
refusalCodestring or nullyesThe typed refusal code (tenant_mismatch, subject_unresolvable, ...) when state is refused, else null.
stateShareStateyesWhether the share is in force. refused: the authorization plane refused its facts for good, so it grants nothing; re-put it with a valid subject, or remove it.
subjectIdstringyesFor a membership share, the membership id (one stay of the user in the org).
subjectKindShareSubjectKindyes
userIdstring or nullyesThe user of a membership share; null for every other kind.

ResourceSharesDto

PropertyTypeRequiredDescription
canManagebooleanyesWhether the caller may share or unshare this resource.
expirablebooleanyesWhether a share of this type may carry an expiry; when false an expiry is refused.
levelsarray of stringyesThe levels a share of this type may grant, lowest first. A sharer may grant only a level it holds.
sharesarray of ResourceShareDtoyes

ResourceSharesDtoDataEnvelope

PropertyTypeRequiredDescription
dataResourceSharesDtoyes

ReviewStateResponseDto

PropertyTypeRequiredDescription
hasUnreviewedChangesbooleanyesWhether the page still has unreviewed agent changes. Always false after accept / undo.
pageIdstringyesThe page the review action applied to.
reviewBaselinestring or nullyesThe review baseline after the action. Always null (the page is caught up).
sessionResyncSessionResyncyesWhether the page's live authoring session followed the decision. done: a live session re-materialized its working file. skipped: nothing to do (no session, nothing changed, or no live worker). failed: the session plane did not take it; the decision stays applied, so retry POST /pages/{pageId}/session-resync, not the decision.

ReviewStateResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataReviewStateResponseDtoyes

SessionResync

Whether the page's live authoring session followed the decision. done: a live session re-materialized its working file. skipped: nothing to do (no session, nothing changed, or no live worker). failed: the session plane did not take it; the decision stays applied, so retry POST /pages/{pageId}/session-resync, not the decision.

Type: one of "done", "skipped", "failed"

ShareGranteeKind

A user grantee is bound to that user's current membership of the org (422 when not a member).

Type: one of "user", "agent", "external-subject", "team", "role"

ShareState

Whether the share is in force. refused: the authorization plane refused its facts for good, so it grants nothing; re-put it with a valid subject, or remove it.

Type: one of "active", "refused"

ShareSubjectKind

Type: one of "membership", "agent", "external-subject", "team", "role"

SpaceResponseDto

PropertyTypeRequiredDescription
createdAtstring (date-time)yes
createdBystringyes
idstringyes
orgIdstringyes
pageCountnumberyesNumber of pages in this space
projectIdstringyes
slugstringyes
storeModeKnowledgeStoreModeyesContent-sourcing mode of this space (OWNED: bodies stored in Xema; FEDERATED: bodies read live from the external provider).
titlestringyes

SpaceResponseDtoDataArrayEnvelope

PropertyTypeRequiredDescription
dataarray of SpaceResponseDtoyes

SpaceResponseDtoDataEnvelope

PropertyTypeRequiredDescription
dataSpaceResponseDtoyes

UpdatePageDto

PropertyTypeRequiredDescription
changeNotestringnoChange note describing what was modified
contentstringyesNew content
dataClassificationDataClassificationnoThis page's OWN data classification. It composes with the space's declaration through the kernel monotone join, so a page may only ever RAISE the restriction its space set — a value strictly BELOW the space floor is refused with 422 DOCUMENT_CLASSIFICATION_BELOW_SPACE_FLOOR rather than stored as a declaration the join would silently ignore. Omit to leave the page's declaration unchanged.
labelsmap of stringnoReplacement label map (string→string). When supplied, fully replaces the page's existing labels. Omit to leave labels unchanged.
orientationone of "PORTRAIT", "LANDSCAPE"noA4 page orientation. Omit to leave unchanged. Persisted on the page row AND mirrored into workspace context.json so the Document Buddy agent authors content (column widths, image sizing) that fits.
pageFormatone of "A4", "A5", "LETTER", "LEGAL", "TABLOID", "ENVELOPE_DL", "ENVELOPE_C5"noPaper format (A4 / A5 / Letter / Legal / Tabloid / DL or C5 envelope). Omit to leave unchanged. Persisted on the page row AND mirrored into workspace context.json so the Document Buddy agent authors content (prose density, image widths) that fits the chosen sheet.
titlestringnoNew title