ti_abusech: switch URL data stream to incremental API#18945
Draft
kcreddy wants to merge 3 commits into
Draft
Conversation
Replace the full-export ZIP download (/downloads/json) with the incremental /v1/urls/recent/ endpoint. The full export ingested all active indicators every interval as a single batch, causing large memory spikes. The incremental API returns only recently added URLs as plain JSON, eliminating ZIP decompression and bulk allocation. IOC expiration is now user-configurable via a new ioc_expiration_duration setting (default 90d), computed from first_seen rather than event.ingested. This matches the pattern already used by the malware, threatfox, and malwarebazaar sibling data streams. Changes: - CEL program: GET to /v1/urls/recent/, decode body.urls, no ZIP - Manifest: new default URL, ioc_expiration_duration var, 10m interval - Pipeline: replace interval-based expiration with duration-based, rename _conf.ioc_expiration_duration to abusech.url field - Fields: replace labels.interval with abusech.url.ioc_expiration_duration - Tests: update fixtures to incremental API response format - Version: 3.6.0 -> 4.0.0 (breaking: labels.interval field removed)
Contributor
Vale Linting ResultsSummary: 1 suggestion found 💡 Suggestions (1)
The Vale linter checks documentation changes against the Elastic Docs style guide. To use Vale locally or report issues, refer to Elastic style guide for Vale. |
🚀 Benchmarks reportPackage
|
| Data stream | Previous EPS | New EPS | Diff (%) | Result |
|---|---|---|---|---|
ja3_fingerprints |
17857.14 | 9363.3 | -8493.84 (-47.57%) | 💔 |
malware |
19607.84 | 10752.69 | -8855.15 (-45.16%) | 💔 |
malware |
19607.84 | 16129.03 | -3478.81 (-17.74%) | 💔 |
malwarebazaar |
11494.25 | 9345.79 | -2148.46 (-18.69%) | 💔 |
To see the full report comment with /test benchmark fullreport
Add a CEL program guard that detects when the URL is still set to the old full export endpoint (/downloads/json) after an upgrade and returns a clear error message instead of failing with a cryptic JSON unmarshal error. Update the README troubleshooting section with v4.0.0 upgrade steps and revise the breaking-change changelog entry to cover the URL migration, labels.interval removal, and the new IOC Expiration Duration setting. Co-authored-by: Cursor <cursoragent@cursor.com>
💔 Build Failed
Failed CI StepsHistory
cc @kcreddy |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed commit message
Checklist
changelog.ymlfile.How to test this PR locally
System tests (with incremental API) are successful