Skip to content
VerifAIer
Home / Docs / Engineering / Schemas
Engineering · Reference

Schemas

The exact wire shape of the four objects the platform revolves around. Every field below exists in a dataclass and its to_dict().

Evidence schema

The EvidenceEnvelope is a frozen dataclass with eleven top-level blocks. schema_version is "1.0"; kind is "evidence_envelope".

src/vailidator/evidence/envelope.py
FieldTypeContents
schema_versionstr"1.0"
envelope_idstrev_ + uuid4 hex
operationstroperation/type identifier
created_atstrISO-8601 UTC
providerdictProviderResult.to_dict()
routingdictrequested/selected/attempted/skipped, fallback, router_mode
executiondictflattened operational summary of the run
diagnosticsdictsafe provider diagnostics (secret-free)
evidencedictidentifier block: id, kind, schema_version, operation, created_at
receiptdictReceipt.to_dict() (see below)
provenancedictProvenance.to_dict()
replaydictinert placeholder, {status:"pending", replayable:false, input_ref:null}
{
  "schema_version": "1.0",
  "envelope_id": "ev_1a2b…",
  "operation": "audit_ai_response",
  "created_at": "2026-07-04T12:00:00+00:00",
  "provider":    { "provider": "mock", "mode": "mock", "status": "ok",
                   "latency_ms": 0.0, "result": { … }, "diagnostics": { … } },
  "routing":     { "requested_provider": null, "selected_provider": "mock",
                   "attempted_providers": ["mock"], "skipped_providers": [],
                   "fallback_used": false, "fallback_reason": null,
                   "router_mode": "forced" },
  "execution":   { "operation": "…", "requested_provider": null,
                   "selected_provider": "mock", "mode": "mock", "status": "ok",
                   "latency_ms": 0.0, "attempted_providers": ["mock"],
                   "skipped_providers": [], "fallback_used": false,
                   "fallback_reason": null, "router_mode": "forced" },
  "diagnostics": { "provider": "mock", "env": "development",
                   "provider_mode": "mock", "enabled": true,
                   "key_present": true, "reason": "mock_provider",
                   "routing": { … } },
  "evidence":    { "id": "ev_1a2b…", "kind": "evidence_envelope",
                   "schema_version": "1.0", "operation": "…",
                   "created_at": "…" },
  "receipt":     { … Receipt.to_dict() … },
  "provenance":  { … Provenance.to_dict() … },
  "replay":      { "status": "pending", "replayable": false, "input_ref": null }
}

Receipt schema

Receipt: frozen dataclass, receipt_version "1.0". Operational metadata only; no cryptography.

src/vailidator/evidence/receipt.py
FieldTypeContents
receipt_idstrrcpt_ + uuid4 hex
evidence_idstrparent envelope id
operation_idstroperation/type identifier
created_atstrISO-8601 UTC (shared with the envelope)
providerstradapter that produced the result
selected_providerstrprovider the router chose
statusstrok · fallback · error
execution_statusstrprimary · fallback
diagnostics_summarydictsafe subset: provider, env, provider_mode, enabled, key_present, reason
routing_summarydictrequested/selected, fallback_used, router_mode, attempted_providers
receipt_versionstr"1.0"

Passport schema

AgentPassport: frozen dataclass, passport_version "1.0", status ∈ {active, provisional, unknown}.

src/vailidator/passport/models.py
FieldTypeContents
passport_idstrpass_ + SHA-256(agent_id)[:16]
agent_idstrcontent-derived agent id
created_at / issued_atstrISO-8601 UTC (injectable clock)
identity_summarydictprovider, platform, runtime, agent_name, agent_type, identity_version, present
trust_summarydictlatest/average/best/worst trust score, latest level, trust_level_counts
compliance_summarydictlatest_status + status_counts
risk_summarydictlatest_level + level_counts
quality_summarydictlatest_level + level_counts
operation_summarydictoperation_count, first_seen, last_seen
statusstractive · provisional · unknown
metadatadictcaller metadata

Trust object schema

TrustAssessment: frozen dataclass, trust_version "1.0". Aggregates compliance + risk + quality.

src/vailidator/trust/models.py
FieldTypeContents
trust_assessment_idstrtr_ + uuid4 hex
evidence_id / receipt_id / provenance_idstr? linkage ids picked from the components/envelope
created_atstrISO-8601 UTC (injectable)
trust_scoreint0–100
trust_levelstrtrusted · acceptable · caution · untrusted · unknown
compliance_summary / risk_summary / quality_summarydictid-free component summaries (keeps output deterministic)
signalslistweighted TrustSignal contributions (category, source, value, weight, contribution, detail)
findingslistTrustFinding detractors (category, source, title, severity, detail)
summarydictscore, level, max_score, breakdown, components_present, confidence, counts
disclaimerstr"automated, aggregated trust signal … not a guarantee, certification, or advice"
trust_versionstr"1.0"
Every other assessment (compliance / risk / quality / reputation) and the identity, trust-profile, signal and registry-entry objects follow the same discipline: a frozen dataclass, an explicit *_version, and a to_dict() that is the wire contract. See the API reference for the response envelopes.