Phase 1: Add ability to manage exclusions of paths/rules/values for projects
## Overview
This epic tracks the work necessary to provide maintainers and owners of projects the ability to exclude **certain paths**, **regex patterns**, or **raw values** from being scanned, detected, and blocked by [Secret Push Protection](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection) using a [UI-managed exclusions list](https://gitlab.com/groups/gitlab-org/-/epics/13993).
## Proposal ([**Epic Dashboard**](https://epic-dashboard-gitlab-org-tenant-scale-group-4aecf10d1d02154641.gitlab.io/epic_14878))
The following is a high-level overview of tasks required to achieve the desired outcome:
#### Backend
On the ~backend side...
* **Phase 1.1**:
* Introduce database tables to support exclusions on both project and group levels.
* Define and set roles that can manage exclusions on project-level.
* Introduce the API interface for managing exclusions on the project-level.
* Introduce REST API resources for managing exclusions on the project-level.
* Introduce GraphQL resources for managing exclusions on the project-level.
* Update secret push protection to exclude findings based on existing exclusions.
* Update scanning engines (e.g. gem and secret detection service) to handle exclusions.
#### Frontend
On the ~frontend side...
* **Phase 1.2:** Add the interface to manage exclusions on project-level.
1. https://gitlab.com/gitlab-org/gitlab/-/issues/480024+s
2. https://gitlab.com/gitlab-org/gitlab/-/issues/480045+s
3. https://gitlab.com/gitlab-org/gitlab/-/issues/480029+s
4. https://gitlab.com/gitlab-org/gitlab/-/issues/480031+s
5. https://gitlab.com/gitlab-org/gitlab/-/issues/480034+s
6. https://gitlab.com/gitlab-org/gitlab/-/issues/480035+s
7. https://gitlab.com/gitlab-org/gitlab/-/issues/480027+s
### Feature Flag
We will be using a new ~"feature flag" to roll out the changes. This approach ensures that the changes can be merged incrementally.
* https://gitlab.com/gitlab-org/gitlab/-/issues/480041+s
### Documentation
Documentation updates can be included in the MR enabling the feature flag by default.
* https://gitlab.com/gitlab-org/gitlab/-/issues/480296+s
## Decisions
Please refer to the list of [decisions](https://gitlab.com/groups/gitlab-org/-/epics/14315#decisions "Allowlist for Secret Push Protection") in the [parent epic](https://gitlab.com/groups/gitlab-org/-/epics/14315 "Allowlist for Secret Push Protection").
epic