c96ebfb4ae
- 新增 FeatureFlagStore 抽象 + Redis/InMemory 双实现
- 支持全局开关 + 白名单 + 百分比切流(MD5哈希一致性)
- 本地缓存 + TTL,减少 Redis 调用
- Redis 不可用时自动降级,不影响业务
- 新增 RenderEngineResolver 渲染引擎选择器
- 环境变量默认 + Redis 运行时覆盖,支持热更新
- 按 user_id 灰度(白名单 > 百分比 > 默认值)
- 惰性刷新,30秒刷新间隔
- 在途任务不受配置变更影响(任务开始时确定引擎)
- 新增 /api/v1/internal/feature-flags 管理接口
- GET 列表/详情、PUT 修改、DELETE 删除
- /{name}/check 端点验证指定标识符是否命中
- 复用内部 API Key 鉴权
- ALLOWED_FLAGS 白名单防误操作
- compose_video 任务接入 RenderEngineResolver
- 从 job.created_by_user_id 获取用户标识
- 替换原环境变量直接读取方式
- 30 个单元测试全绿
- FeatureFlagConfig 判定逻辑(优先级、边界、一致性)
- InMemoryStore CRUD
- RenderEngineResolver(白名单、百分比、默认值、降级、热更新不影响在途任务)
- Redis 异常降级
xiaoxia-saas API
结构
app/core/:配置与基础能力app/api/:路由组织app/schemas/:请求响应模型app/dependencies.py:依赖注入入口main.py:FastAPI 启动入口
当前可用接口
GET /api/healthGET /api/projects?workspace_id=...POST /api/projects