Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a10391-6355-7b41-b0fa-3e14e874f091
344 lines
8.3 KiB
JSON
344 lines
8.3 KiB
JSON
{
|
|
"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"
|
|
}
|