Skip to content

Run 1: DNS Foundation

Establishes the assets.arda.cards DNS hierarchy and ACM certificates required by the image CDN. Corresponds to Phase 0 and specification.md section 2.4.

#CriterionVerification CommandExpected Output
1Infrastructure repo cloned and dependencies installedls infrastructure/package.jsonFile exists
2AWS credentials for root account availableaws sts get-caller-identity --profile Admin-RootAccount 841876193886
3AWS credentials for target infra account availableaws sts get-caller-identityAccount for target infra
4Worktree createdgit -C <worktree-path> branch --show-currentjmpicnic/image-upload-infrastructure/run-1
ArtifactPathFormatDescription
Root stack modificationsrc/main/cdk/stacks/root/root-configuration-stack.tsTypeScriptAdd assetsZone export
Infra ingress modificationsrc/main/cdk/stacks/infrastructure/ingress-stack.tsTypeScriptAdd assets subdomain zone, NS delegation, ACM cert, exports
ImportingStack modificationsrc/main/cdk/apps/Al1x/util.tsTypeScriptImport assetsHostedZone and assetsCertificateArn
Domain conventionsrc/main/cdk/platform/ari-configuration.tsTypeScriptAdd ASSETS_DOMAIN_PREFIX, ASSETS_DOMAIN, assetsDomain()
Root deploy scriptdeploy-root.shBashCDK bootstrap + deploy for root account (profile: Admin-PlatformRoot)
Root CI checktools/ci-root-check.jsJavaScriptSynth root configuration targets separately from ci-check.js
#TaskPersonaDepends OnStatusAcceptance Criteria
1.1Add ASSETS_DOMAIN_PREFIX, ASSETS_DOMAIN, assetsDomain() to ari-configuration.tsdevops-engineerPendingFunction returns <purpose>.assets.arda.cards; follows apiGatewayDomain() pattern
1.2Add assets.arda.cards zone to RootConfigurationStackdevops-engineer1.1PendingNew PublicHostedZone; assetsZone added to ExportKeys and publish(); follows io/app/auth pattern
1.3Add <infra>.assets.arda.cards subdomain zone to InfrastructureIngressdevops-engineer1.1PendingSubdomain zone created; NS delegation via WriteNSRecordsToUpstreamDns; follows io/app/auth pattern
1.4Add *.<infra>.assets.arda.cards ACM certificate to InfrastructureIngressdevops-engineer1.3PendingWildcard cert with DNS validation against assets subdomain zone; assetsCertificateArn exported
1.5Import assets zone and cert in ImportingStack (util.ts)devops-engineer1.3, 1.4PendingimportedStack.assetsHostedZone and importedStack.ingressImports.assetsCertificateArn available
1.6Create deploy-root.sh (profile: Admin-PlatformRoot)devops-engineerPendingScript bootstraps CDK and deploys r53-zones.ts to root account; executable; idempotent
1.7Create tools/ci-root-check.jsdevops-engineer1.2PendingSynths root configuration target; separate from ci-check.js to allow independent evolution
1.8Verify npm run ci-check + ci-root-check.js pass (no regressions)devops-engineer1.2-1.7PendingAll infra + partition + root targets synthesize without errors (V-003)
1.1 (ari-config) ──→ 1.2 (root zone) ──→ 1.7 (ci-root-check)
└──→ 1.3 (infra zone) ──→ 1.4 (ACM cert) ──→ 1.5 (ImportingStack)
1.6 (deploy-root.sh) — independent
1.8 (ci-check + ci-root-check) — after all code changes

Tasks 1.1 and 1.6 can start in parallel. Tasks 1.2 and 1.3 can start in parallel after 1.1. Task 1.8 runs last.

#CriterionVerification CommandExpected Output
1ci-check passesnpm run ci-checkAll targets synth without errors
2Root zone deployeddeploy-root.sh && aws route53 list-hosted-zones-by-name --dns-name assets.arda.cards --max-items 1Zone exists
3Infra zone deployedamm.sh Alpha002 dev (infra step only)Stack deploys without errors
4DNS resolvesdig NS alpha002.assets.arda.cardsReturns subdomain zone NS records
5ACM cert issuedaws acm list-certificates --query "CertificateSummaryList[?DomainName=='*.alpha002.assets.arda.cards'].Status"ISSUED
6Exports availableaws cloudformation list-exports --query "Exports[?contains(Name,'AssetsCertificateArn')]"Non-empty

Implement the DNS foundation for the assets.arda.cards domain in the infrastructure repository. Working directory: <worktree-path>.

Follow specification.md section 2.4 for all changes. The existing io/app/auth zone pattern in root-configuration-stack.ts and ingress-stack.ts is the model.

Tasks: 1.1 through 1.7 in this plan. Run npm run ci-check after all code changes to verify no regressions.

None — this is the first run.

ArtifactConsumer RunPath
assetsHostedZone import in ImportingStackRun 2src/main/cdk/apps/Al1x/util.ts
assetsCertificateArn import in ImportingStackRun 2src/main/cdk/apps/Al1x/util.ts
assetsDomain() functionRun 2src/main/cdk/platform/ari-configuration.ts
Deployed assets.arda.cards zone (in AWS)Run 2— (runtime dependency)
Deployed ACM cert (in AWS)Run 2— (runtime dependency)

Copyright: (c) Arda Systems 2025-2026, All rights reserved