Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

feat(terraform_plan): `resource_filter` — a per-record scoping predicate on `attribute` and `count`

Abierto
#316 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
python, terraform

Línea de trabajo

Comienza con el motor terraform_plan y la evaluación propuesta de resource_filter alrededor de change.after; después, resuelve las dependencias de R1 "nothing-in-scope" y skip-ordering. Confirma que el diseño cubre la cuestión de same-element binding antes de especificar la funcionalidad. Se considera terminado cuando están representadas las cinco correcciones obligatorias, incluido el manejo explícito de un scope vacío y los errores de validación cuando error_tolerance es inferior a 1.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

The single largest coverage win measured against public check libraries: a list of {attribute, type, value} clauses evaluated against
change.after before emission; a record failing any clause emits nothing, so the universal AND
quantifies over the in-scope subset. "Only postgres instances", "only internet-facing LBs" — the
per-resource scoping predicate is the most common reason a public check cannot be expressed in
Tirith today.

Five corrections are mandatory, all verified against the engine:

  1. change.after is None is out of scope unconditionally — IsEmpty(None), NotEquals(None,x)
    and NotContainedIn(None,[...]) all pass, so otherwise every destroy is in scope for every
    negative clause.
  2. The empty-scope branch must return outputs explicitly, or the severity-2 attribute miss also
    fires and fails the plan.
  3. DEFAULT_ERROR_TOLERANCE is 0, so validation must error (not warn) unless
    error_tolerance ≥ 1.
  4. Drop scope_path and a filtered-count existential from v1.
  5. Depends on the R1 decision "what does nothing-in-scope mean" and on the R1 skip-ordering fix.

Design question to settle before specification: many public checks bind two or three attributes
of the same array element (e.g. Kubernetes rules that must name both a resource and a verb;
name/value blocks where the name selects and the value is asserted). That is the same primitive
seen from inside a collection. Specified only as cross-resource scoping, resource_filter leaves
this on the table; specified as "bind several attributes of one collection member", it absorbs
both families at once — and it is exactly the same-element binding the documented at-least-one
idiom cannot do.

Lenguaje dominante
Python
Estrellas
167
Forks
47
Merge medio
2 h 44 min
PR fusionados (30 d)
5

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de StackGuardian/tirith

Todos los issues de StackGuardian/tirith

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.