Documentation/Verify and operate

Verify and operate

Operate the verifier and recovery registry

The current kit provides a minimized public UI/API, isolated inference, signed reports and a read-only registry. It has no provider content-signing key. Its HTTP parent uses a separate Ed25519 report key, never passed to the media child; the TLS edge has its own key. Use the complete kit for the reference deployment or quickstart for standalone setup.

Standalone production configuration

After supplying actual files and a real public origin, the command shape is:

ariadne serve --host 127.0.0.1 --port 8080 --production   --trust-anchors issuer-roots.pem --registry state/assets.sqlite3   --public-sources reviewed-public-sources.json   --report-key private/verifier-report/report.key   --verifier-id https://YOUR-REAL-VERIFIER-HOST   --feedback-db state/feedback.sqlite

Replace the uppercase hostname and files with your actual configuration. For a private TSA, add --tsa-trust-anchors tsa-roots.pem separately; manifest roots do not become TSA roots. Built-in native TSA trust remains in use. Production startup requires appropriate non-development roots and a report signer. A local root does not establish public C2PA trust-list enrollment or truth of claims. Place a buffering/rate-limiting TLS proxy in front; defaults bind to localhost.

Evidence and privacy

POST /verify?format=png|jpg|jpeg|mp4 accepts a raw binary upload. Local output is minimized using reviewed public provider/system/version fields. The public source allowlist is not a PII classifier. Invalid, incomplete, recovered and trusted/untrusted evidence remain separate. Do not turn missing evidence into a human-origin or authenticity verdict. See result reference.

Use signed report verification with a separately pinned public key and submitted asset. Signed negatives/incomplete results remain negative/incomplete. Full manifest publication is off by default and needs explicit per-record review/opt-in; see recovery API.

Uploads are temporary and removed on success/failure. Anonymous feedback stores fixed aggregate counters. Operator proxy/host logging, retention, disclosure and useful feedback review remain separate responsibilities. The service is single-operator, not a multi-tenant storage isolation product.

Limits and persistence

Standalone application/export ceiling: 512 MiB. Generated kit TLS edge default: 128 MiB; configure a larger or narrower product scope consistently and render updated config. The verifier has four upload slots, one inference slot and no queue. Busy requests can return 429; unsupported content and exhausted scans are not successful negatives. Do not promise throughput from a single positive scan. Configure and validate capacity for the actual deployment.

Mount the registry directory read-only in the verifier and writable only to the exporter. The reference writer uses rollback journaling; never use immutable=1 on a live database. A separate WAL configuration requires sidecars or a managed reader snapshot. Persistent state, backup/restore, crash reconciliation and service availability need operator evidence. The kit tests restart persistence, not universal power-loss recovery or production backups.

Follow production onboarding and retain the operator record. Public TLS/DNS, accessibility, long-running load and real CA/TSA arrangements were not supplied by the development-credential qualification.