StackGuardian / StackGuardian/tirith

feat(core): `condition.transform` — `json_decode`, `path`, `length`

Open
#338 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.