Manifests

Ingredients

Overview

Most digital assets aren’t created in isolation — they often reuse elements from other assets. These source files are called ingredients.

Ingredients preserve provenance across edits, keeping original Content Credentials and linking them into the new asset.


Ingredient Objects

Ingredients are recorded in the manifest’s ingredients array. Each entry contains metadata about the source file.

Example:

"ingredients": [
  {
    "title": "photo1.jpg",
    "format": "image/jpeg",
    "instance_id": "xmp:iid:315e20bf-10da-...",
    "thumbnail": {
      "format": "image/jpeg",
      "identifier": "photo1-thumb.jpg"
    },
    "relationship": "componentOf",
    "active_manifest": "urn:uuid:8bb8ad50-ef2f-..."
  }
]

Key Properties

  • title (required): Usually filename
  • format: MIME type (e.g. image/jpeg)
  • document_id / instance_id: From XMP metadata
  • thumbnail: Thumbnail details
  • active_manifest: Label of child manifest, if present
  • relationship: How the ingredient relates (see below)

Ingredient Relationships

ValueMeaning
parentOfThe current asset is a derived version of this ingredient
componentOfThis ingredient is combined to form the new asset
inputToThis ingredient was input to a process (e.g. AI model) that created it

Validation for Ingredients

Ingredients may carry their own manifests. Que validates them when they are added.

Important

Ingredient validation does not imply the composed asset is valid. Each must be checked independently.


Example: Invalid Ingredient

{
  "title": "E-sig-CA.jpg",
  "format": "image/jpeg",
  "relationship": "componentOf",
  "validation_status": [
    {
      "code": "timeStamp.mismatch",
      "explanation": "timestamp message imprint did not match"
    },
    {
      "code": "claimSignature.mismatch",
      "explanation": "claim signature is not valid"
    }
  ]
}

Best Practices

  • Keep ingredient manifests included whenever possible to retain provenance.
  • Use relationships (componentOf, inputTo) consistently.
  • Don’t ignore ingredient-level validation status.