About
What this is
A small web dashboard built for the hackathon. It runs on one laptop, opens on a phone on the same network, posts a summary card to a Teams channel and exports a self-contained snapshot for SharePoint.
How data is handled
- All records are generated with a fixed seed. Nothing comes from a real system.
- The Insight panel uses company AI only: a Power Automate flow with AI Builder, Bedrock in the company AWS account, the company GPU box, or the offline demo. Text is masked first (emails, phone numbers, long numbers). If the mask fails, nothing is sent.
- Every insight call is logged with lengths and timing only, never with the text.
- Secrets (the Teams webhook url, the flow url) live in environment variables or in a store sealed with Windows DPAPI, and are never shown or logged.
- Everything kept on disk (records, audit log, last card, secrets) is encrypted at rest with DPAPI and decrypted in memory only when a function needs it. The exported snapshot is the one exception: it exists to be shared.
Configuration
| Variable | Set | Value | Purpose |
|---|---|---|---|
HACK_TEAMS_WEBHOOK_URL |
default | |
POST url of the Teams Workflows flow 'Send webhook alerts to a channel'. |
HACK_PUBLIC_URL |
yes | https://hack.netsecops.version1.com |
URL the 'Open dashboard' button on the Teams card points to. |
HACK_AI_PROVIDER |
yes | bedrock |
AI provider: demo, power-automate, bedrock, local, or auto (the ROUTE table in ai_lane.py). |
HACK_PA_INSIGHT_URL |
default | |
POST url of the Power Automate flow (HTTP trigger) that returns the insight text. |
HACK_API_KEY |
default | |
Shared key for POST /api/ask (header X-Api-Key), used by the Teams flow. |
HACK_AWS_PROFILE |
default | bedrock-lab |
AWS profile with Bedrock access only. |
HACK_AWS_REGION |
default | eu-west-1 |
Bedrock region. |
HACK_BEDROCK_MODEL |
default | |
Optional: one Bedrock model id that overrides the tier table. |
HACK_LOCAL_LLM_URL |
default | |
Base url of the company GPU box (vLLM, OpenAI-compatible). |
HACK_LOCAL_LLM_TOKEN |
default | |
Bearer token of the GPU box endpoint. |
HACK_LOCAL_LLM_MODEL |
default | driver |
Model name served by the GPU box. |
HACK_BIND |
yes | 127.0.0.1 |
Address the web server listens on. 0.0.0.0 to reach it from a phone. |
HACK_PORT |
yes | 8600 |
Port of the web server. |
HACK_DEMO_SEED |
default | 42 |
Seed of the demo dataset. Same seed, same data. |