This repository contains a production-ready, enterprise-grade eight-layer DevOps security architecture with target-aware scanning, AWS ECR integration, and isolated scan directory architecture. Built for real-world enterprise applications with comprehensive Docker-based tooling.
Latest Update: November 25, 2025 - Complete scan isolation architecture with all outputs contained in scan-specific directories. No centralized reports directory - each scan is fully self-contained for audit trails and historical analysis.
Before using this security architecture, ensure you have the following tools installed and configured.
All security tools run in Docker containers. Install Docker Desktop or Docker Engine:
# macOS (using Homebrew)
brew install --cask docker
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install docker.io docker-compose
sudo systemctl start docker && sudo systemctl enable docker
sudo usermod -aG docker $USER # Add your user to docker group
# Verify installation
docker --version
docker run hello-worldRequired for AWS ECR authentication and container registry operations:
# macOS
brew install awscli
# Ubuntu/Debian
sudo apt-get install awscli
# Configure AWS credentials
aws configure
# Enter: AWS Access Key ID, Secret Access Key, Region (e.g., us-east-1)
# Verify installation
aws --version
aws sts get-caller-identitySonarQube provides code quality analysis, test coverage metrics, and security vulnerability detection. You can use either a hosted SonarQube server or run one locally.
If your organization has a SonarQube server, create a .env.sonar file in the repository root:
# .env.sonar - SonarQube authentication configuration
export SONAR_HOST_URL='https://your-sonarqube-server.com'
export SONAR_TOKEN='your_sonarqube_token_here'To generate a SonarQube token:
- Log in to your SonarQube server
- Go to My Account β Security β Generate Tokens
- Create a new token with appropriate permissions
- Copy the token to your
.env.sonarfile
For local development or testing, run SonarQube using Docker:
# Create a Docker network for SonarQube
docker network create sonarqube-network
# Start SonarQube server (Community Edition - free)
docker run -d --name sonarqube \
--network sonarqube-network \
-p 9000:9000 \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_logs:/opt/sonarqube/logs \
-v sonarqube_extensions:/opt/sonarqube/extensions \
sonarqube:lts-community
# Wait for SonarQube to start (may take 1-2 minutes)
echo "Waiting for SonarQube to start..."
until curl -s http://localhost:9000/api/system/status | grep -q '"status":"UP"'; do
sleep 5
done
echo "SonarQube is ready!"Initial SonarQube Configuration:
-
Open http://localhost:9000 in your browser
-
Login with default credentials:
admin/admin -
Change the default password immediately when prompted
-
Generate an authentication token:
- Go to My Account β Security β Generate Tokens
- Name:
security-scanner(or any descriptive name) - Type: Global Analysis Token
- Click Generate and copy the token
-
Create your
.env.sonarfile:
# .env.sonar - Local SonarQube configuration
export SONAR_HOST_URL='http://localhost:9000'
export SONAR_TOKEN='your_generated_token_here'For a more robust local setup with persistent storage:
# docker-compose.sonarqube.yml
version: '3.8'
services:
sonarqube:
image: sonarqube:lts-community
container_name: sonarqube
ports:
- "9000:9000"
environment:
- SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true
volumes:
- sonarqube_data:/opt/sonarqube/data
- sonarqube_logs:/opt/sonarqube/logs
- sonarqube_extensions:/opt/sonarqube/extensions
networks:
- sonarqube-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/api/system/status"]
interval: 30s
timeout: 10s
retries: 5
volumes:
sonarqube_data:
sonarqube_logs:
sonarqube_extensions:
networks:
sonarqube-network:
driver: bridge# Start SonarQube with Docker Compose
docker-compose -f docker-compose.sonarqube.yml up -d
# Check status
docker-compose -f docker-compose.sonarqube.yml ps
# View logs
docker-compose -f docker-compose.sonarqube.yml logs -f sonarqube
# Stop SonarQube
docker-compose -f docker-compose.sonarqube.yml downFor projects you want to analyze, create a sonar-project.properties file in the project root:
# sonar-project.properties - Project configuration
sonar.projectKey=your-project-key
sonar.projectName=Your Project Name
sonar.projectVersion=1.0
# Source directories
sonar.sources=src
sonar.tests=src
sonar.test.inclusions=**/*.test.ts,**/*.test.tsx,**/*.spec.ts,**/*.spec.tsx
# Exclusions
sonar.exclusions=**/node_modules/**,**/dist/**,**/coverage/**,**/*.config.*
# Coverage (if using LCOV format)
sonar.javascript.lcov.reportPaths=coverage/lcov.info
sonar.typescript.lcov.reportPaths=coverage/lcov.info
# Language settings
sonar.language=ts
sonar.sourceEncoding=UTF-8The remaining security tools run entirely in Docker and require no additional setup:
| Tool | Docker Image | Auto-Pulled |
|---|---|---|
| TruffleHog | trufflesecurity/trufflehog |
β Yes |
| ClamAV | clamav/clamav |
β Yes |
| Checkov | bridgecrew/checkov |
β Yes |
| Grype | anchore/grype |
β Yes |
| Trivy | aquasec/trivy |
β Yes |
| Xeol | xeol/xeol |
β Yes |
| Helm | alpine/helm |
β Yes |
Run this quick verification script to check your setup:
#!/bin/bash
echo "π Checking prerequisites..."
# Docker
if command -v docker &> /dev/null && docker info &> /dev/null; then
echo "β
Docker: $(docker --version)"
else
echo "β Docker: Not installed or not running"
fi
# AWS CLI
if command -v aws &> /dev/null; then
echo "β
AWS CLI: $(aws --version 2>&1 | head -1)"
else
echo "β οΈ AWS CLI: Not installed (required for ECR integration)"
fi
# SonarQube configuration
if [ -f ".env.sonar" ]; then
echo "β
SonarQube: .env.sonar file found"
else
echo "β οΈ SonarQube: .env.sonar not found (Layer 7 will be skipped)"
fi
echo "π― Prerequisites check complete!"- π TruffleHog - Multi-target secret detection with filesystem, container, and registry scanning
- π¦ ClamAV - Enterprise antivirus scanning with real-time virus definition updates
- π Checkov - Infrastructure as Code security scanning with directory fallback (Terraform, Kubernetes, Docker)
- π― Grype - Advanced vulnerability scanning with SBOM generation and multi-format support
- π Trivy - Comprehensive security scanner for containers, filesystems, and Kubernetes
- β° Xeol - End-of-Life software detection for proactive dependency management
- π SonarQube - Code quality analysis with target directory intelligence and interactive authentication
- β Helm - Chart validation, linting, and packaging with interactive ECR authentication
- π Report Consolidation - Unified dashboard generation with comprehensive analytics
β Windows PowerShell Support - Complete implementation achieving 95% feature parity:
- Interactive ECR Authentication - Unified AWS authentication across all security tools
- 9-Step Security Pipeline - Complete orchestration including Step 9 (Report Consolidation)
- Directory Scanning Fallback - Graceful handling when Helm charts or projects lack expected structure
- Comprehensive Error Handling - Stub dependency creation and fallback mechanisms
- Identical User Experience - Same command patterns and output formatting across platforms
Key PowerShell Scripts:
run-complete-security-scan.ps1- 9-step orchestrator with Step 9 integrationrun-helm-build.ps1- β NEW: Full implementation with ECR authenticationrun-checkov-scan.ps1- Enhanced with directory scanning fallbackrun-trivy-scan.ps1,run-grype-scan.ps1,run-trufflehog-scan.ps1- Multi-target scanningconsolidate-security-reports.ps1- Unified reporting and dashboard generation
comprehensive-security-architecture/
βββ scripts/ # Cross-platform security scanning scripts
β βββ bash/ # Unix/Linux/macOS scripts
β β βββ run-target-security-scan.sh # Target-aware orchestrator
β β βββ run-complete-security-scan.sh # 9-step orchestrator with Step 9 consolidation
β β βββ run-sonar-analysis.sh
β β βββ run-trufflehog-scan.sh
β β βββ run-clamav-scan.sh
β β βββ run-helm-build.sh # Interactive ECR authentication
β β βββ run-checkov-scan.sh # Directory scanning fallback
β β βββ run-trivy-scan.sh
β β βββ run-grype-scan.sh
β β βββ run-xeol-scan.sh
β β βββ analyze-*.sh # Analysis scripts for each tool
β β βββ consolidate-security-reports.sh
β βββ powershell/ # Windows PowerShell scripts (full parity)
β βββ run-target-security-scan.ps1 # Target-aware orchestrator
β βββ run-complete-security-scan.ps1 # 9-step orchestrator with Step 9 consolidation
β βββ run-helm-build.ps1 # Full implementation with ECR auth
β βββ run-checkov-scan.ps1
β βββ run-trivy-scan.ps1
β βββ run-grype-scan.ps1
β βββ run-trufflehog-scan.ps1
β βββ Scan-Directory-Template.ps1 # Centralized scan directory management
β βββ consolidate-security-reports.ps1
βββ scans/ # Isolated scan output directory (NEW v2.4)
β βββ {scan_id}/ # Per-scan isolated directory
β βββ trufflehog/ # Tool-specific subdirectories
β βββ clamav/
β βββ checkov/
β βββ grype/
β βββ trivy/
β βββ xeol/
β βββ sonar/
β βββ helm/
β βββ sbom/
β βββ anchore/
β βββ consolidated-reports/ # Unified dashboard and reports
β βββ dashboards/ # Interactive security dashboard
β βββ html-reports/ # Tool-specific HTML reports
β βββ markdown-reports/ # Summary reports
β βββ csv-reports/ # Data exports
βββ documentation/ # Complete setup and architecture guides
βββ SECURITY_AND_QUALITY_SETUP.md
βββ COMPREHENSIVE_SECURITY_ARCHITECTURE.md
Scan any external application or directory with comprehensive security analysis and centralized output:
# Unix/Linux/macOS
# Quick scan (4 core security tools: TruffleHog, ClamAV, Grype, Trivy)
./scripts/bash/run-target-security-scan.sh "/path/to/your/project" quick
# Full scan (all 8 layers)
./scripts/bash/run-target-security-scan.sh "/path/to/your/project" full
# Image-focused security scan (6 container tools)
./scripts/bash/run-target-security-scan.sh "/path/to/your/project" images
# Analysis-only mode (existing reports)
./scripts/bash/run-target-security-scan.sh "/path/to/your/project" analysis
# Windows PowerShell
# Quick scan (4 core security tools)
.\scripts\powershell\run-target-security-scan.ps1 -TargetDir "C:\path\to\your\project" -ScanType quick
# Full scan (all 8 layers)
.\scripts\powershell\run-target-security-scan.ps1 -TargetDir "C:\path\to\your\project" -ScanType full
# Image-focused security scan
.\scripts\powershell\run-target-security-scan.ps1 -TargetDir "C:\path\to\your\project" -ScanType imagesIsolated Scan Architecture:
All scan results are stored in scans/{scan_id}/ where scan_id format is:
{target_name}_{username}_{timestamp}
Example: comet_rnelson_2025-11-25_09-40-22
Complete Scan Isolation:
- Each scan is self-contained in its own directory
- No centralized reports/ directory - full isolation for audit trails
- Tool-specific subdirectories:
trufflehog/,clamav/,sonar/, etc. - Consolidated reports:
consolidated-reports/dashboards/security-dashboard.html - Historical scans preserved indefinitely for compliance and trending
Quick Dashboard Access:
# Simplest way - opens latest scan dashboard automatically
./scripts/bash/open-latest-dashboard.sh
# Or manually open latest
LATEST_SCAN=$(ls -t scans/ | head -1)
open scans/$LATEST_SCAN/consolidated-reports/dashboards/security-dashboard.html
# Regenerate dashboard for latest scan (if needed)
./scripts/bash/consolidate-security-reports.sh # Auto-detects latest scanUnix/Linux/macOS (Bash):
cd scripts/bash
# Complete 9-Step Security Pipeline (includes Step 9: Report Consolidation)
./run-complete-security-scan.sh full
# Individual Layer Execution using TARGET_DIR method:
# Layer 1: Secret Detection (TruffleHog)
TARGET_DIR="/path/to/project" ./run-trufflehog-scan.sh filesystem
# Layer 2: Antivirus Scanning (ClamAV)
TARGET_DIR="/path/to/project" ./run-clamav-scan.sh
# Layer 3: Infrastructure Security (Checkov) - Directory scanning fallback
TARGET_DIR="/path/to/project" ./run-checkov-scan.sh filesystem
# Layer 4: Vulnerability Scanning (Grype)
TARGET_DIR="/path/to/project" ./run-grype-scan.sh filesystem
# Layer 5: Container Security (Trivy)
TARGET_DIR="/path/to/project" ./run-trivy-scan.sh filesystem
# Layer 6: End-of-Life Detection (Xeol)
TARGET_DIR="/path/to/project" ./run-xeol-scan.sh filesystem
# Layer 7: Code Quality Analysis (SonarQube)
TARGET_DIR="/path/to/project" ./run-sonar-analysis.sh
# Layer 8: Helm Chart Building - Interactive ECR authentication
TARGET_DIR="/path/to/project" ./run-helm-build.sh
# Step 9: Report Consolidation (integrated into complete scan)
./consolidate-security-reports.shWindows (PowerShell):
cd scripts\powershell
# Complete 9-Step Security Pipeline (includes Step 9: Report Consolidation)
.\run-complete-security-scan.ps1 -Mode full
# Individual Layer Execution using TARGET_DIR method:
# Layer 1: Secret Detection (TruffleHog)
$env:TARGET_DIR="/path/to/project"; .\run-trufflehog-scan.ps1 filesystem
# Layer 3: Infrastructure Security (Checkov) - Directory scanning fallback
$env:TARGET_DIR="/path/to/project"; .\run-checkov-scan.ps1 filesystem
# Layer 4: Vulnerability Scanning (Grype)
$env:TARGET_DIR="/path/to/project"; .\run-grype-scan.ps1 filesystem
# Layer 5: Container Security (Trivy)
$env:TARGET_DIR="/path/to/project"; .\run-trivy-scan.ps1 filesystem
# Layer 6: End-of-Life Detection (TruffleHog)
$env:TARGET_DIR="/path/to/project"; .\run-trufflehog-scan.ps1 filesystem
# Layer 8: Helm Chart Building - β
NEW: Interactive ECR authentication
$env:TARGET_DIR="/path/to/project"; .\run-helm-build.ps1
# Step 9: Report Consolidation (integrated into complete scan)
.\consolidate-security-reports.ps1# Open latest scan's interactive dashboard
LATEST_SCAN=$(ls -t scans/ | head -1)
open scans/$LATEST_SCAN/consolidated-reports/dashboards/security-dashboard.html
# Or specify a particular scan
open scans/comet_rnelson_2025-11-25_09-40-22/consolidated-reports/dashboards/security-dashboard.html- External Directory Support: Scan any project without file copying
- Path Intelligence: Automatic detection of project structure and technologies
- Flexible Target Modes: Support for monorepos, microservices, and legacy applications
- Non-Destructive Scanning: Read-only analysis with no project modifications
- AWS ECR Integration: Automatic ECR authentication with graceful fallbacks
- SonarQube Enterprise: Multi-location config discovery and interactive credentials
- Container Registry Support: Private registry authentication for image scanning
- Service Account Compatibility: JWT and token-based authentication support
- LCOV Format Integration: SonarQube-standard coverage format for professional reporting
- Multi-Format Support: Automatic fallback from LCOV to JSON coverage formats
- Coverage Calculation: 92.51% LCOV (professional) vs 95.33% JSON (simplified) methodologies
- Target-Aware Scanning:
TARGET_DIRenvironment variable method for clean path handling
- 8-Layer Security Model: Complete DevOps security pipeline coverage
- Real-Time Scanning: Live vulnerability databases with automatic updates
- Multi-Format Analysis: Source code, containers, infrastructure, dependencies
- Compliance Support: NIST, OWASP, CIS benchmarks integration
- Interactive Dashboards: Rich HTML reports with filtering and search
- Trend Analysis: Security posture tracking over time
- Executive Summaries: C-level reporting with risk prioritization
- Integration APIs: JSON output for CI/CD pipeline integration
- Graceful Failure Handling: Continues scanning on individual tool failures
- Resource Optimization: Efficient scanning with configurable parallelization
- Large Codebase Support: Tested on 448MB+ projects with 63K+ files
- Cross-Platform Excellence: 95% PowerShell/bash parity - identical functionality across Windows, macOS, and Linux
- Windows: Full PowerShell implementation with interactive ECR authentication
- Unix/Linux/macOS: Enhanced bash scripts with unified ECR authentication
- Feature Parity: 95% identical functionality across all platforms
- 9-Step Security Pipeline: Complete orchestration available on all platforms
Target: Enterprise application with Centralized Scan Architecture
- π TruffleHog: Secret detection with filesystem scanning
- π¦ ClamAV: Clean - 0 malware threats detected (42,919 files scanned)
- π Checkov: Infrastructure security analysis completed
- π― Grype: Vulnerability scanning with SBOM generation completed
- π³ Trivy: Container security analysis completed
- β° Xeol: EOL software detection completed
- π SonarQube: Code quality analysis with coverage metrics
- β Helm: Chart validation and packaging
- β
Complete Isolation: All outputs in scan-specific
scans/{scan_id}/directory - β No Centralized Reports: Each scan is fully self-contained
- β Tool Isolation: Each tool has dedicated subdirectory within scan
- β Cross-Platform: Identical directory structure on Windows and Unix
- β Audit Trail: Historical scans preserved with unique scan IDs
- β
Environment Variables:
$SCAN_ID,$SCAN_DIR,$TARGET_DIR - β Parallel Scanning: Multiple scans can run simultaneously without conflicts
- β Windows (PowerShell): All 8 security layers operational with centralized output
- β Unix/Linux/macOS (Bash): Enhanced with centralized scan directory architecture
- β
Variable Fixes: Corrected
$OutputDirβ$OUTPUT_DIRin Grype/Trivy scripts - β
Path Validation: Fixed null path checks in
Scan-Directory-Template.ps1
Complete Scan Isolation Architecture - All security scan outputs are fully isolated within scan-specific directories. Removed centralized reports/ directory entirely. Each scan is self-contained with its own dashboard, reports, and tool outputs - enabling true audit trails, historical analysis, and parallel scanning without conflicts.
- Docker: Containerized execution environment
- SonarQube: Code quality and test coverage analysis with LCOV format support
- TruffleHog: Secret and credential detection
- ClamAV: Antivirus and malware scanning
- Helm: Kubernetes chart building and validation
- Checkov: Infrastructure-as-Code security scanning
- Trivy: Container and Kubernetes vulnerability scanning
- Grype: Advanced vulnerability scanning with SBOM generation
- Xeol: End-of-Life software detection
- Syft: Software Bill of Materials (SBOM) generation
Our SonarQube integration now uses LCOV format as the primary coverage source, aligning with SonarQube's standard methodology:
# Coverage Results Comparison:
# β’ LCOV Format: 92.51% (SonarQube-standard, professional metric)
# β’ JSON Fallback: 95.33% (simplified line counting)
# β’ SonarQube Server: 74.4% (comprehensive with branch coverage)Key Improvements:
- β
LCOV Priority: Uses
lcov.infofirst, falls back to JSON coverage files - β SonarQube Alignment: Same format that SonarQube analyzes natively
- β Professional Reporting: More accurate coverage calculation methodology
- β TARGET_DIR Support: Clean path handling for external project scanning
- Location:
documentation/SECURITY_AND_QUALITY_SETUP.md - Content: Step-by-step setup instructions for all eight security layers
- Includes: Configuration, troubleshooting, and best practices
- Location:
documentation/COMPREHENSIVE_SECURITY_ARCHITECTURE.md - Content: Executive summary and technical implementation details
- Includes: Current status, action items, and strategic recommendations
β
Eight-Layer Security Architecture - Complete implementation
β
Multi-Target Scanning - Enhanced capabilities across all tools
β
Unified Reporting System - Human-readable dashboards and reports
β
Production-Ready - Docker-based, cross-platform compatible
β
Comprehensive Documentation - Complete setup and usage guides
β
Unit Testing - Comprehensive test coverage for all shell scripts
All shell scripts in scripts/shell/ have comprehensive unit test coverage using bats-core.
# Install bats-core (if not already installed)
# Ubuntu/Debian:
sudo apt-get install bats
# macOS:
brew install bats-core
# Run all tests
cd tests/shell
./run-tests.sh
# Run specific test file
bats test-run-trivy-scan.bats- Total Tests: 107
- Scripts Covered: 12 (all scan scripts)
- Success Rate: 100%
Tests validate:
- Script existence and permissions
- Proper structure and shebang
- Required functions and dependencies
- Docker integration
- Help documentation
- Tool-specific features
For detailed testing documentation, see tests/shell/README.md.
# Weekly comprehensive enterprise scan
./scripts/run-target-security-scan.sh "/path/to/enterprise/app" full
# Daily quick security check
./scripts/run-target-security-scan.sh "/path/to/enterprise/app" quick
# Container security monitoring
./scripts/run-target-security-scan.sh "/path/to/enterprise/app" images- Vulnerability Management: Real-time CVE monitoring with Grype and Trivy
- Secret Detection: Continuous credential scanning with TruffleHog
- Code Quality Gates: SonarQube integration with quality thresholds
- Infrastructure Security: Automated IaC security with Checkov
- Dependency Lifecycle: Proactive EOL management with Xeol
- Malware Protection: Regular antivirus scanning with ClamAV
# Large enterprise project optimization
export EXCLUDE_PATTERNS="node_modules/*,*.min.js,vendor/*"
export MAX_PARALLEL_SCANS="4"
export SCAN_TIMEOUT="3600"
# Resource monitoring
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"- Docker Engine: Version 20.10+ for container execution
- System Memory: 8GB+ recommended for large projects
- Disk Space: 10GB+ for reports and container images
- Network Access: Internet connectivity for tool updates
- Authentication: AWS CLI configured for ECR access
- Container Security: All tools run in isolated containers
- Data Privacy: Read-only scanning with no data transmission
- Access Control: Proper file permissions and user management
- Audit Logging: Comprehensive security event logging
# Performance monitoring
./scripts/monitor-security-performance.sh
# Alert configuration
export SLACK_WEBHOOK="your_webhook_url"
export CRITICAL_ALERT_THRESHOLD="0"
export HIGH_ALERT_THRESHOLD="5"- DEPLOYMENT_SUMMARY_NOV_4_2025.md - Complete deployment guide and validation results
- DASHBOARD_DATA_GUIDE.md - Interactive dashboard and analytics guide
- DASHBOARD_QUICK_REFERENCE.md - Production commands and usage patterns
- documentation/COMPREHENSIVE_SECURITY_ARCHITECTURE.md - Complete architecture documentation
- documentation/SECURITY_AND_QUALITY_SETUP.md - Detailed setup and configuration guide
# Complete enterprise security scan
./scripts/run-target-security-scan.sh "/path/to/project" full
# Access security dashboard
open ./reports/security-reports/index.html
# Individual layer execution (recommended TARGET_DIR method)
TARGET_DIR="/path/to/project" ./scripts/run-[tool]-scan.sh
# SonarQube with LCOV coverage format
TARGET_DIR="/path/to/project" ./scripts/run-sonar-analysis.sh
# CI/CD integration
export TARGET_DIR="/workspace" && ./scripts/run-target-security-scan.sh "$TARGET_DIR" fullCreated: November 3, 2025
Updated: November 25, 2025
Version: 2.4 - Complete Scan Isolation Architecture
Status: β
ENTERPRISE PRODUCTION READY - COMPLETE ISOLATION
Validation: Successfully tested with complete scan isolation, no centralized reports, full audit trail support
- β
Removed Centralized Reports: Eliminated
reports/directory entirely - β
Full Scan Isolation: All outputs contained in
scans/{scan_id}/structure - β Self-Contained Dashboards: Each scan has its own dashboard and consolidated reports
- β Historical Preservation: Scans remain independent for compliance and trending
- β Parallel Scan Support: Multiple scans can run simultaneously without conflicts
- β Audit Trail Ready: Complete isolation enables proper security audit trails
- β Script Cleanup: Removed 8 obsolete scripts referencing old reports/ structure
- β
Template Updates:
scan-directory-template.shenforces scan isolation
| Feature | Before (v2.3) | After (v2.4) | Impact |
|---------|--------|-------|---------|-------|
| Output Location | Centralized reports/ | Isolated scans/{scan_id}/ | Complete Isolation |
| Scan Independence | Shared directories | Fully self-contained | Audit Ready |
| Dashboard Location | Central reports/ | Per-scan dashboards | Historical Analysis |
| Parallel Scans | Possible conflicts | No conflicts | Truly Parallel |
| Multi-Scan Support | Same output paths | Isolated directories | Unlimited Concurrent |
| Cleanup | Complex selective deletion | Delete entire scan dir | Simple Management |
| Compliance | Difficult to track | Complete audit trail | Regulation Ready |
π― Achievement: Complete scan isolation architecture - Each security scan is fully self-contained with its own outputs, dashboard, and reports. Enables true parallel scanning, complete audit trails, and historical compliance tracking.
Location: scans/{scan_id}/consolidated-reports/dashboards/security-dashboard.html
# Method 1: Open latest scan dashboard
LATEST_SCAN=$(ls -t scans/ | head -1)
open scans/$LATEST_SCAN/consolidated-reports/dashboards/security-dashboard.html
# Method 2: Open specific scan dashboard
open scans/comet_rnelson_2025-11-25_09-40-22/consolidated-reports/dashboards/security-dashboard.html
# Method 3: List all scan dashboards
find scans/ -name "security-dashboard.html" | sort -rβ
Interactive Overview - Visual status of all security tools
β
Expandable Sections - Click to view detailed findings
β
Severity Badges - Critical, High, Medium, Low indicators
β
Tool-Specific Details - Per-tool vulnerability breakdowns
β
Self-Contained - Each scan has its own complete dashboard
β
Historical Analysis - Compare dashboards across scan runs
# List recent scans
ls -lt scans/ | head -5
# Compare two scans
diff scans/scan1/consolidated-reports/dashboards/security-dashboard.html \
scans/scan2/consolidated-reports/dashboards/security-dashboard.html
# Archive old scans
tar -czf archive.tar.gz scans/comet_rnelson_2025-11-*
# Remove scans older than 30 days
find scans/ -type d -mtime +30 -name "*_rnelson_*" -exec rm -rf {} \;