| permalink | /labs/lab-06 |
|---|---|
| title | Lab 06 - Understanding SARIF Output |
| description | Explore the SARIF v2.1.0 JSON structure, navigate findings with the SARIF Viewer extension, learn category prefixes and severity mapping, and understand how GitHub ingests SARIF results. |
| Duration | 30 minutes |
| Level | Intermediate |
| Prerequisites | At least one of Lab 03, Lab 04, or Lab 05 |
By the end of this lab, you will be able to:
- Understand the SARIF v2.1.0 JSON structure and its key fields
- Navigate SARIF findings using the SARIF Viewer extension in VS Code
- Explain the category prefix system used by the Agentic Accelerator Framework
- Connect SARIF output to the GitHub Security tab ingestion pipeline
Open the SARIF file and explore its JSON structure to understand how agent findings are stored.
-
In VS Code, open
validation-results.sariffrom the repository root. The file opens as a standard JSON document. -
Locate the top-level
$schemafield. This points to the SARIF v2.1.0 JSON schema and tells processors which specification version to validate against. -
Find the
versionfield. It should read"2.1.0". -
Expand the
runs[]array. Each run represents one tool execution. Inside a run, identify these fields:Field Purpose tool.driver.nameName of the agent or scanner that produced the results tool.driver.rules[]Rule definitions with unique ruleIdvalues per finding typeresults[]Array of individual findings automationDetails.idCategory string used for grouping (for example, security/) -
Inside a single result entry, locate:
Field Purpose ruleIdUnique identifier for the rule that triggered the finding levelSeverity level ( error,warning, ornote)message.textHuman-readable description of the finding locations[]File path and line number where the issue was detected partialFingerprintsStable hashes used for deduplication across multiple runs -
Count how many runs exist in the file and note which tools produced them.
The SARIF Viewer extension provides a graphical interface for navigating findings without reading raw JSON.
- Right-click
validation-results.sarifin the VS Code Explorer panel. - Select Open with SARIF Viewer from the context menu. If the option does not appear, confirm the SARIF Viewer extension is installed (see Lab 00 setup).
- The viewer displays a findings tree grouped by tool and severity. Expand a tool node to see its individual findings.
- Click any finding in the tree. The viewer opens the referenced source file and highlights the exact line where the issue was detected.
- Compare the source location shown in the viewer to the
locations[]field you examined in Exercise 6.1. Both should point to the same file and line number.
The Agentic Accelerator Framework uses category prefixes in the automationDetails.id field to organize findings by domain.
-
Review the category prefix system:
Prefix Domain Example Agents security/Security scanning SecurityReviewerAgent, IaC Security Agent, Supply Chain Agent accessibility-scan/Accessibility A11Y Detector, A11Y Resolver code-quality/coverage/Code quality Code Quality Detector, Test Generator finops-finding/v1FinOps governance Cost Analysis Agent, Cost Optimizer Agent -
Understand the severity mapping between SARIF levels and framework classification:
SARIF Level Framework Severity Action Required errorCRITICAL or HIGH Must remediate before merge warningMEDIUM Address in current sprint noteLOW Track for future improvement -
Return to the raw SARIF file and search for
automationDetailsentries. Identify which category prefix each run uses. -
For security findings, the framework maps to CWE IDs (for example, CWE-79 for XSS) and OWASP Top 10 categories. For accessibility findings, the mapping references WCAG 2.2 success criteria.
This exercise explains the pipeline from SARIF file to GitHub Security tab. Labs 07 and 08 will walk you through the process hands-on.
-
Understand the SARIF upload flow:
Agent produces findings ↓ Results written as SARIF v2.1.0 JSON ↓ GitHub Actions workflow runs upload-sarif action ↓ GitHub Code Scanning processes the SARIF file ↓ Findings appear in Security → Code scanning alerts -
The
github/codeql-action/upload-sarif@v4action in each workflow handles the upload. Thecategoryinput on the upload step matches theautomationDetails.idprefix so GitHub can group alerts by domain. -
Once uploaded, GitHub deduplicates findings using
partialFingerprints. A finding that already exists from a previous run will not create a duplicate alert. -
In Lab 07, you will enable GitHub Actions and trigger these workflows with a pull request. In Lab 08, you will explore the uploaded results in the Security tab.
Before proceeding, verify:
- You can identify the five key SARIF fields:
$schema,version,runs[],results[], andpartialFingerprints - You opened the SARIF file in the SARIF Viewer extension and navigated to a source location
- You can explain the four category prefixes and which domain each represents
- You understand the severity mapping from SARIF levels to framework classification
- You can describe the flow from SARIF file to GitHub Security tab
Proceed to Lab 07 to enable GitHub Actions workflows and trigger them with a pull request.



