Commit Graph

6 Commits

Author SHA1 Message Date
faligam
dc285d80bd fix research result handoff and synthesis provenance 2026-09-07 13:21:33 +02:00
faligam
7b279dceea fix serialize research detail UUIDs 2026-09-07 13:01:46 +02:00
faligam
f921e978a0 Add protected soft deletion for research runs 2026-09-07 12:34:41 +02:00
faligam
2c532bc9bb Expose research planning information 2026-09-07 12:17:38 +02:00
faligam
1aacf4aa20 Implement persistent API-key authentication
Protect the research lifecycle with X-API-Key validation backed by persistent user and key records. Store only salted scrypt hashes, support expiry and revocation, and expose a local admin CLI for create/list/revoke workflows.

Initialize only the authentication schema at startup, prevent SQL echo from exposing sensitive bound values, and keep health probes public. Add coverage for valid, missing, invalid, expired, and revoked keys.

Document deployment and key administration, update the local CLI to send NSCT_API_KEY, and record the reset handoff state.
2026-09-06 17:23:05 +02:00
NSCT Agent
4d5f6747f7 feat(stage14): implement REST API for research lifecycle
- POST /v1/research — start research (non-blocking, background pipeline)
- GET  /v1/research/{id} — research metadata
- GET  /v1/research/{id}/status — detailed state machine status
- GET  /v1/research/{id}/sources — sources list
- GET  /v1/research/{id}/claims — claims list
- GET  /v1/research/{id}/evidence — evidence scores
- GET  /v1/research/{id}/report — research report
- DELETE /v1/research/{id} — delete research (non-completed)
- GET  /v1/research — paginated list of all research runs

Depth budgets (quick/normal/deep) control only resource limits.
In-memory store for now, to be replaced with PostgreSQL later.
Router mounted in main.py as tag "research-api".
2026-08-27 16:07:47 +00:00