How x03tanuj/sentinel-api works
SentinelAPI is an authorized-use API security scanner with a React results interface. The principal workflow accepts an OpenAPI contract and target, runs a bounded scan across multiple identities, evaluates differential responses for security findings, and stores results for live monitoring and triage. The README documents the scanner’s major check categories, risk/evidence analysis, and optional evidence-only AI branch. Some subsystem wiring is based on that documentation because the corresponding source was not sampled; uncertain links are omitted.
Main entry points: client.ts API Client · App.tsx Web Application · runner.py Scan Runner · ai.py AI Routes
Components 27
Scan Interface
- Web Application
frontend/src/App.tsx - Scan Pages
frontend/src/pages/NewScanPage.tsx - Live Scan View
frontend/src/pages/LiveScanPage.tsx - Triage Workspace
frontend/src/pages/TriageWorkspacePage.tsx - Scan History
frontend/src/pages/HistoryPage.tsx - API Client
frontend/src/api/client.ts
API Orchestration
- FastAPI Application
backend/app/main.py - Scan Routes
backend/app/routes/scans.py - Scan Manager
backend/app/scan_manager.py - Scan Store
backend/app/store.py
Security Engine
- OpenAPI Parser
backend/app/parser/openapi_loader.py - Surface Mapper
backend/app/parser/surface_mapper.py - Scan Runner
backend/app/engine/runner.py - Identity Manager
backend/app/engine/identity.py - HTTP Executor
backend/app/engine/http_executor.py - Security Checks
backend/app/engine/checks
Findings Analysis
- Differential Analysis
backend/app/engine/differential.py - Evidence & Risk
backend/app/engine/evidence.py - Report Generation
backend/app/report.py
Optional AI
- AI Routes
backend/app/routes/ai.py - AI Analyst
backend/app/ai/analyst.py - Evidence Payload
backend/app/ai/payload.py - Model Providers
backend/app/ai/providers.py
Other components
- Scanner User
- OpenAPI Contract
- Authorized Target API
- External LLM
Connections 32
- Scanner User → Web Application: uses
- Web Application → Scan Pages: routes to
- Web Application → Live Scan View: routes to
- Web Application → Triage Workspace: routes to
- Web Application → Scan History: routes to
- Scan Pages → API Client: submits scan
- Live Scan View → API Client: streams events
- Triage Workspace → API Client: fetches results
- Scan History → API Client: fetches history
- API Client → Scan Routes: calls API
- FastAPI Application → Scan Routes: includes router
- Scan Routes → Scan Manager: delegates lifecycle
- Scan Manager → Scan Store: persists scan state
- Scan Manager → Scan Runner: runs scan
- OpenAPI Contract → OpenAPI Parser: provides specification
- OpenAPI Parser → Surface Mapper: extracts endpoints
- Surface Mapper → Scan Runner: prioritizes surface
- Scan Runner → Identity Manager: manages personas
- Scan Runner → HTTP Executor: dispatches probes
- HTTP Executor → Authorized Target API: sends probes
- Authorized Target API → HTTP Executor: returns responses
- Scan Runner → Differential Analysis: analyzes responses
- Differential Analysis → Security Checks: evaluates differences
- Security Checks → Evidence & Risk: produces findings
- Evidence & Risk → Report Generation: informs risk report
- Evidence & Risk → AI Routes: supplies sanitized findings
- FastAPI Application → AI Routes: includes router
- AI Routes → AI Analyst: requests analysis
- AI Analyst → Evidence Payload: prepares evidence
- AI Analyst → Model Providers: selects provider
- Model Providers → External LLM: sends analysis
- AI Routes → API Client: serves AI results