Organizations onboarding workflow for Artifact Registry enablement
## Context In order to support the General Availability (GA) of Artifact Registry (AR), customers will need to have an organization (initially `unconfirmed`), which will prevent AR from being enabled) since this is the anchor point for AR. ## High level workflow ### First cohort of selected customers For the first few selected customers with a single Top-Level Group (TLG), we (GitLab Inc) will confirm their organization on their behalf, so they can enable AR. **AR Workflow (engineering supported):** 1. **[Gitlab] Identify initial customers:** Select initial AR customers (primarily single-TLG), flag them for Org-based enablement, and create an internal tracking issue with TLGs, contract status, and known complexity. 2. **[GitLab] Create Org and transfer TLG:** Create a non-isolated Org and move the customer’s primary TLG into it using the standard Org/TLG transfer mechanics. 3. **[GitLab] Confirm the Org:** With the customer’s explicit acknowledgment, set `confirmed = true` and `active = true` on the Org record. 4. **[GitLab]: Set up minimal Org shell and owners:** Provision a minimal Org shell, mark existing TLG owners as Org owners. 5. **[GitLab] Deploy Organization:** At next login, customers will see the Organizational object in the side panel, and Org landing page. 6. **[Customer]** Navigate to `Organization > Settings` page and enable AR 7. **[Customer]** Navigate to an `Organization > Artifact Registry` page (the Artifact Registry team will populate its content), and start using AR ### Rest of GitLab.com customers For the rest of GitLab.com customers, since we will create one organization per TLG (https://gitlab.com/groups/gitlab-com/gl-infra/-/work_items/2011+), we need to provide them a way to: - Reconcile their multiple TLGs (if they have more than one) that would be in different organizations, into a single organization - Confirm their organization (after the reconciliation step, or directly if they only have one TLG), which will allow them to enable AR. **Self Service Workflow (** https://gitlab.com/groups/gitlab-org/-/work_items/21849)**:** 1. The platform surfaces the reconciliation/confirmation flow to the current organization owner: - If the organization owner is owner of several TLGs, they're shown the reconciliation widget to select which belong together in the current organization, and then they confirm the reconciliation. - If the organization owner is owner of a single TLG, they're shown the reconciliation widget but they can only confirm the current organization (i.e. there's no TLGs to reconcile). 2. Once the organization is confirmed (i.e. `confirmed` state), background processes create organization memberships, transfer TLG's resources to the current organization etc., and when all of these is done, the organization state becomes `active`, and AR can actually be enabled (note: maybe we can allow AR to be enabled already when the state is `confirmed`, to be checked). 3. Navigate to `Organization > Settings` page and enable AR 4. Navigate to an `Organization > Artifact Registry` page (the Artifact Registry team will populate its content), and start using AR ### Self-managed and Dedicated customers For self-managed and Dedicated customers, since they are already in a single-tenant instance, they only have the "Default" organization, which is already in the `active` state (i.e. their organization is confirmed and AR can be enabled). **Workflow:** 1. Navigate to `Organization > Settings` page and enable AR 2. Navigate to an `Organization > Artifact Registry` page (the Artifact Registry team will populate its content), and start using AR ## Outcome Provide the tooling and workflow to: - (For a confirmed organization) Navigate to an Organization > Settings page where customers can enable AR - (For a confirmed organization) Navigate to an Organization > Artifact Registry page (the Artifact Registry team will populate its content) - Confirm an organization: - Backend for the first cohort of selected customers - UX/frontend for the rest of GitLab.com customers => https://gitlab.com/gitlab-org/gitlab/-/work_items/593912+ - Reconcile TLGs for customers with multiple TLGs (not necessary for the first cohort of selected customers) => https://gitlab.com/groups/gitlab-org/-/work_items/21394+ ## DRI @peterhegman ## Participants - @alexpooley - @rymai - @sxuereb - @dblessing - @jason_istakinganap - @abdwdd ## Stakeholders - @jblack7 - @jdrpereira ## Epic Definition of Done 1. End-to-end user journey from Organization reconciliation/confirmation, through Artifact Registry enablement and actual usage is implemented, tested and documented. 2. Telemetry events and metrics are in place and dashboards created for Product and Engineering to monitor adoption and friction, segmented by deployment type. 3. Internal stakeholders, including Support, Sales, and Customer Success, have enablement materials describing the flow for each deployment type. ## Epic Success metrics 1. Percentage of Artifact Registry customers across all deployment types within a defined period after enablement. 2. Median time from Organization reconciliation/confirmation to Artifact Registry enablement. 3. Median time from Artifact Registry enablement to first successful Artifact Registry push. 4. Customer satisfaction with the reconciliation/confirmation experience, measured through surveys or interviews focusing on clarity and effort. 5. Number of user confirmed Organizations and enabled AR purchases. 6. Number of auto-confirmed SM and Dedicated Organizations and enabled AR purchases. 7. Number of unconfirmed Organizations across the entire customer base. 8. % of Organizations confirmed vs unconfirmed. 9. Number of support tickets related to Artifact Registry enablement without a confirmed Organization, trending downward post rollout. 10. Error rate for confirmation surface jobs, meeting agreed SLO. ## Hours Worked | Epic | Category | DRI | Total Hours | |------|----------|-----|-------------| | [Document the Organization transfer process for Artifact Registry customers](https://gitlab.com/groups/gitlab-org/-/epics/19423) | ~"infra-category::Customer Innovation" | @z_painter | 0.0 | | [Top-level groups reconciliation into a single organization](https://gitlab.com/groups/gitlab-org/-/epics/21394) | ~"infra-category::Customer Innovation" | @abdwdd @peterhegman @rymai | 88.0 <!-- discussion:c0e668aabfeb14fa3e24d212322906facb89d1e0 --> | ## Project Work ### :rotating_light: Epics that need attention These linked epics are not in the correct state or missing a workflow label <details> | **Topic** | **Links** | **Reason** | |-----------|-----------|-------------| | [Document the Organization transfer process for Artifact Registry customers](https://gitlab.com/groups/gitlab-org/-/epics/19423) <br/> @z_painter (+0) <br/> group::organizations | Epic has no workflow label but is closed | | [Create a minimal backfill process to support transfering TLGs to Organizations for Artifact Registry support](https://gitlab.com/groups/gitlab-org/-/epics/21845) <br/> @dblessing @rutgerwessels (+0) <br/> group::organizations | Labeling problem, epic has no workflow label | | [Top-level groups reconciliation into a single organization](https://gitlab.com/groups/gitlab-org/-/epics/21394) <br/> @abdwdd @peterhegman @rymai (+0) <br/> group::organizations | Epic has no workflow label but is closed | </details>
epic