feat(i7): async webhook delivery queue, OPS RBAC, UI role routing; docs and runbook

- Architect: I7_DESIGN.md, I7_IMPLEMENTATION_REVIEW.md; parallel index + track B
- Backend: @EnableMethodSecurity; OPS login; CallbackInbox PreAuthorize; IntegrationCatalog triple role
- Webhook: V2 webhook_platform_delivery; planner + scheduler + single-shot forwarder; tests
- Frontend: Pinia hasAnyRole; MainLayout/HomeView/router for OPS vs dev
- Runbook §10.5 delivery config

Made-with: Cursor
This commit is contained in:
2026-04-06 23:01:10 +08:00
parent ce49fe143c
commit 5fe7181b35
33 changed files with 936 additions and 200 deletions
+12 -1
View File
@@ -132,4 +132,15 @@ curl -sS -o /dev/null -w "%{http_code}\n" \
### 10.4 Flyway 历史表
- 平台:`flyway_platform_api`(迁移含 `platform_callback_inbox`、M6 表等)。
- Webhook`flyway_webhook`收据表)。**同一 PostgreSQL 实例** 下两表共存,**勿**手动改名或合并。
- Webhook`flyway_webhook``V1` 收据表、`V2` **`webhook_platform_delivery`** 平台投递出库)。**同一 PostgreSQL 实例** 下两表共存,**勿**手动改名或合并。
### 10.5 I7:异步投递与调度(Webhook
| 配置 | 说明 |
|------|------|
| `craftlabs.platform.delivery.scheduler-enabled` | 默认 `true`;单测/特殊场景可 `false` |
| `craftlabs.platform.delivery.tick-ms` | 调度间隔(毫秒) |
| `craftlabs.platform.delivery.max-attempts` | 单条投递最大尝试次数,超限标记 **`DEAD`** |
| `craftlabs.platform.delivery.batch-size` | 每 tick 最多拉取条数 |
比特 Callback **2xx** 在收据落库与 **出站行入队** 之后返回;真正 `POST` 平台由后台线程执行。`DEAD` 行需人工依据 `last_error` 与平台侧幂等处理。