Artifact Registry Closed Beta
## Artifact Registry — Closed Beta
The **Closed Beta** phase: what design partners get. Closed Beta is the **foundation**; GA (&22707) is everything built on top. Path is **Closed Beta → GA** — no separate dated "Beta" milestone, and Closed Beta is **unpaid** (monetization turns on at GA).
📄 **Full scope:** [`closed-beta-scope.md`](https://gitlab.com/gitlab-org/ci-cd/package-stage/unified-artifact-management/-/blob/main/closed-beta-scope.md) — the canonical, EM-facing scope doc (consolidates `design-truth.md` §5/§7, the validation gates, and the G1/G4 milestones).
### Two tracks
| Track | Release · target | Exit gate |
|---|---|---|
| **.com Closed Beta** | 19.4 · **Sep 7 2026** | **Gate 1** (~Oct 8) |
| **SM Closed Beta (CNG)** | 19.5 · **Oct 15 2026** | **Gate 1.5** (~early Nov) |
### In scope
The cut is **locked** — all rows are in scope; where a specific value/decision is still open it's flagged ⚠️.
| Capability | Area | Notes |
|---|---|---|
| Maven · npm · Docker · OCI | Formats | ~30% format coverage; **Docker and OCI are separate formats** |
| Hosted / Remote / Virtual repositories | Repos | one level deep; slug-named + immutable |
| Core artifact operations (publish / pull) | Repos | via CI job-token auth |
| **Delete (permanent)** — repos & artifacts | Repos | hard delete; repo delete cascades to contents; typed confirmation + explicit API intent. **Soft delete / restore / trash / expiration → GA** as one feature |
| Limits & quotas (enforcement) | Repos | ⚠️ numbers PENDING — don't hardcode values |
| Registry handle / slug first-run | Orgs | immutable, globally unique (.com); single default workspace |
| Virtual registries + public upstream proxying | Virtual | npmjs.com · Maven Central · Docker Hub |
| Shareable upstreams + connection testing | Virtual | ⚠️ default cache TTL PENDING |
| Org dashboard + basic usage | Orgs | downloads (30-day) + storage usage |
| 4 AR roles + raise-only overrides | Auth | Artifact Admin/Manager/Contributor/Viewer; closed-by-default; API-only assignment |
| Auth methods (PAT · PrAT · GrAT · `CI_JOB_TOKEN`) | Auth | required by Gate 1; **deploy tokens excluded from CB** (confirmed on &22504) |
| **Private** visibility (closed-by-default) | Auth | only visibility in CB; **internal & public both descoped → GA** |
| Deployment — .com | Deploy | 19.4 (Sep 7) |
| Deployment — SM (CNG) | Deploy | 19.5 (Oct 15); OCI thin-slice de-risks; OAK out of scope |
### Out of scope (→ GA, see &22707)
Migration tooling · PyPI/NuGet · lifecycle policies · **soft delete / restore / trash / expiration** · dependency firewall · audit logging · billing/monetization · role-assignment self-serve UI · Access Rules · Dedicated deployment · SM OAK.
### Hierarchy
- **Parent:** Artifact Registry (&19844)
- **Next phase:** GA Scope (&22707)
epic