Register one file's ManifestID from its terms
const url = 'https://example.com/v1/datasets/upload/register-content-manifest';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"repo_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","name":"example","file_format":"generic","terms":[{"blob_id":"example","offset_in_blob":1,"length":1}],"expected_raw_blake3":"example","expected_raw_sha256":""}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/datasets/upload/register-content-manifest \ --header 'Content-Type: application/json' \ --data '{ "repo_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "file_format": "generic", "terms": [ { "blob_id": "example", "offset_in_blob": 1, "length": 1 } ], "expected_raw_blake3": "example", "expected_raw_sha256": "" }'Mint a durable ManifestID for ONE already-staged file, with no publication and no visible ref move.
The git clean filter needs a manifest identity to write into an LFS
pointer at git add time, when no commit — and possibly no tree — exists
yet. Unary and polling-free: QDS expands the terms against its own sealed
blob directories, reruns the canonical chunker, and returns the same
receipt shape whole-tree staging mints. Replaying identical terms is
idempotent.
Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters ”Request Body required
Section titled “Request Body required ”One file’s terms, registered as a durable ManifestID (git-filter clean).
Deliberately NOT a publication: git add needs a manifest identity to
write into its LFS pointer long before a commit exists, and paying for a
whole-tree operation per staged file is what the v4 filter did wrong.
object
One contiguous run of chunks inside one blob, named as a byte range.
The blob seal proves offset_in_blob is a dense prefix sum of length over
the directory ordinal, so a range of ordinals is exactly one range of bytes
and the two spellings carry the same fact.
object
Responses
Section titled “ Responses ”Successful Response
Example generated
exampleValidation Error
object
object
object
Example generated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}