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

@@ -28,7 +28,7 @@ X-Zhinian-Api-Key: <API_KEY>
ZHINIAN_API_KEYS=partner-a:key-a,partner-b:key-b
```
冒号前是 clientId冒号后是 API Key。任务和资产会按 clientId 做基本隔离
冒号前是账号 ID兼容字段名 `clientId`,冒号后是 API Key。任务和资产会按账号 ID 写入独立数据分区,后端 owner 形如 `api:partner-a`
## 任务生命周期

View File

@@ -45,18 +45,22 @@ NEXT_PUBLIC_APP_URL=https://你的域名
ZHINIAN_AUTH_REQUIRED=auto
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=
ZHINIAN_AUTH_PASSWORD_ENC_KEY=thanks,pig4cloud
ZHINIAN_AUTH_SESSION_SECRET=请替换为强随机会话密钥
ZHINIAN_ADMIN_AUTHORITIES=ROLE_ADMIN,sys_user_view,sys_log_view,sys_config_view
ZHINIAN_ADMIN_USERS=ceshiop
ZHINIAN_API_KEYS=partner-a:请替换为强随机key
ZHINIAN_INTERNAL_WORKER_TOKEN=请替换为强随机token
ZHINIAN_WEBHOOK_SECRET=请替换为webhook签名密钥
```
`ZHINIAN_API_KEYS` 冒号前是开放 API 账号 ID。不同账号 ID 的任务、素材和幂等键会写入不同 owner 分区,例如 `api:partner-a`
真实生成能力按需配置:
```env
@@ -85,7 +89,23 @@ ALI_OSS_PUBLIC_BASE_URL=
https://你的域名/api/auth/callback
```
如果使用登录页内的账号密码验证码方式,需要确认 `customPC` 客户端支持 `password``refresh_token` grant。未加入 `security.ignore-clients` 时,验证码会通过 `${ZHINIAN_AUTH_BASE_URL}/code/image` 获取
如果使用登录页内的账号密码方式,需要确认客户端支持 `password``refresh_token` grant,并已加入认证中心配置 `security.ignore-clients`。当前推荐按运维文档使用 `app/app`;如改用 `customPC` 登录平台用户,需要认证中心把 `customPC` 加入 `security.ignore-clients`
## 组织账号接口
如需启用 `/accounts` 后台账号管理,按组织能力接口文档配置:
```env
ZHINIAN_ORG_API_BASE_URL=https://<gateway-domain>/hotelStaff
ZHINIAN_ORG_API_TOKEN=
ZHINIAN_STAFF_API_BASE_URL=https://<gateway-domain>/hotelStaff
ZHINIAN_STAFF_API_TOKEN=
ZHINIAN_ORG_TENANT_ID=
ZHINIAN_ORG_ID=
ZHINIAN_ORG_MEMBER_LIST_PATH=
```
平台后端会代理调用组织、部门、角色、成员和企业端用户接口;成员分页列表默认通过 `hotelStaff``/adminOrganization/organizationMember/organizationMemberList` 对外代理,只有直连基础组织服务内部 `/organizationMember/organizationMemberList` 时才需要 `from: Y`。如统一服务路径不同,可配置 `ZHINIAN_ORG_MEMBER_LIST_PATH` 覆盖。创建账号调用 `/adminOrganization/organizationMember/addOrganizationMemberAndCreatePlatformUser`,重置密码调用 `/adminPcUser/resetPlatformUserPassword`。这些接口默认转发当前登录管理员账号的 `access_token`,企业端用户接口会校验该 token 是否具备管理员角色 `1``ZHINIAN_ORG_API_TOKEN` / `ZHINIAN_STAFF_API_TOKEN` 只作为无登录 token 时的服务端兜底。
## 常用运维命令
@@ -101,6 +121,8 @@ Web 后台可在登录后访问:
```text
https://你的域名/logs
https://你的域名/settings
https://你的域名/accounts
```
日志默认写入 `.runtime/logs/server-events.jsonl`,用于查看 API 500 错误、Worker 任务异常、错误栈和请求路径。可通过环境变量 `ZHINIAN_LOG_DIR` 调整目录,通过 `ZHINIAN_LOG_MAX_BYTES` 调整单文件轮转大小。
@@ -183,7 +205,8 @@ curl https://你的域名/api/v1/openapi.json
确认:
- 未登录访问 Web 页面会跳转到 `/auth/login`
- 登录后 Web 页面可访问
- 普通用户登录后只看到创作和结果
- 管理员登录后可访问 `/logs``/settings``/accounts`
- `/api/health` 返回 `ok: true`
- `/logs` 可查看后台错误日志
- `/api/v1/capabilities` 使用 API Key 可访问