Skip to content

v4.0.0

Latest

Choose a tag to compare

@smallerqiu smallerqiu released this 23 Sep 03:18
· 23 commits to master since this release

此版本包含配置、安全、ORM 和应用生命周期的兼容性变化。升级前请阅读从 3.x 升级。

配置与安全

  • 配置不再执行 Python 表达式;数字配置改用字面量,启动前校验框架配置类型和范围。
  • 显式指定但不存在的配置文件抛出 FileNotFoundError;无配置模式需显式选择。
  • Session 使用私有密钥,多进程与重启间保持密钥一致;升级时应废弃旧的不安全 Cookie。
  • JWT 默认要求 exp,支持 issuer、audience、leeway 和必需声明策略;区分无效凭证与配置错误。
  • 模板目录仅作为示例,实际业务鉴权与权限规则仍由应用作者实现。

ORM

  • 分离记录 Model 与查询 Query,Model.use() 返回独立查询对象。
  • 区分未加载字段 UNSET 与数据库 NULL,完善 dirty_fields、原始主键定位和提交后状态同步。
  • 数据库错误以异常传播;修复查询编译、更新、关联统计与主键返回行为。
  • 原生 MySQL/PostgreSQL 增加任务所属事务、嵌套保存点、流式查询、方言建表及类型推导。
  • 增加 SQL/参数调试日志开关、连接与查询超时、有限关闭期限和取消处理;不自动重放写入或不确定的提交。
  • 完善 Aurora 实现。Aurora 尚未经真实环境验证,生产使用前需验证连接、事务及故障切换。

详见数据库和日志。

应用、CLI 与日志

  • 应用配置、路由、模块发现及生命周期上下文按实例隔离;每个实例只能 create 一次。
  • 开发子进程与热重载按项目根目录重新创建应用,避免继承父进程缓存;完成启动钩子并绑定端口后才报告就绪。
  • 加强服务锁和 PID 身份校验;旧 PID 文件无法验证身份时不自动接管或终止进程。
  • 生产模式保持前台运行,可交给 Supervisor/systemd 管理,CLI 不提供进程守护功能。
  • 增加有期限的资源清理、JSON 日志、结构化脱敏、追踪 ID 关联与 HTTP/原生 SQL 观察事件。

安装、测试与文档

  • 基础功能要求 Python 3.9+;AWS extra 要求 Python 3.10+。数据库与缓存驱动按 extras 安装。
  • 拆分 ORM 和 Web 内部组件,完善类型注解、回归测试、原生数据库测试与 CI 依赖审计。
  • 增加 wheel、脚手架及版本一致性检查;生成项目依赖固定为 cloudoll==4.0.0。