Skip to content

docs(adr-098): package registry — AWS CodeArtifact (+ ECR pull-through cache) - #1248

Merged
gangster merged 2 commits into
mainfrom
adr-098-codeartifact-package-registry
Jul 9, 2026
Merged

docs(adr-098): package registry — AWS CodeArtifact (+ ECR pull-through cache)#1248
gangster merged 2 commits into
mainfrom
adr-098-codeartifact-package-registry

Conversation

@gangster

@gangster gangster commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

What

Adds ADR-098 recording the decision for the platform's package registry — the language-package counterpart to ECR (ADR-028).

Decision

  • AWS CodeArtifact as the managed package registry: one domain in the platform account, cross-account read, per-Team/Product repos with upstream connections that proxy+cache public repos (npmjs / PyPI / Maven Central / NuGet / …).
  • Docker pull-through closed by ECR's own pull-through cache rules — not a new tool.
  • Auth reuses the existing model — Pod Identity (runtime) + GitHub OIDC (CI). No local-user directory, so the self-hosted-CE SSO gap simply doesn't exist.
  • Go modules are a called-out gap (CodeArtifact doesn't serve them) — deferred to Athens or direct GOPROXY (D5).

Alternatives rejected (with the "why not")

  • Nexus Repository Community Edition — 40k-component / 100k-req/day hard caps (halved in 3.87.0), no SSO/SAML, no HA (all Pro-only). Off-model and off-mission.
  • Harbor — excellent but OCI-only; would duplicate ECR and leave packages unfilled.
  • JFrog OSS — more limited than Nexus CE.
  • GitHub Packages — SaaS-tied, off the IAM/Pod-Identity model.

Status

Proposed. Follow-up build (module + live unit, ECR PTC rules, scaffolder client-bootstrap) tracked separately and starting now.

🤖 Generated with Claude Code

…h cache)

Records the decision to fill the platform's language-package registry gap
with AWS CodeArtifact (the packages sibling to ECR), and to close the
public-Docker-mirror gap with ECR's own pull-through cache — rather than
self-hosting Nexus CE (usage caps + no SSO/HA), Harbor (OCI-only), or
JFrog OSS. Auth reuses Pod Identity (runtime) + GitHub OIDC (CI), so there
is no local-user/SSO surface. Go modules are a called-out gap (D5).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…DR-098)

Adds a "Supply Chain & Artifacts" subsection under Next with the epic and
its five workstreams (#1250-#1254).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@gangster
gangster merged commit 47be193 into main Jul 9, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant