feat: [DTOSS-9089] add separate ZAP Baseline scans for API and Website targets, with supporting Azure DevOps pipeline and Slack summary notifications#1850
Draft
nc-shahidazim wants to merge 1 commit intomainfrom
Conversation
06bad62 to
1eb6453
Compare
|
MacMur85
approved these changes
Feb 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Description
This PR introduces two dedicated ZAP Baseline scanning implementations - one for API endpoints and one for website URL -along with a new Azure DevOps pipeline to orchestrate both scans and deliver a combined Slack summary notification through the
dtos-devops-templatesSlack integration.Context
As part of improving our security scanning across DTOS services, we identified that both API endpoints and website/front‑end URLs require regular vulnerability scanning, but use different access patterns and therefore need different scanning approaches. Previously, no automated or centralised mechanism existed to run these scans consistently, nor to distribute results to engineering teams.
APIs often require subscription keys, while websites do not, and both types of services may be deployed independently. To support these differences, this work introduces two dedicated ZAP Baseline implementations - one for APIs and one for websites - each tailored to its respective target type.
To streamline execution and ensure visibility, a new Azure DevOps pipeline was added. This pipeline orchestrates both scans, aggregates results, publishes ZAP reports, and sends a consolidated Slack summary notification using
dtos-devops-templates. This enables engineering teams to quickly understand scan outcomes without needing to manually inspect artifacts.This PR establishes the foundation for automated baseline scanning across DTOS applications and provides a consistent delivery mechanism for reporting findings.
What's changed
Added dedicated scripts for API and Website ZAP scanning
Two standalone Bash scripts were introduced:
zap-api-scan.py(without OpenAPI definition).zap-baseline.pywith no authentication headers.Both scripts share standardised behaviour for validation, execution, logging, and report output.
Introduced Azure DevOps pipeline to orchestrate both scans
A new pipeline was added to:
zap-reports/api.xml/web.xmlto extract High/Medium alert countsThis enables structured, repeatable execution across environments.
Added Slack notifications with summary
The pipeline sends a single consolidated message that includes:
This improves visibility and provides teams with immediate context.
General improvements
Evidence
A generated Slack notification:
Type of changes
Checklist
Sensitive Information Declaration
To ensure the utmost confidentiality and protect your and others privacy, we kindly ask you to NOT including PII (Personal Identifiable Information) / PID (Personal Identifiable Data) or any other sensitive data in this PR (Pull Request) and the codebase changes. We will remove any PR that do contain any sensitive information. We really appreciate your cooperation in this matter.