microsoft / microsoft/finops-toolkit
Blank manifest.json does not trigger ingestion due to ignoreEmptyBlobs
Nobody has claimed this yet.
- Dominant language
- PowerShell
- Stars
- 603
- Forks
- 248
- Avg merge
- 7d 11h
- Merged PRs (30d)
- 11
Description
Summary
The custom ingestion documentation instructs users to create a blank manifest.json file to trigger ingestion. However, the ADF blob event trigger is configured with ignoreEmptyBlobs: true, which silently drops events for zero-byte blobs. This means a blank manifest.json never triggers the ingestion pipeline.
Root cause
The trigger in hub-eventTrigger.bicep:79 has:
ignoreEmptyBlobs: true
This setting has been present since the trigger module was first created in #100 (April 2023), when it was watching for .csv files. It was carried forward when the trigger was refactored to watch for manifest.json, but the custom ingestion docs were written assuming a blank file would work.
Impact
Users following the docs for custom/multi-cloud ingestion (e.g., AWS, GCP) create an empty manifest.json and the pipeline never runs. There is no error — the event is silently ignored.
Workaround
Write non-empty content to the manifest file, e.g.:
{
"generatedUtc": "<timestamp>"
}
The content must change on each write to generate a new BlobCreated event.
Credit to @DMarshall-1 for discovering this workaround in #2046.
Suggested fix
Either:
- Update the docs to specify that
manifest.jsonmust contain non-empty content, and provide a template - Change
ignoreEmptyBlobstofalsein the trigger — though this may introduce noise from empty blob artifacts - Both: keep
ignoreEmptyBlobs: truefor safety, update the docs, and provide a sample pipeline snippet that writes the manifest with a timestamp
Related
- #2046 — Original issue where this was discovered
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/templates/finops-hub/modules/fx/hub-eventTrigger.bicep at line 79 and the custom ingestion documentation linked in the issue. Review the related behavior in #2046, then determine whether the documented manifest format or the trigger setting should change; done means the documented workflow reliably causes ingestion without silently ignored empty blobs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure
- Domain
- cloud, documentation
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100