Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed

Cloud Infra

How the AWS estate is built: 39 infrastructure repos define everything from account foundations to the ECS services themselves. Each functional area (phenix, payments, public, cx, data, notifications) follows the same layering: a foundation repo, a platform infrastructure repo, and a tc-apps repo declaring one Terraform module per service. These repos are deliberately outside the platform health score: they are definitions, not deployed services. Scanned 2026-07-28; regenerate with scripts/scan-cloud-infra.py.

What the Terraform declares

Resource types across all scanned files. The service layer itself lives in shared modules, so ECS services appear once in aws-terraform-modules and are stamped out per service.

Risks and recommendations

20 No validation pipeline — most infra repos apply changes without a plan/validate pipeline gating them. Recommendation: a shared terraform plan pipeline on pull requests, starting with the tc-apps repos where service changes land weekly.

12 No change in over a year — no change in over a year. Fine for stable foundations, but worth confirming they still reflect what runs.

5 Candidate for archival — demos, sandboxes and pre-ECS scripts. Archive them so the infra estate stays readable.

5 State backend not detected in scan — the scan (capped per repo) did not see a remote state backend; verify state is in S3, not local.

2 Possible secrets in Terraform — literal credentials matched in Terraform files. Move to SSM or the secrets manager and rotate.

Which infra repo deploys which service

The tc-apps repos carry one module block per service, each naming its application repo. This is the live wiring between the cloud infrastructure and the service estate; service names link to their Platform Evolution pages where assessed.

The infrastructure estate

Foundations (5)

Account-level groundwork per functional area: state, roles and the base each area builds on.

RepoTerraformProvidersLast commitPipelinesRisks
aws-cx-infra-base6 filesaws2026-04-28noneNo validation pipeline
aws-data-infra-base6 filesaws2025-02-28noneNo validation pipelineNo change in over a year
aws-notifications-infra-base7 filesaws2026-04-28noneNo validation pipeline
aws-payments-infra-base6 filesaws2026-04-28noneNo validation pipeline
aws-public-infra-base6 filesaws2026-04-28noneNo validation pipeline

Platform infrastructure (13)

Networks, logging, ECR registries, EventBridge and the per-area infrastructure the services run on.

RepoTerraformProvidersLast commitPipelinesRisks
aws-cx-infra50 filesaws, newrelic, null, tfe2026-07-28noneNo validation pipeline
aws-data-infra27 filesaws2026-07-241none
aws-event-bridge0 files2024-10-24noneNo change in over a year
aws-interconnectivity0 files2026-07-012none
aws-logging28 filesaws, azurerm, tfe2026-04-28noneNo validation pipeline
aws-logging-base0 files2022-03-08noneNo change in over a year
aws-networking7 filesaws2022-05-10noneNo validation pipelineNo change in over a yearPossible secrets in TerraformState backend not detected in scan
aws-notifications-infra32 filesaws, tfe2026-05-15noneNo validation pipeline
aws-payments-infra62 filesaws, newrelic, null, tfe2026-07-07noneNo validation pipeline
aws-phenix-infra143 files2026-07-28noneNo validation pipelineState backend not detected in scan
aws-phenix-infra-eips6 filesaws2026-04-28noneNo validation pipeline
aws-public-infra55 filesaws, tfe2026-07-28noneNo validation pipeline
aws-shared-services-ecr-repos102 filesaws2026-07-06noneNo validation pipelineState backend not detected in scan

Service definitions (6)

The tc-apps repos: one Terraform module block per service, wiring each application repo onto ECS via the shared modules.

RepoTerraformProvidersLast commitPipelinesRisks
aws-cx-tc-apps73 filesaws, tfe2026-07-07noneNo validation pipelinePossible secrets in Terraform
aws-data-tc-apps17 filesaws, tfe2026-05-15noneNo validation pipeline
aws-notifications-tc-apps27 filesaws, tfe2026-05-15noneNo validation pipeline
aws-payments-tc-apps95 filesaws2026-07-071State backend not detected in scan
aws-phenix-tc-apps92 filesmongodbatlas2026-07-271State backend not detected in scan
aws-public-tc-apps46 filesaws, random, tfe2026-05-15noneNo validation pipeline

Shared modules (1)

The reusable Terraform modules (ecs_web_api and friends) every service definition consumes.

RepoTerraformProvidersLast commitPipelinesRisks
aws-terraform-modules164 filesaws2026-07-02noneNo validation pipeline

Lambdas and functions (8)

Standalone functions: log transformers, metrics emitters, image proxy, media conversion.

RepoTerraformProvidersLast commitPipelinesRisks
aws-accom-metrics-lambda0 files2024-10-241No change in over a year
aws-image-proxy0 files2025-06-261No change in over a year
aws-log-transformer-lambda0 files2025-05-191No change in over a year
aws-media-convert0 files2022-03-24noneNo change in over a year
aws-phenix-metrics-lambda-functions0 files2026-03-113none
aws-provider-mapping0 files2022-01-31noneNo change in over a year
aws-ui-ssm-access-lambda0 files2025-11-181none
aws-ui-zip-deployment-lambda0 files2026-04-241none

Legacy and sandbox (5)

Experiments, demos and pre-ECS era scripts; candidates for archival.

RepoTerraformProvidersLast commitPipelinesRisks
aws-debug-iam-users31 filesaws, tfe2026-05-14noneCandidate for archival
aws-helloworld-demo0 files2024-10-241No change in over a yearCandidate for archival
aws-sandbox53 filesaws, elasticsearch, http, tfe2026-04-28noneCandidate for archival
dcos-aws-terraform-ansible-scripts3 files2018-05-01noneNo change in over a yearCandidate for archival
kafka-aws-terraform-ansible-scripts5 filesaws2018-08-01noneNo change in over a yearCandidate for archival

Other (1)

Everything else.

RepoTerraformProvidersLast commitPipelinesRisks
terraform-managed-service-users21 filesaws, azuread, elasticsearch, http, snowflake2026-07-09noneNo validation pipeline