Skip to content

feat(crowdstrike): add CrowdStrike Falcon as a first-class evidence-collection provider - #10

Draft
austinsonger wants to merge 12 commits into
mainfrom
worktree/crowdstrike-cloud-provider-plan-a43766
Draft

austinsonger wants to merge 12 commits into
mainfrom
worktree/crowdstrike-cloud-provider-plan-a43766

Conversation

@austinsonger

Copy link
Copy Markdown
Owner

Summary

  • Adds a crowdstrike-rs workspace crate for the CrowdStrike Falcon REST API: OAuth2 client-credentials auth with a shared token cache/refresh, HTTP 429 retry with backoff, and a single 401-triggered token-refresh retry.
  • Adds five CSV collectors mirroring the existing Tenable/Okta/Jira pattern: crowdstrike-hosts, crowdstrike-alerts (time-windowed), crowdstrike-vulnerabilities (Spotlight), crowdstrike-prevention-policies, crowdstrike-sensor-update-policies.
  • Wires CrowdStrike into the TUI: provider-selection tile, per-provider collector menu, navigation (no extra screens, same as Okta/Jira), and default collector-key handling.
  • Wires account config: crowdstrike_client_id/crowdstrike_client_secret/crowdstrike_base_url fields on Account, env-var overrides (CROWDSTRIKE_CLIENT_ID/CROWDSTRIKE_CLIENT_SECRET/CROWDSTRIKE_BASE_URL), and crowdstrike-config.toml merge (see crowdstrike-config.example.toml).
  • New optional Cargo feature crowdstrike, included in default alongside tenable/okta/jira.
  • Documents the new provider in README.md, cli-examples.md, and evidence-list.md (EV203EV207).

Implements docs/plans/2026-07-17-add-crowdstrike.md.

Test plan

  • cargo check --workspace --all-features passes
  • cargo fmt --check passes
  • cargo test --workspace --all-features passes (one unrelated pre-existing okta-rs test — users_test::list_all_users_follows_pagination — hangs/times out independent of this change; okta-rs was not touched by this PR)
  • Manual TUI smoke test against a real or invalid Falcon API client (Feature Selection → Collectors → Provider Selection → CrowdStrike → Select Collectors → Options → Confirm → Run)

Austin Songer added 12 commits July 22, 2026 01:49
…ollection provider

Adds a crowdstrike-rs workspace crate (OAuth2 client-credentials auth with
token cache/refresh, 429 retry, 401-retry-once) plus five CSV collectors
(hosts, alerts, Spotlight vulnerabilities, prevention policies, sensor
update policies), wired into the TUI account picker, provider menu,
navigation, and runner exactly like the existing Tenable/Okta/Jira
providers. Enabled by default via the new `crowdstrike` Cargo feature.
…cloud-provider-plan-a43766

# Conflicts:
#	.gitignore
#	Cargo.toml
#	README.md
#	evidence-list.md
#	src/app_config.rs
#	src/providers/mod.rs
#	src/runner/tui_session.rs
#	src/tui/app/nav.rs
#	src/tui/events.rs
#	src/tui/menus/mod.rs
#	src/tui/ui/account_screens.rs
…cloud-provider-plan-a43766

# Conflicts:
#	Cargo.toml
#	src/tui/events.rs
#	src/tui/ui/account_screens.rs
…cloud-provider-plan-a43766

# Conflicts:
#	README.md
#	evidence-list.md
#	src/app_config.rs
#	src/runner/tui_session.rs
#	src/tui/app/mod.rs
…cloud-provider-plan-a43766

# Conflicts:
#	cli-examples.md
…cloud-provider-plan-a43766

# Conflicts:
#	Cargo.toml
#	README.md
#	evidence-list.md
#	src/app_config.rs
…cloud-provider-plan-a43766

# Conflicts:
#	README.md
…cloud-provider-plan-a43766

# Conflicts:
#	evidence-list.md
…cloud-provider-plan-a43766

# Conflicts:
#	.gitignore
#	Cargo.toml
#	src/app_config.rs
…cloud-provider-plan-a43766

# Conflicts:
#	Cargo.toml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant