Commit df71b46
committed
spec(governance-admin): v0.1.25.33 — webhook lifecycle EventTypes + per-row event emission
Closes the v0.1.25.32 deferral that explicitly carved out webhooks from
the bulk-action Event emission contract because no `webhook.*` lifecycle
EventTypes existed. This revision adds the EventTypes and wires per-row
Event emission through `bulkActionWebhooks`, the three single-op webhook
operations, and the dispatcher's auto-disable transition.
Changes to `cycles-governance-admin-v0.1.25.yaml`:
- EventType enum: six new values under a new "Webhook lifecycle" group
between the tenant and api_key blocks —
webhook.created / webhook.updated / webhook.paused / webhook.resumed /
webhook.disabled / webhook.deleted. Naming follows the
tenant.suspended / tenant.reactivated precedent: each event name
mirrors the resulting status, rather than the v0.1.25.32 note's
provisional webhook.enabled / webhook.disabled pairing which would
have conflated operator PAUSE with dispatcher auto-DISABLE.
webhook.disabled is now reserved exclusively for the health-driven
transition.
- New schema EventDataWebhookLifecycle — mirrors EventDataTenantLifecycle;
carries subscription_id, tenant_id, previous_status, new_status,
changed_fields, disable_reason.
- bulkActionWebhooks: added EVENTS block documenting the per-row
emission contract (PAUSE → webhook.paused, RESUME → webhook.resumed,
DELETE → webhook.deleted), skipped/failed rows produce no Event,
correlation_id = webhook_bulk_action:<action>:<request_id>.
bulkActionWebhooks explicitly never emits webhook.disabled.
- createWebhookSubscription / updateWebhookSubscription /
deleteWebhookSubscription: EVENTS blocks documenting the single-op
emission contract and correlation_id patterns. updateWebhookSubscription
disambiguates status-change PATCH (emits webhook.paused/resumed) from
pure property-change PATCH (emits webhook.updated). No-op PATCH emits
nothing.
- WebhookSubscription.FAILURE HANDLING: documents that the dispatcher
MUST emit webhook.disabled on auto-transition with
correlation_id = webhook_auto_disable:<subscription_id>:<failure_batch_id>
and populate disable_reason. Emission happens in the dispatcher
component, not the admin API.
- info.version 0.1.25.32 → 0.1.25.33; info.summary trailer extended.
Also prepends a v0.1.25.33 changelog entry (Keep-a-Changelog) and
regenerates merged/cycles-openapi-admin-merged.yaml.
Additive-only: new enum values (existing clients MUST ignore
unrecognized values per the EventType extensibility note), new optional
schema, new prose sections. No removals, no renames, no wire-breaking
changes. Reference servers compile against the regenerated model
without code changes; a follow-up cycles-server-admin patch release
will wire the emits into WebhookAdminController and the dispatcher's
auto-disable path.
The existing cascade variant webhook.disabled_via_tenant_cascade is
unchanged — the tenant-close cascade retains its v0.1.25.29 Rule 1
identity (tenant_close_cascade:<tenant_id>:<request_id>) and is
distinct from the new standalone webhook.disabled event.1 parent d081a9a commit df71b46
3 files changed
Lines changed: 321 additions & 7 deletions
File tree
- changelogs
- merged
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
9 | 93 | | |
10 | 94 | | |
11 | 95 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
16 | 22 | | |
17 | 23 | | |
18 | 24 | | |
| |||
1612 | 1618 | | |
1613 | 1619 | | |
1614 | 1620 | | |
| 1621 | + | |
| 1622 | + | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
| 1626 | + | |
| 1627 | + | |
| 1628 | + | |
1615 | 1629 | | |
1616 | 1630 | | |
1617 | 1631 | | |
| |||
2101 | 2115 | | |
2102 | 2116 | | |
2103 | 2117 | | |
| 2118 | + | |
| 2119 | + | |
| 2120 | + | |
| 2121 | + | |
| 2122 | + | |
| 2123 | + | |
| 2124 | + | |
| 2125 | + | |
| 2126 | + | |
| 2127 | + | |
| 2128 | + | |
| 2129 | + | |
| 2130 | + | |
| 2131 | + | |
| 2132 | + | |
| 2133 | + | |
| 2134 | + | |
| 2135 | + | |
| 2136 | + | |
| 2137 | + | |
| 2138 | + | |
| 2139 | + | |
| 2140 | + | |
| 2141 | + | |
| 2142 | + | |
| 2143 | + | |
| 2144 | + | |
| 2145 | + | |
| 2146 | + | |
| 2147 | + | |
| 2148 | + | |
| 2149 | + | |
| 2150 | + | |
| 2151 | + | |
| 2152 | + | |
| 2153 | + | |
| 2154 | + | |
| 2155 | + | |
| 2156 | + | |
| 2157 | + | |
| 2158 | + | |
2104 | 2159 | | |
2105 | 2160 | | |
2106 | 2161 | | |
| |||
2192 | 2247 | | |
2193 | 2248 | | |
2194 | 2249 | | |
2195 | | - | |
| 2250 | + | |
| 2251 | + | |
| 2252 | + | |
| 2253 | + | |
| 2254 | + | |
| 2255 | + | |
| 2256 | + | |
| 2257 | + | |
2196 | 2258 | | |
2197 | 2259 | | |
2198 | 2260 | | |
| |||
5955 | 6017 | | |
5956 | 6018 | | |
5957 | 6019 | | |
| 6020 | + | |
| 6021 | + | |
| 6022 | + | |
| 6023 | + | |
| 6024 | + | |
| 6025 | + | |
5958 | 6026 | | |
5959 | 6027 | | |
5960 | 6028 | | |
| |||
6185 | 6253 | | |
6186 | 6254 | | |
6187 | 6255 | | |
| 6256 | + | |
| 6257 | + | |
| 6258 | + | |
| 6259 | + | |
| 6260 | + | |
| 6261 | + | |
| 6262 | + | |
| 6263 | + | |
| 6264 | + | |
| 6265 | + | |
| 6266 | + | |
| 6267 | + | |
| 6268 | + | |
| 6269 | + | |
| 6270 | + | |
| 6271 | + | |
| 6272 | + | |
| 6273 | + | |
| 6274 | + | |
| 6275 | + | |
| 6276 | + | |
6188 | 6277 | | |
6189 | 6278 | | |
6190 | 6279 | | |
| |||
6254 | 6343 | | |
6255 | 6344 | | |
6256 | 6345 | | |
| 6346 | + | |
| 6347 | + | |
| 6348 | + | |
| 6349 | + | |
| 6350 | + | |
| 6351 | + | |
| 6352 | + | |
6257 | 6353 | | |
6258 | 6354 | | |
6259 | 6355 | | |
| |||
6820 | 6916 | | |
6821 | 6917 | | |
6822 | 6918 | | |
| 6919 | + | |
| 6920 | + | |
| 6921 | + | |
| 6922 | + | |
| 6923 | + | |
| 6924 | + | |
| 6925 | + | |
| 6926 | + | |
| 6927 | + | |
| 6928 | + | |
| 6929 | + | |
| 6930 | + | |
| 6931 | + | |
| 6932 | + | |
| 6933 | + | |
| 6934 | + | |
| 6935 | + | |
| 6936 | + | |
| 6937 | + | |
| 6938 | + | |
| 6939 | + | |
| 6940 | + | |
| 6941 | + | |
| 6942 | + | |
| 6943 | + | |
| 6944 | + | |
| 6945 | + | |
| 6946 | + | |
| 6947 | + | |
6823 | 6948 | | |
6824 | 6949 | | |
6825 | 6950 | | |
| |||
0 commit comments