Application setting to restrict CI/CD Catalog publishing to specific projects
## Summary Allow self-managed and GitLab Dedicated administrators to restrict which projects can publish components to the CI/CD Catalog through an application setting (allowlist). ## Problem Currently, any user with appropriate permissions can publish components to the CI/CD Catalog from any project. For enterprise customers, this creates governance challenges: - Central DevOps/platform teams cannot control what appears in their organization's Catalog - Engineers may publish components without proper security/compliance review - The Catalog can become cluttered with unapproved components that other users might mistakenly assume are officially sanctioned This is particularly critical for self-managed and Dedicated customers who want to maintain a curated, trusted Catalog. ## Proposal (MVC) Add a new application setting `ci_cd_catalog_projects_allowlist` that enables administrators to specify which projects are authorized to publish components to the CI/CD Catalog. **Behavior:** - When the allowlist is **empty** (default): All projects can publish (current behavior preserved) - When **populated**: Only projects whose `full_path` matches an entry in the allowlist can publish - Unauthorized projects receive an error message when attempting to publish **Implementation includes:** 1. New application setting storing allowed project paths as an array 2. New "Catalog" section in Admin → CI/CD settings with a textarea for managing the allowlist 3. Validation in `Ci::Catalog::Resources::ReleaseService` to enforce the allowlist during publishing 4. [Metrics](https://docs.gitlab.com/development/internal_analytics/) like: 1. Number of unique namespaces that are using this feature 2. Number of components that were blocked by this setting ## POC Reference A working POC demonstrating this approach: !206904 ## Customer Feedback on POC - ✅ Customers confirmed this feature would be helpful - 💡 Requested enhancement: Allow groups (not just projects) in the allowlist (so maybe wildcard projects paths) - 💡 Requested enhancement: Customizable error message with link to internal documentation ## Additional Context - This addresses the needs of **self-managed** and **Dedicated** customers - For .com/SaaS, the related policy-based approach is being explored in #441102 ## Related - Previous epic: https://gitlab.com/groups/gitlab-org/-/epics/14060 - POC: !206904+
issue