Skip to content

Create GraphQL mutation for DAST on-demand scans

Philip Cunningham requested to merge dast-on-demand-scans-218465 into master

What does this MR do?

this merge request adds the ability to schedule dast scans on-demand by:

  • adding a service to capture recipe required to run a scan on-demand
  • adding a new graphql mutation protected by a feature flag
  • adding a new graphql enum type
  • adding tests at the mutation, service and graphql level

conscious that this merge request is already pretty large i've opted to complete the following functionality into separate merge requests:

  • provide validation errors to the frontend and possibly ditch the custom exceptions
  • add new policy for this feature

Related Issues

#218685 (closed)

How to test this?

  • enable the security_on_demand_scans feature flag:
echo "Feature.enable(:security_on_demand_scans_feature_flag)" | rails c
mutation {
  runDastScan(input: {projectPath: "placeholder", branch: "master", targetUrl: "placeholder", scanType: PASSIVE}) {
    pipelineUrl
  }
}
  • navigate to the pipelineUrl that gets returned

Screenshots

feature

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • 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