Create a canonical root provenance record for an artifact.
Use describe("common.render.provenance-record") when your code needs the complete live JSON Schemas.
At a glance
| Property | Value |
|---|---|
| Package | @runstamp/provenance |
| Domain / verb | common / render |
| Customer jobs | create |
| 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/render/provenance-record. 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 | tenantId, inputs, operation, actor, policies, parameters, outputs, warnings, losses, releaseEvidence | model |
| 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 |
|---|---|
$.inputs[].mediaType | minLength=1maxLength=160 |
$.operation.version | minLength=1maxLength=160 |
$.model.version | minLength=1maxLength=160 |
$.policies[].version | minLength=1maxLength=160 |
$.outputs[].mediaType | minLength=1maxLength=160 |
$.releaseEvidence[].version | minLength=1maxLength=160 |
Other limits
| Path | Constraint |
|---|---|
$.tenantId | minLength=1maxLength=256 |
$.inputs | maxItems=10000 |
$.inputs[].name | minLength=1maxLength=256 |
$.inputs[].byteLength | minimum=0 |
$.inputs[].sha256 | pattern="^[a-f0-9]{64}$" |
$.inputs[].artifactId | minLength=1maxLength=256 |
$.inputs[].locator.artifactId | minLength=1maxLength=256 |
$.inputs[].locator.scheme | pattern="^[a-z][a-z0-9.-]{1,63}$" |
$.inputs[].locator.value | minItems=1maxItems=64 |
$.inputs[].locator.value[].anyOf[0] | maxLength=16384 |
$.inputs[].locator.value[].anyOf[1] | minimum=0 |
$.operation.id | pattern="^[a-z][a-z0-9.-]+/[a-z][a-z0-9-]*$" |
$.actor.id | minLength=1maxLength=256 |
$.actor.displayName | minLength=1maxLength=256 |
$.model.provider | minLength=1maxLength=160 |
$.model.id | minLength=1maxLength=256 |
$.policies | maxItems=10000 |
$.policies[].id | minLength=1maxLength=256 |
$.policies[].sha256 | pattern="^[a-f0-9]{64}$" |
$.outputs | minItems=1maxItems=10000 |
$.outputs[].name | minLength=1 |
Showing 32 of 83 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.render.provenance-record/input.json").then((response) => response.json());
const result = await runstamp.run("common.render.provenance-record", 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.render.provenance-record/input.json -o input.json
npx -p @runstamp/sdk runstamp ops invoke common.render.provenance-record --input input.json{
"tool": "runstamp_invoke_operation",
"arguments": {
"operation": "common.render.provenance-record",
"input": "<JSON from https://runstamp.com/demo-evidence/operation-evidence/provenance/common.render.provenance-record/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
58c0fd979c4cd96d7c5af6b8b4832951d74ac5f0c83a8f4027a13eb93069853f. - Example result — SHA-256
65f003ce86b43749443bf532852334cb135095b4b01ffae6c4f103795365ec96. - Verified result SHA-256:
7319adc5817409a5f8f0d470c8a5aecafd9389741376b711278ec272cc5804d8. - Qualification lane:
14-mail-provenance.
Contract fingerprints
- Descriptor:
be4d57d916bfbff0d8d5abd09658462395cdb9cf48c49aa2e339b151480f5243. - Input schema:
2e1fe0c3b5d0512ecc5347a9258a06a3c60e20f7ceff66691d957bfcf1f59caf. - Options schema:
675aefc15c1f2cec5ef769d42ff926d191f32d4af03d314d97bf027d6adacc35. - Result value schema:
2946bc8b970dd72f6762e548a857e9cc0c1b10186abe69eec3c78d169ac7fae8.
The machine-readable operation reference publishes the complete schemas, qualification results, and evidence bindings for every operation.