Attestation (attestation.*)

One of the poq.toml spec sections.

Signed PoQ Report export — the output phase after review completes: schema, signing key, payload fields, and output format.

attestation

Signed PoQ Report export settings. This section controls how the signed YAML attestation is constructed and formatted for download.


[attestation]
schema_version = "poq.attestation/v1"
signing_key_id = "poq-prod-2024"

[attestation.payload]
include_per_validator_votes = true
include_rationales_inline = false
outputs_alias = "findings"

[attestation.payload.outputs]
report_hash = "audit_report_hash"
severity_in_report = "proposed_severity"
repo_url = "repository"
commit_hash = "commit_sha"

[[attestation.metadata]]
field_name = "report_source"
channel = "portal"
sender = "0xC921CF11A568142223a52C7f0b4AE7023fb3326B"

[attestation.output]
strategy = "aggregated"
delimiter = "\n\n---\n"
fence = "yaml"

Attestation fields

optionacceptsrequireddescriptionexample
schema_versionstringyesMust be poq.attestation/v1 for the current signer."poq.attestation/v1"
signing_key_idstringyesMatches the server-configured signing key id (e.g. sapien-prod-ed25519-v1)."poq-prod-2024"
payloadtablenoNested table for payload options (see below).[attestation.payload]
metadataarraynoExtra signed report header fields (see below).[[attestation.metadata]]
outputtablenoDownload formatting and emit strategy (see below).[attestation.output]

The [attestation.payload] block

optionacceptsrequireddescriptionexample
include_per_validator_votesboolnoWhen true, the signed YAML includes each validator's specific answer for every rubric dimension.true
include_rationales_inlineboolnoWhen false, rationales use opaque references instead of inline text.false
include_datapoint_idboolnoTri-state (unset/true/false). When true, each finding in the signed payload carries its datapoint id.true
outputs_aliasstringnoNames the main findings array in the YAML. Use "findings" for security audits; defaults to "sub_reports"."findings"

The [attestation.payload.outputs] block

Maps attestation fields to canonical field names defined in [ingestion.fields].

optionacceptsrequireddescriptionexample
finding_idstringnoField holding the stable per-finding identifier in the report."finding_id"
report_hashstringnoField holding the hash of the original input document."audit_report_hash"
severity_in_reportstringnoField holding the original tool-reported severity."proposed_severity"
repo_urlstringnoField holding the repository URL (emitted in audit_target)."repository"
commit_hashstringnoField holding the pinned commit SHA (emitted in audit_target)."commit_sha"

The [[attestation.metadata]] block

Used for literal top-level YAML metadata blocks.

optionacceptsrequireddescriptionexample
field_namestringyesThe top-level YAML key name (e.g. report_source)."report_source"
(others)anynoAny other keys in the table are emitted as key-value pairs under field_name.channel = "portal"

The [attestation.output] block

optionacceptsrequireddescriptionexample
strategyenumnoHow the attestation is emitted: aggregated (one signed report) or in_place (appended to each input). Omit to use the server default."aggregated"
delimiterstringnoString inserted between the original document and the attestation in in_place mode."\n\n---\n"
fenceenumnoOptional markdown fence type. Only "yaml" is supported today (wraps the attestation in yaml ... )."yaml"