{ "type": "object", "additionalProperties": false, "properties": { "schema_version": { "const": 1 }, "lane_id": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "ccr_id": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^CCR-[0-9]{4}-[0-9]{4}$" }, "title": { "type": "string", "minLength": 1, "maxLength": 512 }, "date": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$" }, "consumer_repo": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "owner_repo": { "const": "railiance-platform" }, "requester": { "type": "object", "additionalProperties": false, "properties": { "agent": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "reason": { "type": "string", "minLength": 1, "maxLength": 512 } }, "required": [ "agent", "reason" ] }, "review_approvers": { "type": "array", "minItems": 1, "maxItems": 32, "uniqueItems": true, "items": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" } }, "target": { "type": "object", "additionalProperties": false, "properties": { "domain": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "tenant": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "workload": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "environment": { "enum": [ "build", "development", "test", "staging", "production" ] }, "purpose": { "type": "string", "minLength": 1, "maxLength": 512 } }, "required": [ "domain", "tenant", "workload", "environment", "purpose" ] }, "openbao": { "type": "object", "additionalProperties": false, "properties": { "mount": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "kv_path": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9][a-z0-9_-]*(?:/[a-z0-9][a-z0-9_-]*)+$" }, "fields": { "type": "array", "minItems": 1, "maxItems": 32, "uniqueItems": true, "items": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[A-Z][A-Z0-9_]*$" } }, "policy_name": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^workload-kv-read-[a-z0-9-]+$" }, "auth": { "type": "object", "additionalProperties": false, "properties": { "mount": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "role": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "audience": { "const": "openbao" }, "service_account_names": { "type": "array", "minItems": 1, "maxItems": 32, "uniqueItems": true, "items": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" } }, "service_account_namespaces": { "type": "array", "minItems": 1, "maxItems": 32, "uniqueItems": true, "items": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" } }, "ttl": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[1-9][0-9]*[smh]$" } }, "required": [ "mount", "role", "audience", "service_account_names", "service_account_namespaces", "ttl" ] } }, "required": [ "mount", "kv_path", "fields", "policy_name", "auth" ] }, "eso": { "type": "object", "additionalProperties": false, "properties": { "store_name": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "server": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^https?://[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?(?::[0-9]+)?$" }, "namespace": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "external_secret_name": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "secret_name": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$" }, "refresh_interval": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[1-9][0-9]*[smh]$" }, "data": { "type": "array", "minItems": 1, "maxItems": 32, "uniqueItems": true, "items": { "type": "object", "additionalProperties": false, "properties": { "secret_key": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[a-zA-Z0-9._-]+$" }, "property": { "type": "string", "minLength": 1, "maxLength": 512, "pattern": "^[A-Z][A-Z0-9_]*$" } }, "required": [ "secret_key", "property" ] } } }, "required": [ "store_name", "server", "namespace", "external_secret_name", "secret_name", "refresh_interval", "data" ] }, "risk": { "type": "object", "additionalProperties": false, "properties": { "classification": { "enum": [ "standard", "high" ] }, "notes": { "type": "array", "minItems": 1, "maxItems": 32, "uniqueItems": true, "items": { "type": "string", "minLength": 1, "maxLength": 512 } } }, "required": [ "classification", "notes" ] } }, "required": [ "schema_version", "lane_id", "ccr_id", "title", "date", "consumer_repo", "owner_repo", "requester", "review_approvers", "target", "openbao", "eso", "risk" ], "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Draft exact KV-v2 workload-read lane input v1" }