Draft: Add Vue 3 rollout metadata for seat management pages
What does this MR do and why?
Moves the 24 page entrypoints owned by group::seat management to Vue 3, behind our own
feature flag vue3_migrate_seat_management. The flag is off by default, so there is no
change in production until we enable it.
Without this, the repo-wide final sweep
(!261154 (merged)) claims these entrypoints
under the shared vue3_migrate_final_sweep flag. An own flag gives us a rollback lever
scoped to our pages instead of one shared with every other laggard.
Each entrypoint gets a vue3_migration.yml next to its index.js. admin/users and
admin/users/edit exist in both CE and EE, so they get two identical copies, as the
loader requires.
status: rollout
feature_flag: vue3_migrate_seat_management
group: group::seat management
migration_issue: https://gitlab.com/gitlab-org/gitlab/-/work_items/633485The 24 entrypoints
| Entrypoint | Editions |
|---|---|
admin/application_settings/roles_and_permissions + /new /edit /show |
EE |
groups/settings/roles_and_permissions + /new /edit /show |
EE |
admin/application_settings/service_accounts |
CE |
groups/settings/service_accounts/index |
CE |
projects/settings/service_accounts/index |
CE |
admin/users |
CE + EE |
admin/users/edit |
CE + EE |
admin/users/new |
CE |
admin/credentials |
CE |
admin/impersonation_tokens |
CE |
admin/keys |
CE |
admin/role_promotion_requests |
EE |
admin/gitlab_duo/seat_utilization |
EE |
groups/ldap_group_links |
EE |
groups/saml_group_links |
EE |
groups/security/credentials |
CE |
groups/usage_quotas/pending_members |
EE |
users/terms/index |
CE |
Ownership comes from the Vue 3 migration dashboard
(https://vue3-migration-dashboard-0afc95.gitlab.io/), which attributes an entrypoint by
its controller's feature_category. .gitlab/CODEOWNERS is not usable for this: it has
no app/assets rules for Fulfillment, so every path falls through to the frontend
maintainers catch-all.
Screenshots or screen recordings
No UI change while the flag is off.
How to set up and validate locally
- Enable the flag:
Feature.enable(:vue3_migrate_seat_management). - Restart vite, then open one of the pages above.
- In the browser console, run
document.querySelectorAll('[data-gitlab-vue3-app]'). A page that mounts a Vue app returns at least one node.
Verification so far
Manual verification is still in progress. Confirmed running under Vue 3 with no console errors:
| Entrypoint | URL | Mounted apps |
|---|---|---|
pages.admin.users |
/admin/users |
AdminUsersAppRoot, AdminUsersFilterAppRoot |
pages.admin.users.new |
/admin/users/new |
UserTypeSelectorRoot |
pages.admin.users.edit |
/admin/users/<user>/edit |
PasswordInputRoot, UserTypeSelectorRoot, ResetButtonRoot |
pages.admin.impersonation_tokens |
/admin/users/<user>/impersonation_tokens |
AdminUserActionsRoot, NewAccessTokenRoot, ExpiresAtFieldRoot, AccessTokenTableRoot |
pages.groups.settings.service_accounts.index |
/groups/<group>/-/settings/service_accounts |
ServiceAccountsRoot, CustomBreadcrumbsRoot |
The remaining pages are licensed EE features that need an Ultimate licence on the local instance. This MR stays in Draft until they are checked.
Automated checks, all green:
node -e 'require("./config/vue3migration/migration.js").loadVue3Migrations()'resolves all 24 entry names, with no CE/EE divergence.spec/lib/gitlab/vue3_migration_files_spec.rbspec/lib/gitlab/vue3_migration_spec.rbandspec/helpers/webpack_helper_spec.rb
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist.
References
- Rollout issue: #633485
- Final sweep MR this opts out of: !261154 (merged)
- Vue 3 migration epic: &23285