Reports
Generate on-demand or scheduled reports and export them as CSV or PDF.
Available Report Types
| Report | Description | Formats |
|---|---|---|
| Agent Inventory | Complete list of all agents with hardware details: hostname, OS, CPU, RAM, serial number, AV status, WAN IP, and last seen timestamp. | CSV, PDF |
| Alert Summary | Recent alerts with hostname, severity, category, title, resolution status, and timestamps. | CSV, PDF |
Generating Reports On-Demand
Download a report immediately from the dashboard or via the API:
Agent Inventory Report
# CSV
GET /api/reports/agent-inventory?format=csv
# PDF
GET /api/reports/agent-inventory?format=pdf Alert Summary Report
# CSV
GET /api/reports/alert-summary?format=csv
# PDF
GET /api/reports/alert-summary?format=pdf Both endpoints require authentication via Bearer token. The response is the file itself (with appropriate Content-Type and Content-Disposition headers), so the browser will download it directly.
Scheduled Reports
Automate report delivery by scheduling reports to be generated and emailed on a recurring basis.
Creating a Scheduled Report
Navigate to Reports → Schedules → Create Schedule, or use the API:
POST /api/scheduled-reports
{
"name": "Weekly Agent Inventory",
"reportType": "agent-inventory",
"format": "pdf",
"cron": "0 8 * * 1",
"recipients": ["admin@company.com", "manager@company.com"]
} Schedule Fields
| Field | Required | Description |
|---|---|---|
| name | Yes | Display name for the schedule |
| reportType | Yes | agent-inventory or alert-summary |
| format | No | pdf (default) or csv |
| cron | Yes | Cron expression (e.g., 0 8 * * 1 for every Monday at 8 AM) |
| recipients | Yes | Array of email addresses to deliver the report to |
| enabled | No | Toggle the schedule on or off (default: true) |
Common Schedules
| Schedule | Cron | Report |
|---|---|---|
| Weekly inventory (Monday 8 AM) | 0 8 * * 1 | agent-inventory |
| Daily alert summary (7 AM) | 0 7 * * * | alert-summary |
| Monthly inventory (1st at 9 AM) | 0 9 1 * * | agent-inventory |
Managing Schedules
Update a schedule:
PUT /api/scheduled-reports/:id
{
"cron": "0 9 * * 1",
"enabled": false
} Delete a schedule:
DELETE /api/scheduled-reports/:id List Available Reports
To programmatically discover what report types are available:
GET /api/reports/available Returns an array of report definitions with ID, name, description, and supported export formats.