You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 9e0ec86
Browse filesBrowse the repository at this point in the historyBrowse files
fix(plugin-webhooks): round 2 — the boot report and docs only; the activation door's refusal and the reader verdict go
The activation door's 200 -> 503 narrowing is the maintainer's to rule, so
packages/runtime is back to main's bytes, and the declared-webhook reader's
dispatch verdict (its only consumer was that door) is removed.
Claude-Session: https://claude.ai/code/session_011TdZ8GjixNZFLz1xJD9zzK
Co-authored-by: Claude <noreply@anthropic.com>
fix(plugin-webhooks,runtime): a declared webhook that the deployment can never deliver is reported at `error`once at boot, and the activation door refuses to switch it on
5
+
fix(plugin-webhooks): a declared webhook that the deployment can never deliver is reported once at boot, at `error`, with the consequence and the fix
7
6
8
7
Clause-②: no
9
8
10
9
The webhook auto-enqueuer reads record events only from the realtime service. A stack with `requires: ['webhooks']` and no `'realtime'` therefore never delivers a declared webhook.
11
10
12
11
-**Before.**
13
12
- The boot logged one `WARN [webhook-auto-enqueuer] disabled — ObjectQL, Realtime, or Messaging service not available`. The line named no webhook, gave no consequence and gave no fix.
14
-
-`POST /api/v1/security/_activation/webhook/NAME` with `{ "enabled": true }` answered `200 { enabled: true }` and wrote the activation row.
15
-
- Every record write still answered 200, and no delivery row was ever written.
16
-
-**After** (`@objectstack/plugin-webhooks`). When the stack declares at least one webhook, the boot logs one `error` line instead of the warning. The line names each declared webhook and says that none of them will be delivered while record writes keep succeeding. It names the missing service and the fix, for example "add 'realtime' to `requires`". A stack that declares no webhook gets the same `warn` as before.
17
-
-**After** (`@objectstack/runtime`). On such a deployment, switching a declared webhook ON through the activation door answers `503` with `error.code: 'SERVICE_UNAVAILABLE'` and writes nothing. The message gives the same reason and fix as the boot line. Switching one OFF still answers `200` and writes the row. A name nothing declares is still `404`. The authority checks still answer first.
13
+
- Every record write still answered 200, the declaration still read active, and no delivery row was ever written.
14
+
-**After.** When the stack declares at least one webhook, the boot logs one `error` line instead of the warning. The line names each declared webhook and says none of them will be delivered while record writes keep succeeding. It names the missing service and the fix, for example "add 'realtime' to `requires`". A stack that declares no webhook gets the same `warn` as before.
18
15
-**Unchanged.**
19
-
- Every deployment whose auto-enqueuer runs: switching on and off and delivery behave as before.
20
-
- A host that constructs `WebhookOutboxPlugin` with `autoEnqueue: false` gets no new log line and no new refusal. It has turned the enqueuer off itself, and redelivery still reads the switch.
21
-
-`os validate` and `os build` are unchanged. They still accept a stack that declares webhooks without these tokens.
16
+
- Every deployment whose auto-enqueuer runs.
17
+
- A host that constructs `WebhookOutboxPlugin` with `autoEnqueue: false` gets no new log line. It turned the enqueuer off itself.
18
+
-`os validate` and `os build`: they still accept a stack that declares webhooks without these tokens.
19
+
- The activation door (`POST /api/v1/security/_activation/webhook/NAME`): it answers exactly as before.
22
20
-**What to do.** A stack that declares webhooks needs `requires` to include both `'webhooks'` and `'realtime'`.
0 commit comments