Skip to main content

Repository Inventory

Last Updated: 2026-03-06 Source: co-cddo GitHub Organisation Total Repositories: 14

Executive Summary

The NDX (National Digital Exchange) Innovation Sandbox ecosystem spans 14 repositories under the co-cddo GitHub organisation. These repositories collectively implement a multi-account AWS sandbox platform for UK local government experimentation, comprising a forked upstream AWS Solution, custom satellite Lambda services, an OU metrics stop-gap service, a Terraform-managed cost defence layer, Landing Zone Accelerator configuration, scenario content platforms, and supporting utilities.


Summary Table

RepositoryLanguageIaCArchivedLast PushRole
innovation-sandbox-on-awsTypeScriptCDK + CFNNo2026-02-28Core ISB platform (fork)
innovation-sandbox-on-aws-approverTypeScriptCDKNo2026-03-06Lease approval scoring
innovation-sandbox-on-aws-billing-seperatorTypeScriptCDKNo2026-03-0372h billing cooldown
innovation-sandbox-on-aws-clientTypeScript--No2026-03-06ISB API client library
innovation-sandbox-on-aws-costsTypeScriptCDKNo2026-03-03Lease cost collection
innovation-sandbox-on-aws-deployerTypeScriptCDKYes2026-02-28Scenario deployer (archived)
innovation-sandbox-on-aws-ou-metricsTypeScriptCDKNo2026-03-04OU account count metrics (stop-gap)
innovation-sandbox-on-aws-utilsPythonScriptsNo2026-03-03Pool account tooling
ndxTypeScriptCDK + EleventyNo2026-03-06NDX public website
ndx_try_aws_scenariosTypeScriptCFN + EleventyNo2026-03-06Scenario microsite + CFN
ndx-try-aws-isb----No2025-11-21Placeholder (empty)
ndx-try-aws-lzaYAMLLZANo2025-12-19Landing Zone config
ndx-try-aws-scpTerraformTerraformNo2026-03-06Cost defence SCPs + budgets + OU alarms
ndx-try-aws-terraformTerraformTerraformNo2026-03-03Org-level Terraform glue

Detailed Repository Profiles

1. innovation-sandbox-on-aws

PropertyValue
SHAcf75b87
OriginFork of aws-solutions/innovation-sandbox-on-aws
DescriptionCore Innovation Sandbox on AWS solution -- manages temporary sandbox environments with automated security, governance, spend controls, and account recycling via a web UI
LanguageTypeScript (98.6%)
IaCAWS CDK synthesised to CloudFormation
WorkflowsNone

Key Files: source/infrastructure/lib/ (CDK stacks: AccountPool, IDC, Data, Compute, SandboxAccount), source/frontend/ (Vite web UI), source/lambdas/ (API handlers), deployment/ (build scripts), docs/openapi/ (API spec v1.1.4).

Architecture: Four CloudFormation stacks -- AccountPool (org management account, OU/SCP lifecycle), IDC (IAM Identity Center integration), Data (DynamoDB tables, AppConfig), Compute (Lambda functions, API Gateway, Step Functions, EventBridge, CloudFront frontend).


2. innovation-sandbox-on-aws-approver

PropertyValue
SHAcb27fa3
DescriptionScore-based lease approval system with Identity Center pre-approval
LanguageTypeScript
IaCAWS CDK (cdk/)
Workflowsdeploy.yml

Purpose: Listens for LeaseRequested EventBridge events and automatically approves or escalates lease requests. Implements Identity Center group-based pre-approval (replacing hardcoded allow-lists), domain verification for UK local government email addresses, AI-powered email analysis via Amazon Bedrock (Nova Micro), and Slack Workflow notifications for manual escalation. Targets 80%+ instant approval with less than 5% false negative rate.

Key Files: src/ (Lambda handler), cdk/ (CDK stack), docs/runbooks/ (operational procedures).


3. innovation-sandbox-on-aws-billing-seperator

PropertyValue
SHA47ae71d
DescriptionQuarantines sandbox accounts for 72 hours after cleanup to ensure billing separation
LanguageTypeScript
IaCAWS CDK (lib/hub-stack.ts, lib/org-mgmt-stack.ts)
Workflowsdeploy.yml, pr-check.yml

Purpose: Temporary workaround for billing attribution issues. Enforces a 72-hour hard cooldown on sandbox accounts via CloudTrail-triggered quarantine. Cross-account EventBridge routing from org management to hub account. Should be archived once ISB issue #70 is resolved.


4. innovation-sandbox-on-aws-client

PropertyValue
SHA365668c
DescriptionLightweight HTTP client for the ISB API
LanguageTypeScript
IaCNone (library package)
WorkflowsNone

Purpose: Provides typed methods for ISB API operations (leases, accounts, templates) with JWT authentication, token caching, and automatic renewal. Distributed as a tarball via GitHub Releases (@co-cddo/isb-client). Used by satellite services (approver, costs, billing-separator) to interact with the ISB API.


5. innovation-sandbox-on-aws-costs

PropertyValue
SHAc8f0523
DescriptionEvent-driven lease cost collection service
LanguageTypeScript
IaCCDK (infra/)
Workflowsci.yml, deploy.yml

Purpose: Triggered by LeaseTerminated EventBridge events. Waits 24 hours for billing data settlement, then queries Cost Explorer via cross-account role assumption in the org management account. Generates CSV cost reports stored in S3 with 3-year retention and 7-day presigned URL access. Uses JWT authentication for Lambda-to-Lambda API calls.

Key Files: src/ (Lambda handlers), infra/ (CDK stacks), docs/api-contracts.md (event schemas).


6. innovation-sandbox-on-aws-deployer

PropertyValue
SHAc2a85a0
DescriptionLambda that deploys CloudFormation templates to sandbox sub-accounts when leases are approved
LanguageTypeScript
IaCCDK (infrastructure/)
Workflowsci.yml
StatusARCHIVED -- superseded by ISB blueprint pattern

Purpose: Event-driven deployment triggered on LeaseApproved events. Supported both CDK (auto-detection via cdk.json) and CloudFormation templates. Used sparse GitHub cloning for bandwidth efficiency. Now archived in favour of native ISB blueprint deployment.


7. innovation-sandbox-on-aws-ou-metrics

PropertyValue
SHAae49b62
DescriptionStop-gap CloudWatch metrics for ISB OU account counts
LanguageTypeScript
IaCAWS CDK
WorkflowsNone

Purpose: Publishes CloudWatch custom metrics under the InnovationSandbox/OUMetrics namespace for account counts across all 7 ISB pool OUs (Available, Active, Frozen, CleanUp, Quarantine, Entry, Exit). Lambda runs in the org management account, triggered by EventBridge (CloudTrail account moves, native Org events, 15-minute schedule). Stop-gap until upstream issue #110 adds native support.

Key Files: lambda/handler.ts (count & publish logic), lib/ou-metrics-stack.ts (CDK stack), cdk.json (OU ID configuration).


8. innovation-sandbox-on-aws-utils

PropertyValue
SHAaf98d4b
DescriptionPython utilities for managing Innovation Sandbox pool accounts
LanguagePython
IaCNone (scripts)
WorkflowsCI workflow

Purpose: Operational scripts for pool account lifecycle: create_sandbox_pool_account.py (batch account creation with configurable count), assign_lease.py (enhanced with optional template/duration), terminate_lease.py, force_release_account.py, create_user.py, clean_console_state.py. Uses boto3 with SSO profiles.


9. ndx

PropertyValue
SHAb846188
DescriptionNational Digital Exchange public website
LanguageTypeScript / Eleventy v3.x
IaCCDK (infra/)
Workflowsci.yaml, infra.yaml, test.yml, accessibility.yml, scorecard.yml

Purpose: Static GOV.UK Design System website describing the NDX initiative. Includes Discover section (news, events, case studies), cloud services catalogue, access request system, Cloud Maturity Model and Assessment Tool. WCAG 2.2 AA compliant with Pa11y, Playwright, Lighthouse CI testing.

Key Files: src/ (templates, assets), infra/ (CDK stack for CloudFront/S3 hosting), docs/adr/ (Architecture Decision Records).


10. ndx_try_aws_scenarios

PropertyValue
SHA27b3a06
DescriptionZero-cost AWS evaluation platform for UK local government
LanguageTypeScript / Eleventy
IaCCloudFormation (275+ templates in cloudformation/scenarios/)
Workflowsbuild-deploy.yml, docker-build.yml

Purpose: Provides 7 pre-built scenarios for hands-on cloud exploration: Council Chatbot, Planning AI, FOI Redaction, Smart Car Park, Text to Speech, QuickSight Dashboard, LocalGov Drupal. Each scenario has one-click CloudFormation deployment and evidence pack generation (committee-ready PDFs with ROI analysis).


11. ndx-try-aws-isb

PropertyValue
SHA70bb7ec
DescriptionEmpty placeholder repository
StatusContains only .git/, .gitignore, LICENSE

12. ndx-try-aws-lza

PropertyValue
SHA6d70ae3
DescriptionLanding Zone Accelerator v1.1.0 configuration for NDX:Try AWS
LanguageYAML
IaCAWS LZA
WorkflowsNone

Purpose: Defines the entire AWS Organization structure, OU hierarchy, account definitions, IAM policies, network config, security settings, service control policies, and backup policies. Seven core YAML config files plus policy directories.

Key Files: accounts-config.yaml, organization-config.yaml, security-config.yaml, global-config.yaml, iam-config.yaml, network-config.yaml, service-control-policies/.


13. ndx-try-aws-scp

PropertyValue
SHA3443cac
Description5-layer cost defence system for Innovation Sandbox + OU metrics alarms
LanguageTerraform + Python (Lambda)
IaCTerraform
Workflowsterraform.yaml

Purpose: Implements defence-in-depth cost protection: SCPs (service/compute restrictions), AWS Budgets (per-account daily/monthly limits), DynamoDB billing mode enforcement (auto-delete On-Demand tables), and OU account count alarm management. Four Terraform modules: scp-manager, budgets-manager, dynamodb-billing-enforcer, ou-metrics-alarms.

Key Files: environments/ndx-production/main.tf, modules/scp-manager/, modules/budgets-manager/, modules/dynamodb-billing-enforcer/, modules/ou-metrics-alarms/.


14. ndx-try-aws-terraform

PropertyValue
SHA4df9750
DescriptionGeneral Terraform configuration for org-level resources
LanguageTerraform
IaCTerraform
WorkflowsCI workflow

Purpose: Minimal glue repository for org-level Terraform state management (S3 backend) and billing view configuration. Contains main.tf, terraform.tf.



Repository Relationship Diagram


Technology Distribution

TechnologyCountRepositories
TypeScript CDK7ISB core, approver, billing-separator, costs, deployer, ou-metrics, ndx
CloudFormation2ISB core, ndx_try_aws_scenarios
Terraform2ndx-try-aws-scp, ndx-try-aws-terraform
AWS LZA (YAML)1ndx-try-aws-lza
Python Scripts1innovation-sandbox-on-aws-utils
Eleventy SSG2ndx, ndx_try_aws_scenarios

Workflow Coverage

CategoryRepos
CI/CD Pipelinesapprover, billing-separator, costs, deployer, ndx, ndx_try_aws_scenarios, ndx-try-aws-scp, ndx-try-aws-terraform, innovation-sandbox-on-aws-utils
No Workflowsinnovation-sandbox-on-aws, innovation-sandbox-on-aws-client, ndx-try-aws-isb, ndx-try-aws-lza

Key Observations

  1. Extension Architecture: CDDO extends ISB through external satellite Lambda services rather than modifying the upstream fork, preserving upgrade compatibility.

  2. Event-Driven Integration: Satellites communicate with the core ISB via Amazon EventBridge events (LeaseRequested, LeaseApproved, LeaseTerminated).

  3. Shared Client Library: The @co-cddo/isb-client package provides a typed API client used by multiple satellite services.

  4. Dual SCP Management: SCPs are managed by both LZA (YAML) and Terraform (ndx-try-aws-scp), requiring careful coordination to avoid drift.

  5. Archived Repository: innovation-sandbox-on-aws-deployer is archived (superseded by ISB blueprint pattern).

  6. Scale: 240 pool accounts across 247 total AWS accounts, with OU-based lifecycle management and CloudWatch metrics for operational visibility.

  7. Observability: The innovation-sandbox-on-aws-ou-metrics stop-gap service provides CloudWatch metrics for account pool health, consumed by Terraform-managed alarms in ndx-try-aws-scp.


Generated from source analysis on 2026-03-06. See 01-upstream-analysis.md for fork divergence details.