web/docs/schemas/issuer-manifest.v1.schema.json

97 lines
2.1 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://edut.ai/schemas/issuer-manifest.v1.schema.json",
"title": "EDUT Issuer Manifest Schema v1",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"issuer_id",
"display_name",
"signing_keys",
"capabilities",
"published_at"
],
"properties": {
"schema_version": {
"type": "string",
"const": "issuer_manifest.v1"
},
"issuer_id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9._-]{2,127}$"
},
"display_name": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"contact_email": {
"type": "string",
"format": "email"
},
"signing_keys": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"key_id",
"algorithm",
"public_key",
"status"
],
"properties": {
"key_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9._:-]{3,128}$"
},
"algorithm": {
"type": "string",
"enum": [
"ed25519",
"secp256k1"
]
},
"public_key": {
"type": "string",
"minLength": 16,
"maxLength": 2048
},
"status": {
"type": "string",
"enum": [
"active",
"retired"
]
}
}
}
},
"capabilities": {
"type": "object",
"additionalProperties": false,
"required": [
"can_publish_offers",
"can_issue_entitlements"
],
"properties": {
"can_publish_offers": {
"type": "boolean"
},
"can_issue_entitlements": {
"type": "boolean"
},
"requires_review": {
"type": "boolean"
}
}
},
"published_at": {
"type": "string",
"format": "date-time"
}
}
}