Repository navigation
0.8.0
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 overrideagain. chant approve policy-overridewarns that there is no.chant/overridersfile. That is expected: yodel keeps the list inpolicy.overridersin 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>_TOKENfirst, thenGH_TOKENbeforeGITHUB_TOKEN(Forgejo also readsFORGEJO_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 stagingsays whether prod holds the schema staging tested. Promotion between environments staysyodel apply; see docs/audit.md.