Skip to content

Phase 1 -- External Resources Provisioning -- Exports

Resources, identifiers, and values produced by Phase 1 that are consumed by later phases or by external operators. Phase 1’s outputs are exclusively typed code references and operational documentation; no AWS CloudFormation stack exports are produced (Phase 1 deploys no stacks).

These are the typed constants downstream phases import. After Phase 1, no other code in the infrastructure repository should construct equivalent op:// strings inline; consumers import the constants below.

From infrastructure/src/main/cdk/platform/postmark-service.ts

Section titled “From infrastructure/src/main/cdk/platform/postmark-service.ts”
ExportShapeValueConsumer
PostmarkAccount (type){ name: string; credentialReference: string }Type used by all Postmark account references throughout the project.
POSTMARK_PROD_ACCOUNTPostmarkAccount{ name: "PostmarkProd", credentialReference: "op://Arda-SystemsOAM/Postmark-Prod/credential" }Phase 3 (Free Kanban Tool Postmark thin-wrapper); Phase 4 (Alpha001 partition-email stack); drift workflow.
POSTMARK_NONPROD_ACCOUNTPostmarkAccount{ name: "PostmarkNonProd", credentialReference: "op://Arda-SystemsOAM/Postmark-NonProd/credential" }Phase 4 (Alpha002 partition-email stack); drift workflow; integration-test paths.
POSTMARK_ACCOUNT_API_BASE_URLstring"https://api.postmarkapp.com"Phase 3 thin-wrappers; drift workflow; any future Postmark Account API consumer.
POSTMARK_PLANstring"Platform"Drift workflow’s plan-attribute assertion (deferred per specification.md § Open Questions); documentation cross-references.
POSTMARK_API_SURFACE{ freshnessDate: string; observationsNotePath: string }freshness date + path to the API observations noteDrift workflow’s surface-freshness reminder (informational); documentation.

From infrastructure/src/main/cdk/platform/one-password.ts

Section titled “From infrastructure/src/main/cdk/platform/one-password.ts”
ExportShapeValueConsumer
OAM_VAULTstring"Arda-SystemsOAM"Every typed item reference; any future direct vault enumeration.
OnePasswordItem (type){ vault: string; title: string; primaryField: string; reference: string }Type used by all 1Password item references.
POSTMARK_PROD_ITEMOnePasswordItem{ vault: "Arda-SystemsOAM", title: "Postmark-Prod", primaryField: "credential", reference: "op://Arda-SystemsOAM/Postmark-Prod/credential" }Phase 3, Phase 4, drift workflow (forward-references).
POSTMARK_NONPROD_ITEMOnePasswordItemanalogous for Postmark-NonProdPhase 4 (Alpha002), drift workflow, integration-test paths.
IAC_SCRIPTS_SERVICE_ACCOUNT_ITEMOnePasswordItemanalogous for IAC-SCRIPTS Service Account TokenLocal-dev operator scripts; drift workflow’s smoke-resolution; CI workflows authenticated via OP_SERVICE_ACCOUNT_TOKEN.

Phase 1 declares only the three items it provisions (Postmark-Prod, Postmark-NonProd, IAC-SCRIPTS Service Account Token, all in Arda-SystemsOAM). The Free Kanban Tool’s Postmark server token — created by Phase 3’s Corporate CLI — has its own typed reference introduced in Phase 3, pointing at a separate vault (Arda-CorporateOAM) per DQ-R1-007.

Downstream phases import the typed constants:

// Phase 3 example -- Free Kanban Tool stack
import {
POSTMARK_PROD_ACCOUNT,
POSTMARK_ACCOUNT_API_BASE_URL,
} from "arda/platform/postmark-service";
// FREE_KANBAN_POSTMARK_ITEM is introduced by Phase 3 (separate vault per DQ-R1-007),
// not Phase 1.

The arda/... import alias is the existing repo convention for infrastructure/src/main/cdk/....

External resources Phase 1 makes addressable

Section titled “External resources Phase 1 makes addressable”

Phase 1 does not own these resources (they are external to the repository), but it captures a typed addressing path to each.

ResourceOperator surfaceProgrammatic surface
PostmarkProd accountPostmark Console (operator login)POSTMARK_PROD_ACCOUNT.credentialReference resolved via 1Password SDK
PostmarkNonProd accountPostmark ConsolePOSTMARK_NONPROD_ACCOUNT.credentialReference resolved via 1Password SDK

Postmark account-level API authentication uses the X-Postmark-Account-Token HTTP header per Postmark’s documented authentication model.

ResourcePathConsumer
Arda-SystemsOAM vaultOAM_VAULTAll credential resolution
Postmark-Prod item, credential fieldPOSTMARK_PROD_ITEM.referencePhase 3 / Phase 4 / drift
Postmark-NonProd item, credential fieldPOSTMARK_NONPROD_ITEM.referencePhase 4 / drift / integration tests
IAC-SCRIPTS Service Account Token item, credential fieldIAC_SCRIPTS_SERVICE_ACCOUNT_ITEM.referenceLocal-dev + CI
SecretRepositoryConsumer
OP_SERVICE_ACCOUNT_TOKENArda-cards/infrastructureEvery CI workflow that needs to resolve a 1Password reference

Pages added to the documentation repository under current-system/oam/postmark-service/:

PathPurposeAudience
index.mdPostmark service overviewOperators; future implementors
postmark-api-observations.mdPostmark API design-intent note (~3 pages); cross-links to Postmark official docsFuture implementors of Phase 3 thin-wrappers and the Phase 5b L1 proxies
operator-runbook.mdManual external-resource provisioning runbook with troubleshooting + sign-offOperators provisioning Postmark accounts and 1Password items
WorkflowRepositoryTriggerConsumer
external-resources-drift.yml (final filename TBD per specification.md § OQ-1)Arda-cards/infrastructureschedule (monthly) and workflow_dispatchOperators (via the auto-issue on failure)
SurfaceRemoved becauseMigration path
The parser-gated operator runbook (HUMAN-STEPS.md) from the prior Phase-0 implementationThe orchestrator that parsed it is being restructured (becomes Phase 3’s Corporate CLI); operator sign-off is captured in the canonical runbook in documentation instead.Operators follow the new operator-runbook.md and sign off there.
The TypeScript module that parsed the prior runbookSame reason.None — the gate is retired entirely.

For clarity, Phase 1 does not produce:

  • AWS CloudFormation stack outputs (no CDK stacks deployed).
  • AWS Secrets Manager entries (Phase 4 populates per-partition Postmark account-token secrets and per-partition encryption-key secrets from the references Phase 1 declares).
  • Helm chart contributions (Phase 5b).
  • API endpoints (Phase 5b).
  • Postmark server resources (Phase 3 for Free Kanban Tool; Phase 4 / Phase 5b for partition tenants).