Skip to content

Immutable bounded collection metadata; member bytes use verified artifact uploads and downloads.

PUT
/api/v1/collections/{id}/completion

Atomically seal all member artifact/version identities.

Credential scopes: uploads:complete

Resource authority: Creator of a user-upload collection for mutations; producing output collections are published only by their assignment connector/session. Reads additionally permit current administrators of an accepting or producing run.

Retry: Create with saved key/body; replay member pages at their original index. Freeze/bind/complete repeat unchanged identities. Changed or overlapping page content conflicts.

Guards: Freeze metadata before binding verified artifacts. Requested manifest_sha256 and sealed manifest_digest cover different records; use the published byte algorithm.

Retain: Collection ID, original key/request, member order/pages, requested digest, member artifact UUIDs and sealed digest.

Specific failures: 409 collection_conflict; 413 payload_too_large; 422 invalid_collection; 429 collection_quota; 503 collection_uncertain

Next action: Inspect the retained operation and continue its next unfinished step. Worked workflow

At most 64 KiB per request/page and 16 MiB per manifest. Freeze membership before binding members. Completion seals exact verified versions atomically. Replay original identities after uncertainty. Unknown/duplicate fields and query parameters are rejected, except the member cursor. Member pages contain at most 100 entries and 64 KiB; next_cursor is an immutable index, bound by the collection UUID. Every listed member is required. A sealed manifest remains historical evidence when bytes become unavailable.

id
required
string format: uuid
Media typeapplication/json
object

Examples

Examplecomplete-empty-collection

complete-empty-collection

The exact digest input is the two UTF-8 bytes []. Empty collections need freeze and completion but no member page or upload.

{}

Original receipt or bounded current view.

Media typeapplication/json
object
collection_id
required
string format: uuid
request
required
object
logical_name
required
string
manifest_sha256
required
string
>= 44 characters <= 44 characters /^[A-Za-z0-9+/]{42}[AEIMQUYcgkosw048]=$/
member_count
required
integer format: int32
output_name
string | null
scientific_metadata
required
total_bytes
required
integer format: int64
available
required

Current tracked member availability. Delivery independently verifies the exact storage version; this flag never substitutes for content evidence.

boolean
manifest_digest
required
string | null
>= 44 characters <= 44 characters /^[A-Za-z0-9+/]{42}[AEIMQUYcgkosw048]=$/
state
required
string

Examples

Examplecomplete-empty-collection

complete-empty-collection

The exact digest input is the two UTF-8 bytes []. Empty collections need freeze and completion but no member page or upload.

{
"available": true,
"collection_id": "00000000-0000-4000-8000-000000000011",
"manifest_digest": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
"request": {
"logical_name": "empty-observations",
"manifest_sha256": "T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU=",
"member_count": 0,
"scientific_metadata": {},
"total_bytes": 0
},
"state": "ready"
}
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Unsupported query parameters.

Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Active credential required.

Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

The credential does not permit this operation (insufficient_scope).

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Unknown and unauthorized collections are indistinguishable.

Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Frozen evidence conflict or members not verified.

Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Request body exceeds its bound.

Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Collection writes require application/json.

Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Invalid manifest, paths, metadata or member evidence.

Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Collection admission limit exceeded.

Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Unavailable or uncertain acknowledgement; repeat original operation.

Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

An HTTP request failed; inspect the stable error code and request ID.

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Documentation 205dcb3116ea · public sources 8c70356d340f · built .Download documentation identity.