Skip to content

Releases: AlanDevise/TsGate

TsGate 2.1.3

Choose a tag to compare

@AlanDevise AlanDevise released this 07 Oct 15:00

TsGate 2.1.3 strengthens adapter validation and result decoding while preserving public APIs, configuration defaults, dependency baselines and the Template → SPI → adapter architecture.

  • Validate structured-filter operands and the default count entry.
  • Merge IoTDB physical table-name case variants before whole-batch validation.
  • Check backend registration across starters, contracts, BOM and database CI.
  • Reject duplicate IoTDB output columns and InfluxDB 3 JSON result keys.
  • Reject oversized direct-adapter batches before copying inputs; retain the post-copy check.

Maven Central: io.github.alandevise:*:2.1.3, including all four starters and tsgate-bom. Central users upgrading from 2.1.0 also receive the earlier GitHub-only 2.1.1/2.1.2 fixes.

Validation: fresh signed Temurin 17 build with 1,476 unit tests; full same-SHA CI with 1,476 tests on each of JDK 17/21/25 and 323 Docker integration tests. Docker includes openGemini 1.4.1/1.5.2, each in single-node and three-node/three-replica deployments. All checks passed. All 38 Central artifacts and 38 signatures were downloaded and matched to the audited bundle.

English release notes · 中文发布说明 · CI

2.1.3 包含过滤条件校验、IoTDB 表名归并、后端登记检查、重复结果列保护及批写数量提前检查。主干架构与公共 API 保持不变,Maven Central 坐标统一为 2.1.3。完整测试、签名及公开下载核验均已通过,详见双语发布说明。

TsGate 2.1.2

Choose a tag to compare

@AlanDevise AlanDevise released this 07 Oct 11:44

TsGate 2.1.2 preserves the public API, Template → SPI → backend architecture and Java 17 baseline while addressing five adapter issues:

  • Disable HTTP redirects to prevent redirected writes from reporting false success.
  • Reject missing InfluxDB 3 query JSON; a valid [] still means no rows.
  • Reject aggregate output-name collisions before database I/O, using each backend’s identifier rules.
  • Add a configurable 64 MiB combined UTF-8 byte budget for HTTP application batches, with complete preflight before sending.
  • Cache independent POJO read-mapping plans with ClassValue, retaining DTO, annotation and conversion behavior.

Upgrade: HTTP batches above 67,108,864 bytes now fail locally with ARGUMENT_ERROR / NOT_COMMITTED. Configure max-batch-bytes under tsdb.influxdb1, tsdb.influxdb or tsdb.opengemini when a larger application batch is required. Existing per-request bounds still apply.

Validation: each of Java 17 / Boot 2.7.18, Java 21 / Boot 3.5.14 and Java 25 / Boot 4.1.0 passed 1,233 unit tests. Local Docker passed 304 integration tests: IoTDB 2.0.10, InfluxDB OSS 1.13.1, InfluxDB 3 Core 3.11.5, plus openGemini 1.4.1 and 1.5.2 in both single-node and three-node/three-replica deployments. All final selected tests had zero failures, errors or skips; owned resources were removed. Test-script regression checks passed 71 cases; 27 unsigned release JARs and 11 POMs passed artifact verification.

Initial Docker attempts exposed new-database Raft readiness races and an incorrect assumption about 1.4.1 log fields in the first test gate. Version-specific test preparation was corrected, followed by a fresh complete matrix on the release commit. Historical failed/interrupted attempts and diagnostic controls are disclosed in the verification report; production writes are not automatically replayed.

Both GitHub Actions runs passed all nine jobs; downloaded raw reports independently confirmed source identity, coverage and owned-resource cleanup.

Main CI · Tag CI · English release notes · 中文发布说明

Source: 2ba077ac0f960555ccb00eee33373b7cd3ace324.

GitHub only. Maven Central remains at 2.1.0. The ZIP contains unsigned binary/source/Javadoc JARs, POMs and license notices; build and install this tag locally to consume version 2.1.2. release-verification.json records source, artifact, benchmark, local-test and CI evidence; SHA256SUMS verifies the ZIP and report.


本版本完成五项优化:HTTP 重定向安全、InfluxDB 3 查询空响应校验、聚合输出名称冲突预检、HTTP 整批字节预算及 POJO 读取映射缓存,保留公共 API、主干架构与 Java 17 基线。

升级时请注意 HTTP 整批默认上限为 64 MiB;超限会在发送前报 ARGUMENT_ERROR / NOT_COMMITTED,可通过各 HTTP 后端的 max-batch-bytes 调整。三组 Java 组合各通过 1,233 项单测,本地 Docker 304 项集成测试全部通过,包括 openGemini 两版本的单节点及三节点三副本场景;最终测试失败、错误、跳过均为零,测试资源已清理。另有 71 项脚本检查及发行制品审计通过。

测试中发现的 Raft 建库就绪竞态和首版 1.4.1 日志门禁缺陷均已记录,并修正测试准备后基于最终提交完整重验;生产代码不会自动重放提交状态不明的写入。微基准仅衡量本机 DTO 映射,具体数据和限制见 Wiki 与验证报告。

main 与 v2.1.2 标签 CI 各 9 个任务全部通过,下载的原始测试报告、源码身份、覆盖范围及资源清理证据已独立核验。

仅发布 GitHub,未更新 Maven Central(仍为 2.1.0)。 使用 2.1.2 依赖前请从此标签源码构建并安装至本地仓库。附件提供无签名发行包、验证报告与 SHA-256 校验文件。

TsGate 2.1.1

Choose a tag to compare

@AlanDevise AlanDevise released this 07 Oct 09:01

TsGate 2.1.1 fixes cursor-time validation and IoTDB mixed-case batch writes, and adds reusable backend contracts plus automatic Docker regression. The Template → SPI → backend architecture, public API and Java 17 baseline are unchanged.

GitHub-only release. Maven Central remains at 2.1.0; 2.1.1 has not been deployed to Central. Install the source tag locally before declaring 2.1.1 dependencies:

git clone --branch v2.1.1 --depth 1 https://github.com/AlanDevise/TsGate.git tsgate-2.1.1
cd tsgate-2.1.1
mvn clean install

Changes:

  • Cursor timestamps require finite, integral values within signed-long bounds. A page with hasNext=true must provide a usable next time cursor, otherwise it fails with QUERY_ERROR.
  • IoTDB preflight and Tablet values share lowercase physical column identity. Ambiguous columns or conflicting roles/types reject the entire batch before I/O; compatible case variants across rows retain their values without modifying caller records.
  • All four backends run common test contracts, with a machine-checked capability/configuration table. Test helpers introduce no production SPI or runtime dependency.
  • Relevant PRs/pushes select Docker regressions automatically. Release tags and manual runs execute the complete OpenGemini 1.4.1/1.5.2 single-node and three-node/three-replica matrix. The verification gate requires successful checks on the release commit.

Fresh local verification on commit 7c7cf76100085891131080ca0fddf2273a4dfa0e:

  • JDK 17 / Boot 2.7.18, JDK 21 / Boot 3.5.14, JDK 25 / Boot 4.1.0: 1,078 unit tests passed in each combination.
  • IoTDB 2.0.10, InfluxDB OSS 1.13.1 and InfluxDB 3 Core 3.11.5: 115 Docker integration tests passed, including 12 mixed-case IoTDB rows in one Tablet with readback.
  • OpenGemini 1.4.1 and 1.5.2, each single node and three-node/three-replica cluster: 44 tests per deployment, 176 total.
  • Zero failures, errors or skips; owned test containers/networks removed; source identity unchanged. 51 Python checks and 27 unsigned release JAR archive audits passed.
  • GitHub main regression and full tag validation: all 9 jobs passed in each run, including the source/database verification gate on this same commit.

Attachments include Java 17 binary/source/Javadoc JARs and aligned POMs, release-verification.json, and SHA-256 checksums. They are unsigned GitHub artifacts. Recorded tests cover the listed versions/configurations; existing time-only cursor and backend-specific limits remain documented.

English release notes · 中文发布说明


2.1.1 已完成四项改进:游标时间精确校验、IoTDB 大小写列一致性、共享适配器契约测试、自动 Docker CI。主干设计、公共 API 和 Java 17 基线保持不变。

本地三个运行时组合各通过 1,078 项单测,既有三后端通过 115 项 Docker 集成测试,OpenGemini 两个版本的单节点及三节点三副本环境各通过 44 项,共 176 项。失败、错误、跳过均为零,测试资源已清理。

本版本只发布到 GitHub,Maven 中央库仍为 2.1.0。 使用 2.1.1 前,请按上面的命令安装发行源码到本地 Maven 仓库。双语 Wiki、README 和开发指南已同步。

TsGate 2.1.0

Choose a tag to compare

@AlanDevise AlanDevise released this 03 Oct 15:31

TsGate 2.1.0 adds openGemini adapters and Spring Boot starters for 1.4.1 and 1.5.2 default-engine deployments, using the existing TGTemplate, annotations and query API. It includes the adapter contract fixes and bounds checks documented in the release notes.

Java packages move from com.alandevise.tsdb.* to com.alandevise.tsgate.*. Update imports, reflection names and package scanning, then recompile applications and dependent libraries. This package rename is not binary compatible. Maven coordinates and tsdb.* configuration prefixes remain unchanged. The namespace-only commit preserves 91 Java file histories; .git-blame-ignore-revs supports meaningful line attribution.

Validation: 889 unit tests on each of JDK 17 / Boot 2.7.18, JDK 21 / Boot 3.5.14 and JDK 25 / Boot 4.1.0; 114 existing-backend Docker tests and 44 tests in each of four openGemini single-node/three-node deployments. All failures, errors and skips are zero. Maven Central state is PUBLISHED; all 38 public POM/JAR downloads match the signed release bundle. Final-source GitHub CI also passed.

2.1.0 新增 openGemini 适配与 starter,并保持现有统一 API。升级须将 Java 包名改为 com.alandevise.tsgate.* 后重新编译;旧 Java 文件的 Git 历史保留在独立迁移提交中。Maven Central 已发布,38 份公开制品均已下载校验。

English release notes · 中文发布说明

Published BOM · OpenGemini starter