Release digest
Improved
- Bridge authentication hardened for forensic endpoints
- Added signed request support (
X-Key-Id,X-Timestamp,X-Nonce,X-Signature) - Implemented HMAC-SHA256 canonical payload verification
- Added nonce replay protection (Redis-backed with in-memory fallback)
- Added signed request support (
- Admin and internal surface lock-down
- Admin router now enforces token auth consistently via router-level dependency
- Analytics, crypto, and corporate routes now support
INTERNAL_API_KEYgate viaX-Internal-Key
- Error leakage sanitization completed on API/router surfaces
- Replaced external
detail=str(e)patterns with sanitized error messages - Added global safe error middleware with correlation
error_id
- Replaced external
- Method mutation guard added
- Middleware blocks
PUT/PATCH/DELETEoutside allowed prefixes (default/api/admin)
- Middleware blocks
Internal
- Database pooling enabled
- Added shared
ThreadedConnectionPoolwith safe proxy return-on-close behavior - Added shutdown cleanup hook for pool close
- Added shared
- Rate limiting centralized
- Added shared limiter key strategy (API key/internal key/IP)
- Applied forensic and crypto route limits with configurable env overrides
- BigQuery cost controls enforced
- Added
maximum_bytes_billedcaps for standard and heavy forensic queries - Added normalized forensic error codes mapped to stable HTTP responses
- Added
- Load gate passed (50 concurrent users)
- Added
scripts/perf/load_test_50_concurrent.py - Generated
LOAD_TEST_REPORT.mdandartifacts/load_test_50_concurrent.json - Baseline run passed all configured thresholds
- Added
- Documentation synchronized
- Updated
SECURITY.md,QUICKSTART.md, andREADME.mdto match current hardening architecture and pre-release checklist
- Updated