Add bulk profile-based scanning to Scanner Details page
What does this MR do and why?
The group-level Scanner Details page (e.g. SAST configuration) only supported per-project enable and disable actions. This MR adds bulk row selection and a Select bulk action dropdown so a user can enable or disable profile-based scanning across many projects and subgroups in one step.
The gl-table on ee/app/assets/javascripts/security_configuration/components/scan_profiles/scanner_details.vue now renders a header checkbox with an indeterminate state and a per-row checkbox reused from ee/security_inventory/components/checkbox_cell.vue.
Selection is capped at MAX_SELECTED_COUNT = 100 from ee/security_inventory/constants.js, mirroring the backend MAX_IDS = 100 in ee/app/graphql/mutations/security/scan_profiles/attach.rb and detach.rb.
When items are selected, a sticky bar shows the count and the Select bulk action dropdown.
Enable profile-based scanning calls SecurityScanProfileAttach with the group's default profile for the current scanner, and Disable profile-based scanning opens a confirmAction modal before calling SecurityScanProfileDetach. Both actions refetch namespaceSecurityProjects and groupAnalyzerStatuses on success and show a toast.
Selection clears on filter, pagination, and card-filter changes. The gate is canApplyProfiles, injected via ee/app/helpers/groups/security_features_helper.rb (can?(current_user, :apply_security_scan_profiles, group)), no new feature flag was added since the page is already behind group_security_configuration_scanners_tab and the security_scan_profiles licensed feature. The existing per-row applyDefaultProfile and disableProfile also gained a success toast and error alert,
And single-row Disable now shows the same confirmation modal as the bulk action for consistency.
References
- issue: [Frontend] bulk-apply profiles across selected ... (#605969 - closed)
- Design:
group_security_configuration_-_scanner_details_-_bulk_actions.png
Screenshots or screen recordings
| Before | After | |
|---|---|---|
| Disable single scanner |
Without toaster
|
|
| Enable single scanner |
Without toaster
|
|
| Disable and enable multi scanners |
Multiple options do not exist |
|
|
Select more than the limit (for example: Limit=10) |
Multiple options do not exist |
|
How to set up and validate locally
- Ensure you have an Ultimate group with the
security_scan_profileslicensed feature available and that your user has at least Maintainer role on the group (needed forapply_security_scan_profiles). - Enable the
group_security_configuration_scanners_tabfeature flag if not already on:Feature.enable(:group_security_configuration_scanners_tab)in rails console. - Navigate to Secure → Security configuration on the group, open the Scanners tab, and click into a scanner (e.g. SAST).
- Confirm the table now has a checkbox column. Select two or more projects. The sticky selection bar should appear with N items selected and a Select bulk action dropdown.
- Open Select bulk action → Enable profile-based scanning. Expect a toast
Profile-based scanning enabled for N items, the selection to clear, and the affected rows to update to the default profile. - Reselect a few projects that have the profile applied, open Select bulk action → Disable profile-based scanning → confirm the modal. Expect a toast
Profile-based scanning disabled for N itemsand the rows to update. - Cancel case: repeat step 6 but click Cancel in the modal. Expect no mutation to fire and selection to remain.
- Limit case: go to
ee/app/assets/javascripts/security_inventory/constants.js:190and change the code:export constMAX_SELECTED_COUNT= 10select all projects. Further row checkboxes should disable, and a warning icon should appear in the selection bar withYou can edit up to 10 items at once. - Selection reset: with items selected, apply a filter, change pages, or click a stat card. The selection should clear.
- Single-row consistency: on any row, use the actions menu → Disable. Expect the same confirmation modal as the bulk flow, and a toast
Profile-based scanning disabled for <project name>on confirm. - Permission gate: as a user without
apply_security_scan_profiles, confirm the checkbox column and dropdown do not appear.
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

