Append a record to a lineage, binding it to its parent records.
Use describe("common.transform.provenance-append") when your code needs the complete live JSON Schemas.
At a glance
| Property | Value |
|---|---|
| Package | @runstamp/provenance |
| Domain / verb | common / transform |
| Customer jobs | transform |
| 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/transform/provenance-append. 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 | none |
| 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.transform.provenance-append/input.json").then((response) => response.json());
const result = await runstamp.run("common.transform.provenance-append", 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.transform.provenance-append/input.json -o input.json
npx -p @runstamp/sdk runstamp ops invoke common.transform.provenance-append --input input.json{
"tool": "runstamp_invoke_operation",
"arguments": {
"operation": "common.transform.provenance-append",
"input": "<JSON from https://runstamp.com/demo-evidence/operation-evidence/provenance/common.transform.provenance-append/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
e3061d634a90d96f35c1e90a35d6b3097452f950f778af20529edca51be385ed. - Example result — SHA-256
b003507c37bbfc346edfb02a9347dc84c00cdd8f1e7eaabea0a76a4b6143fec9. - Verified result SHA-256:
d2f4faa996ddf1b3dd8db8d623089e288a06059290fea0e82125855f69147cb3. - Qualification lane:
14-mail-provenance.
Contract fingerprints
- Descriptor:
614ea25d3740c301cc2c1f3dd54b5f30bc7ac8880a8acb4eba62f55f8a14d1ab. - Input schema:
425c7c93ec8b089577fb4d7937170d3469a628324ab6416dd97c34e1b8733fe8. - Options schema:
3835f21cc143f7a5e3082ada72990c5bbb4ee21403127a51dd94c6388b99fee9. - Result value schema:
2946bc8b970dd72f6762e548a857e9cc0c1b10186abe69eec3c78d169ac7fae8.
The machine-readable operation reference publishes the complete schemas, qualification results, and evidence bindings for every operation.