ThreatRecall is a tenant-isolated knowledge graph for cyber threat intelligence. Natural language recall, STIX 2.1 export, structured ingest pipeline, and a REST API that integrates with any agent framework. Built on Azure App Service with PostgreSQL backing.
| Component | Description |
|---|---|
| Knowledge Graph | PostgreSQL-backed graph with tenant-isolated schemas. Nodes represent actors, campaigns, TTPs, CVEs, IOCs, evidence records. Edges represent relationships (uses, targets, exploits, mitigates) with confidence scores. |
| Recall Engine | Natural language search across the graph. Resolves entity references, traverses relationships, returns ranked results. Powers agent integration and dashboard queries. |
| Ingest Pipeline | LLM-assisted extraction from raw text (reports, advisories, blog posts). Structured entities flow into staging for analyst review before commit. Evidence records maintain provenance chains. |
| STIX 2.1 Export | Export any recall session as a STIX 2.1 bundle. Compatible with OpenCTI, MISP, and any STIX-compliant platform. Includes full relationship mapping. |
| Tenant Isolation | Defense-in-depth: sentinel UUID per tenant, SET LOCAL at connection level, app-layer WHERE clause enforcement. Each workspace is an opaque security boundary. |
| Audit Trail | Write-once audit log. Every create, update, and delete is recorded with actor, timestamp, and operation type. Immutable by design. |
ThreatRecall runs on Azure App Service with PostgreSQL Flexible Server. Infrastructure is defined as code (Bicep) with GitHub OIDC for CI/CD. Cloudflare DNS routes threatrecall.ai. Application Insights and Log Analytics provide observability.
Compute: Azure App Service (Linux, Node.js 20) Database: PostgreSQL Flexible Server Secrets: Azure Key Vault CDN/Edge: Cloudflare DNS + R2 (static assets) Registry: Azure Container Registry CI/CD: GitHub Actions + OIDC Telemetry: App Insights + Log Analytics
Connect any agent framework to ThreatRecall memory. Choose your integration below.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/recall/search?query=... |
Natural language search across the knowledge graph |
| POST | /api/graph/nodes |
Create entities (actors, CVEs, IOCs, TTPs, campaigns) |
| GET | /api/graph |
Retrieve full graph or subgraph |
| POST | /api/graph/edges |
Create relationships between nodes with confidence scoring |
| POST | /api/ingest |
Submit raw text for LLM extraction into structured entities |
| GET | /api/recall/sessions/:id/export.stix |
Export a recall session as STIX 2.1 bundle |
| GET | /api/audit/logs |
Query the immutable audit log |
| GET | /health |
Health check (no auth required) |
Full OpenAPI 3.1 spec at /docs/api or /openapi.json. Authentication via Bearer token. API keys generated per workspace.