Report Styles
Document
Traditional paginated report with executive summary, narrative analysis, charts, and tables. Best for investigation summaries and compliance.
Presentation
Branded slide-deck PDF matching your PowerPoint template. Cover slide, gradient headers, company logos, one section per page. Best for daily SOC reports and stakeholder briefings.
Creating a Report
From the UI
- Navigate to Reports > New Report (
/reports/new) - Enter a title and select Document or Presentation (Slide Deck)
- Configure the schedule (daily, weekly, monthly, or one-time)
- Add report sections in Step 2 — each section can pull data from:
- LLM — AI-generated narrative analysis
- Sentinel KQL — live query against Microsoft Sentinel
- Heimdal API — endpoint protection data from Heimdal Security
- Validate and create
Using a Seed Template
For the standard Daily Internal SOC Report (matching the Paramount/NXXT/Ahlan Cyber branded template), use the seed endpoint to create a pre-configured template with all 8 slides:Seed the template
| Slide | Data Source | Content |
|---|---|---|
| Security Posture & Incident Classification | Sentinel KQL | Grouped bar chart by severity |
| Security Alerts by Product | Sentinel KQL | Bar chart by product |
| Top 10 Incidents | Sentinel KQL | Table with severity |
| Dark Layer Endpoint Status | Heimdal API | Traffic & attack type charts |
| NGAV Status | Heimdal API | Donut charts |
| Extended Threat Protection | Heimdal API | Severity bar + category donut |
| Ransomware Encryption | Heimdal API | Detection by OS charts |
| Device Status | Heimdal API | Device count & status donuts |
From Inside the Cluster
If you need to seed without a JWT (e.g., during initial setup), run directly from the agent pod:Data Sources
Sentinel KQL
Sections withdata_source: sentinel_kql execute a KQL query against Microsoft Sentinel and format the results as charts or tables. The query is defined in data_config.kql:
Heimdal API
Sections withdata_source: heimdal_api fetch from Heimdal Security endpoints. The adapter aggregates raw records into chart-ready data. Configure with data_config.endpoint:
dark_layer, ngav, xtp, ransomware, devices.
LLM
Sections withdata_source: llm (default) use AI to generate narrative content, chart data, or table data based on the user query. This is the original report mode.
Configuration
Environment Variables
For Sentinel data (already configured if SIEM provider is set up):SENTINEL_WORKSPACE_ID,SENTINEL_TENANT_ID,SENTINEL_CLIENT_ID,SENTINEL_CLIENT_SECRET
HEIMDAL_API_URL— Heimdal API base URLHEIMDAL_API_KEY— API key for authenticationHEIMDAL_CUSTOMER_ID— Your Heimdal customer ID
Customizing the Theme
The presentation template supports custom branding via thetheme field on the template:
logo_data_uri in the theme (base64-encoded PNG). The default uses the embedded Paramount/NXXT/Ahlan Cyber logo strip.
Chart Types
Presentation reports support these chart types for data-driven sections:| Type | Use Case | Renderer |
|---|---|---|
bar | Single-series bar chart | matplotlib |
grouped_bar | Multi-series comparison with data table | matplotlib |
donut | Proportional breakdown with center total | matplotlib |
line | Trends over time | matplotlib |
pie | Simple proportional breakdown | matplotlib |
area | Filled time series | matplotlib |
chart_keys with two keys in data_config to render two charts horizontally on one slide.