Firefly v1.0.1
发布日期:2026-07-29
v1.0.1 是一次面向生产可用性的加固版本。它没有扩大调度系统的功能边界,而是集中修复默认安全配置、执行器过载、无执行器派发、数据库迁移、Starter 健康检查和构建可复现性等问题。
安全与数据库
- Docker 配置不再提供公开可知的生产 JWT 密钥。生产模式缺少有效 JWT secret 时,Server 直接拒绝启动。
- 默认管理员增加
password_change_required,首次登录必须完成密码变更后才能使用管理 API。 - JDBC schema 升级到
12,H2、PostgreSQL 和 MySQL 都保留独立的v12.sql增量迁移。 - schema 初始化改为按当前版本依次执行缺失迁移,不再依赖针对某个版本的硬编码修补。
- PostgreSQL 全新安装脚本统一在部署说明中提供,并通过真实 PostgreSQL 容器测试验证。
调度与执行可靠性
- Netty Executor 默认执行资源改为有界模型,可配置 worker 数、队列容量和并发上限,并使用 fail-fast 拒绝策略。
- 过载任务会返回明确 ACK,并暴露 Prometheus 拒绝与容量指标,避免高峰期无限创建线程。
- Executor Client 区分自建线程池和外部线程池,关闭客户端时不会误关闭用户提供的资源。
- 派发记录获得明确 deadline。没有可用执行器或 ACK 长时间缺失时,
DISPATCHING会在超时后终止为失败,而不是永久停留。 - 增加对历史无 deadline 派发记录的兼容处理,并修复过期 outbox claim 的回收路径。
Spring Boot 与健康检查
- Starter 增加 Actuator
HealthIndicator,报告 Gateway 连接、认证和任务注册同步状态。 - 增加独立 Maven 消费者兼容矩阵,覆盖 Spring Boot
3.3.5、3.4.12、3.5.8和4.0.0。 - 兼容性测试只使用声明的远端仓库和隔离的 Maven 本地缓存,避免开发机缓存掩盖依赖问题。
构建、依赖与测试
- 默认依赖解析只使用 Maven Central;
mavenLocal()、本地目录和镜像仓库必须显式启用。 - 移除公共模块传递的
slf4j-nop,并把netty-all拆为实际使用的 Netty 模块。 - Linux CI 在执行 Wrapper 前设置可执行权限,GitHub Actions 升级到 v5。
- Admin UI 增加任务创建、执行、取消、删除执行器、会话过期和中英文切换的 Playwright 流程。
- JDBC 真实数据库测试覆盖 PostgreSQL/MySQL 初始化、并发和故障注入场景。
- 增加多进程故障基准的基础设施,包括 SLO 配置、p99 报告、独立 JVM 管理、TCP 故障代理和轻量 HTTP 辅助。
API 清理
尚未实现的 LINEAR_BACKOFF、MANUAL 调度类型以及旧 Starter/占位 CLI 入口已从公共能力中移除,避免 API 看似可用但运行时直接失败。
升级说明
- 将 Maven 依赖升级到
1.0.1。 - PostgreSQL/MySQL/H2 旧库使用
initialize-if-empty时会按版本执行到 schema12;由外部迁移系统管理时,请先执行对应v12.sql,再以validate启动。 - 使用 Docker 或生产配置启动前,设置足够强度的
FIREFLY_SECURITY_JWT_SECRET。 - 使用默认管理员的环境,在升级后首次登录完成密码修改。
- Executor 业务线程池由应用提供时,确认应用仍负责它的生命周期。
完整变更可查看 Firefly v1.0.1 Tag。