Skip to content

0.8.0

Choose a tag to compare

@lex00 lex00 released this 12 Oct 00:35
· 90 commits to main since this release
dc1be43

SQL Yodeler 0.8.0 moves the review-and-apply plumbing onto chant (0.124.3): webhooks, overrides, the PR comment, the drift issue, the steps around apply, and the audit read. The yodel commands and their config keys are the same. Some of what they send and accept changed; read this before you upgrade.

Breaking changes

Webhook event body

Events are now chant's chant.notify/v1 body. A receiver that only verifies the signature needs no change: the headers (x-yodel-signature, x-yodel-timestamp) and the signed string (<timestamp>.<body>, as since 0.7.0) are the same, and @intentius/sql-yodeler/webhook still verifies under plain Node. A receiver that reads fields needs these changes:

0.7.0 0.8.0
version: 1 schema: "chant.notify/v1", source: "sql-yodeler"
migrations targets
approve (a string) approve.command
chantApprove approve.chant
command detail.command
runUrl, repository, commit run.url, run.repository, run.commit
id, random per send id, the same for a repeat of one event

Slack gets chant's message in place of yodel's line, and notify also accepts teams. See docs/notify.md.

Overrides

yodel override records and decides through chant's override gate (#207).

  • One override names every rule that denies the plan; leaving one out is refused.
  • Under the sealed approval mode an override must be sealed.
  • An override recorded before 0.8.0 no longer counts. A plan overridden but not yet applied needs yodel override again.
  • chant approve policy-override warns that there is no .chant/overriders file. That is expected: yodel keeps the list in policy.overriders in yodel.config.ts.

Steps around apply

environments.<env>.steps.before and .after now run as chant's Op waves stage hooks, under yodel's apply lock (#206). A step that fails stops the steps after it, unless its onFailure is approve; 0.7.0 ran every step and then judged. A wave apply that changes nothing records both moments as skipped. --wave-plan no longer warns or sends a webhook that a held wave will wait: chant prints the approval command.

PR comment and drift issue

yodel plan --comment and the drift issue post through chant's forge client (#210); yodel makes no forge REST calls of its own.

  • Token order: each forge reads CHANT_<FORGE>_TOKEN first, then GH_TOKEN before GITHUB_TOKEN (Forgejo also reads FORGEJO_TOKEN).
  • With several marked comments on one PR, the oldest is read and updated. yodel only ever keeps one.
  • The drift issue is edited only when the drift itself changes, and closed when a run finds none.

Added

  • Each apply, revert, baseline and declarative apply appends the environment's schema digest to chant's release ledger (#208), so chant components status prod --compare-to staging says whether prod holds the schema staging tested. Promotion between environments stays yodel apply; see docs/audit.md.

Changed

  • yodel report reads the gate ledger through chant's reader (#212). Its output is unchanged.
  • Binary files go in Git LFS, and check fails on one that is not (#213).
  • The scenario claims are 9 in place of 17, with short names (#205).