Web Interface
DSO includes a modern web interface built with Vue.js and Tailwind CSS for comprehensive project analysis and management.
Overview
The web interface provides a complete graphical environment for:
- Running security scans with real-time progress
- Viewing results in multiple formats (All, By Category, By Tool)
- Chatting with AI for security advice
- Managing repositories (GitHub/GitLab)
- Monitoring tool status and configuration
Getting Started
Prerequisites
- Node.js 18+ installed
- DSO CLI compiled and in PATH
- Ollama running (for AI features)
Installation
# Navigate to web directory
cd web
# Install dependencies
npm install
# Start both frontend and backend
npm run dev:fullThis will start:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
Development Mode
# Frontend only (Vite dev server)
npm run dev
# Backend only (Express API)
npm run server
# Both (recommended)
npm run dev:fullFeatures
Dashboard
The dashboard provides an overview of:
- Recent scans with statistics
- Quick actions (New Scan, View History, Configuration)
- Project summary and trends
Scanning
Run comprehensive security scans with:
- Real-time Progress: Visual progress bars and step indicators
- Console Logs: Live console output showing scan activities
- Timeline: Step-by-step timeline of scan phases
- Toast Notifications: Real-time notifications for scan events
Results View
View scan results in three modes:
- All: Traditional table view with all findings
- By Category: Grouped by type (SAST, SECRET, DEPENDENCY, IAC, CONTAINER)
- By Tool: Grouped by scanning tool (Trivy, Gitleaks, etc.)
Each view includes:
- Severity badges
- File locations with line numbers
- Tool identification
- Fixable indicators
- Export options (JSON, CSV)
AI Chat
Interactive chat with your local AI model for:
- Asking questions about vulnerabilities
- Getting security advice
- Requesting explanations
- Receiving recommendations
The chat understands scan context and can suggest actions like:
- Launching a new scan
- Applying fixes
- Exporting results
Repository Integration
Connect to GitHub or GitLab to:
- List your repositories
- Clone and scan remote repositories
- Authenticate with Personal Access Tokens
- Scan repositories without local cloning
Configuration Panel
Monitor and manage:
- Ollama Status: Connection status and active model
- DevSecOps Tools: Status of all 20+ integrated tools by category
- DSO CLI Version: Current CLI version
Tools are organized by category:
- SAST (6 tools)
- Dependencies (5 tools)
- Secrets (3 tools)
- IaC (4 tools)
- Containers (2 tools)
- SBOM (1 tool)
- Compliance (1 tool)
Architecture
┌─────────────────────────────────────────┐
│ Vue.js Frontend (Port 3000) │
│ - Dashboard, Scanning, Results, Chat │
└──────────────┬──────────────────────────┘
│ HTTP/API
┌──────────────▼──────────────────────────┐
│ Express.js Backend (Port 3001) │
│ - API endpoints, DSO CLI integration │
└──────────────┬───────────────────────────┘
│
┌──────────────▼───────────────────────────┐
│ DSO CLI │
│ - Security scanning │
│ - Tool detection │
│ - AI analysis via Ollama │
└─────────────────────────────────────────┘API Endpoints
The backend provides RESTful API endpoints:
GET /api/version- Get DSO CLI versionGET /api/check- Check Ollama statusGET /api/tools- Get all tools statusPOST /api/scan- Run security scanPOST /api/analyze- Analyze scan results with AIPOST /api/fix- Apply automatic fixesPOST /api/chat- Chat with AIPOST /api/repos/:provider/auth- Authenticate with Git providerGET /api/repos/:provider/list- List repositoriesPOST /api/repos/:provider/clone- Clone repository
Supabase Integration (Optional)
DSO can store scan results and analytics in a Supabase database:
- Create a Supabase project at supabase.com
- Apply the schema from
web/supabase/schema.sql - Set environment variables in
web/.env:VITE_SUPABASE_URL="your-supabase-url" VITE_SUPABASE_ANON_KEY="your-anon-key"
This enables:
- Historical scan tracking
- Analytics and trends
- Multi-user support
- Project management
Keyboard Shortcuts
Ctrl/Cmd + K: Quick searchEsc: Close modalsEnter: Submit forms- Navigation arrows for lists
Customization
Themes
The interface uses Tailwind CSS with a custom color scheme:
- Primary: Emerald green (
emerald-500) - Secondary: Dark blue (
darkblue-500) - Accent: Gradient combinations
Configuration
Edit web/tailwind.config.js to customize colors and styling.
Troubleshooting
Backend not starting
# Check if port 3001 is available
lsof -ti:3001
# Check backend logs
tail -f /tmp/dso-backend.logFrontend not loading
# Clear Vite cache
rm -rf web/node_modules/.vite
# Reinstall dependencies
cd web && npm installDSO CLI not found
Ensure the DSO binary is in your PATH or update the backend's findDSOCLI() function in web/server.js.
Next Steps
- Getting Started - Learn the basics
- Commands - Explore all CLI commands
- Scanners - Understand all integrated tools