1. Confirm API is up
curl -s "$API_BASE/healthz"
Docs
API contract: openapi.yaml. This interface is designed for deterministic verification and auditable outcomes, with explicit request and response schemas for each endpoint.
API base: http://localhost:8080
Quickstart
Start from a clean clone, run the API, then run one command that executes all baseline checks. The command exits non-zero on the first failure.
# Step 0: clone and install git clone https://github.com/opertus-systems/inactu-control.git cd inactu-control/web npm install # Terminal 1: start API npm run run:api # Terminal 2: run baseline checks API_BASE="http://localhost:8080" npm run quickstart:check
curl -s "$API_BASE/healthz"
curl -s -X POST "$API_BASE/v1/hash/sha256" \
-H "content-type: application/json" \
-d '{"payload":"hello inactu"}'curl -s -X POST "$API_BASE/v1/verify/manifest" \ -H "content-type: application/json" \ -d @examples/verify-manifest-request.json
curl -s -X POST "$API_BASE/v1/verify/receipt" \ -H "content-type: application/json" \ -d @examples/verify-receipt-request.json
web/scripts/quickstart-check.sh
Local examples can run without auth for testing, but production deployments should enforce TLS termination, API authentication, tenant authorization, and rate controls at the edge before forwarding requests.
Keep signing keys and trust-anchor material outside this service boundary, and pass only data required for verification and policy decisions.
Validation failures return structured JSON errors and deterministic deny reasons. Treat non-2xx responses as explicit control outcomes and retain response payloads for audit and incident reconstruction.
Use request IDs and structured logs to correlate policy evaluations with downstream runtime events.
Includes endpoint notes from OpenAPI and supports live demo calls via Try it out through a same-origin proxy.
Loading interactive API reference...
Rendered from the repository OpenAPI document for direct copy/paste and contract inspection.
// Loading openapi.yaml...
// response appears here
// response appears here
// response appears here