Organization Subject v1¶
Source schema: doc/schemas/organization-subject.v1.schema.json
Machine-readable schema for a canonical organization-scoped accountability subject and its MVP custody anchor.
Governing Basis¶
doc/project/40-proposals/017-organization-subjects-and-org-did-key.mddoc/project/50-requirements/requirements-008.md
Project Lineage¶
Requirements¶
Stories¶
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema/v |
yes |
const: 1 |
Schema version. |
org/id |
yes |
string | Canonical organization subject identifier. |
created-at |
yes |
string | Timestamp when the organization subject was first provisioned. |
org/status |
yes |
enum: active, suspended, retired |
Administrative status of the organization subject. |
org/display-name |
no |
string | Optional human-facing display name. |
org/legal-name |
no |
string | Optional legal or registry name when the federation tracks it. |
org/key/alg |
yes |
enum: ed25519 |
Verification algorithm backing the canonical organization identifier. |
org/key/public |
yes |
string | Canonical did:key fingerprint payload for the organization subject without the org:did:key: prefix. |
org/custodian-ref |
yes |
string | MVP human-side custodian responsible for administering this organization subject. |
org/custody-mode |
no |
enum: single-custodian |
Custody mode of the organization subject. MVP freezes single-custodian only. |
suspended-at |
no |
string | Timestamp when the organization subject was suspended, if applicable. |
retired-at |
no |
string | Timestamp when the organization subject was retired, if applicable. |
policy_annotations |
no |
object |
Conditional Rules¶
Rule 1¶
When:
{
"required": [
"org/custody-mode"
]
}
Then:
{
"properties": {
"org/custody-mode": {
"const": "single-custodian"
}
}
}
Rule 2¶
When:
{
"properties": {
"org/status": {
"const": "suspended"
}
},
"required": [
"org/status"
]
}
Then:
{
"required": [
"suspended-at"
]
}
Rule 3¶
When:
{
"properties": {
"org/status": {
"const": "retired"
}
},
"required": [
"org/status"
]
}
Then:
{
"required": [
"retired-at"
]
}
Field Semantics¶
schema/v¶
- Required:
yes - Shape: const:
1
Schema version.
org/id¶
- Required:
yes - Shape: string
Canonical organization subject identifier.
created-at¶
- Required:
yes - Shape: string
Timestamp when the organization subject was first provisioned.
org/status¶
- Required:
yes - Shape: enum:
active,suspended,retired
Administrative status of the organization subject.
org/display-name¶
- Required:
no - Shape: string
Optional human-facing display name.
org/legal-name¶
- Required:
no - Shape: string
Optional legal or registry name when the federation tracks it.
org/key/alg¶
- Required:
yes - Shape: enum:
ed25519
Verification algorithm backing the canonical organization identifier.
org/key/public¶
- Required:
yes - Shape: string
Canonical did:key fingerprint payload for the organization subject without the org:did:key: prefix.
org/custodian-ref¶
- Required:
yes - Shape: string
MVP human-side custodian responsible for administering this organization subject.
org/custody-mode¶
- Required:
no - Shape: enum:
single-custodian
Custody mode of the organization subject. MVP freezes single-custodian only.
suspended-at¶
- Required:
no - Shape: string
Timestamp when the organization subject was suspended, if applicable.
retired-at¶
- Required:
no - Shape: string
Timestamp when the organization subject was retired, if applicable.
policy_annotations¶
- Required:
no - Shape: object