Provenance#
Code |
UO.015 |
|---|---|
Validator |
|
Applies to |
board-root prim (discovered by its |
Requirement level |
MUST |
Tags |
|
Summary#
The board root MUST carry pcba:board:generatorVersion and pcba:board:contentHash, both
non-empty strings. Together they record which exporter produced the board and give a content
hash of the referenced assets for integrity verification.
This page follows PCBA to USD Input Contract 1.0.2, section 11.
Description#
Every board needs a reproducible provenance trail:
pcba:board:generatorVersion— the exporter / generator version that produced the board, so behaviour differences across versions can be traced.pcba:board:contentHash— a content hash of the referenced assets, letting a consumer verify the assets the board references are the ones expected.
Both are authored on the board-root prim alongside the rest of the pcba:board:* metadata
(UO.001). A pending value may
be deferred with pcba:prov:generatorVersion / pcba:prov:contentHash.
Fields#
Attribute |
Type |
Req |
Notes |
|---|---|---|---|
|
|
MUST |
Exporter / generator version that produced the board. |
|
|
MUST |
Content hash of the referenced assets. |
Why is it required?#
A generator version gives a trail from a board back to the tool that authored it.
A content hash lets consumers verify referenced-asset integrity and detect drift.
Example#
def Xform "Board"
{
string pcba:board:generatorVersion = "example_pcb_export 1.4.2"
string pcba:board:contentHash = "sha256:0000…"
}
How to comply#
Author both attributes on the board root and regenerate them on every export.
What the checker proves#
ProvenanceChecker fails when either attribute is absent from the board root (a matching
pcba:prov: marker downgrades this to a declared gap) or is declared but empty. It does not
verify the hash against the packaged files.