ti_*: Use num_failure_retries instead of unattended mode - #18404
Conversation
Replace settings.unattended: true with settings.num_failure_retries: -1 in all ti_* managed transforms. Unlike unattended mode which retries all failures indefinitely (masking irrecoverable errors), num_failure_retries: -1 retries only recoverable failures while still surfacing genuinely irrecoverable ones to users. Three packages (ti_anyrun, ti_flashpoint, ti_strider) that were added after the original unattended PR (elastic#16535) had no failure resilience at all and now get num_failure_retries: -1 added. Requires elastic/package-spec#1124 (add num_failure_retries to the transform settings schema). [git-generate] for transform in $(find packages/ti_*/ -type f -name transform.yml \ -path '*/elasticsearch/transform/*'); do yq -i 'del(.settings.unattended)' "$transform" yq -i '.settings.num_failure_retries = -1' "$transform" done for transform in $(git diff --name-only packages/ | \ grep 'transform\.yml$'); do current=$(yq '._meta.fleet_transform_version' "$transform") next=$(echo "$current" | awk -F. '{printf "%d.%d.%d",$1,$2+1,0}') yq -i "._meta.fleet_transform_version = \"$next\"" "$transform" done for pkg in $(git diff --name-only packages/ | cut -d/ -f1,2 | \ sort -u); do cd "$pkg" elastic-package changelog add \ --description "Use num_failure_retries instead of unattended mode for transform failure recovery." \ --type enhancement --next minor \ --link "elastic#18404" cd ../../ done Made-with: Cursor
2fc72f0 to
f441298
Compare
|
Pinging @elastic/security-service-integrations (Team:Security-Service Integrations) |
efd6
left a comment
There was a problem hiding this comment.
Note that for
for pkg in $(git diff --name-only packages/ | cut -d/ -f1,2 | \
sort -u); do
cd "$pkg"
elastic-package changelog add \
--description "Use num_failure_retries instead of unattended mode for transform failure recovery." \
--type enhancement --next minor \
--link "https://github.com/elastic/integrations/pull/18404"
cd ../../
done
you can do this with subshell to avoid the need to move back to the root.
for pkg in $(git diff --name-only packages/ | cut -d/ -f1,2 | \
sort -u); do
(
cd "$pkg"
elastic-package changelog add \
--description "Use num_failure_retries instead of unattended mode for transform failure recovery." \
--type enhancement --next minor \
--link "https://github.com/elastic/integrations/pull/18404"
)
done
|
Package ti_abusech - 3.7.0 containing this change is available at https://epr.elastic.co/package/ti_abusech/3.7.0/ |
|
Package ti_anomali - 2.7.0 containing this change is available at https://epr.elastic.co/package/ti_anomali/2.7.0/ |
|
Package ti_anyrun - 1.1.0 containing this change is available at https://epr.elastic.co/package/ti_anyrun/1.1.0/ |
|
Package ti_cif3 - 1.19.0 containing this change is available at https://epr.elastic.co/package/ti_cif3/1.19.0/ |
|
Package ti_crowdstrike - 2.8.0 containing this change is available at https://epr.elastic.co/package/ti_crowdstrike/2.8.0/ |
|
Package ti_custom - 1.7.0 containing this change is available at https://epr.elastic.co/package/ti_custom/1.7.0/ |
|
Package ti_cybersixgill - 1.35.0 containing this change is available at https://epr.elastic.co/package/ti_cybersixgill/1.35.0/ |
|
Package ti_cyware_intel_exchange - 0.3.0 containing this change is available at https://epr.elastic.co/package/ti_cyware_intel_exchange/0.3.0/ |
|
Package ti_domaintools - 1.4.0 containing this change is available at https://epr.elastic.co/package/ti_domaintools/1.4.0/ |
|
Package ti_eclecticiq - 1.6.0 containing this change is available at https://epr.elastic.co/package/ti_eclecticiq/1.6.0/ |
|
Package ti_eset - 1.10.0 containing this change is available at https://epr.elastic.co/package/ti_eset/1.10.0/ |
|
Package ti_flashpoint - 0.2.0 containing this change is available at https://epr.elastic.co/package/ti_flashpoint/0.2.0/ |
|
Package ti_google_threat_intelligence - 0.9.0 containing this change is available at https://epr.elastic.co/package/ti_google_threat_intelligence/0.9.0/ |
|
Package ti_greynoise - 0.8.0 containing this change is available at https://epr.elastic.co/package/ti_greynoise/0.8.0/ |
|
Package ti_maltiverse - 1.7.0 containing this change is available at https://epr.elastic.co/package/ti_maltiverse/1.7.0/ |
|
Package ti_misp - 1.43.0 containing this change is available at https://epr.elastic.co/package/ti_misp/1.43.0/ |
|
Package ti_opencti - 2.14.0 containing this change is available at https://epr.elastic.co/package/ti_opencti/2.14.0/ |
|
Package ti_otx - 1.31.0 containing this change is available at https://epr.elastic.co/package/ti_otx/1.31.0/ |
|
Package ti_rapid7_threat_command - 2.9.0 containing this change is available at https://epr.elastic.co/package/ti_rapid7_threat_command/2.9.0/ |
|
Package ti_recordedfuture - 2.5.0 containing this change is available at https://epr.elastic.co/package/ti_recordedfuture/2.5.0/ |
|
Package ti_strider - 0.1.0 containing this change is available at https://epr.elastic.co/package/ti_strider/0.1.0/ |
|
Package ti_threatconnect - 2.1.0 containing this change is available at https://epr.elastic.co/package/ti_threatconnect/2.1.0/ |
|
Package ti_threatq - 1.38.0 containing this change is available at https://epr.elastic.co/package/ti_threatq/1.38.0/ |
Replace settings.unattended: true with settings.num_failure_retries: -1 in all ti_* managed transforms. Unlike unattended mode which retries all failures indefinitely (masking irrecoverable errors), num_failure_retries: -1 retries only recoverable failures while still surfacing genuinely irrecoverable ones to users. Three packages (ti_anyrun, ti_flashpoint, ti_strider) that were added after the original unattended PR (elastic#16535) had no failure resilience at all and now get num_failure_retries: -1 added. [git-generate] for transform in $(find packages/ti_*/ -type f -name transform.yml \ -path '*/elasticsearch/transform/*'); do yq -i 'del(.settings.unattended)' "$transform" yq -i '.settings.num_failure_retries = -1' "$transform" done for transform in $(git diff --name-only packages/ | \ grep 'transform\.yml$'); do current=$(yq '._meta.fleet_transform_version' "$transform") next=$(echo "$current" | awk -F. '{printf "%d.%d.%d",$1,$2+1,0}') yq -i "._meta.fleet_transform_version = \"$next\"" "$transform" done for pkg in $(git diff --name-only packages/ | cut -d/ -f1,2 | \ sort -u); do cd "$pkg" elastic-package changelog add \ --description "Use num_failure_retries instead of unattended mode for transform failure recovery." \ --type enhancement --next minor \ --link "elastic#18404" cd ../../ done
Proposed commit message
Summary
Switches all
ti_*managed transforms fromsettings.unattended: truetosettings.num_failure_retries: -1.unattended: trueretries all failures indefinitely, including irrecoverable ones, which masks real problems from users.num_failure_retries: -1retries only recoverable failures indefinitely (network blips, transient cluster instability) while still surfacing irrecoverable errors.This covers 52 transforms across 23 packages. Three packages (
ti_anyrun,ti_flashpoint,ti_strider) were added after the originalunattendedPR (#16535) and had no failure resilience at all -- they now getnum_failure_retries: -1for the first time.Changes per package
For each affected transform:
settings.unattended: truesettings.num_failure_retries: -1_meta.fleet_transform_version(minor bump triggers reinstall)Checklist
changelog.ymlfile.Related issues
unattended: true)unattended: truewithnum_failure_retries: -1in all managed transforms #18403