ingestr v1.0.46 - Reddit Ads Source and Attribution Filters

ingestr v1.0.46 was published on June 25, 2026, with Reddit Ads source support as the main data engineering change. The release also adjusts attribution filter handling for Adjust tables and tightens retry behavior around Reddit Ads report requests.

The full release notes and downloads are on the GitHub release page.

Reddit Ads source support

The headline change in ingestr v1.0.46 is the addition of a Reddit Ads source. For teams using ingestr as a small, direct ELT tool, this matters because paid social data often lands in the same reporting model as web analytics, CRM records, and warehouse native ad spend tables.

The release notes do not publish the full table map in the changelog, so this is not a place to infer schema details. The useful operator signal is simpler: Reddit Ads is now registered as a connector in this release, and the documentation file reddit_ads.md was updated in the same change set. That means the release is about making the source visible and usable through the normal ingestr connector path, not just leaving code in the tree.

There is also a documentation cleanup around client side filtering. The notes say the project removed a client side filtering note from the Reddit Ads docs. That is a small line, but it is relevant for pipeline design. If a source can push report shape and date handling closer to the upstream API, operators have less local filtering behavior to explain when row counts differ between a warehouse table and the vendor UI.

Report retries and date alignment

The Reddit Ads report endpoint gets explicit retry handling for HTTP 429 responses on POST requests. For extraction jobs, this is the kind of change that reduces false incident noise. Rate limits are normal on ad platform APIs. Treating them as retryable report requests is more useful than failing a scheduled run on the first throttled response.

The changelog also calls out hour aligned report dates. That is a practical detail for ad reporting pipelines because hour windows are often used for incremental loads, backfills, and late arriving corrections. If report dates drift across hour boundaries, pipeline owners can end up with duplicate slices or missing slices even when the job appears healthy.

The release notes do not describe a new public config key for this behavior. Read it as a connector correctness change, not as a migration item. The safest test after upgrade is to run a narrow Reddit Ads extraction across a known hour range and compare the requested period with the loaded warehouse partition.

Adjust attribution filters

ingestr v1.0.46 also changes how Adjust attribution_types are handled for campaigns and creatives. The changelog says the value is now configurable for those tables, and later drops the allowlist to stay forward compatible.

That tradeoff is sensible for a connector that sits between warehouse jobs and a vendor API. A strict allowlist gives clearer local validation, but it can also lag behind the upstream API. Dropping that allowlist lets new attribution values pass through without waiting for a client release. The cost is that bad values may now fail closer to the Adjust API rather than inside ingestr validation.

The release still keeps some validation hygiene. The notes mention a clearer guard error, validation work around attribution_types, and deterministic ordering for valid value keys in error messages. Deterministic errors are not cosmetic in CI driven pipeline checks. They keep snapshot tests and alert text stable when only map ordering would otherwise change.

For existing Adjust users, the important behavior to review is any custom table filter that sets attribution_types. The release notes mention tests that lock custom table attribution values through filters, so that path appears to be intentional rather than incidental.

Runtime and test cleanup

One entry fixes a context cancel channel panic. The changelog does not give reproduction details, but the affected area is worth noting because cancellation paths are common in schedulers, manual job stops, and timed out worker runs. A panic during cancellation can make a normal stop look like a failed process, which then pollutes retry and alert logic.

There is also internal cleanup: connector registration, modernization work, gofmt, and test changes using strings.Contains. This is mostly maintenance. It still matters for operators in one narrow way: source registration and deterministic tests reduce the chance that a connector exists in code but is absent from normal runtime discovery.

No prerelease flag is set for this GitHub release. Treat v1.0.46 as a normal release, but validate the two connector paths that changed if they are in production: Reddit Ads extraction and Adjust attribution filters.

Where to get it