StackGuardian / StackGuardian/tirith
research(provider): cloud runtime state as a table-keyed json document
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 165
- Forks
- 42
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 11
Description
Most cloud-compliance policies (CIS, PCI and framework packs) read live cloud state, not a file.
The Tirith side is small: an envelope convention ({"snapshot_version": …, "aws_s3_bucket": [row, …]}) read through the json provider with absence-padding — not a new provider package.
The collector question has a better answer than "build one": AWS Config configuration snapshots,
Azure Resource Graph and GCP Cloud Asset Inventory each emit a keyed JSON inventory inside the
customer's account — Tirith reads a file and never holds a cloud credential, so the project becomes
"read three export formats". An existing multi-cloud inventory tool remains the right general-purpose collector. Open needs:
a redactor (live API rows hold credential reports and key policies), staleness that fails closed,
and the nothing-in-scope decision ("no rows of that table" is the modal case).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the existing JSON provider and trace how table-keyed documents and absence-padding are handled. Compare AWS Config, Azure Resource Graph, and GCP Cloud Asset Inventory export shapes, then resolve the redaction, fail-closed staleness, and no-rows behavior described in the issue. Done means the supported export formats and those edge cases have clear, tested behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, azure, gcp, python
- Domain
- cloud, data, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100