Skip to content

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.53.4.123.5.84.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_BACKOFFMANUAL 调度类型以及旧 Starter/占位 CLI 入口已从公共能力中移除,避免 API 看似可用但运行时直接失败。

升级说明

  1. 将 Maven 依赖升级到 1.0.1
  2. PostgreSQL/MySQL/H2 旧库使用 initialize-if-empty 时会按版本执行到 schema 12;由外部迁移系统管理时,请先执行对应 v12.sql,再以 validate 启动。
  3. 使用 Docker 或生产配置启动前,设置足够强度的 FIREFLY_SECURITY_JWT_SECRET
  4. 使用默认管理员的环境,在升级后首次登录完成密码修改。
  5. Executor 业务线程池由应用提供时,确认应用仍负责它的生命周期。

完整变更可查看 Firefly v1.0.1 Tag

Released under the Apache-2.0 License.