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).
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"$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)."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://nova.cloudinit.dev/schemas/environment.schema.json",
|
||||
"title": "Nova Platform-Managed Environment",
|
||||
"description": "Environment record. Simplified per D-017/D-018 (drops runner_role_arn/autonomy/confidence_threshold — OOS).",
|
||||
"type": "object",
|
||||
"required": ["name", "account_id", "region", "state_backend", "network"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Environment name (dev, qa, prod, dr)."
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "Optional human-readable description."
|
||||
},
|
||||
"account_id": {
|
||||
"type": "string",
|
||||
"pattern": "^[0-9]{12}$",
|
||||
"description": "12-digit AWS account ID. Placeholder 000000000000 allowed for offline/dev."
|
||||
},
|
||||
"region": {
|
||||
"type": "string",
|
||||
"description": "AWS region (e.g. us-east-1)."
|
||||
},
|
||||
"state_backend": {
|
||||
"type": "object",
|
||||
"required": ["bucket", "lock_table"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"bucket": {
|
||||
"type": "string",
|
||||
"description": "S3 state bucket name."
|
||||
},
|
||||
"lock_table": {
|
||||
"type": "string",
|
||||
"description": "DynamoDB lock table name."
|
||||
}
|
||||
}
|
||||
},
|
||||
"network": {
|
||||
"type": "object",
|
||||
"required": ["vpc_cidr", "azs"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"vpc_cidr": {
|
||||
"type": "string",
|
||||
"description": "VPC CIDR block."
|
||||
},
|
||||
"azs": {
|
||||
"type": "array",
|
||||
"maxItems": 6,
|
||||
"items": {"type": "string"},
|
||||
"description": "Availability zones."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://nova.cloudinit.dev/schemas/stack.schema.json",
|
||||
"title": "Nova Target Stack",
|
||||
"description": "Resolved stack instance. Engine-agnostic: no source/Terraform paths, no aws_* terms (per D-037/C-1 — the adapter loads the registry to resolve module → terraform_dir).",
|
||||
"type": "object",
|
||||
"required": ["contract_id", "contract_name", "environment", "resources"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"contract_id": {
|
||||
"type": "string",
|
||||
"description": "Echoed from the contract."
|
||||
},
|
||||
"contract_name": {
|
||||
"type": "string",
|
||||
"description": "Echoed from the contract."
|
||||
},
|
||||
"environment": {
|
||||
"type": "string",
|
||||
"enum": ["dev", "qa", "prod", "dr"],
|
||||
"description": "Echoed from the contract."
|
||||
},
|
||||
"resources": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"description": "One entry per contract infrastructure item. Flat per D-012 (L2 is opaque — no children/wires expansion).",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["module", "version", "inputs"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"module": {
|
||||
"type": "string",
|
||||
"description": "Module name."
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
||||
"description": "Resolved semver version."
|
||||
},
|
||||
"inputs": {
|
||||
"type": "object",
|
||||
"description": "Interpolated module inputs."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user