Skip to content

Directory: describe recipe snapshots as operator-trusted config and log their source - #261

Merged
randomblocker merged 1 commit into
phase0-completionfrom
contrib/community-156-recipe-snapshot-auth
Nov 6, 2026
Merged

randomblocker merged 1 commit into
phase0-completionfrom
contrib/community-156-recipe-snapshot-auth

Conversation

@randomblocker

@randomblocker randomblocker commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

resolveConfiguredRecipeSnapshot accepts the recipe registry snapshots in DACS_RECIPE_SNAPSHOTS after checking only their shape. Its doc comment called them "Operator-authenticated", but nothing authenticates them. The pinned Standard defines no steward key yet, so there is nothing to verify a signed index against. This PR therefore corrects the claim instead of adding verification:

  • Wording: the doc comment, the README and SPEC_PIN now say the snapshots are operator-trusted configuration, unauthenticated until the Standard defines a steward key.
  • Log line: when the env value changes from the last one resolved, the resolver logs one line, DACS_RECIPE_SNAPSHOTS: <n> snapshots, <m> trusted signers, so an operator can see that snapshots are configured and how many snapshots and signers they hold (the line names no version or digest). The resolver has no production caller yet, so the line appears once a caller is wired in. No keys or snapshot contents are logged.
  • Tests in test/recipe-snapshot.test.ts:
    • The trustedResultSigners roster comes only from the env var. A signer list carried by a recipe result, the requirement, a fetched document or the snapshot object adds nothing, and a key outside the env roster is refused.
    • The log line's exact content, and that it contains no key.
    • The docs and comment wording.
  • Unchanged: the shape checks; malformed input still fails closed.

Verifying a signed snapshot index (a steward key, a detached index with per-snapshot hashes) is a later change that waits on the Standard defining a steward key.

Full directory suite: 1677 pass, 0 fail; typecheck clean.

Closes #156

🤖 Generated with Claude Code


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.

…e, test the signer roster source

DACS_RECIPE_SNAPSHOTS is operator-trusted configuration and is unauthenticated until the Standard defines a steward key. The resolver comment, README and SPEC_PIN now say so instead of calling it authenticated.

The first resolution of a configuration value logs one line with the source name and the snapshot and trusted-signer counts, never keys or contents. A test shows the trusted signer roster comes only from DACS_RECIPE_SNAPSHOTS: a result, request field or fetched document that carries its own signer list adds nothing.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@randomblocker
randomblocker marked this pull request as ready for review November 6, 2026 19:53
@randomblocker
randomblocker merged commit 3871fea into phase0-completion Nov 6, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant