Skip to content

Bloodhound v2 → main (cost-breakdowns + /guard + docs) - #3

Open
jdcbautista wants to merge 7 commits into
mainfrom
land-v2-on-main
Open

Bloodhound v2 → main (cost-breakdowns + /guard + docs)#3
jdcbautista wants to merge 7 commits into
mainfrom
land-v2-on-main

Conversation

@jdcbautista

Copy link
Copy Markdown

Promotes the latest v2 line to main, which was still on the v1 architecture-diagram commit from June 2024.

What this brings in

  • Full Bloodhound v2 from feature/2026-06-26-cost-breakdowns-slack (fast-forward of the old main): modular scanner, Slack reporting, whitelist, safe teardown, cost breakdowns, and the /guard guardrail command (service allow/deny, group membership).
  • Docs: README rewritten to lead with the Slack slash-command reference (including /guard and a Bedrock allow/deny example) and clear deploy steps. Fixed a stale reference to invoke_lambda_v2.yml (actual: invoke_lambda.yml) and documented the GUARD_* env vars in env.example.

Notes

  • The parallel v2 effort in PR Bloodhound v2 – CI/CD, Validation, and Operational Documentation Updates #2 (CI/CD, services architecture, extensive operational docs) is not included here — it has diverged (81 commits from the common base) and lacks /guard. Integrating it is a tracked follow-up.
  • This does not deploy anything; the only Actions workflow just invokes an existing Lambda and is currently disabled.

🤖 Generated with Claude Code

tsmith4014 and others added 7 commits December 20, 2025 18:36
…wn controls

Summary
- Replace v1 script with v2 package architecture (scanner/budget/whitelist/teardown).
- Slack reporting: scan summary (per region + totals, including 0 counts for scanned types), budget summary, teardown plan/results, and dedicated whitelisted resources list.
- Whitelist: tag-based keep rule (default bloodhound:keep=true) plus optional KEEP_RESOURCE_IDS.
- Teardown: dry-run by default; apply-mode gated by APPLY_CHANGES and supports simulate mode (TEARDOWN_SIMULATE) plus safety rails (TEARDOWN_TARGET_IDS, TEARDOWN_ALLOW_ALL).
- Budgeting: 7-month cohort spend tracking and month-end projection via Cost Explorer.

Operational
- Add lambda handler entrypoint (lambda_function.lambda_handler) and local runner (run_local.py).
- Add env.example and .env auto-loading for local runs.
- Add .gitignore to prevent committing secrets/venvs/build zips.
- Update requirements to resolve urllib3/botocore conflict.
- Add v2 GitHub Actions workflow (invoke_lambda_v2.yml).
- Add v2 plan doc and split Slack setup into SLACK_SETUP.md.

Notes
- v1 is preserved separately under versions/v1_0/ outside this repo directory; v2 deletes/terminations require explicit env flags.
- Move Lambda entrypoint into handlers/ and update Terraform handler + build pipeline
- Move docs into docs/ and link from README
- Move local runner + AWS helper JSON into tools/
- Remove empty scripts directory
- Keep functionality unchanged (only paths/organization)
… the demo, feel free to use this just update with your aws profile, it builds 8 ec2, 2 rds and half get whitelisted, cleaned up readme
…oy; document GUARD_* env vars

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.

3 participants