Capability Advertisement v1¶
Source schema: doc/schemas/capability-advertisement.v1.schema.json
Machine-readable schema for baseline capability exchange after peer session establishment.
Governing Basis¶
doc/project/40-proposals/014-node-transport-and-discovery-mvp.mddoc/project/50-requirements/requirements-006.mddoc/project/60-solutions/node.md
Project Lineage¶
Requirements¶
Stories¶
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema/v |
yes |
const: 1 |
Schema version. |
advertisement/id |
yes |
string | Stable identifier of this capability advertisement. |
node/id |
yes |
string | Node advertising its baseline capability surface. In v1 this MUST use the canonical node:did:key:z... format. |
published-at |
yes |
string | Timestamp when the capability set was published. |
protocol/version |
yes |
string | Protocol version for which the capability advertisement is valid. |
transport/profiles |
yes |
array | Transport profiles currently exposed by the Node. |
capabilities/core |
yes |
array | Wire-visible capability identifiers supported by the Node. Known formal capabilities use stable core/ or role/ names, sovereign capabilities use sovereign/ or sovereign-informal/, and unknown formal capabilities may be advertised as bare names. |
anchor_identities |
no |
object | Optional sovereign capability anchor map keyed by the sovereign short name. Empty or absent for formal capabilities. |
roles/attached |
no |
array | Optional attached roles or plugin-process capabilities visible at the Node boundary. Not required in MVP. |
surfaces/exposed |
no |
array | Exposed APIs, channels, or queues that can be used by peers or attached roles. |
messages/supported |
yes |
array | Protocol message families currently supported by the Node. |
signature |
yes |
ref: #/$defs/signature |
|
policy_annotations |
no |
object | Optional annotations that do not change the core advertised capability semantics. |
Definitions¶
| Definition | Shape | Description |
|---|---|---|
signature |
object |
Conditional Rules¶
Rule 1¶
Constraint:
{
"properties": {
"capabilities/core": {
"contains": {
"const": "core/messaging"
}
}
},
"required": [
"capabilities/core"
]
}
Field Semantics¶
schema/v¶
- Required:
yes - Shape: const:
1
Schema version.
advertisement/id¶
- Required:
yes - Shape: string
Stable identifier of this capability advertisement.
node/id¶
- Required:
yes - Shape: string
Node advertising its baseline capability surface. In v1 this MUST use the canonical node:did:key:z... format.
published-at¶
- Required:
yes - Shape: string
Timestamp when the capability set was published.
protocol/version¶
- Required:
yes - Shape: string
Protocol version for which the capability advertisement is valid.
transport/profiles¶
- Required:
yes - Shape: array
Transport profiles currently exposed by the Node.
capabilities/core¶
- Required:
yes - Shape: array
Wire-visible capability identifiers supported by the Node. Known formal capabilities use stable core/ or role/ names, sovereign capabilities use sovereign/ or sovereign-informal/, and unknown formal capabilities may be advertised as bare names.
anchor_identities¶
- Required:
no - Shape: object
Optional sovereign capability anchor map keyed by the sovereign short name. Empty or absent for formal capabilities.
roles/attached¶
- Required:
no - Shape: array
Optional attached roles or plugin-process capabilities visible at the Node boundary. Not required in MVP.
surfaces/exposed¶
- Required:
no - Shape: array
Exposed APIs, channels, or queues that can be used by peers or attached roles.
messages/supported¶
- Required:
yes - Shape: array
Protocol message families currently supported by the Node.
signature¶
- Required:
yes - Shape: ref:
#/$defs/signature
policy_annotations¶
- Required:
no - Shape: object
Optional annotations that do not change the core advertised capability semantics.
Definition Semantics¶
$defs.signature¶
- Shape: object