Files
beaver_project/authz-service
steven_li b736fc9c81 feat(auth-portal): 添加部署控制服务调用支持
- 导入callDeployControl和normalizeTokenResponse函数用于处理部署配置
- 新增hasTargetFrontendUrl函数检查响应中是否存在目标前端URL
- 在注册流程中添加部署路由解析逻辑,当缺少前端URL时调用部署控制服务获取配置
- 更新normalizeTokenResponse函数以支持从实例对象中提取URL配置

refactor(runtime-control): 增强令牌响应标准化功能

- 扩展normalizeTokenResponse函数支持从instance对象中获取URL配置
- 添加对instance字段的支持,优先级为routing > instance配置
- 支持从instance中提取frontend_base_url、api_base_url和public_url

build(tsconfig): 排除测试文件构建

- 在tsconfig.json中添加排除规则,排除**/*.test.ts和**/*.test.tsx文件
- 避免测试文件参与生产构建

refactor(authz-service): 优化Python后端令牌响应处理

- 更新_normalize_portal_token_response函数支持从实例对象中提取URL配置
- 重构URL优先级逻辑,支持routing和instance双重数据源
- 改进代码可读性,将复杂的URL赋值逻辑拆分为多行
2026-06-16 10:17:30 +08:00
..
2026-03-18 14:22:00 +08:00

authz-service

authz-service 现在已经整理成独立 Docker 单元。

组成

  • Dockerfile
    • 生产镜像构建入口
  • docker-entrypoint.sh
    • 初始化数据目录并启动 uvicorn
  • start-authz.sh
    • 本地或服务器快速启动脚本
  • .env.example
    • 推荐的环境变量模板
  • runtime/seed-data/
    • 空白初始化数据
  • src/
    • 原始 FastAPI 应用代码

设计约定

  • 容器监听端口:19090
  • 容器内数据目录:/var/lib/authz-service/data
  • 首次启动时如果数据目录为空,会自动写入空白 JSON
  • signing_key.pem 不会被打进镜像
    • 如果挂载目录里不存在签名 key服务会在首次启动时自动生成

快速启动

cd /home/ivan/xuan/beaver_project/authz-service
cp .env.example .env
set -a
. ./.env
set +a
./start-authz.sh --build

启动后验证:

curl http://127.0.0.1:19090/healthz
curl http://127.0.0.1:19090/.well-known/jwks.json

生产建议

  • 用挂载卷保存 runtime/data
  • 显式设置 AUTHZ_INTERNAL_TOKEN
  • 显式设置外部可访问的 AUTHZ_ISSUER
    • 例如 https://authz.example.com
  • 如果要让 AuthZ 负责编排实例注册,还要设置 DEPLOY_API_BASE_URL
  • 如果 deploy-control 开了鉴权,还要设置 DEPLOY_API_TOKEN
  • 不要提交本地运行产生的 runtime/data/ 内容

API 说明

接口说明仍然看:

  • /home/ivan/xuan/beaver_project/authz-service/src/README.md