Re-home FOSS Artifact Registry organization surface into ee/ (monolith/S01 Steps 1-2)
Context
The monolith already ships a minimal FOSS Artifact Registry (AR) organization surface: the slug-less /o/:organization_path/-/artifact_registry route, its controller, a placeholder view, the read_artifact_registry ability (granted to organization_user), and a "Go to Artifact Registry" entry point on the organization overview page. The AR feature is EE-only, so this surface must move to ee/ before the S01 feature steps build on it.
This issue covers Steps 1 and 2 of the monolith/S01 plan.
Scope
Step 1 - Re-home the FOSS overview AR entry point to ee/
- Remove the "Go to Artifact Registry" link, the two AR-specific empty-state copy variants, the
canReadArtifactRegistrymount data, and thecan_read_artifact_registryhelper key from the FOSSorganizations/showoverview page and its Jest spec. - Restore the entry point unchanged on EE via an override so the FOSS page no longer imports the generated
artifactRegistryOrganizationIndexPathroute helper.
Step 2 - Relocate the AR org page to ee/
- Move the AR organization controller (
#index, the slug-less Activation route), its placeholder view, route, and specs from FOSS intoee/. - Switch the controller to
feature_category :artifact_registry(from:organization). - Move the
read_artifact_registryorganization_usergrant into the EE organization policy; the permission-definition YAML and admin-role reference stay FOSS as inert declarations.
Acceptance
- FOSS overview page renders without importing
artifactRegistryOrganizationIndexPathand shows no AR link; an EE build shows the AR link and empty-state copy exactly as before. - The slug-less
/o/:organization_path/-/artifact_registrystill routes and renders identically on EE; on FOSS the route is absent (404) andorganization_useris disallowed:read_artifact_registry. - The moved request and routing specs pass under
ee/spec; the generated routes JS regenerates cleanly.
Notes
- No
artifact_registry_uifeature flag yet (it arrives with the shared seam). The whole organization UI is already behindui_for_organizations. - The shared EE seam (feature flag, gating concern,
acmestub slug, activation-route gating) builds on this and is tracked in #599226 (closed).
References
- Epic: gitlab-org#22450 (closed)
- Plan (Steps 1-2): https://gitlab.com/gitlab-org/ops/artifact-registry/-/blob/main/docs/plans/monolith/2026-06-24-vue-app-shell.md
- Spec (monolith/S01): https://gitlab.com/gitlab-org/ops/artifact-registry/-/blob/main/docs/specs/monolith/S01-vue-app-shell-and-composition-surfaces.md