Trust & transparency

CircaOS is the substrate behind 5CEOs. This page is what we publish to prove every claim.
Modeled after trust.salesforce.com. Every claim on this page maps to data the page can prove from the running process or to a section of SECURITY.md. If we don't have data, we say so — we don't fabricate uptime percentages or past advisories.

Live numbers

Image tag
0.1.0
From COGOS_IMAGE_TAG or package.json version. Bound to a cosign signature once §3.2 finishes rolling out.
Process uptime
2 days 13 hours
Time since this revision started. Restarted on every deploy — not a historical SLA metric.
Cosign pubkey pending
Cosign pubkey publication pending
/cosign.pub · verify with cosign verify --key https://cogos.5ceos.com/cosign.pub <image>
Tenant audit chain
Every customer fetches their own hash-chained usage rows and re-verifies them locally — no need to trust our copy.
API latency (p50 · p95 · p99)
no data yet
Rollup empty for the last 7 days. Numbers appear here once paid + free traffic accrues. We don't fabricate latency percentiles.

Verifiable security claims

Mirror of SECURITY.md §3. Each row is a claim plus the command an external auditor runs to check us right now. Items marked rolling out are wired in the deploy pipeline but not yet announced as enforced — SECURITY.md remains the source of truth.

ClaimVerify command
SECURITY.md §3.2 — Image signature (cosign) rolling out
Every deployed image is signed with a 5CEOS-controlled cosign key. Customers verify the running image hash against the public key.
cosign verify \
  --key https://cogos.5ceos.com/cosign.pub \
  cogos5ceos.azurecr.io/cogos-api:vN
SECURITY.md §3.3 — Response signature (HMAC) shipped
Every /v1/* response carries X-Cogos-Signature = HMAC-SHA256(per-tenant-secret, body). Tampering in transit is detectable.
curl -isX POST https://cogos.5ceos.com/v1/chat/completions \
  -H "Authorization: Bearer sk-cogos-…" \
  -d '{"model":"cogos-tier-b","messages":[{"role":"user","content":"ping"}]}'
# Re-compute HMAC client-side; recipe at /cookbook#verify-signature
SECURITY.md §3.4 — Open determinism bench shipped
The "same call in, same bytes out" claim is auditable by anyone — bench is OSS, published cadence runs are posted, drift surfaces same-day.
git clone https://github.com/5CEOS-DRA/llm-determinism-bench
cd llm-determinism-bench && cat README.md
SECURITY.md §3.5 — Customer-key auth flow shipped
API keys are stored as sha256 hashes; plaintext is shown once at issue time and never returned again. A keys.json leak does not leak usable keys.
# In this repo:
grep -n "createHash\|sha256" src/*.js
SECURITY.md §3.6 — Admin auth flow shipped
Admin endpoints (issue / revoke / list keys, read usage) require X-Admin-Key. Rotation is one env-var change; revocation is immediate.
# Should 401:
curl -sI https://cogos.5ceos.com/admin/keys
SECURITY.md §3.7 — Stripe webhook signature shipped
POST /stripe/webhook is gated on a valid Stripe-Signature header verified against STRIPE_WEBHOOK_SECRET. Forged checkout completions cannot trigger key issuance.
# Should 400 (signature missing):
curl -sI -X POST https://cogos.5ceos.com/stripe/webhook \
  -H "Content-Type: application/json" -d '{}'
SECURITY.md §3.8 — Schema-enforced output shipped
When response_format is json_schema, the decoder is grammar-constrained at the token level. Non-conforming output is physically impossible, not retried.
# See /cookbook recipe 1 — strict integer schema, prompt for a string answer, get an integer.

Recent revisions

Live revision: 0.1.0. Recent revisions are tracked via az containerapp revision list --name cogos-api --resource-group cogos-api-rg on the operator substrate; a published recent-revisions card is a future addition. We don't fabricate prior versions on this page.

Published security advisories

No published advisories. A subscription URL (RSS / JSON feed) for future advisories is TBD — until then, watch the bench repo and the SECURITY.md change log for notices.

Per-call receipt chain (always-on)

This is the load-bearing continuous-verification mechanism — it runs on every customer call, not on a schedule. Every /v1/* response carries a receipt with request_id, deterministic_hash, output_hash, and (for grounded chat) verify_verdict. Each usage row is HMAC-chained to the previous row in a per-tenant append-only log; a chain break would be detectable in 90 seconds via GET /v1/audit?since=<ms> where the response includes chain_ok: true/false computed server-side from the returned slice.

The chain head is submitted to OpenTimestamps calendar servers on every audit-checkpoint with new activity (the checkpoint scheduler ticks hourly; idle hours don't submit). Bitcoin confirmation latency from submission to a block including the calendar's aggregate is typically 3-12 hours depending on calendar batching and block timing — so a customer checking the most recent confirmed anchor may see one that's several hours behind the latest submitted checkpoint. The anchored timestamps are publicly verifiable using the open-source ots verify CLI without contacting our infrastructure.

Verify yourself: pick any of your own request IDs, fetch the audit slice, re-hash the row, and compare to row_hash. A published Python re-verifier is on the roadmap; today the check is a one-liner (SHA-256 of the row's canonical bytes, compared to row_hash).

Verify a receipt yourself · in your browser

Paste any x-cogos-attestation header value you've received from a /v1/* response. Your browser fetches our public key from /attestation.pub, then verifies the ed25519 signature client-side using the Web Crypto API. Nothing leaves your browser except that public-key fetch.

Requires Chrome 113+ / Safari 17+ / Firefox 130+ (SubtleCrypto Ed25519).

Public hash-chain checkpoint

Every hour we snapshot every (tenant_id, app_id) chain head into a globally hash-chained checkpoint. Capture global_head now, replay /audit/checkpoint?ts=<your_capture_ts> later, prove we haven't rewritten any row in between.

Last checkpoint2026-08-06T06:32:52.089Z
Global head (prefix)201267e48e529fa4…
Partitions snapshotted16
Chain length1142 checkpoints on disk

Verify yourself:

curl -s https://cogos.5ceos.com/audit/checkpoint/latest
curl -s https://cogos.5ceos.com/audit/checkpoint/verify

Scheduled probe job

The continuous unauthenticated-probe job (scripts/probes-unauth.sh + scripts/pentest-authed.sh in the repo) is currently not scheduled. The previous scheduler was dropped in the 2026-06-20 Azure→AWS cutover and has not yet been re-stood-up as a systemd timer on the new host. The probe scripts themselves are operator-runnable on demand. Re-enabling the schedule is on the roadmap; status will appear here once a run lands.

Pentest summary

Most recent internal pentest: 2026-05-14. External pentest cadence: engagement pending. When a third-party engagement closes, a redacted summary lands here (date, scope, severity counts, fix-cadence summary) — never raw findings.

Coordinated disclosure

Report a security issue: support@5ceos.com with subject prefix [SECURITY]. Response SLA, scope, and safe-harbor terms are documented in SECURITY.md §1.