Files
flex-auth/schemas/subject_manifest.schema.json
tegwick 7fdf6d63d5
Some checks failed
CI / Build and Test (push) Has been cancelled
CI / Lint (push) Has been cancelled
Implement canonical schema foundation
2026-05-17 04:59:18 +02:00

69 lines
2.7 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://flex-auth.netkingdom/schemas/subject_manifest.schema.json",
"title": "SubjectManifest",
"type": "object",
"additionalProperties": false,
"required": ["id"],
"properties": {
"id": {"type": "string", "minLength": 1},
"subjects": {"type": "array", "items": {"$ref": "#/$defs/subject"}},
"groups": {"type": "array", "items": {"$ref": "#/$defs/group"}},
"teams": {"type": "array", "items": {"$ref": "#/$defs/group"}},
"tenants": {"type": "array", "items": {"$ref": "#/$defs/tenant"}},
"metadata": {"type": "object", "additionalProperties": true}
},
"$defs": {
"subject": {
"type": "object",
"additionalProperties": false,
"required": ["id", "type"],
"properties": {
"id": {"type": "string", "minLength": 1},
"type": {"$ref": "https://flex-auth.netkingdom/schemas/caring_access_descriptor.schema.json#/$defs/subject_type"},
"display_name": {"type": "string", "minLength": 1},
"organization_relation": {"$ref": "https://flex-auth.netkingdom/schemas/caring_access_descriptor.schema.json#/$defs/organization_relation"},
"roles": {
"type": "array",
"items": {"$ref": "https://flex-auth.netkingdom/schemas/caring_access_descriptor.schema.json#/$defs/canonical_role"},
"uniqueItems": true
},
"groups": {"type": "array", "items": {"type": "string", "minLength": 1}},
"tenant": {"type": "string", "minLength": 1},
"claims": {"type": "object", "additionalProperties": true},
"caring_descriptors": {
"type": "array",
"items": {"$ref": "https://flex-auth.netkingdom/schemas/caring_access_descriptor.schema.json"}
},
"metadata": {"type": "object", "additionalProperties": true}
}
},
"group": {
"type": "object",
"additionalProperties": false,
"required": ["id"],
"properties": {
"id": {"type": "string", "minLength": 1},
"display_name": {"type": "string", "minLength": 1},
"members": {"type": "array", "items": {"type": "string", "minLength": 1}},
"tenant": {"type": "string", "minLength": 1},
"caring_descriptors": {
"type": "array",
"items": {"$ref": "https://flex-auth.netkingdom/schemas/caring_access_descriptor.schema.json"}
},
"metadata": {"type": "object", "additionalProperties": true}
}
},
"tenant": {
"type": "object",
"additionalProperties": false,
"required": ["id"],
"properties": {
"id": {"type": "string", "minLength": 1},
"name": {"type": "string", "minLength": 1},
"metadata": {"type": "object", "additionalProperties": true}
}
}
}
}