Skip to content

Add job-level keyword for DAST configuration

What does this MR do?

adds a new job-level keyword (dast_configuration) that evolved from a discussion in an initial proposal.

Example

when you specify a site or scanner profile in the yaml config, we will look up those records in the database by name and add the calculated variables to the build using DastSiteProfile#ci_variables and DastScannerProfile#ci_variables.

dast:
  stage: dast
  dast_configuration:
    site_profile: "site-profile-name"
    scanner_profile: "scanner-profile-name"
  script:
   - echo

the merge request that adds new data model support here and the merge request that seeds the build is here.

Context

with dast we have the concept of on-demand scans, which essentially entails storing dast config in the database (dast_scanner_profiles and dast_site_profiles) and triggering scans via GraphQL on a manual basis. the proposal here is to reference those database entities by name in the .gitlab-ci.yml and seed their configuration into pipelines triggered via the regular ci/cd process.

Why?

we want to give customers the ability to use dast profiles in yaml in order to simplify the configuration of DAST for customers.

Related Issue(s)

Related Merge Requests

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Philip Cunningham

Merge request reports