# Day 3 Lab Screenshot Assets

## Directory Structure

```
labs/day-3/assets/
├── README.md              # This file - documentation
├── 01-pipeline-flow/      # Screenshots for lab-3-1-pipeline-flow
│   ├── provision-dev-infra-logs.png
│   ├── org-creation.png
│   ├── new-project-creation.png
│   ├── git-push.png
│   ├── repo-files-view.png
│   ├── service-connections-settings.png
│   ├── service-connection-creation.png
│   ├── new-pipeline-wizard.png
│   ├── pipeline-runs-completed.png
│   ├── service-connections-configured.png
│   ├── managed-identity-enabled.png
│   └── key-vault-access-control.png
├── 02-quality-gates/      # Screenshots for lab-3-2-quality-gates
│   ├── pipeline-runs-completed.png
│   ├── typecheck-output.png
│   └── npm-test-output.png
├── 03-security-scanning/  # Screenshots for lab-3-3-security-scanning
│   ├── semgrep-cli-output.png
│   ├── trivy-cli-output.png
│   ├── sbom-generation.png
│   ├── semgrep-new-vulnerabilities.png
│   ├── trivy-lodash-cve.png
│   ├── parallel-security-jobs.png
│   └── security-reports-artifacts.png
├── 04-checkov-iac/        # Screenshots for lab-3-4-checkov-iac
│   ├── checkov-summary.png
│   ├── inline-skip-comment.png
│   └── parallel-iac-scanning-jobs.png
├── 05-owasp-zap/          # Screenshots for lab-3-5-owasp-zap
│   ├── zap-baseline-scan.png
│   ├── zap-html-report.png
│   └── app-service-tls-settings.png
└── 06-artifact-promotion/ # Screenshots for lab-3-6-artifact-promotion
    ├── multi-stage-pipeline-runs.png
    ├── multi-stage-pipeline-runs-again.png
    ├── published-artifacts.png
    ├── extracted-artifact-contents.png
    └── artifact-download-step.png
```

## Detailed Image Requirements

### 01-pipeline-flow/
**Lab file:** `lab-3-1-pipeline-flow.typ`

| Filename | Description | Line Reference |
|----------|-------------|----------------|
| `provision-dev-infra-logs.png` | Azure DevOps ProvisionDevInfra logs showing Terraform outputs and pipeline variables | l.146 |
| `org-creation.png` | Azure DevOps organization creation page with organization name input and region selection | l.176 |
| `new-project-creation.png` | Azure DevOps new project creation dialog showing project name, visibility (Private), and Git version control selected | l.193 |
| `git-push.png` | Terminal showing git remote add and git push commands with Azure DevOps URL | l.227 |
| `repo-files-view.png` | Azure DevOps Repos → Files view showing repository structure with azure-pipelines.yml, course-cloud-security-app, infrastructure folders | l.261 |
| `service-connections-settings.png` | Azure DevOps Project Settings → Service connections page with "New service connection" button | l.275 |
| `service-connection-creation.png` | Service connection creation dialog showing Azure Resource Manager, Service principal (automatic), subscription selected, and service connection name filled in | l.287 |
| `new-pipeline-wizard.png` | Azure Pipelines "New pipeline" wizard showing "Existing Azure Pipelines YAML file" selected with /azure-pipelines.yml path | l.374 |
| `pipeline-runs-completed.png` | Azure DevOps pipeline run showing ProvisionDevInfra, Build, and DeployDev stages completed successfully | l.389 |
| `service-connections-configured.png` | Azure DevOps → Project Settings → Service connections showing configured Azure subscription connection | l.457 |
| `managed-identity-enabled.png` | Azure Portal → App Service → Identity showing system-assigned managed identity enabled | l.477 |
| `key-vault-access-control.png` | Azure Portal → Key Vault → Access control (IAM) showing role assignments for managed identity | l.489 |

### 02-quality-gates/
**Lab file:** `lab-3-2-quality-gates.typ`

| Filename | Description | Line Reference |
|----------|-------------|----------------|
| `pipeline-runs-completed.png` | Azure DevOps pipeline run showing Validate, Build, and DeployDev stages completed successfully | l.350 |
| `typecheck-output.png` | Pipeline QualityGates job logs showing npm run typecheck output | l.377 |
| `npm-test-output.png` | Pipeline QualityGates job logs showing npm test output with test results | l.385 |

### 03-security-scanning/
**Lab file:** `lab-3-3-security-scanning.typ`

| Filename | Description | Line Reference |
|----------|-------------|----------------|
| `semgrep-cli-output.png` | Semgrep CLI output showing findings in terminal with severity levels and file locations | l.98 |
| `trivy-cli-output.png` | Trivy CLI output showing vulnerability table with CVE IDs, severities, and affected packages | l.182 |
| `sbom-generation.png` | Terminal showing CycloneDX SBOM generation and sbom.json created | l.272 |
| `semgrep-new-vulnerabilities.png` | Semgrep output showing the 4 new vulnerabilities detected: hardcoded-secret, sql-injection-risk, dangerous-eval-usage, unsafe-cors-origin | l.538 |
| `trivy-lodash-cve.png` | Trivy output showing CVE-2020-8203 in lodash 4.17.15 with HIGH or CRITICAL severity | l.559 |
| `parallel-security-jobs.png` | Azure DevOps pipeline run showing Validate stage with 3 parallel jobs (QualityGates, SecurityCodeAnalysis, SecurityDependencyScanning) | l.1020 |
| `security-reports-artifacts.png` | Azure DevOps pipeline artifacts showing security-reports folder with Semgrep, SBOM, and Trivy files | l.1080 |

### 04-checkov-iac/
**Lab file:** `lab-3-4-checkov-iac.typ`

| Filename | Description | Line Reference |
|----------|-------------|----------------|
| `checkov-summary.png` | Checkov CLI output showing check summary (passed/failed/skipped) with check IDs | l.84 |
| `inline-skip-comment.png` | Terraform file with inline skip comment showing suppression syntax | l.338 |
| `parallel-iac-scanning-jobs.png` | Azure DevOps pipeline run showing Validate stage with 4 parallel jobs (QualityGates, SecurityCodeAnalysis, SecurityDependencyScanning, SecurityIaCScanning) | l.607 |

### 05-owasp-zap/
**Lab file:** `lab-3-5-owasp-zap.typ`

| Filename | Description | Line Reference |
|----------|-------------|----------------|
| `zap-baseline-scan.png` | ZAP Docker container running baseline scan in terminal showing progress and alerts | l.120 |
| `zap-html-report.png` | ZAP HTML report opened in browser showing alerts summary and detailed findings | l.151 |
| `app-service-tls-settings.png` | Azure App Service TLS/SSL settings showing minimum TLS version configuration | l.416 |

### 06-artifact-promotion/
**Lab file:** `lab-3-6-artifact-promotion.typ`

| Filename | Description | Line Reference |
|----------|-------------|----------------|
| `multi-stage-pipeline-runs.png` | Azure DevOps pipeline run showing all stages (ProvisionDevInfra, Validate, Build, DeployDev, PostDeploymentTests, DeployTest) | l.201 |
| `multi-stage-pipeline-runs-again.png` | Azure DevOps pipeline run showing all stages (ProvisionDevInfra, Validate, Build, DeployDev, PostDeploymentTests, DeployTest) | l.259 |
| `published-artifacts.png` | Azure DevOps pipeline run → Artifacts section showing published artifacts (backend-app, security-reports) | l.283 |
| `extracted-artifact-contents.png` | Extracted artifact folder showing dist/ files and metadata files (BUILD_COMMIT, BUILD_VERSION, BUILD_NUMBER) | l.295 |
| `artifact-download-step.png` | Pipeline deployment logs showing artifact download step with build ID and artifact name | l.404 |

## Notes

- All screenshots should be PNG format with reasonable file sizes (< 500KB preferred)
- Screenshots should clearly show the relevant UI elements and text
- Consider cropping to focus on the important portions of each screenshot
- If sensitive data (keys, secrets) appear in screenshots, blur or remove them
- File naming follows the pattern: `<lab-number>-<description>.png`
