{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://nova.dev/schemas/tagging-standard.json", "title": "Nova Tagging Standard", "description": "Required tags for all taggable AWS resources created by the platform. Enforced by a Checkov custom Python rule (adapters/terraform/policy/custom_rules/nova_tagging.py, D-109 hard mode in P3 — tag-key values are nova:*; legacy acdl:* tag keys are rejected by the hard-mode rule). The checkov adapter maps NOVA_TAG_NAMING as a real rule (D-054, D-043 closure; renamed from ACDL_TAG_NAMING in P2, REQ-158).", "type": "object", "properties": { "required_tags": { "type": "object", "description": "The set of tags that must be present on every taggable AWS resource.", "properties": { "nova:owner": { "type": "string", "description": "The consumer repository name (e.g. 'consumer-repo'). Injected from the ABAC session." }, "nova:contract": { "type": "string", "description": "The contract ID (UUID)." }, "nova:environment": { "type": "string", "enum": ["dev", "qa", "prod", "dr"], "description": "The environment name." }, "nova:cost-center": { "type": "string", "description": "The cost center (consumer-provided or platform-default 'nova-default')." }, "nova:ref": { "type": "string", "description": "Optional reference tag (e.g. a change-request ID or external tracker)." } }, "required": ["nova:owner", "nova:contract", "nova:environment", "nova:cost-center"], "additionalProperties": false }, "default_values": { "type": "object", "description": "Default values used when the consumer does not supply the tag.", "properties": { "nova:cost-center": { "type": "string", "default": "nova-default" } } } }, "required": ["required_tags"], "additionalProperties": false }