Loading
Add Dependency Scanning scan profile configuration schema [1/4]
What does this MR do and why?
Stacked MR 1 of 4 implementing work item #629403 (Add Dependency Scanning configuration values and mapping). Targets master.
Adds a JSON schema (ee/app/validators/json_schemas/security_profile_dependency_scanning_configuration.json) defining the 25 allowed Dependency Scanning scan profile configuration values, and registers it under the dependency_scanning scan type in Security::ScanProfiles::Configuration::SCHEMAS. Stored configurations are validated against it.
The stack
- (this MR) Add the configuration schema →
master - Map configuration values to CI variables → branch 1
- Inject CI variables from the scan profile configuration → branch 2
- Expose the configuration in GraphQL → branch 3
Implementation notes
- The 25 variables come from the source-spreadsheet list captured in the work item.
- Types follow the work item discussion:
excluded_pathsandpip_extra_index_urlare string arrays,disabled_resolution_jobsis an enum array [maven, gradle, python],secure_log_levelis an enum [fatal, error, warn, info, debug]; the rest are strings, booleans, or integers. api_timeoutandapi_scan_download_delayare bounded to the ranges documented for their CI variables (DS_API_TIMEOUT: minimum5, maximum300;DS_API_SCAN_DOWNLOAD_DELAY: minimum1, maximum120) — seedoc/user/application_security/dependency_scanning/dependency_scanning_sbom/_index.md.- String values use a 1024-character limit per the work-item table, with one exception:
additional_ca_cert_bundle(ADDITIONAL_CA_CERT_BUNDLE) uses16384. A 1024 cap would reject realistic PEM certificate bundles — a single 2048-bit certificate is already ~1.2–1.9 KB, and a bundle concatenates several.16384comfortably fits an internal CA chain while staying well under the whole-configurationsize_limit(64 KB), and matches the intent of the existingMAX_CA_CERT_LENGTH(65535) used for cluster CA certificates.
Related to
Related to #629403
MR acceptance checklist
- I have evaluated the MR acceptance checklist for this MR.
Edited by rossfuhrman