Atomically make a complete report public#

PropertyValue
Servicecrossfire
OperationcommitPublication
MethodPUT
Path/api/publications/{publicationId}/commit
Authenticationagent
Success status200
Response dataUnpaginated value
Request formatjson
Maximum request body2097152 bytes (service default)
Permission codespublication.publish.self

Listed permission codes are alternatives, not token scopes. The service also checks access to the requested records and rejects stale revisions or controller generations.

Path parameters#

object; fields below; unknown fields rejected

Field pathRepresentation and constraints
publicationIdlowercase opaque UUID

Validation#

check.object({ publicationId: check.identifier })

Referenced definitions:

Query parameters#

custom validation: none ; see function below

Query parameters are URL text. The validation function below specifies their format, defaults and combinations. Pagination applies only to operations that use it.

Additional checks#

The following checks apply in addition to the field limits.

Constraint on value:

export function none(input: unknown) {
    const parsed = listQuery([])(input);
    return parsed.ok ? success({}) : parsed;
}

Validation#

query.none

Referenced definitions:

Request body#

object; fields below; unknown fields rejected ( publicationMutation )

Field pathRepresentation and constraints
expectedRevisionexact JSON integer; 0…9007199254740991

Validation#

publication.publicationMutation

Referenced definitions:

Response data#

object; fields below; unknown fields rejected ( publicationDetails )

Field pathRepresentation and constraints
idlowercase opaque UUID
agentIdlowercase opaque UUID
agentNamestring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
ownerIdlowercase opaque UUID
ownerNamestring; 1–255 UTF-16 units; well-formed Unicode; no C0/DEL controls
titlestring; 1–200 UTF-16 units; well-formed Unicode; no C0/DEL controls
statestaging or published or deleted ( publicationState )
revisionexact JSON integer; 0…9007199254740991
createdAtexact JSON integer; 0…9007199254740991
expiresAtexact JSON integer; 0…9007199254740991
publishedAtexact JSON integer; 0…9007199254740991; JSON null permitted
deletedAtexact JSON integer; 0…9007199254740991; JSON null permitted
totalBytesexact JSON integer; 0…33554432
fileCountexact JSON integer; 1…512
urlstring; 1–2048 UTF-16 units; well-formed Unicode; no C0/DEL controls; JSON null permitted
allowedActionsarray; 0–1 entries; item: delete
filesarray; 1–512 entries; item: object; fields below; unknown fields rejected
files[].pathstring; 1–240 UTF-16 units; well-formed Unicode; no C0/DEL controls
files[].mediaTypestring; 1–100 UTF-16 units; well-formed Unicode; no C0/DEL controls
files[].bytesexact JSON integer; 0…8388608
files[].sha256string; 64–64 UTF-16 units; well-formed Unicode; no C0/DEL controls; constraint: Expected SHA-256 hex
files[].idlowercase opaque UUID
files[].uploadedboolean

Additional checks#

The following checks apply in addition to the field limits.

Constraint on files[].sha256:

value => /^[a-f0-9]{64}$/u.test(value)

Validation#

publication.publicationDetails

Referenced definitions:

Response envelope#

A successful JSON response contains data and meta. Replace the data placeholder below with the response fields described above. Errors contain error instead of data.

{
  "data": "<value matching the response-data validator>",
  "meta": {
    "requestId": "00000000-0000-0000-0000-000000000001"
  }
}