refactor(email): use qbit-email's public api package; no G1 allow-list #19

Merged
KofTwentyTwo merged 1 commits from feature/email-api into develop 2026-10-14 15:25:08 +00:00
KofTwentyTwo commented 2026-10-14 15:20:39 +00:00 (Migrated from github.com)

Follow-up to QRun-IO/qbit-marketing#13 (cross-qbit imports of qbit-email internals).

  • Every qbit-email reference now goes through the published com.kingsrook.qbits.email.api (EmailApi, EmailApiRequest, EmailApiResult, EmailApiTemplate, ...) in qbit-email 0.1.0-RC.2 from Central. Behaviour is identical: same templates, categories, idempotency keys, linked records and status mapping. Tests use the producer and config only to set up the host instance.
  • qbit-build-parent 2.1.1: its default G1 allow-lists include qbit-email's API (QRun-IO/qbit-bom#12), so the per-repo qbit.guardrails.allowed* properties are removed.
  • ./mvnw verify green against Central's RC.2 and parent 2.1.1, guardrails on.

Next step once a QQQ RC carries QRun-IO/qqq#1194: send-only paths move to core SendMessageAction with provider qbitEmail, and the api package stays only for lookups.

🤖 Generated with Claude Code

Follow-up to QRun-IO/qbit-marketing#13 (cross-qbit imports of qbit-email internals). - Every qbit-email reference now goes through the published `com.kingsrook.qbits.email.api` (`EmailApi`, `EmailApiRequest`, `EmailApiResult`, `EmailApiTemplate`, ...) in qbit-email **0.1.0-RC.2** from Central. Behaviour is identical: same templates, categories, idempotency keys, linked records and status mapping. Tests use the producer and config only to set up the host instance. - **qbit-build-parent 2.1.1**: its default G1 allow-lists include qbit-email's API (QRun-IO/qbit-bom#12), so the per-repo `qbit.guardrails.allowed*` properties are removed. - `./mvnw verify` green against Central's RC.2 and parent 2.1.1, guardrails on. Next step once a QQQ RC carries QRun-IO/qqq#1194: send-only paths move to core `SendMessageAction` with provider `qbitEmail`, and the api package stays only for lookups. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.