Skip to content

[crowdstrike] Declare ANODE anomaly numeric leaves as float (falcon, fdr, alert)#20305

Merged
efd6 merged 2 commits into
elastic:mainfrom
vatsaldesai93:fix/crowdstrike-anode-indicators-float
Jul 27, 2026
Merged

[crowdstrike] Declare ANODE anomaly numeric leaves as float (falcon, fdr, alert)#20305
efd6 merged 2 commits into
elastic:mainfrom
vatsaldesai93:fix/crowdstrike-anode-indicators-float

Conversation

@vatsaldesai93

@vatsaldesai93 vatsaldesai93 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Proposed commit message

CrowdStrike's ANODE anomaly indicators include numeric values that are usually decimals but occasionally whole numbers. These fields aren't declared in the package, so each index infers their type from the first document it sees — an index that happens to see a whole number first maps the field as `long`, and every later decimal is then rejected to the failure store.

This declares those numeric leaves as `float` in the `falcon`, `fdr`, and `alert` data streams, so the type no longer
depends on ingest order. `float` is also what dynamic mapping already picks for a decimal, so existing indices stay
compatible — whole numbers simply coerce into it.

Checklist

  • I have reviewed tips for building integrations and this pull request is aligned with them.
  • I have verified that all data streams collect metrics or logs.
  • I have added an entry to my package's changelog.yml file.
  • I have verified that Kibana version constraints are current according to guidelines.
  • I have verified that any added dashboard complies with Kibana's Dashboard good practices (no dashboard changes).

How to test this PR locally

The managed data stream runs with index.mapping.coerce: false, so a decimal can't be squeezed into a long field —
it's rejected outright:

PUT anode-demo
{ "settings": { "index.mapping.coerce": false } }

PUT anode-demo/_doc/1
{ "crowdstrike": { "event": { "AnodeIndicators": [ { "Score": 10 } ] } } }

PUT anode-demo/_doc/2
{ "crowdstrike": { "event": { "AnodeIndicators": [ { "Score": 10.5 } ] } } }

The first document locks the field to long; the second is rejected. With the float declaration both index cleanly.
Then run elastic-package build and elastic-package test pipeline -C packages/crowdstrike.

Related issues

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Reviewers

Buildkite won't run for external contributors automatically; you need to add a comment:

  • /test : will kick off a build in Buildkite.

NOTE: https://github.com/elastic/integrations/blob/main/.buildkite/pull-requests.json contains all those details.

@vatsaldesai93
vatsaldesai93 force-pushed the fix/crowdstrike-anode-indicators-float branch from 4acee32 to a43f22f Compare July 23, 2026 02:31
@vatsaldesai93 vatsaldesai93 changed the title crowdstrike: declare AnodeIndicators numeric leaves as float crowdstrike: declare ANODE anomaly numeric leaves as float (falcon, fdr, alert) Jul 23, 2026
@andrewkroh andrewkroh added Integration:crowdstrike CrowdStrike documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. labels Jul 23, 2026
@vatsaldesai93 vatsaldesai93 changed the title crowdstrike: declare ANODE anomaly numeric leaves as float (falcon, fdr, alert) [crowdstrike] Declare ANODE anomaly numeric leaves as float (falcon, fdr, alert) Jul 23, 2026
@vatsaldesai93
vatsaldesai93 marked this pull request as ready for review July 23, 2026 15:40
@vatsaldesai93
vatsaldesai93 requested review from a team as code owners July 23, 2026 15:40
@vatsaldesai93
vatsaldesai93 force-pushed the fix/crowdstrike-anode-indicators-float branch 2 times, most recently from 45c24fc to ed1104c Compare July 23, 2026 15:48
@andrewkroh andrewkroh added the Team:Security-Service Integrations Security Service Integrations team [elastic/security-service-integrations] label Jul 23, 2026
@infra-vault-gh-plugin-prod

Copy link
Copy Markdown

Pinging @elastic/security-service-integrations (Team:Security-Service Integrations)

@vatsaldesai93
vatsaldesai93 force-pushed the fix/crowdstrike-anode-indicators-float branch from ed1104c to 4539222 Compare July 23, 2026 16:34
@vera-review-bot

Copy link
Copy Markdown

No issues across the latest commits 4539222.

Since this is a community PR, a new commit triggers another review — at most once every 30 minutes. I skip the PR while it's approved or has merge conflicts.

🤖 AI-Generated Review | Vera Review Bot | 📚 Knowledge base: integration-skills

⚠️ Automated review — verify suggestions before applying.

@efd6

efd6 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

/test

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

🚀 Benchmarks report

To see the full report comment with /test benchmark fullreport

@efd6 efd6 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add/modify system test events to test this.

vatsaldesai93 and others added 2 commits July 23, 2026 20:58
…fdr, alert)

CrowdStrike's ANODE anomaly indicators carry numeric values that are usually
decimals but occasionally whole numbers. These leaves weren't declared in the
package, so each index inferred the type from the first value seen — an
integer-first index mapped the field as long and later decimals were rejected
to the failure store. Declaring them float across the falcon, fdr, and alert
data streams fixes the type regardless of ingest order.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add data-protection events carrying fractional ANODE values to the
pipeline tests for all three data streams, plus end-to-end system-test
events for the falcon logfile input and the alert CEL mock, exercising
the float leaves declared in the previous commit.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vatsaldesai93
vatsaldesai93 force-pushed the fix/crowdstrike-anode-indicators-float branch from 4539222 to ae9b5b5 Compare July 26, 2026 02:10
@vatsaldesai93

Copy link
Copy Markdown
Contributor Author

@efd6 added test events that exercise the new float leaves

@vera-review-bot

Copy link
Copy Markdown

⚠️ @vatsaldesai93 I couldn't complete the review for commits 7bd7353ae9b5b5 (7 commits) after several attempts. A maintainer can re-run it with @vera-review-bot review.

@vatsaldesai93
vatsaldesai93 requested a review from efd6 July 26, 2026 17:52
@efd6

efd6 commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

/test

@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

✅ All changelog entries have the correct PR link.

@infra-vault-gh-plugin-prod

Copy link
Copy Markdown

💚 Build Succeeded

History

@efd6 efd6 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

@mergify

mergify Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@efd6
efd6 merged commit 7ccff54 into elastic:main Jul 27, 2026
4 checks passed
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package crowdstrike - 4.4.1 containing this change is available at https://epr.elastic.co/package/crowdstrike/4.4.1/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. Integration:crowdstrike CrowdStrike Team:Security-Service Integrations Security Service Integrations team [elastic/security-service-integrations]

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants