d5bcd0bd5b
New table: deployment_checks (verdict, blocking/warning controls, risk score)
New API:
POST /v1/deployment-checks (SDK asks: "can I deploy?")
GET /v1/deployment-checks/{id} (check result)
POST /v1/deployment-checks/{id}/override (manual override with justification)
GET /v1/deployment-checks/stats (approval/block rate)
Check logic: queries G1 decision_traces + G3 open failures per affected control.
Verdict: approved (0 blocking) or blocked (with fix recommendations).
454 tests pass, 0 regressions.
Block G complete: G1-G4 all implemented.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
25 lines
1.1 KiB
Python
25 lines
1.1 KiB
Python
from fastapi import APIRouter
|
|
|
|
from api.control_generator_routes import router as generator_router
|
|
from api.canonical_control_routes import router as canonical_router
|
|
from api.document_compliance_routes import router as document_router
|
|
from api.dependency_routes import router as dependency_router
|
|
from api.master_control_routes import router as master_control_router
|
|
from api.decision_trace_routes import router as decision_trace_router
|
|
from api.decision_trace_routes import full_trace_router
|
|
from api.compliance_commit_routes import router as compliance_commit_router
|
|
from api.decision_event_routes import router as decision_event_router
|
|
from api.deployment_check_routes import router as deployment_check_router
|
|
|
|
router = APIRouter()
|
|
router.include_router(generator_router)
|
|
router.include_router(canonical_router)
|
|
router.include_router(document_router)
|
|
router.include_router(dependency_router)
|
|
router.include_router(master_control_router)
|
|
router.include_router(decision_trace_router)
|
|
router.include_router(full_trace_router)
|
|
router.include_router(compliance_commit_router)
|
|
router.include_router(decision_event_router)
|
|
router.include_router(deployment_check_router)
|