refactor(signing): core WebhookSigner/WebhookVerifier (qqq#1160) #13

Merged
KofTwentyTwo merged 1 commits from feature/arch-core-signer into develop 2026-10-14 00:36:50 +00:00
KofTwentyTwo commented 2026-10-14 00:33:21 +00:00 (Migrated from github.com)

Summary

Resolves QRun-IO/qqq#1160, filed in qqq because this repo has issues disabled. Source: architecture review QRun-IO/qqq#1150, finding F11 (four webhook signers become one).

  • Bumps the baseline to QQQ 4.1.0-RC.5.
  • Deletes shared/signing/ (WebhookSigner, WebhookVerifier, WebhookSecret, WebhookVerificationException). DeliveryEngine, EndpointSecrets and the table customizers now use core com.kingsrook.qqq.backend.core.utils.webhooks (#1109).
  • Wire format unchanged. It was compared byte-for-byte with core at v4.1.0-RC.5: headers webhook-id/webhook-timestamp/webhook-signature, the v1, prefix, whsec_ secrets, timestamp tolerance and multi-signature rotation. No adapter was needed.
  • The qbit keeps endpoints, secret storage and delivery.
  • Host impact: code that imported com.kingsrook.qbits.webhooks.shared.signing.* must import the core classes instead. Receivers see no change.

Tests

mvnw -B verify: 146 tests, 0 failures, 0 checkstyle violations. Coverage is 92.78% instructions and 100% classes.

New signing/ tests:

  • signing in both directions with the core verifier (bidirectional HMAC interop);
  • two-secret rotation;
  • timestamp boundaries.

🤖 Generated with Claude Code

## Summary Resolves QRun-IO/qqq#1160, filed in qqq because **this repo has issues disabled**. Source: architecture review QRun-IO/qqq#1150, finding F11 (four webhook signers become one). - Bumps the baseline to **QQQ 4.1.0-RC.5**. - Deletes `shared/signing/` (`WebhookSigner`, `WebhookVerifier`, `WebhookSecret`, `WebhookVerificationException`). `DeliveryEngine`, `EndpointSecrets` and the table customizers now use core `com.kingsrook.qqq.backend.core.utils.webhooks` (#1109). - **Wire format unchanged.** It was compared byte-for-byte with core at `v4.1.0-RC.5`: headers `webhook-id`/`webhook-timestamp`/`webhook-signature`, the `v1,` prefix, `whsec_` secrets, timestamp tolerance and multi-signature rotation. No adapter was needed. - The qbit keeps endpoints, secret storage and delivery. - **Host impact:** code that imported `com.kingsrook.qbits.webhooks.shared.signing.*` must import the core classes instead. Receivers see no change. ## Tests `mvnw -B verify`: 146 tests, 0 failures, 0 checkstyle violations. Coverage is 92.78% instructions and 100% classes. New `signing/` tests: - signing in both directions with the core verifier (bidirectional HMAC interop); - two-secret rotation; - timestamp boundaries. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.