iven
30a578ee00
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled
fix(health): 客户试用前全局审计修复 — P0 权限旁路 + API 路径 + 事件注册
P0 阻塞修复:
- 修复 PrivateRoute 权限旁路: p.startsWith('auth.') 匹配不到任何权限码,
改为基于实际权限码的路由级检查 (user.manage/role.manage/organization.manage)
- 修复 deviceReadings API 路径: /patients/{id}/device-readings/daily 改为
/vital-signs/daily?patient_id=, 消除 404
P1 重要修复:
- 补全事件注册表: 新增 auth(11) + config(8) + workflow(4) + plugin(2) = 25 条
- article_article_tag 联表新增 tenant_id + deleted_at + 审计列 (迁移 107)
- vital_signs_hourly 新增 deleted_at 支持软删除过滤 (迁移 108)
- 6 个页面添加权限守卫 (AlertDashboard/AlertRuleList/DeviceManage/
AiAnalysisList/AiUsageDashboard)
- DialysisModule 声明 auth 依赖
2026-05-04 11:02:25 +08:00
..
2026-05-04 11:02:25 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-11 02:03:23 +08:00
2026-04-15 00:49:20 +08:00
2026-04-11 02:03:23 +08:00
2026-04-15 00:49:20 +08:00
2026-04-12 16:58:47 +08:00
2026-04-11 02:03:23 +08:00
2026-04-11 02:03:23 +08:00
2026-04-11 02:03:23 +08:00
2026-04-11 08:09:19 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-11 08:09:19 +08:00
2026-04-15 00:49:20 +08:00
2026-04-11 08:09:19 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 00:49:20 +08:00
2026-04-11 12:49:45 +08:00
2026-04-11 12:49:45 +08:00
2026-04-15 23:32:02 +08:00
2026-04-11 14:16:45 +08:00
2026-04-15 00:49:20 +08:00
2026-04-15 23:32:02 +08:00
2026-04-15 23:32:02 +08:00
2026-04-17 10:08:09 +08:00
2026-04-17 10:32:12 +08:00
2026-04-17 21:42:40 +08:00
2026-04-19 08:46:28 +08:00
2026-04-19 00:49:00 +08:00
2026-04-19 12:16:24 +08:00
2026-04-19 18:25:03 +08:00
2026-04-23 23:25:53 +08:00
2026-04-24 08:05:58 +08:00
2026-04-24 00:58:40 +08:00
2026-04-25 00:21:49 +08:00
2026-04-24 07:50:14 +08:00
2026-04-24 08:36:22 +08:00
2026-04-25 11:31:54 +08:00
2026-04-25 08:58:58 +08:00
2026-04-25 10:22:44 +08:00
2026-04-25 13:45:11 +08:00
2026-04-25 13:51:50 +08:00
2026-04-25 16:51:38 +08:00
2026-04-25 17:24:32 +08:00
2026-04-25 19:44:46 +08:00
2026-04-26 00:54:56 +08:00
2026-04-26 00:54:56 +08:00
2026-04-26 00:54:56 +08:00
2026-04-26 01:55:01 +08:00
2026-04-26 03:37:31 +08:00
2026-04-26 03:37:31 +08:00
2026-04-27 00:21:02 +08:00
2026-04-27 00:21:02 +08:00
2026-04-27 00:21:02 +08:00
2026-04-27 00:21:02 +08:00
2026-04-28 00:20:11 +08:00
2026-04-27 00:21:02 +08:00
2026-04-26 10:37:52 +08:00
2026-04-26 10:27:58 +08:00
2026-04-26 12:17:49 +08:00
2026-04-26 12:17:49 +08:00
2026-04-26 12:23:10 +08:00
2026-04-26 12:23:10 +08:00
2026-04-26 12:35:27 +08:00
2026-04-26 12:35:27 +08:00
2026-04-26 12:35:27 +08:00
2026-04-26 13:10:53 +08:00
2026-04-28 00:20:11 +08:00
2026-04-27 11:31:40 +08:00
2026-04-27 11:45:49 +08:00
2026-04-27 12:50:16 +08:00
2026-04-28 00:20:11 +08:00
2026-04-27 14:40:28 +08:00
2026-04-27 18:52:03 +08:00
2026-04-27 18:52:03 +08:00
2026-04-27 18:52:03 +08:00
2026-04-27 19:38:39 +08:00
2026-04-28 00:57:41 +08:00
2026-04-28 11:31:54 +08:00
2026-04-28 11:34:37 +08:00
2026-04-28 11:47:44 +08:00
2026-04-28 19:24:32 +08:00
2026-04-28 19:57:51 +08:00
2026-04-29 06:17:23 +08:00
2026-04-29 06:28:30 +08:00
2026-04-30 07:18:22 +08:00
2026-04-30 10:37:43 +08:00
2026-05-01 08:04:51 +08:00
2026-05-01 08:04:51 +08:00
2026-05-01 18:38:03 +08:00
2026-05-02 11:34:35 +08:00
2026-05-02 11:37:21 +08:00
2026-05-03 09:31:43 +08:00
2026-05-04 02:30:03 +08:00
2026-05-04 02:32:19 +08:00
2026-05-04 02:56:40 +08:00
2026-05-04 11:02:25 +08:00
2026-05-04 11:02:25 +08:00