feat: guided empty states, Setup card and tables guardrail #18

Merged
KofTwentyTwo merged 2 commits from feature/tables-populated-defaults into develop 2026-10-14 22:11:31 +00:00
KofTwentyTwo commented 2026-10-14 21:44:55 +00:00 (Migrated from github.com)

Audit per table

table used? seeded? help
webhooks_endpoint yes: DeliveryEngine, EndpointHealth, processes no, host choice yes
webhooks_endpoint_secret yes: EndpointSecrets (signing, rotation, retire); expiresDate is enforced in signingKeys no, never seeded yes
webhooks_subscription yes: SubscriptionMatcher, DeliveryOutbox no, owner choice yes
webhooks_delivery yes: outbox writes, DeliveryEngine no, log yes
webhooks_delivery_attempt yes: DeliveryEngine claim no, log yes

No half-wired columns found. expiresDate was verified as enforced when signing and now has a test.

Changed

  • Help bundle help/qbit-webhooks.yaml plus WebhooksHelp (STAND-IN core=qqq#1198, fills empty slots only), including how event types come from the code-side WebhooksRegistry.
  • Setup card on the app home (WebhooksSetupStatus).
  • README, CHANGELOG, UPGRADE.

Tests

WebhooksTablesGuardrailTest, WebhooksSetupStatusTest, SignedDeliveryTest.expiredSecretStopsSigningBeforeItIsRetired, home test. ./mvnw verify green (157 tests, checkstyle, JaCoCo).

Not done

  • No seed defaults and no seeded-defaults test: nothing here is reference data.
  • No "Create defaults" action (nothing sensible to create).

🤖 Generated with Claude Code

## Audit per table | table | used? | seeded? | help | |---|---|---|---| | webhooks_endpoint | yes: DeliveryEngine, EndpointHealth, processes | no, host choice | yes | | webhooks_endpoint_secret | yes: EndpointSecrets (signing, rotation, retire); `expiresDate` is enforced in `signingKeys` | no, never seeded | yes | | webhooks_subscription | yes: SubscriptionMatcher, DeliveryOutbox | no, owner choice | yes | | webhooks_delivery | yes: outbox writes, DeliveryEngine | no, log | yes | | webhooks_delivery_attempt | yes: DeliveryEngine claim | no, log | yes | No half-wired columns found. `expiresDate` was verified as enforced when signing and now has a test. ## Changed - Help bundle `help/qbit-webhooks.yaml` plus `WebhooksHelp` (STAND-IN core=qqq#1198, fills empty slots only), including how event types come from the code-side `WebhooksRegistry`. - Setup card on the app home (`WebhooksSetupStatus`). - README, CHANGELOG, UPGRADE. ## Tests `WebhooksTablesGuardrailTest`, `WebhooksSetupStatusTest`, `SignedDeliveryTest.expiredSecretStopsSigningBeforeItIsRetired`, home test. `./mvnw verify` green (157 tests, checkstyle, JaCoCo). ## Not done - No seed defaults and no seeded-defaults test: nothing here is reference data. - No "Create defaults" action (nothing sensible to create). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.