Skip to content

Conversation

@magaylor
Copy link
Contributor

Adding an API to the Reader that allows clients to extract the RAW JUMBF Manifest from an asset.

This has been a feature I've been talking to @mauricefisher64 about for a month or two now. It's my understanding that contentauth is tracking this item, but internal Microsoft teams are beginning to become blocked on it not existing.

We are working on adding manifestData to ingredient assertions and have no clean way, without 3p tools, to get the Raw JUMBF manifest from the file.

Changes in this pull request

Adding raw jumbf method to the reader and exposing it to the bindings code.

Checklist

  • This PR represents a single feature, fix, or change.
  • All applicable changes have been documented.
  • Any TO DO items (or similar) have been entered as GitHub issues and the link to that issue has been included in a comment.

@codspeed-hq
Copy link

codspeed-hq bot commented Nov 20, 2025

CodSpeed Performance Report

Merging #1625 will not alter performance

Comparing magaylor:user/magaylor/20251120_add_raw_jumbf_extraction_to_reader (6ec7761) with main (a39666a)

Summary

✅ 16 untouched
⏩ 2 skipped1

Footnotes

  1. 2 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@tmathern tmathern added the check-release Add this label to any PR to invoke a larger suite of tests. label Nov 21, 2025
@tmathern
Copy link
Contributor

(@magaylor I merged in latest changes to re-run tests with latest main)

@gpeacock
Copy link
Collaborator

Please explain the workflow you want to achieve. Are you trying to save pre-validated ingredient and add them to manifests later?

The right way is to add the ingredient to a Builder and then archive the builder until you need it. You then have two options, either reconstruct the builder using Builder::from_archive or you can add the archived builder as an ingredient using builder.add_ingredient_from_stream(). In this case, you can use the format "application/c2pa" and the parent ingredient in the archive will be added as the ingredient.

We are changing the format of archived builders to be a single application/c2pa (.c2pa) asset instead of a zipped folder archive.

Copy link
Collaborator

@gpeacock gpeacock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It sounds like you want this to reconstruct an ingredient, but there are other ways to do that which are much safer and will add ingredients correctly. What exactly is the workflow you need here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

check-release Add this label to any PR to invoke a larger suite of tests. safe to test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants