System design

Interface, reasoning and memory stay separable

Every external dependency sits behind an environment-configured boundary, so the product runs with or without them.

Request path

Frontend→FastAPI service→Groq→Hindsight→PostgreSQL

Interface layer

Typed React application with the investigation workspace, alert triage, memory browser, analytics and activity log.

ReactTypeScriptTailwindRecharts

Service layer

Server functions expose a FastAPI-compatible investigation contract. When FASTAPI_URL is configured, reasoning is delegated to that service; otherwise a deterministic fallback keeps the workflow complete.

RESTFASTAPI_URLServer functions

Reasoning layer

Groq-backed hypothesis evolution runs behind the service boundary so model credentials never reach the browser.

GROQ_API_KEYServer-side only

Memory and persistence

Alerts, evidence, investigations, hypotheses, recalls, decisions, outcomes and audit logs are stored in PostgreSQL. Retained experiences can additionally be pushed to Hindsight.

PostgreSQLRow level securityHINDSIGHT_API_URL

Credentials never reach the browser

Model keys, memory service keys and privileged database credentials are read only on the server at request time. The browser holds a publishable key scoped by row level security policies.