@yss123/cage-admin 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +10 -64
  2. package/package.json +3 -3
package/README.md CHANGED
@@ -1,78 +1,24 @@
1
1
  # @yss123/cage-admin
2
2
 
3
- 组织模型声明与 `/admin/` 系统管理。提供用户、部门、角色、能力授权、数据范围和防提权规则,以及配套的系统管理接口和页面。适合 Cage 应用的基础组织与运营管理;业务审批、文件和 AI 管理入口按实际启用能力提供。
3
+ 提供用户、部门、角色、授权、防提权约束及 /admin/ 系统管理。它管理组织基础,业务状态仍属于应用领域。
4
4
 
5
- ## 使用
5
+ ## 注册与初始化
6
6
 
7
- ```powershell
8
- pnpm add @yss123/cage-admin
9
- ```
10
-
11
- 首次使用建议通过脚手架创建完整项目,所需依赖由模板统一配置。需要 Node.js 24 或更新版本。
12
-
13
- ## 注册组织模型并初始化
14
-
15
- 在应用 `packages/domain/src/index.ts` 保留这一行,同时导出自己的业务模块:
7
+ 安装 pnpm add @yss123/cage-admin。在 domain 根入口保留:
16
8
 
17
9
  ```ts
18
- /** 组织声明与业务共同进入注册表;导入本模块不创建账号或连接数据库。 */
10
+ /** 组织模型与业务共同注册,导入不创建账号。 */
19
11
  export * from '@yss123/cage-admin/domain';
20
12
  ```
21
13
 
22
- 标准 API 通过 `@yss123/cage-http` 的 `createServer({ domain })` 自动装配管理接口和静态页面,默认开启 `/admin/`,不需要另写管理路由。API 与 worker 使用同一 domain;前端不要导入本包服务端入口。
23
-
24
- 在脚手架项目中填写已有 PostgreSQL 数据库的本地配置,运行 `pnpm exec cage init`、构建与 `pnpm gen`,审查后执行 `pnpm migrate`。然后显式初始化组织:
25
-
26
- ```powershell
27
- pnpm exec cage bootstrap --credentials-file .cage/admin-credentials.json
28
- pnpm dev
29
- ```
30
-
31
- 初始凭据只交付到新的受限文件,交付后移除;不要提交到 Git 或贴入日志。首次初始化的超级管理员自动拥有当前和以后新增的全部能力以及本租户全部数据范围;普通角色仍需显式授权。已有用户时初始化不会升级角色或重置密码,服务启动也不会自动重置密码。
32
-
33
- | 公开入口 | 用途 |
34
- | --- | --- |
35
- | `@yss123/cage-admin/domain` | `Dept/User/Role` 聚合及创建、修改、角色分配和授权命令,供 domain 组合 |
36
- | `bootstrapOrg` | 受控初始化工具调用的组织准备,普通服务启动不调用 |
37
- | `adminRoutes`、`adminCatalog` | HTTP 装配层的管理接口与展示目录 |
38
- | `noEscalation`、`noEscalationViaRoles`、`noWiderScope`、`knownCapability` | 组织授权命令使用的防提权与能力目录约束 |
39
- | `hashPassword` | 服务端密码处理辅助函数,不在浏览器调用或存储明文 |
40
-
41
- 角色选人、菜单显示和中文标签不授予权限。最终写入通过命令执行,授权变更也受当前操作者的能力与范围约束。`grantAll/grantAllToSuperadmin` 是显式管理工具,初始超级管理员不需要调用它们;不应在日常启动或升级中自动执行。
42
-
43
- ## 中文管理界面
44
-
45
- 启动 API 后访问 `/admin/`。页面包含审批待办、用户与部门、角色与授权、操作审计、异步任务和第三方同步。角色页按业务对象分组展示权限,支持中文或代码搜索;操作权限即时保存,数据范围需要点击保存按钮。中文显示不改变真实权限标识,也不会自动给普通角色增加权限。
46
-
47
- 业务聚合和命令应填写中文 `description`。项目根目录 `cage.config.json` 的 `graph.labels` 同时用于图谱和系统管理,无需再维护一份翻译:
48
-
49
- ```json
50
- {
51
- "graph": {
52
- "labels": {
53
- "aggregate:PurchaseOrder": "采购单",
54
- "command:PurchaseOrder.submit": "提交审批",
55
- "capability:PurchaseOrder.export": "导出采购单",
56
- "approval:poApproval": "采购审批流程",
57
- "event:OrderSubmitted": "采购单已提交",
58
- "job:expireStaleOrders": "清理过期草稿"
59
- }
60
- }
61
- }
62
- ```
63
-
64
- 以上是合并进已有配置的片段,不要覆盖项目中的 domain、contracts 等设置。修改显示名后重启 API。API 进程应在项目根目录启动;Docker 模板也会复制这份配置到运行时镜像。
65
-
66
- 名称优先级:权限专用 `capability:` → `command:` → 命令 `description` → 常用动作中文;业务对象使用 `aggregate:` → 聚合 `description`。read/export 会自动组合对象中文名,敏感字段明文权限和调用方也会显示中文。框架无法凭代码猜测自定义业务术语,缺少中文时需要在声明或配置中补充。
14
+ 标准 cage-http 装配管理页,API/worker 使用相同 domain。先 init、构建/生成、审查并 migrate,再显式运行 cage bootstrap --credentials-file .cage/admin-credentials.json。
67
15
 
68
- 直接集成 HTTP 服务时,也可以通过 `createServer({ domain, adminLabels: { 'aggregate:Document': '业务单据' } })` 提供显示名;它覆盖本地 `graph.labels`。此选项属于 `@yss123/cage-http`,不是领域授权配置。
16
+ 凭据只交付新受限文件,交付后移除。首次超级管理员获得受控 * 标记,展开当前及以后新增能力和本租户全部范围;普通角色显式授权。已有组织不重置密码或自动升级角色。
69
17
 
70
- ## 维护管理前端
18
+ ## 授权与能力
71
19
 
72
- `ui/src/app` 负责页面组合,`ui/src/modules` 按管理功能组织,`ui/src/shared` 放请求、标签和 DOM 组件。界面由 TypeScript 编译成原生浏览器模块,不要求业务项目使用特定前端框架。执行 `pnpm build` 同时构建接口与界面;发布时分发 `ui/dist`、HTML 和 CSS,不直接执行 TypeScript 源码。
20
+ 角色能力、聚合范围、调用身份和业务约束分别生效。被选为审批人不会自动获得权限,前端 can 仅控制显示。普通管理员不能创建超级管理员标记或间接接管该角色。
73
21
 
74
- - [当前开发指南与 Agent 流程](https://github.com/shunshunyue/cage/blob/main/docs/development/README.md)
75
- - [框架源码与范例](https://github.com/shunshunyue/cage)
76
- - [问题反馈](https://github.com/shunshunyue/cage/issues)
22
+ bootstrapOrg/grantAll 等服务端维护 API 需要受信任调用者,不是普通业务自助授权接口。浏览器使用客户端,不能导入组织运行时。尚无完整的移动部门和菜单配置能力。
77
23
 
78
- 许可证:[MIT](https://github.com/shunshunyue/cage/blob/main/LICENSE)。
24
+ [权限与范围](https://github.com/shunshunyue/cage/blob/main/docs/development/reference/authorization.md) · [启动与凭据](https://github.com/shunshunyue/cage/blob/main/docs/development/getting-started/start.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yss123/cage-admin",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "组织模型声明与 /admin 系统管理",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -25,8 +25,8 @@
25
25
  "fastify": "^5.6.0",
26
26
  "zod": "^4.1.5",
27
27
  "kysely": "^0.28.5",
28
- "@yss123/cage-ai-protocol": "0.4.0",
29
- "@yss123/cage-kernel": "0.4.0"
28
+ "@yss123/cage-kernel": "0.4.1",
29
+ "@yss123/cage-ai-protocol": "0.4.1"
30
30
  },
31
31
  "license": "MIT",
32
32
  "repository": {