Archivist Advertisement v1¶
Source schema: doc/schemas/archivist-advertisement.v1.schema.json
Machine-readable schema for archivist capability advertisements covering archival scope, retention posture, and optional settlement requirements.
Governing Basis¶
doc/project/30-stories/story-003.mddoc/project/50-requirements/requirements-003.mddoc/project/40-proposals/008-transcription-monitors-and-public-vaults.mddoc/project/40-proposals/012-learning-outcomes-and-archival-contracts.md
Project Lineage¶
Requirements¶
doc/project/50-requirements/requirements-002.mddoc/project/50-requirements/requirements-003.mddoc/project/50-requirements/requirements-004.mddoc/project/50-requirements/requirements-005.md
Stories¶
doc/project/30-stories/story-001.mddoc/project/30-stories/story-002.mddoc/project/30-stories/story-003.mddoc/project/30-stories/story-004.md
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema/v |
yes |
const: 1 |
Schema version. |
advertisement/id |
yes |
string | Stable identifier of the archivist capability advertisement. |
created-at |
yes |
string | Advertisement publication timestamp. |
archivist/node-id |
yes |
string | Archivist node or durable storage actor. |
accepted/scopes |
yes |
array | Publication scopes this archivist is willing to accept. |
accepted/artifact-types |
yes |
array | Artifact classes this archivist accepts. |
retrieval/mode |
yes |
enum: direct-only, federation-discovery, public-discovery |
Primary discovery or retrieval mode exposed by the archivist. |
retention/default-max-duration-sec |
no |
integer | Default maximum storage duration when no explicit contract overrides it. |
retention/default-max-idle-ttl-sec |
no |
integer | Default maximum idle TTL when no explicit contract overrides it. |
replication/max-copies |
no |
integer | Maximum replication copies this archivist is willing to coordinate. |
publication/timing-profiles |
no |
array | Publication timing profiles the archivist supports. |
settlement/required |
yes |
boolean | Whether this archivist requires explicit negotiated settlement for storage. |
settlement/rail-hints |
no |
array | Optional settlement rail hints when negotiated storage is required. |
policy_annotations |
no |
object | Optional implementation-local annotations that do not change the core advertisement semantics. |
Conditional Rules¶
Rule 1¶
When:
{
"properties": {
"settlement/required": {
"const": true
}
},
"required": [
"settlement/required"
]
}
Then:
{
"required": [
"settlement/rail-hints"
]
}
Field Semantics¶
schema/v¶
- Required:
yes - Shape: const:
1
Schema version.
advertisement/id¶
- Required:
yes - Shape: string
Stable identifier of the archivist capability advertisement.
created-at¶
- Required:
yes - Shape: string
Advertisement publication timestamp.
archivist/node-id¶
- Required:
yes - Shape: string
Archivist node or durable storage actor.
accepted/scopes¶
- Required:
yes - Shape: array
Publication scopes this archivist is willing to accept.
accepted/artifact-types¶
- Required:
yes - Shape: array
Artifact classes this archivist accepts.
retrieval/mode¶
- Required:
yes - Shape: enum:
direct-only,federation-discovery,public-discovery
Primary discovery or retrieval mode exposed by the archivist.
retention/default-max-duration-sec¶
- Required:
no - Shape: integer
Default maximum storage duration when no explicit contract overrides it.
retention/default-max-idle-ttl-sec¶
- Required:
no - Shape: integer
Default maximum idle TTL when no explicit contract overrides it.
replication/max-copies¶
- Required:
no - Shape: integer
Maximum replication copies this archivist is willing to coordinate.
publication/timing-profiles¶
- Required:
no - Shape: array
Publication timing profiles the archivist supports.
settlement/required¶
- Required:
yes - Shape: boolean
Whether this archivist requires explicit negotiated settlement for storage.
settlement/rail-hints¶
- Required:
no - Shape: array
Optional settlement rail hints when negotiated storage is required.
policy_annotations¶
- Required:
no - Shape: object
Optional implementation-local annotations that do not change the core advertisement semantics.