# STEAM Security Dashboard v1.0.0 A self-hosted vulnerability management dashboard for the NTS-AEO-STEAM and NTS-AEO-ACCESS-ENG business units. Centralises CVE tracking, Ivanti host finding triage, AEO compliance posture, FP/Archer/CARD exception workflows, and internal documentation in a single interface. ## Quick Start ### Prerequisites - Node.js 18+ - Python 3 with `python3-pandas` and `python3-openpyxl` (for compliance xlsx parsing) ### Install ```bash git clone cd cve-dashboard # Backend dependencies npm install # Frontend dependencies cd frontend && npm install && cd .. # Python dependencies (Ubuntu/Debian) apt install -y python3-pandas python3-openpyxl ``` ### Configure ```bash cp backend/.env.example backend/.env # Edit backend/.env — at minimum set SESSION_SECRET: # openssl rand -base64 32 ``` See `backend/.env.example` for all available options including Ivanti API, Jira, and Atlas integration keys. ### Initialize Database ```bash node backend/setup.js ``` Creates the database with the complete schema and prints a one-time admin password. Save it. ### Build and Run ```bash # Build frontend cd frontend && npm run build && cd .. # Start servers ./start-servers.sh ``` Dashboard: http://localhost:3000 · API: http://localhost:3001 For persistent deployments, use the systemd services in `systemd/`. See the full manual for setup instructions. ## Features | Feature | Description | |---------|-------------| | **CVE Management** | Track CVEs across multiple vendors with document storage and NVD auto-fill | | **Reporting** | Ivanti host finding triage with donut charts, inline editing, advanced filtering, CSV/XLSX export | | **Ivanti Queue** | Personal staging list for batch FP, Archer, CARD, and Granite workflows | | **FP Workflow** | Submit false positive workflows directly to Ivanti API with attachments | | **Compliance** | Weekly AEO xlsx upload with diff preview, drift detection, per-team metric health cards | | **Archive Tracking** | Automatic detection of disappeared/returned findings with BU reassignment classification | | **Findings Trend** | Historical open vs closed chart with archive activity sparkline and shift reason tooltips | | **Jira Integration** | Create, sync, and track Jira Data Center tickets linked to CVE/vendor pairs | | **Archer Tickets** | Track risk acceptance exceptions (EXC numbers) linked to findings | | **CARD API** | Granite/CARD asset lookup integration for network device workflows | | **Knowledge Base** | Internal document library with inline PDF/Markdown viewing | | **Access Control** | Four user groups (Admin, Standard_User, Leadership, Read_Only) with full audit trail | ## Project Structure ``` cve-dashboard/ ├── backend/ │ ├── server.js # Express API server │ ├── setup.js # Database initialization (run once) │ ├── routes/ # API route handlers │ ├── helpers/ # API clients (Ivanti, Jira, Atlas, CARD) │ ├── middleware/ # Auth middleware │ ├── migrations/ # Schema migrations (for existing deployments) │ └── scripts/ # Compliance parser, data import utilities ├── frontend/ │ ├── src/ │ │ ├── App.js # Main app with routing │ │ ├── components/ # React components │ │ └── contexts/ # Auth context │ └── public/ ├── docs/ │ ├── api/ # API specs (Ivanti, Atlas, Jira) │ ├── design/ # Design system, workflow diagrams │ ├── guides/ # User guides, full reference manual │ ├── security/ # Security audits and remediation plans │ ├── testing/ # Test plans and scripts │ └── troubleshooting/ # Investigation scripts and reports ├── systemd/ # systemd service files ├── start-servers.sh └── stop-servers.sh ``` ## Tech Stack | Layer | Technology | |-------|------------| | Backend | Node.js 18+, Express 5, SQLite3 | | Frontend | React 19, Recharts, Lucide React | | Auth | bcryptjs, cookie-based sessions, express-rate-limit | | Compliance | Python 3, pandas, openpyxl | ## Documentation - **[Full Reference Manual](docs/guides/full-reference-manual.md)** — comprehensive feature documentation, API reference, database schema, security model, and configuration details - **[Migration Guide](backend/migrations/README.md)** — schema migration scripts for upgrading existing deployments - **[Design System](docs/design/design-system.md)** — UI component patterns and color system - **[Ivanti API Reference](docs/api/ivanti-api-reference.md)** — Ivanti/RiskSense API integration details - **[Jira API Use Cases](docs/api/jira-api-use-cases.md)** — Jira Data Center API compliance summary ## License Internal use only — Charter Communications / NTS-AEO. --- *Designed and built by Jordan Ramos (jordan.ramos@spectrum.com)*