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 (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 (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