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
@@ -6,28 +6,28 @@
<el-menu-item index="/">
<span>首页</span>
</el-menu-item>
<el-menu-item index="/customers">
<el-menu-item v-if="auth.hasAnyRole(['SYS_ADMIN', 'DEVELOPER'])" index="/customers">
<span>客户管理</span>
</el-menu-item>
<el-menu-item index="/projects">
<el-menu-item v-if="auth.hasAnyRole(['SYS_ADMIN', 'DEVELOPER'])" index="/projects">
<span>项目管理</span>
</el-menu-item>
<el-menu-item index="/contracts">
<el-menu-item v-if="auth.hasAnyRole(['SYS_ADMIN', 'DEVELOPER'])" index="/contracts">
<span>合同管理</span>
</el-menu-item>
<el-menu-item index="/deliveries">
<el-menu-item v-if="auth.hasAnyRole(['SYS_ADMIN', 'DEVELOPER'])" index="/deliveries">
<span>交付管理</span>
</el-menu-item>
<el-menu-item index="/licenses/sn">
<el-menu-item v-if="auth.hasAnyRole(['SYS_ADMIN', 'DEVELOPER'])" index="/licenses/sn">
<span>许可 SN</span>
</el-menu-item>
<el-menu-item index="/callbacks">
<el-menu-item v-if="auth.hasAnyRole(['SYS_ADMIN', 'OPS'])" index="/callbacks">
<span>Callback 收件箱</span>
</el-menu-item>
<el-menu-item index="/integration/environments">
<el-menu-item v-if="auth.hasAnyRole(['SYS_ADMIN', 'DEVELOPER', 'OPS'])" index="/integration/environments">
<span>集成环境</span>
</el-menu-item>
<el-menu-item index="/integration/product-lines">
<el-menu-item v-if="auth.hasAnyRole(['SYS_ADMIN', 'DEVELOPER', 'OPS'])" index="/integration/product-lines">
<span>产品线</span>
</el-menu-item>
</el-menu>