You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a pkg/recipe registry-validation guard that blocks new registry
components from landing without a healthCheck.assertFile, and enforces
the read-only assertion allowlist on registry-declared Chainsaw content.
Lands after #660 PR 3 (backfill) so all current components are covered
before the guard begins enforcing.
Scope
Required healthCheck.assertFile on new components
Lint-level check in pkg/recipe that runs as part of the existing
repo CI / make qualify surface (not new runtime behavior).
Rejects any recipes/registry.yaml entry that lacks healthCheck.assertFile after this PR lands.
Summary
Add a
pkg/reciperegistry-validation guard that blocks new registrycomponents from landing without a
healthCheck.assertFile, and enforcesthe read-only assertion allowlist on registry-declared Chainsaw content.
Lands after #660 PR 3 (backfill) so all current components are covered
before the guard begins enforcing.
Scope
Required
healthCheck.assertFileon new componentspkg/recipethat runs as part of the existingrepo CI /
make qualifysurface (not new runtime behavior).recipes/registry.yamlentry that lackshealthCheck.assertFileafter this PR lands.declare
assertFileby the time this PR ships ([EPIC] Reuse Chainsaw health checks in aicr validate --phase deployment #660 PR 3 must landfirst).
Read-only allowlist enforcement
that uses an operation other than
assert/error.caught at PR time, not in CI runs that exercise the validator.
Surface decision (open)
make qualifytime (custom Go check inpkg/recipetestsuite) vs. load-time at
aicr recipe(recipe resolution rejects).implementation; both are valid, but pick one — not both.
Out of Scope
are [EPIC] Reuse Chainsaw health checks in aicr validate --phase deployment #660 PR 3 / PR 4).
expectedResources(the long-term disposition of theparallel reporting path is a separate decision; see [EPIC] Reuse Chainsaw health checks in aicr validate --phase deployment #660 PR 2 for
the transition period).
Acceptance Criteria
make qualify(or the chosen surface) fails when a new registryentry lacks
healthCheck.assertFile.make qualifyfails when registry-declared assert content uses anoperation outside the
assert/errorallowlist.ErrCodeInvalidRequestwith theoffending component name + operation.
docs/contributor/recipe.md(or equivalent)explains the contract for new components.
Related