{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://nova.cloudinit.dev/schemas/deploy-pipeline.schema.json", "title": "Nova Central Deployment Pipeline Contract", "description": "Declarative contract for the Nova deployment pipeline. Declares the stages that run when a consumer submits a contract: validate-contract, resolve-stack, terraform-plan, checkov, confidence, apply. The platform (scripts/run_platform.sh) implements these stages. This is the declarative pipeline spec; the executable workflow is .github/workflows/deploy.yml which invokes scripts/run_platform.sh.", "type": "object", "required": ["name", "triggers", "runner", "stages"], "properties": { "name": { "type": "string", "description": "Pipeline name." }, "environment": { "type": "string", "enum": ["dev", "production"], "description": "Declared environment. dev = autonomous; production = HITL gates." }, "triggers": { "type": "object", "required": ["push", "pull_request"], "properties": { "push": { "type": "array", "items": {"type": "string"}, "description": "Branches that trigger the pipeline on push." }, "pull_request": { "type": "array", "items": {"type": "string"}, "description": "Branches that trigger the pipeline on PR." } } }, "runner": { "type": "string", "description": "Runner image (e.g. 'ubuntu-latest')." }, "python_version": { "type": "string", "description": "Python version for setup-python action." }, "stages": { "type": "array", "minItems": 1, "items": {"$ref": "#/$defs/stage"} } }, "$defs": { "stage": { "type": "object", "required": ["name", "command", "required"], "properties": { "name": { "type": "string", "description": "Stage name." }, "command": { "type": "string", "description": "The shell command to run for this stage." }, "required": { "type": "boolean", "description": "If true, a non-zero exit code fails the pipeline." }, "install": { "type": "string", "description": "Optional: pip install command to run before the stage command." }, "description": { "type": "string", "description": "Optional: human-readable description of what this stage does." } } } } }