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