Files
nova-platform/schemas/contract.schema.json
T
CIAgent 2443909362 docs(milestone): complete v1.0-nova-platform (release v0.1.6)
---ci---
project: nova-platform
milestone: v1.0
status: complete
requirements:
  covered: [REQ-01,REQ-02,REQ-03,REQ-04,REQ-05,REQ-06,REQ-07,REQ-08,REQ-09,REQ-10,REQ-11,REQ-12,REQ-13,REQ-14,REQ-15,REQ-16,REQ-17,REQ-18,REQ-19,REQ-20,REQ-21,REQ-22,REQ-23,REQ-24,REQ-25,REQ-26,REQ-27,REQ-28,REQ-29,REQ-30,REQ-31,REQ-32,REQ-33,REQ-34,REQ-35,REQ-36,REQ-37,REQ-38]
  partial: []
---/ci---

v1.0 milestone complete: simplified infrastructure-delivery platform
derived from Nova (acdl). 6 phases (P0-P5 + P6 final). 38 REQ-IDs.
38 decisions (D-001..D-038). 76 tests pass. Engine boundary holds.
Happy paths green (check-only + CI). 13 L1 + 2 L2 modules. 5 terraform
roots. Shell reproducibility. Zero OOS files.

Tags: v0.1.0 (P0) → v0.1.1..v0.1.5 (P1..P5) → v0.1.6 (P6 = milestone
release on v0.1 patch line).
2026-08-25 02:18:35 +00:00

52 lines
1.7 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://nova.cloudinit.dev/schemas/contract.schema.json",
"title": "Nova Consumer Contract",
"description": "A consumer's declaration of infrastructure intent. Engine-agnostic: no aws_* or Terraform terms.",
"type": "object",
"required": ["id", "name", "environment", "infrastructure"],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]{2,5}$",
"description": "Stable operational acronym (3-6 chars). Used in state keys + resource naming."
},
"name": {
"type": "string",
"minLength": 3,
"description": "Human-readable contract name."
},
"environment": {
"type": "string",
"enum": ["dev", "qa", "prod", "dr"],
"description": "Target environment."
},
"infrastructure": {
"type": "array",
"minItems": 1,
"description": "List of modules to deploy. Array (not map) per D-015.",
"items": {
"type": "object",
"required": ["module", "inputs"],
"additionalProperties": false,
"properties": {
"module": {
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$",
"description": "Module name from the registry."
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Semver version. Optional — defaults to latest non-deprecated."
},
"inputs": {
"type": "object",
"description": "Module-specific inputs. No aws_* keys (engine-agnostic)."
}
}
}
}
}
}