Files
nova-platform/modules/README-TEMPLATE.md
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

3.6 KiB

Module: <name>

Copy this template into modules/l1/<name>/README.md or modules/l2/<name>/README.md and fill in the placeholders. Sections marked DROP are intentionally omitted from nova modules (D-029): do not add NFRs or Compliance sections.

Overview

One-paragraph description of what this module provisions, the stack type(s) it exposes, and when to reach for it. Mention whether it is L1 (single primitive) or L2 (composition of L1s), and whether it is multi-resource.

  • Stack type: aws:<service>:<resource>
  • Kind: l1 (or l2)
  • Version: 1.0.0

Resources

List the concrete cloud resources the Terraform adapter creates. For L1 single-resource modules this is one row; for multi-resource L1s mirror the resources[] array in interface.json.

Stack type Terraform resource Notes
aws:s3:bucket aws_s3_bucket The bucket itself
aws:s3:bucket aws_s3_bucket_versioning Versioning sibling
aws:s3:bucket aws_s3_bucket_server_side_encryption_configuration SSE config sibling

For L2 modules, list the L1 modules composed via module blocks in terraform/main.tf instead.

Inputs

Mirror interface.jsoninputs. Mark required inputs with yes.

Name Type Required Default Description
bucket_name string yes Globally-unique S3 bucket name
region string yes AWS region
kms_key_arn string no null CMK ARN for SSE-KMS
enabled boolean no true Feature flag
tags map no {} Tags merged with module defaults

Outputs

Mirror interface.jsonoutputs.

Name Type Description
bucket_arn arn The S3 bucket ARN
bucket_name string The bucket name
bucket_regional_domain_name string The bucket regional domain name

Usage

module "bucket" {
  source = "modules/l1/s3/terraform"

  bucket_name = "nova-prod-assets"
  region      = "us-east-1"

  tags = {
    "nova:owner"       = "team-platform"
    "nova:environment" = "prod"
  }
}

Or as a flat-stack contract entry:

{
  "module": "s3",
  "version": "1.0.0",
  "inputs": {
    "bucket_name": "nova-prod-assets",
    "region": "us-east-1"
  }
}

Versioning

This module follows the registry semver contract: bump the patch/minor version in interface.json and modules/registry.json for any input/output/behavior change. Breaking changes (renamed inputs, removed outputs, changed defaults) require a major bump and a new registry entry; the previous version is marked deprecated: true and remains selectable by pinned contracts. See modules/README.md for the registry format and the resolver's version-selection rules.