How salamfarukh13-blip/threat-assist works
THREAT ASSIST is an academic prototype for correlating synthetic threat-actor identities and presenting investigation results. The user workflow is to browse actor dossiers, compare two actors or search an identifier, inspect shared-footprint network connections, manage synthetic records, and generate a case report. The backend exposes these capabilities through FastAPI routes; matching combines explainable scoring, an ML probability, and graph paths. The README documents the product capabilities; unsampled route and page internals are represented only at their tree-supported paths, so uncertain implementation wiring is omitted.
Main entry points: main.py FastAPI Entry · database.py Database Layer · App.jsx Application Shell · api.js REST Client
Components 23
Investigation UI
- Application Shell
frontend/src/App.jsx - Actor Dossiers
frontend/src/pages/ActorDatabase.jsx - Dashboard
frontend/src/pages/Dashboard.jsx - Identity Comparison
frontend/src/pages/IdentityComparison.jsx - Relationship Graph
frontend/src/pages/RelationshipGraph.jsx - Data Management
frontend/src/pages/DataManagement.jsx - Case Report
frontend/src/pages/InvestigationReport.jsx - REST Client
frontend/src/services/api.js
Backend API
- FastAPI Entry
backend/app/main.py - Actor Routes
backend/app/routes/actors.py - Footprint Routes
backend/app/routes/footprints.py - Relationship Routes
backend/app/routes/relationships.py - Dashboard Route
backend/app/routes/dashboard.py - Matching Route
backend/app/routes/matching.py - Graph Route
backend/app/routes/graph.py - Report Route
backend/app/routes/report.py
Correlation Analysis
- Heuristic Scoring
backend/app/matching/engine.py - ML Classifier
backend/app/matching/ml_model.py - Graph Analytics
backend/app/matching/graph_analytics.py
Synthetic Data
- Database Layer
backend/app/database.py - Actor and Evidence Store
backend/app/database.py - Synthetic Dataset
backend/seed/synthetic_data.py
Other components
- Investigator
Connections 36
- Investigator → Application Shell: uses
- Application Shell → Actor Dossiers: selects view
- Application Shell → Dashboard: selects view
- Application Shell → Identity Comparison: selects view
- Application Shell → Relationship Graph: selects view
- Application Shell → Data Management: selects view
- Application Shell → Case Report: selects view
- Actor Dossiers → REST Client: requests actors
- Dashboard → REST Client: requests metrics
- Identity Comparison → REST Client: requests comparison
- Relationship Graph → REST Client: requests graph
- Data Management → REST Client: manages records
- Case Report → REST Client: requests report
- REST Client → FastAPI Entry: HTTP JSON
- FastAPI Entry → Actor Routes: dispatches
- FastAPI Entry → Footprint Routes: dispatches
- FastAPI Entry → Relationship Routes: dispatches
- FastAPI Entry → Dashboard Route: dispatches
- FastAPI Entry → Matching Route: dispatches
- FastAPI Entry → Graph Route: dispatches
- FastAPI Entry → Report Route: dispatches
- Actor Routes → Database Layer: reads and writes
- Footprint Routes → Database Layer: reads and writes
- Relationship Routes → Database Layer: reads and writes
- Dashboard Route → Database Layer: reads metrics
- Matching Route → Database Layer: loads actors
- Matching Route → Heuristic Scoring: scores pair
- Matching Route → ML Classifier: predicts probability
- Matching Route → Graph Analytics: finds path
- Graph Route → Graph Analytics: queries graph
- Report Route → Database Layer: loads report data
- Database Layer → Actor and Evidence Store: persists records
- FastAPI Entry → Synthetic Dataset: loads initial data
- FastAPI Entry → Database Layer: initializes store
- FastAPI Entry → Graph Analytics: primes graph
- Database Layer → Graph Analytics: supplies graph data