Skip to content

Extend variables keyword for DAST on-demand scans

What does this MR do?

adds an extension to ee Gitlab::Ci::Pipeline::Seed::Build that adds variables from referenced dast profiles.

Example

when you define the variable DAST_SITE_PROFILE or DAST_SCANNER_PROFILE in a job as part of the dast stage in the .gitlab.yml we will look up those records in the database by name and add the calculated variables to the job using DastSiteProfile#ci_variables and DastScannerProfile#ci_variables.

stages:
  - dast
  - test
dast:
  stage: dast
  variables:
    DAST_SITE_PROFILE: site-profile-name
    DAST_SCANNER_PROFILE: scanner-profile-name
  script:
    - env

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)

Screenshots (strongly suggested)

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