# IaC Deployments

This repository holds the central Terraform infrastructure code for the HCA IaC platform. It covers all AWS deployments, from foundational account level and organization level resources such as Control Tower, Transit Gateway, centralized DNS, Security Hub, GuardDuty, and AWS Config, to workload environment stacks.

All modifications require plan review and manual apply approval.

## Getting started

Run the workspace bootstrap script before working on this repository.

```powershell
.\scripts\workspace-bootstrap.ps1
```

## Commit messages

Follow conventional commit standards using the helper script.

```powershell
.\scripts\conv-commit.ps1
```

Format: `type(scope): description`
Types: `feat`, `fix`, `chore`, `docs`, `refactor`, `revert`

## Branch naming

Prefix your branch with the primary type of change. Examples: `feat/add-vpc-stack`, `fix/correct-subnet-cidr`

## Pull requests

- Open a PR from your feature branch into `main`
- Fill in the PR template completely
- Assign at least one reviewer
- Ensure all checks pass before requesting approval
- You are responsible for merging once approved

## Sentinels

- `.locked` means the terraform unit is locked and not allowed to be modified
- `.destroy` means the terraform unit is marked for deletion
