Verify a lineage's record and parent bindings offline.
Use describe("common.validate.provenance") when your code needs the complete live JSON Schemas.
At a glance
| Property | Value |
|---|---|
| Package | @runstamp/provenance |
| Domain / verb | common / validate |
| Customer jobs | validate |
| Deterministic | Yes |
| Side effects | none |
Availability
| Local | SDK | CLI | MCP | Managed API |
|---|---|---|---|---|
| public ga | public ga | public ga | public ga | public ga |
Managed API route: POST /api/v2/operations/common/validate/provenance. Managed execution requires a free-trial workspace or an active Platform or Enterprise workspace, and an environment-bound API key.
Input and result
| Schema | Required fields | Optional fields |
|---|---|---|
| Input | envelopes | record |
| Options | none | operation, deterministic, deterministicSeed, timeoutMs, limits, locale, lossPolicy |
| Result value | output, artifacts | none |
Every success also carries losses, diagnostics, and a hash-bound receipt.
Defaults, limits, and format constraints
Defaults
| Path | Default |
|---|---|
$.deterministic | default=true |
$.lossPolicy | default="collect" |
Formats and profiles
| Path | Constraint |
|---|---|
$.envelopes[].record.schemaVersion | const=1 |
$.envelopes[].record.inputs[].mediaType | minLength=1maxLength=160 |
$.envelopes[].record.operation.version | minLength=1maxLength=160 |
$.envelopes[].record.model.version | minLength=1maxLength=160 |
$.envelopes[].record.policies[].version | minLength=1maxLength=160 |
$.envelopes[].record.outputs[].mediaType | minLength=1maxLength=160 |
$.envelopes[].record.releaseEvidence[].version | minLength=1maxLength=160 |
$.record.inputs[].mediaType | minLength=1maxLength=160 |
$.record.operation.version | minLength=1maxLength=160 |
$.record.model.version | minLength=1maxLength=160 |
$.record.policies[].version | minLength=1maxLength=160 |
$.record.outputs[].mediaType | minLength=1maxLength=160 |
$.record.releaseEvidence[].version | minLength=1 |
Showing 24 of 25 constraints. Use describe() or the machine-readable reference for the complete schema.
Other limits
| Path | Constraint |
|---|---|
$.envelopes | maxItems=10000 |
$.envelopes[].record.sequence | minimum=0 |
$.envelopes[].record.timestamp | minLength=20maxLength=64 |
$.envelopes[].record.parents | maxItems=10000 |
$.envelopes[].record.parents[].recordId | pattern="^urn:runstamp:provenance:sha256:[a-f0-9]{64}$" |
$.envelopes[].record.parents[].recordHash | pattern="^[a-f0-9]{64}$" |
$.envelopes[].record.tenantId | minLength=1maxLength=256 |
$.envelopes[].record.inputs | maxItems=10000 |
$.envelopes[].record.inputs[].name | minLength=1maxLength=256 |
$.envelopes[].record.inputs[].byteLength | minimum=0 |
$.envelopes[].record.inputs[].sha256 | pattern="^[a-f0-9]{64}$" |
$.envelopes[].record.inputs[].artifactId | minLength=1maxLength=256 |
$.envelopes[].record.inputs[].locator.artifactId | minLength=1maxLength=256 |
$.envelopes[].record.inputs[].locator.scheme | pattern="^[a-z][a-z0-9.-]{1,63}$" |
$.envelopes[].record.inputs[].locator.value | minItems=1maxItems=64 |
$.envelopes[].record.inputs[].locator.value[].anyOf[0] | maxLength=16384 |
$.envelopes[].record.inputs[].locator.value[].anyOf[1] | minimum=0 |
$.envelopes[].record.operation.id | pattern="^[a-z][a-z0-9.-]+/[a-z][a-z0-9-]*$" |
$.envelopes[].record.actor.id | minLength=1maxLength=256 |
$.envelopes[].record.actor.displayName | minLength=1maxLength=256 |
$.envelopes[].record.model.provider | minLength=1maxLength=160 |
$.envelopes[].record.model.id | minLength=1maxLength=256 |
Showing 32 of 167 constraints. Use describe() or the machine-readable reference for the complete schema.
Invoke
const input = await fetch("https://runstamp.com/demo-evidence/operation-evidence/provenance/common.validate.provenance/input.json").then((response) => response.json());
const result = await runstamp.run("common.validate.provenance", input);
if (!result.ok) throw new Error(`${result.error.code}: ${result.error.remediation}`);
console.log(result.value, result.losses, result.diagnostics, result.receipt);curl -fsS https://runstamp.com/demo-evidence/operation-evidence/provenance/common.validate.provenance/input.json -o input.json
npx -p @runstamp/sdk runstamp ops invoke common.validate.provenance --input input.json{
"tool": "runstamp_invoke_operation",
"arguments": {
"operation": "common.validate.provenance",
"input": "<JSON from https://runstamp.com/demo-evidence/operation-evidence/provenance/common.validate.provenance/input.json>",
"execution_mode": "local"
}
}Errors and losses
Declared errors (20)
common/PROVENANCE_VERIFICATION_FAILEDcommon/INVALID_MANIFESTcommon/BROKEN_BINDINGcommon/MISSING_INGREDIENTcommon/TENANT_MISMATCHcommon/REPLAY_DETECTEDcommon/SIGNATURE_INVALIDcommon/RESOURCE_LIMITcommon/ABORTEDcommon/SECRET_PATH_INVALIDcommon/EXTENSION_ABORTEDcommon/INVALID_REQUESTcommon/INVALID_RESULTcommon/INVALID_OPERATIONcommon/NON_JSON_VALUEcommon/SCHEMA_REJECTEDcommon/OPERATION_CANCELLEDcommon/OPERATION_TIMEOUTcommon/CONTRACT_VIOLATIONcommon/LOSS_POLICY_VIOLATED
Declared losses (1)
common/PROVENANCE_C2PA_NOT_EMBEDDED
SDK AbortSignal, CLI exit 130, and MCP cancellation return the typed common/OPERATION_CANCELLED failure envelope.
Verified example and exact contract
- Fixture:
icp-workflow(Quarterly board reporting chain). - Example input — SHA-256
ac4c03e3e14a8fd2f7f82ee371a33df5dea2f666702375b4a305ef0e0d452d82. - Example result — SHA-256
e46f58b0c144b2c656dd926280f257e6cd366a2f89332abe541c727fb9469e92. - Verified result SHA-256:
bea705558d33da05369f4480f1f6c32df487ec507b9ddf02d72efdf071f3f8a6. - Qualification lane:
14-mail-provenance.
Contract fingerprints
- Descriptor:
82a16ca342f056f1efac9f27c3ea61cda5a4b5b656b553d9c4690b46c5e8b3ba. - Input schema:
26295db071554d7d3f4808eca79d9c2362cd9ec8da42f1cacdc647488b542072. - Options schema:
9d4394e8a64dd150b44df26679c5e16f7f1b30226ec45dfa41b3b109fba62ea1. - Result value schema:
73eb3b2c375c9aacd241db5d0566a81b6b12a3fa447637a73daad5bb6904d61a.
The machine-readable operation reference publishes the complete schemas, qualification results, and evidence bindings for every operation.