Skip to content

Commit 7be6196

Browse files
authored
Merge pull request #190 from contentauth/action-ingr
Add note about actions requiring associated ingredients
2 parents 8daa7d0 + 0a3ada4 commit 7be6196

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

docs/manifest/assertions-actions.md

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ For example:
269269

270270
## Actions
271271

272-
Actions provide information about creation, edits, and other things that have occurred to an asset. In the manifest, an `actions` assertion is an array of [ManifestAssertion](manifest-ref.mdx#manifestassertion) objects. For example:
272+
An action is an assertion that provides information about creation, edits, and other things that have occurred to an asset. In the manifest, an `actions` assertion is an array of [ManifestAssertion](manifest-ref.mdx#manifestassertion) objects. For example:
273273

274274
```json
275275
...
@@ -295,9 +295,9 @@ Each object in the `actions` array has the following standard properties.
295295
| Property | Required? | Description | Example |
296296
|----------|-----------| ------------|---------|
297297
| `action` | Yes | The action name. See [Action names](#action-names). | `c2pa.created` |
298-
| `digitalSourceType` | No | A URL identifying a [IPTC term](https://cv.iptc.org/newscodes/digitalsourcetype/). See [Digital source type](#digital-source-type). | `http://cv.iptc.org/newscodes/digitalsourcetype/`<br/>`compositeWithTrainedAlgorithmicMedia` |
298+
| `digitalSourceType` | No | A URL identifying a [IPTC term](https://cv.iptc.org/newscodes/digitalsourcetype/). See [Digital source type](#digital-source-type). | `http://cv.iptc.org/newscodes/`<br/> `digitalsourcetype/digitalCapture` |
299299
| `softwareAgent` | No | The software or hardware used to perform the action. | `"Adobe Firefly"` |
300-
| `parameters` | No | Additional information describing the action. | Reference to an ingredient. |
300+
| `parameters` | No | Additional information describing the action; see [Parameters](#parameters) | Reference to ingredients in the `org.cai.ingredientIds` array. |
301301

302302
### Action names
303303

@@ -380,6 +380,29 @@ The `parameters` property can contain any data that provide more details on the
380380
]
381381
```
382382

383+
When creating an actions assertion that has an associated ingredient, the `parameters` object must include a `org.cai.ingredientIds` property with an array of one or more [`instanceID` values](#the-instanceid-property) from ingredients. This is how you associate an action with one or more ingredients.
384+
385+
:::info
386+
The [C2PA specification](https://c2pa.org/specifications/specifications/2.1/specs/C2PA_Specification.html#_parameters) requires that a `c2pa.transcoded`, `c2pa.repackaged`, `c2pa.opened`, or a `c2pa.placed` action have one or more associated ingredients, so it is very important to add the `org.cai.ingredientIds` parameter with a matching ingredient.
387+
:::
388+
389+
For example:
390+
391+
```json
392+
"actions": [
393+
{
394+
"action": "c2pa.opened",
395+
"parameters": {
396+
"org.cai.ingredientIds": [
397+
"xmp.iid:813ee422-9736-4cdc-9be6-4e35ed8e41cb"
398+
]
399+
}
400+
},
401+
...
402+
```
403+
404+
The SDK supports the older `ingredientId` field, but it is deprecated and will at some point not be supported.
405+
383406
For more information on action parameters, see the [C2PA Technical Specification](https://c2pa.org/specifications/specifications/1.4/specs/C2PA_Specification.html#_parameters).
384407

385408
### The instanceId property

0 commit comments

Comments
 (0)