Repository navigation
此版本包含配置、安全、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。