{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://thinkloom.app/schemas/provenance/1.0/project-key-manifest.schema.json", "title": "Project key manifest", "description": "Stable key hierarchy references for protected project portability.", "type": "object", "properties": { "schema_version": { "const": "1.0" }, "project_id": { "type": "string", "pattern": "^project_[0-9A-HJKMNP-TV-Z]{26}$" }, "key_id": { "type": "string", "pattern": "^key_[0-9A-HJKMNP-TV-Z]{26}$" }, "algorithm": { "const": "xchacha20-poly1305" }, "device_envelope_path": { "type": "string", "minLength": 1, "pattern": "^(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.\\.?(?:/|$))[^\\u0000-\\u001f]+$" }, "recovery_envelope_path": { "type": "string", "minLength": 1, "pattern": "^(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.\\.?(?:/|$))[^\\u0000-\\u001f]+$" }, "recovery_verified_at": { "type": "string", "format": "date-time", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$" }, "created_at": { "type": "string", "format": "date-time", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$" } }, "required": [ "schema_version", "project_id", "key_id", "algorithm", "device_envelope_path", "recovery_envelope_path", "recovery_verified_at", "created_at" ], "additionalProperties": false, "examples": [ { "schema_version": "1.0", "project_id": "project_01J00000000000000000000001", "key_id": "key_01J0000000000000000000000G", "algorithm": "xchacha20-poly1305", "device_envelope_path": "provenance/keys/device-envelope.json", "recovery_envelope_path": "provenance/keys/recovery-envelope.json", "recovery_verified_at": "2026-07-17T18:42:10.123Z", "created_at": "2026-07-17T18:42:10.123Z" } ] }