json-manifest-reference
Manifest Reference

CAI manifest store reference

This is a work in progress may not be accurate or complete.

Doc notes from ManifestStore_schema_annotated.json are highlighted below.
See also: Additional schema questions / comments

ManifestStore

A Container for a set of Manifests and a ValidationStatus list..

Properties

Property Type Description Required?
active_manifest String
A label for the active (most recent) manifest in the store Clarify that the value of this property is the UUID of the active manifest. NO
manifests Object A HashMap of Manifests
See Manifest
YES
validation_status Array of ValidationStatus ValidationStatus generated when loading the ManifestStore from an asset NO

Definitions

Actor
AssetType
ClaimGeneratorInfo
DataSource
DateT
HashedUri
Ingredient
Manifest
ManifestAssertion
ManifestAssertionKind
ManifestData
Metadata
Relationship
ResourceRef
ResourceStore
ReviewRating
SignatureInfo
UriOrResource
ValidationStatus

Actor

Identifies a person responsible for an action.

Property Type Description Required? Default Value
credentials Array of HashedUri
List of references to W3C Verifiable Credentials.
NO N/A
identifier String
An identifier for a human actor, used when the “type” is humanEntry.identified. What “type” does this refer to?
NO N/A

AssetType

Property Type Description Required? Default Value
type String

Description TBD.

YES N/A
version String

Description TBD.

NO N/A

ClaimGeneratorInfo

Description of the claim generator, or the software used in generating the claim. This structure is also used for actions softwareAgent What does it mean to have additionalProperties here? {: .comment}

Property Type Description Required? Default Value
icon UriOrResource
hashed URI to the icon (either embedded or remote)
NO N/A
name String
A human readable string naming the claim_generator
YES N/A
version String
A human readable string of the product’s version
NO N/A

NOTE: This object can have any number of additional user-defined properties.

DataSource

A description of the source for assertion data

Property Type Description Required? Default Value
actors Array of Actor
A list of [Actor]s associated with this source. Reference-style link missing shortlink.
NO N/A
details String
A human-readable string giving details about the source of the assertion data.
NO N/A
type String
A value from among the enumerated list indicating the source of the assertion.
YES N/A

DateT

A string.

DateT store date strings in CBOR with datetime Tag(0) This helper class should be used where the C2PA spec specifies a tagged CBOR datatime

HashedUri

Hashed Uri structure as defined by C2PA spec It is annotated to produce the correctly tagged cbor serialization Link to relevant section of spec. Spelling/capitalization issues. {: .comment}

Property Type Description Required? Default Value
alg String

Description TBD.

NO N/A
hash An array of integer

Description TBD.

YES N/A
url String

Description TBD.

YES N/A

Ingredient

An Ingredient is any external asset that has been used in the creation of an image.

Property Type Description Required? Default Value
active_manifest String
The active manifest label (if one exists). If this ingredient has a [ManifestStore], this will hold the label of the active Manifest. Short links for reference-style links must be separated by newline.
NO N/A
data ResourceRef
A reference to the actual data of the ingredient.
NO N/A
description String
Additional description of the ingredient.
NO N/A
document_id String
Document ID from xmpMM:DocumentID in XMP metadata.
NO N/A
format String
The format of the source file as a MIME type.
NO application/octet-stream
hash String
An optional hash of the asset to prevent duplicates.
NO N/A
informational_URI String
URI to an informational page about the ingredient or its data.
NO N/A
instance_id String
Instance ID from xmpMM:InstanceID in XMP metadata.
NO N/A
manifest_data ResourceRef
A ManifestStore from the source asset extracted as a binary C2PA blob.
NO N/A
metadata Metadata
Any additional [Metadata] as defined in the C2PA spec. Reference-style link does not match shortlink: Manifest != Metadata
NO N/A
provenance String
URI from dcterms:provenance in XMP metadata.
NO N/A
relationship Relationship
Set to ParentOf if this is the parent ingredient. There can only be one parent ingredient in the ingredients.
NO componentOf
resources ResourceStore
No description provided If we don’t document ResourceStore, then what should we do about this property?
NO N/A
thumbnail ResourceRef
A thumbnail image capturing the visual state at the time of import. A tuple of thumbnail MIME format (i.e. image/jpeg) and binary bits of the image.
NO N/A
title String
A human-readable title, generally source filename.
YES N/A
validation_status Array of ValidationStatus
Validation results.
NO N/A

Manifest

A Manifest represents all the information in a c2pa manifest. This is not a terribly helpful description. {: .comment}

Property Type Description Required? Default Value
assertions An array of ManifestAssertion
A list of assertions Should this say an array of ManifestAssertions (with link)?
NO Empty array
claim_generator String
A User Agent formatted string identifying the software/hardware/system produced this claim Spaces are not allowed in names, versions can be specified with product/1.0 syntax Link to https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent?
NO c2pa/0.25.2
claim_generator_hints Object
No description provided. Does additionalProperties here just mean this object can have any properites?
NO N/A
claim_generator_info Array of ClaimGeneratorInfo

Description TBD.

NO N/A
credentials Array of true
A List of verified credentials The type definition is strange… An array of ‘true’?
NO N/A
format String
The format of the source file as a MIME type.
NO application/octet-stream
ingredients An array of Ingredient
A List of ingredients
NO Empty array
instance_id String
Instance ID from xmpMM:InstanceID in XMP metadata. What is the significance of the default value?
NO xmp:iid:c1fcfabf-75b8-49ac-9032-34c7c6463098
label String

Description TBD.

NO N/A
redactions Array of string
A list of redactions - URIs to a redacted assertions
NO N/A
resources ResourceStore
container for binary assets (like thumbnails) If we don’t document ResourceStore, then what should we do about this property?
NO N/A
signature_info SignatureInfo
Signature data (only used for reporting)
NO N/A
thumbnail ResourceRef

Description TBD.

NO N/A
title String
A human-readable title, generally source filename.
NO N/A
vendor String
Optional prefix added to the generated Manifest Label This is typically Internet domain name for the vendor (i.e. adobe)
NO N/A

ManifestAssertion

A labeled container for an Assertion value in a Manifest

Property Type Description Required? Default Value
data ManifestData
The data of the assertion as Value
YES N/A
instance Integer
Format: uint
Minimum: 0.0
There can be more than one assertion for any label So is this property just a counter? How do you know what value to use here?
NO N/A
kind ManifestAssertionKind
The [ManifestAssertionKind] for this assertion (as stored in c2pa content) Reference-style link missing shortlink and formatting.
NO N/A
label String
An assertion label in reverse domain format
YES N/A

ManifestAssertionKind

A string that is one of the following:

  • “Cbor”
  • “Json”
  • “Binary”
  • “Uri”

ManifestData

Description TBD.

Any of the following:

  • true
  • type: integer, format: uint8, minimum: 0.0

Metadata

The Metadata structure can be used as part of other assertions or on its own to reference others What does it mean to have additionalProperties here? {: .comment}

Property Type Description Required? Default Value
data_source DataSource

Description TBD.

NO N/A
dateTime DateT

Description TBD.

NO N/A
reference HashedUri

Description TBD.

NO N/A
reviewRatings Array of ReviewRating

Description TBD.

NO N/A

NOTE: This object can have any number of additional user-defined properties.

Relationship

A string that is one of the following:

  • “parentOf”
  • “componentOf”
  • “inputTo”

ResourceRef

A reference to a resource to be used in JSON serialization

Property Type Description Required? Default Value
data_types Array of AssetType

Description TBD.

NO N/A
format String

Description TBD.

YES N/A
identifier String

Description TBD.

YES N/A

ResourceStore

Resource store to contain binary objects referenced from JSON serializable structures This should not be documented. {: .comment}

Property Type Description Required? Default Value
base_path String

Description TBD.

NO N/A
resources (Object)

Description TBD.

YES N/A

ReviewRating

A rating on an [Assertion]. See https://c2pa.org/specifications/specifications/1.0/specs/C2PA_Specification.html#_claim_review. Update spec to link to v1.3. Reference-style link missing shortlink.
{: .comment}

Property Type Description Required? Default Value
code String

Description TBD.

NO N/A
explanation String

Description TBD.

YES N/A
value Integer
Format: uint8
Minimum: 0.0

Description TBD.

YES N/A

SignatureInfo

Holds information about a signature

Property Type Description Required? Default Value
cert_serial_number String
The serial number of the certificate
NO N/A
issuer String
human readable issuing authority for this signature
NO N/A
time String
the time the signature was created
NO N/A

UriOrResource

Description TBD.

Any of the following:

ValidationStatus

A ValidationStatus struct describes the validation status of a specific part of a manifest. See https://c2pa.org/specifications/specifications/1.0/specs/C2PA_Specification.html#_existing_manifests. Maybe “struct” is not the best word to use here? Would “object” be the right JSON term? Update link to spec to v1.3. {: .comment}

Property Type Description Required? Default Value
code String

Description TBD.

YES N/A
explanation String

Description TBD.

NO N/A
url String

Description TBD.

NO N/A