Files
acdl/schemas/onboarding.schema.json
T
Jon Chery f83b974c0e
acdl-ci / Lint (push) Successful in 11s
acdl-ci / Platform check-only (offline) (push) Successful in 29s
acdl-ci / Test (push) Failing after 7m25s
Merge milestone/v1.16-nova-simplification — v1.16 complete (Nova Simplification: 20-phase NFR sweep + final; tag v1.15.26)
2026-08-01 13:37:18 +00:00

39 lines
1.6 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://nova.cloudinit.dev/schemas/onboarding.schema.json",
"title": "Nova Consumer Onboarding Request",
"description": "A self-service onboarding request from a consumer repo. Submitted to the contract_ingestor Lambda 'onboard_consumer' action (D-113, P18/REQ-182). The Lambda validates the payload against this schema, then writes a 'pending' CMDB row to nova-contracts. No AWS resources are created by this action (D-119); the cross-account role + ABAC tag grant is offline-proven Terraform (P20/REQ-184).",
"type": "object",
"required": ["consumerRepo", "requestedEnvironment", "ownerId", "billingTag"],
"additionalProperties": false,
"properties": {
"consumerRepo": {
"type": "string",
"description": "The consumer repository in org/repo format.",
"pattern": "^[a-zA-Z0-9_.-]+/[a-zA-Z0-9_.-]+$",
"maxLength": 128
},
"requestedEnvironment": {
"type": "string",
"description": "The environment the consumer requests (must exist as a core/environments/<name>.json).",
"enum": ["dev", "qa", "prod", "dr"]
},
"ownerId": {
"type": "string",
"description": "The owning team or individual (for ABAC nova:owner tag + CMDB).",
"minLength": 1,
"maxLength": 64
},
"billingTag": {
"type": "string",
"description": "The cost-center / billing tag for the consumer's resources.",
"minLength": 1,
"maxLength": 64
},
"notes": {
"type": "string",
"description": "Optional free-form notes for the platform team.",
"maxLength": 500
}
}
}