JSON Schemas
Data model schemas
Machine-readable schemas for Catenor Protocol Draft v0.1 objects. These correspond to DRAFT SHAPE objects defined in the Data Model Baseline.
account-binding
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://catenor.example/schemas/account-binding.schema.json",
"title": "Catenor Account Binding — Draft",
"type": "object",
"required": [
"id",
"subject",
"account",
"purpose",
"status"
],
"properties": {
"id": {
"type": "string"
},
"subject": {
"type": "string",
"pattern": "^did:catenor:"
},
"account": {
"type": "object",
"required": [
"namespace",
"reference",
"address"
],
"properties": {
"namespace": {
"type": "string"
},
"reference": {
"type": "string"
},
"address": {
"type": "string"
}
},
"additionalProperties": false
},
"purpose": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"status": {
"type": "string",
"enum": [
"ACTIVE",
"SUSPENDED",
"REVOKED",
"EXPIRED"
]
}
},
"additionalProperties": false
}audit-event
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://catenor.example/schemas/audit-event.schema.json",
"title": "Catenor Audit Event — Draft",
"type": "object",
"required": [
"type",
"timestamp"
],
"properties": {
"type": {
"type": "string"
},
"subject": {
"type": "string"
},
"issuer": {
"type": "string"
},
"credentialId": {
"type": "string"
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"requestId": {
"type": "string"
}
},
"additionalProperties": true
}capability
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://catenor.example/schemas/capability.schema.json",
"title": "Catenor Capability — Draft",
"type": "object",
"required": [
"subject",
"action",
"resource",
"constraints"
],
"properties": {
"subject": {
"type": "string",
"pattern": "^did:catenor:"
},
"action": {
"type": "string",
"minLength": 1
},
"resource": {
"type": "string",
"minLength": 1
},
"constraints": {
"type": "object"
}
},
"additionalProperties": false
}conformance-statement
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://catenor.example/schemas/conformance-statement.schema.json",
"title": "Catenor Conformance Statement — Draft",
"type": "object",
"required": [
"protocol",
"version",
"implementation",
"conformanceTargets",
"profiles",
"status"
],
"properties": {
"protocol": {
"const": "Catenor"
},
"version": {
"type": "string"
},
"implementation": {
"type": "string"
},
"conformanceTargets": {
"type": "array",
"items": {
"type": "string"
}
},
"profiles": {
"type": "array",
"items": {
"type": "string"
}
},
"didMethods": {
"type": "array",
"items": {
"type": "string"
}
},
"cryptoProfiles": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string",
"enum": [
"experimental",
"beta",
"production",
"deprecated"
]
}
},
"additionalProperties": false
}decision
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://catenor.example/schemas/decision.schema.json",
"title": "Catenor Decision — Draft",
"type": "object",
"required": [
"policy",
"subject",
"action",
"decision",
"evaluatedAt"
],
"properties": {
"policy": {
"type": "string"
},
"subject": {
"type": "string",
"pattern": "^did:catenor:"
},
"action": {
"type": "string"
},
"resource": {
"type": "string"
},
"decision": {
"type": "string",
"enum": [
"ALLOW",
"DENY",
"INDETERMINATE",
"REQUIRES_REVIEW",
"ERROR"
]
},
"evaluatedAt": {
"type": "string",
"format": "date-time"
},
"evidenceCommitment": {
"type": "string"
}
},
"additionalProperties": false
}policy
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://catenor.example/schemas/policy.schema.json",
"title": "Catenor Policy — Minimal Draft",
"type": "object",
"required": [
"id",
"action",
"requirements"
],
"properties": {
"id": {
"type": "string"
},
"action": {
"type": "string"
},
"requirements": {
"type": "array",
"items": {
"type": "object",
"required": [
"claim"
],
"properties": {
"claim": {
"type": "string"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}relationship
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://catenor.example/schemas/relationship.schema.json",
"title": "Catenor Relationship — Draft",
"type": "object",
"required": [
"type",
"object"
],
"properties": {
"type": {
"type": "string",
"minLength": 1
},
"object": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}