Read C2PA Manifest
Reads media provenance JSON and its reported manifest locations. Default validation=false. Requires READ on media path before file preflight. Adobe-internal sidecar/network/certificate/cache I/O is outside DSL permissions; not an offline API. FOUND means non-empty manifest, not validity; NONE means empty native manifest after file preflight. ERROR resets JSON/list/bits/result, publishes error, then applies onError. Distinct output variables required. Raw and unknown location-bit outputs preserve future flags. No project import or mutation. Reads a filesystem media path directly; no project import or active Sequence is required. Requires the native C2PAService.getManifest API (26.5+). withValidation defaults to false. Native sync and Promise results are awaited; failures are not retried. Filesystem READ is checked on the input path using the normal expanded-path rules, before checking that it resolves to an accessible file. Adobe-internal sidecar, cloud, certificate and cache accesses are outside Automation Agent's filesystem permissions. Our own explicit I/O remains permission-checked. Neither validation mode guarantees offline execution. This does not change external executable allowlists or project permissions. storeManifestJsonIn receives the exact Adobe string without parsing, rewriting or endorsing its contents. storeResultIn=true and storeStatusIn=FOUND mean a non-empty manifest was returned, not that its credentials are valid or trusted. Signature/hash failures may be diagnostics inside successfully returned JSON; they do not trigger onError. In the tested host, disabled validation can even return validation_state=Invalid for the positive fixture; do not interpret that as a completed validation verdict. storeManifestLocationsIn is an ordered list of known flags: EMBEDDED, SIDE_CAR, CLOUD. storeManifestLocationBitsIn retains the complete non-negative safe-integer bitmask; storeUnknownLocationBitsIn retains bits not covered by 1/2/4. A future unknown flag is never silently discarded or renamed. There is no independent sidecar lookup/fallback in our wrapper. An empty returned manifest gives NONE, result false and empty JSON. Native location diagnostics are still preserved. NONE is not a promise that no external sidecar exists: the SDK-verified sidecar-only fixture returned NONE on tested Windows Beta 27.0. Missing/directory/inaccessible inputs rejected by the file preflight give ERROR; the preflight cannot prevent removal/access changes during the subsequent native call, which may still return NONE. Native throws and malformed native result shapes also give ERROR, without guessing a cause from localized text. All seven outputs are optional but must use distinct variables. Aliases are an invalid configuration and always stop. Before expression evaluation, outputs are initialized to result false, JSON/error empty strings, locations [], raw/unknown bits 0 and status NOT_RUN. Configuration errors such as an invalid onError stop with neutral outputs. Other errors publish the complete ERROR row (false, empty JSON/list, zero bits, error message) before STOP throws or CONTINUE/RETURN_FALSE continues. No previous iteration's manifest survives a failure. Output variables are overwritten before inputs are evaluated; do not reuse them as input storage. No validity boolean or separate VALIDATION_ERROR status is offered. Interpret versioned Adobe diagnostics explicitly only when needed. This read creates no Premiere Action or Undo step and does not flush pending project Actions. Live-accepted on Windows Premiere Beta 27.0: no-manifest and embedded JPEG, invalid signature, hash mismatch, missing/directory inputs, narrow READ grants with absolute and HOME input paths, complete error-output reset, STOP, exact native JSON preservation and dialog-driven export. User confirmed all Blockly controls are visible and assignable. Exact 26.5, macOS, cloud, combined native flags and automatic sidecar discovery remain unverified. Mocked combined/future-bit tests are not live acceptance. Use onError to decide whether errors stop the script, continue, or return false when the block supports it. If storeResultIn is set, the block also writes a result variable back to your graph.
Inputs
| Input | Required | Value Kind | Types | Enum Values |
|---|---|---|---|---|
path | yes | expression | string | — |
withValidation | no | expression | boolean | — |
onError | no | expression | enum-string | STOP, CONTINUE, RETURN_FALSE |
storeManifestJsonIn | no | variable-name | variable-name | — |
storeManifestLocationsIn | no | variable-name | variable-name | — |
storeManifestLocationBitsIn | no | variable-name | variable-name | — |
storeUnknownLocationBitsIn | no | variable-name | variable-name | — |
storeStatusIn | no | variable-name | variable-name | — |
storeErrorIn | no | variable-name | variable-name | — |
storeResultIn | no | variable-name | variable-name | — |
Notes
- Reads a filesystem media path directly; no project import or active Sequence is required. Requires the native
C2PAService.getManifestAPI (26.5+).withValidationdefaults to false. Native sync and Promise results are awaited; failures are not retried. - Filesystem READ is checked on the input path using the normal expanded-path rules, before checking that it resolves to an accessible file. Adobe-internal sidecar, cloud, certificate and cache accesses are outside Automation Agent's filesystem permissions. Our own explicit I/O remains permission-checked. Neither validation mode guarantees offline execution. This does not change external executable allowlists or project permissions.
storeManifestJsonInreceives the exact Adobe string without parsing, rewriting or endorsing its contents.storeResultIn=trueandstoreStatusIn=FOUNDmean a non-empty manifest was returned, not that its credentials are valid or trusted. Signature/hash failures may be diagnostics inside successfully returned JSON; they do not triggeronError. In the tested host, disabled validation can even returnvalidation_state=Invalidfor the positive fixture; do not interpret that as a completed validation verdict.storeManifestLocationsInis an ordered list of known flags:EMBEDDED,SIDE_CAR,CLOUD.storeManifestLocationBitsInretains the complete non-negative safe-integer bitmask;storeUnknownLocationBitsInretains bits not covered by 1/2/4. A future unknown flag is never silently discarded or renamed. There is no independent sidecar lookup/fallback in our wrapper.- An empty returned manifest gives
NONE, result false and empty JSON. Native location diagnostics are still preserved.NONEis not a promise that no external sidecar exists: the SDK-verified sidecar-only fixture returned NONE on tested Windows Beta 27.0. Missing/directory/inaccessible inputs rejected by the file preflight giveERROR; the preflight cannot prevent removal/access changes during the subsequent native call, which may still return NONE. Native throws and malformed native result shapes also give ERROR, without guessing a cause from localized text. - All seven outputs are optional but must use distinct variables. Aliases are an invalid configuration and always stop. Before expression evaluation, outputs are initialized to result false, JSON/error empty strings, locations [], raw/unknown bits 0 and status NOT_RUN. Configuration errors such as an invalid onError stop with neutral outputs. Other errors publish the complete ERROR row (false, empty JSON/list, zero bits, error message) before STOP throws or CONTINUE/RETURN_FALSE continues. No previous iteration's manifest survives a failure. Output variables are overwritten before inputs are evaluated; do not reuse them as input storage.
- No validity boolean or separate VALIDATION_ERROR status is offered. Interpret versioned Adobe diagnostics explicitly only when needed. This read creates no Premiere Action or Undo step and does not flush pending project Actions.
- Live-accepted on Windows Premiere Beta 27.0: no-manifest and embedded JPEG, invalid signature, hash mismatch, missing/directory inputs, narrow READ grants with absolute and HOME input paths, complete error-output reset, STOP, exact native JSON preservation and dialog-driven export. User confirmed all Blockly controls are visible and assignable. Exact 26.5, macOS, cloud, combined native flags and automatic sidecar discovery remain unverified. Mocked combined/future-bit tests are not live acceptance.
Examples
Export Content Credentials JSON
Choose media, read Adobe's C2PA manifest and save its exact JSON when present; presence does not certify authenticity.
Topics: provenance, files
Source: patterns/ex-c2pa-export-manifest.json