StackGuardian / StackGuardian/tirith
feat(core): `condition.transform` — `json_decode`, `path`, `length`
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 165
- Forks
- 42
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 11
Description
Three steps, not eight — measured demand concentrates there: JSON-in-string (IAM policy documents
behind jsonencode), path into the decoded value, and length/count. Date arithmetic is the next
largest measured need (e.g. certificate-expiry checks) — a value_type-style coercion layer (age, size, cidr, cidr_size, version,
resource_count) — a shape field-proven at scale in mature policy tooling — is the design
source. Mandatory hardening: wrap each step in
try/except Exception (an OverflowError from date parsing or a RecursionError from
json.loads currently escapes and kills the run), emit meta once per source input (measured
6.7 KB → 159 KB on one 50-container task definition), and treat a null attribute behind a transform
as ProviderError(severity 2). Also the honest answer to the #207 CIDR-evaluator ask. Depends on
the R1 skip-ordering and variable-recursion fixes.
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
The issue does not name implementation files, tests, or entry points. First resolve the stated R1 skip-ordering and variable-recursion dependencies, then define the three transform steps and hardening requirements; done means those steps, error handling, metadata behavior, and null-attribute handling are implemented without escaping failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100