Skip to content

feat(api): 实现控制面/数据面分离的双层API架构 - #5

Merged
cjbi merged 10 commits into
mainfrom
feature/routing-path
Aug 13, 2026
Merged

feat(api): 实现控制面/数据面分离的双层API架构#5
cjbi merged 10 commits into
mainfrom
feature/routing-path

Conversation

@cjbi

@cjbi cjbi commented Aug 12, 2026

Copy link
Copy Markdown
Contributor
  • 引入open/admin双surface认证体系,open surface支持open scope API Key和匿名访问
  • 新增OpenDataResource和OpenFunctionResource提供面向终端用户的开放API端点
  • 修改Nginx配置实现子域名路由到页面和开放API,主域名路由到管理API
  • 更新API Key生成逻辑,区分admin/open作用域并调整前缀格式
  • 重构认证过滤器实现基于路径的API surface隔离和权限校验
  • 调整边缘函数调用路径从/functions/{projectId}/{name}改为/open/{projectId}/functions/{name}
  • 更新相关测试用例和依赖配置以适配新的API架构设计

cjbi added 10 commits August 12, 2026 13:09
- 引入open/admin双surface认证体系,open surface支持open scope API Key和匿名访问
- 新增OpenDataResource和OpenFunctionResource提供面向终端用户的开放API端点
- 修改Nginx配置实现子域名路由到页面和开放API,主域名路由到管理API
- 更新API Key生成逻辑,区分admin/open作用域并调整前缀格式
- 重构认证过滤器实现基于路径的API surface隔离和权限校验
- 调整边缘函数调用路径从/functions/{projectId}/{name}改为/open/{projectId}/functions/{name}
- 更新相关测试用例和依赖配置以适配新的API架构设计
- 移除外部调用路径中的 /open 前缀,统一使用 /functions/:projectId/:name
- 修改内部 Java 代理调用路径为 /functions/:projectId/:name/invoke
- 简化请求体处理逻辑,移除嵌套的 input 字段包装
- 更新 SDK 导入方式从本地文件路径改为 npm 包引用
- 调整测试代码的缩进格式
- 优化 Java 服务端响应处理,直接透传函数执行结果
- 添加 WILDCARD 消费类型注解支持任意内容类型
- 排除 accept-encoding 头部避免内部传输压缩导致的内容类型匹配失败
- 更新 deno.lock 中 @hono/hono 版本从 4.12.24 到 4.12.27
- 移除 deno.lock 中 jsonwebtoken 和 openai 相关依赖
- 在数据建模页面添加刷新功能按钮
- 调整函数页面中搜索框和按钮的位置布局
- 移除项目概览面板中的函数入口URL显示
- 为文件浏览器组件添加上传文件列表状态管理
- 实现上传模态框关闭时清空文件列表功能
- 修改正则表达式以支持 open 路径前缀
- 保持对 projects 路径的向后兼容性
- 修复路径匹配逻辑确保正确验证对象访问权限
- 为SDK开放客户端调用添加/api/open路径支持
- 更新mock服务器路径匹配逻辑以正确处理开放API端点
- 添加 pages 路径模式配置,当 project-base-domain 为空时自动启用
- 移除 nginx 配置中的 index 指令,优化静态资源加载
- 统一静态资源缓存策略,使用 $pages_base 变量替代 $file_base
- 删除自定义 MIME 类型定义,使用 nginx 默认配置
- 移除 404 错误页面配置,使用默认行为

refactor(config): 简化项目路由配置逻辑

- 移除 FLEXMODEL_PROJECT_ROUTING_MODE 环境变量配置
- 通过 FLEXMODEL_PROJECT_BASE_DOMAIN 是否为空自动推断路由模式
- 更新应用配置类中的路由模式判断逻辑
- 修改测试配置以适应新的路由模式推断

feat(core): 实现实体定义数据库迁移功能

- 添加 migrateEntity 方法支持增量字段更新
- 在 Session 中使用新迁移逻辑替换原有创建逻辑
- 在 SchemaFactory 中预加载现有模型定义用于迁移对比
- 支持 failsafe 模式下的表结构补全机制
- 删除了ApiKeyResponse、CreateApiKeyRequest中的scope字段
- 移除了ApiKeyGenerator中与作用域相关的生成逻辑
- 更新了ApiKeyService中创建和重新生成密钥的方法实现
- 移除了AuthFilter中对管理接口和开放接口的作用域验证
- 删除了数据库模型中auth_api_key表的scope字段定义
- 修改了UI界面中的表单和表格列配置,移除作用域选择器
- 更新了端到端测试中请求数据的作用域字段
- 调整了项目基础域名配置为Optional类型并更新相关引用
- 删除了英文配置中的 scope、scope_open 和 scope_admin 字段
- 删除了中文配置中的 scope、scope_open 和 scope_admin 字段
- 清理了不再需要的国际化翻译资源
- 减少了语言包文件大小和内存占用
- 为数据库连接池配置添加最大大小限制(5)
- 修复连接工厂配置的链式调用顺序
- 在关闭会话前检查会话是否为空,避免空指针异常
- 确保测试资源得到正确释放,防止内存泄漏
- 移除 PageResourceTest 中对 customDomains 字段的断言,统一使用 status 断言
- 修改 PermissionFilterTest 删除 functionViewDenyInvoke 测试方法
- 调整相关测试用例以保持状态码和响应体验证的一致性
@cjbi
cjbi merged commit 8ff7cf3 into main Aug 13, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant