feat: add admin accounts and image templates

This commit is contained in:
inman
2026-07-03 11:25:25 +08:00
parent d98e58adfa
commit c3ea9f0eb1
61 changed files with 7016 additions and 199 deletions

View File

@@ -54,9 +54,11 @@ Docker 部署默认使用 `docker-compose.yml` 同时启动 Web 服务和 `zhini
- `/create` 创作,合并图片、视频、局部重绘、智能超清
- `/assets` 结果,保留历史资产和历史生成任务
- `/image-edit` 兼容旧入口,自动跳转到创作页的局部重绘
- `/settings` 设置
- `/logs` 日志,管理员可见
- `/settings` 设置,管理员可见
- `/accounts` 账号管理,管理员可见
主导航只保留创作结果、设置,不包含工作台、项目、模板中心、Billing 或桌面端入口。
普通用户主导航只显示创作结果;管理员会额外看到日志、设置和账号管理。不包含工作台、项目、模板中心、Billing 或桌面端入口。
## 账户登录 / SSO
@@ -72,16 +74,32 @@ https://你的域名/api/auth/callback
- `ZHINIAN_AUTH_REQUIRED=auto`:生产默认启用;本地可信开发可设为 `0`
- `ZHINIAN_AUTH_BASE_URL=https://<gateway-domain>/auth`
- `ZHINIAN_AUTH_CLIENT_ID=customPC`
- `ZHINIAN_AUTH_CLIENT_SECRET`
- `ZHINIAN_AUTH_CLIENT_ID=app`
- `ZHINIAN_AUTH_CLIENT_SECRET=app`
- `ZHINIAN_AUTH_SCOPE=server`
- `ZHINIAN_AUTH_ISSUER=https://pig4cloud.com`
- `ZHINIAN_AUTH_PASSWORD_ENC_KEY`:按 AgentBus 方式对 password grant 的密码做 AES-CFB 加密;留空则透传明文
- `ZHINIAN_AUTH_PASSWORD_ENC_KEY=thanks,pig4cloud`:按认证中心 `security.encode-key` 对 password grant 的密码做 AES-CFB 加密
- `ZHINIAN_AUTH_SESSION_SECRET`:长随机字符串,用于签名本地登录态
- `ZHINIAN_ADMIN_AUTHORITIES`:逗号分隔的管理员权限码;命中后可访问 `/logs``/settings``/accounts`
- `ZHINIAN_ADMIN_USERS=ceshiop`:逗号分隔的管理员账号;默认 `ceshiop` 是管理员
`/create``/assets``/settings`、第一方生成/资产 API、以及本地上传和生成结果文件都会受登录态保护。`/api/v1/*` 继续使用 `ZHINIAN_API_KEYS`,不走浏览器 SSO。
`/create``/assets``/settings``/logs``/accounts`第一方生成/资产 API、以及本地上传和生成结果文件都会受登录态保护。`/logs``/settings``/accounts``/api/admin/*` 需要管理员权限。`/api/v1/*` 继续使用 `ZHINIAN_API_KEYS`,不走浏览器 SSO。
如果认证中心客户端未加入 `security.ignore-clients`登录页的账号密码方式会要求图形验证码;验证码图片由 `/api/auth/captcha` 代理 `${AUTH_BASE}/code/image` 获取
如果认证中心客户端未加入 `security.ignore-clients``/oauth2/token` 可能返回“验证码不能为空”。当前推荐使用运维分配的 `app/app` 客户端;如改用 `customPC` 登录平台用户,需要认证中心把该 clientId 加入 `security.ignore-clients`
## 组织账号管理
后台账号管理通过组织模块接口维护成员、角色、部门绑定和成员状态,并通过企业端用户接口创建用户、重置密码。按运维提供的组织能力接口文档,需要在服务端配置:
- `ZHINIAN_ORG_API_BASE_URL`:组织能力网关或统一服务前缀,例如 `https://<gateway-domain>/hotelStaff`
- `ZHINIAN_ORG_API_TOKEN`:备用 Bearer Token默认优先转发当前登录管理员的 `access_token`
- `ZHINIAN_STAFF_API_BASE_URL`:企业端用户服务网关或统一服务前缀,例如 `https://<gateway-domain>/hotelStaff`
- `ZHINIAN_STAFF_API_TOKEN`:备用 Bearer Token可为空默认优先转发当前登录管理员的 `access_token`
- `ZHINIAN_ORG_TENANT_ID`:需要多租户 Header 时填写
- `ZHINIAN_ORG_ID`:默认组织 ID可为空系统会优先使用组织列表第一项
- `ZHINIAN_ORG_MEMBER_LIST_PATH`:可选,成员查询路径覆盖;默认 `/adminOrganization/organizationMember/organizationMemberList`
成员分页列表通过 `hotelStaff``/adminOrganization/organizationMember/organizationMemberList` 对外代理;只有直连基础组织服务内部 `/organizationMember/organizationMemberList` 时才需要 `from: Y`。创建账号会优先调用 `/adminOrganization/organizationMember/addOrganizationMemberAndCreatePlatformUser`,密码重置调用 `/adminPcUser/resetPlatformUserPassword`;这些接口默认使用当前登录账号的 token要求该账号具备管理员角色 `1`
## 图片创作引擎
@@ -143,11 +161,19 @@ cp .env.example .env.local
- `ZHINIAN_AUTH_REQUIRED=auto`
- `ZHINIAN_AUTH_BASE_URL`
- `ZHINIAN_AUTH_CLIENT_ID=customPC`
- `ZHINIAN_AUTH_CLIENT_ID=app`
- `ZHINIAN_AUTH_CLIENT_SECRET`
- `ZHINIAN_AUTH_SCOPE=server`
- `ZHINIAN_AUTH_ISSUER=https://pig4cloud.com`
- `ZHINIAN_AUTH_SESSION_SECRET`
- `ZHINIAN_ADMIN_AUTHORITIES`
- `ZHINIAN_ADMIN_USERS`
- `ZHINIAN_ORG_API_BASE_URL`
- `ZHINIAN_ORG_API_TOKEN`
- `ZHINIAN_STAFF_API_BASE_URL`
- `ZHINIAN_STAFF_API_TOKEN`
- `ZHINIAN_ORG_TENANT_ID`
- `ZHINIAN_ORG_ID`
- `IMAGE_GENERATE_ENGINE=jimeng``evolink`
- `IMAGE_INPAINT_ENGINE=jimeng``evolink`
- `VOLCENGINE_ACCESS_KEY_ID`
@@ -200,6 +226,8 @@ ZHINIAN_API_KEYS=demo-agent:change-me-public-api-key
ZHINIAN_INTERNAL_WORKER_TOKEN=change-me-worker-token
```
`ZHINIAN_API_KEYS` 冒号前的值是账号 ID开放 API 任务和资产会按该账号 ID 写入独立 owner 分区,例如 `api:demo-agent`
主要接口:
- `GET /api/v1/capabilities`