Skip to content

Deliver DAST on-demand CI variables to builds

What does this MR do?

this merge combines two other merge requests (!63370 (merged), !63362 (merged)) in order to allow customers to specify a site or scanner profile in their yaml configuration for their dast scans.

Related Issue(s)

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.

stages:
  - build
  - dast

include:
  - template: DAST.gitlab-ci.yml

dast:
  dast_configuration:
    site_profile: Site Profile
    scanner_profile: Scanner Profile

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 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.

Screenshots

Using

savedscans

Results

2

Testing

  • enable the feature (Feature.enable(:dast_configuration_ui))
  • create a site profile
  • create a scanner profile
  • create a .gitlab-ci.yml in the repo and fill it in using the example above, replacing profile names with the ones you just created
  • go to pipelines and make sure the dast scan executed

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