Release Arc 2026.03.1
See RELEASE_NOTES_2026.03.1.md for full details.
Highlights
New Features:
- Backup & Restore API (async, selective restore, all storage backends)
- Line Protocol Bulk Import (
POST /api/v1/import/lp) — one-command InfluxDB migration - TLE (Two-Line Element) Ingestion & Import — native satellite orbital data support
Bug Fixes:
- Null handling in Line Protocol ingestion — missing fields stored as
0instead ofNULL(#202) - Stale cache after compaction causes 404 errors (#204)
- Distributed cache invalidation for enterprise clustering (#204, #206)
- Generic query error messages — now returns actual DuckDB errors (#207)
time_bucket/date_truncreturning per-second rows instead of buckets (#212)- WAL recovery after flush failure replays already-flushed data (#218)
- Self-adjusting flush timer (#142)
- MQTT
CleanSessionnow configurable, defaults tofalse(#239) - Delete API partial failure reporting — HTTP 207 with
failed_files(#235) - Replication Prometheus metrics and sequence gap detection (#237)
- Orphaned hot file cleanup after tiering migration (#236)
- Compaction manifest cleanup leaves orphaned files (#240)
- Unified
cache_httpfsTTLs and scaled cache sizes (#214)
Code Quality:
- Security: database name validation on all write endpoints (path traversal prevention)
- Security: backup restore file permissions fixed to
0600 - Fix: scheduler goroutine leak, MQTT subscription TOCTOU race, cluster router unbounded map growth
- Fix: LP
precisionparameter now honored (was silently ignored) - Performance: pooled gzip decompression, single-pass LP unescape, single-pass SQL safety regex
- Cleanup: import handler and LP parser deduplication
Infrastructure:
- Go 1.26 (Green Tea GC, 30% faster cgo, 2x faster
io.ReadAll)
Quick Start
Docker
docker run -d \
-p 8000:8000 \
-v arc-data:/app/data \
ghcr.io/basekick-labs/arc:26.03.1Debian/Ubuntu (amd64, arm64)
wget https://github.com/basekick-labs/arc/releases/download/v26.03.1/arc_26.03.1_amd64.deb
sudo dpkg -i arc_26.03.1_amd64.deb
sudo systemctl enable arc
sudo systemctl start arc
curl http://localhost:8000/healthRHEL/Fedora/Rocky (x86_64, aarch64)
wget https://github.com/basekick-labs/arc/releases/download/v26.03.1/arc-26.03.1-1.x86_64.rpm
sudo rpm -i arc-26.03.1-1.x86_64.rpm
sudo systemctl enable arc
sudo systemctl start arcKubernetes (Helm)
helm install arc https://github.com/basekick-labs/arc/releases/download/v26.03.1/arc-26.03.1.tgzDownload Artifacts
| Platform | Architecture | Package |
|---|---|---|
| Docker | amd64, arm64 | ghcr.io/basekick-labs/arc:26.03.1
|
| Debian/Ubuntu | amd64 | arc_26.03.1_amd64.deb
|
| Debian/Ubuntu | arm64 | arc_26.03.1_arm64.deb
|
| RHEL/Fedora | x86_64 | arc-26.03.1-1.x86_64.rpm
|
| RHEL/Fedora | aarch64 | arc-26.03.1-1.aarch64.rpm
|
| Kubernetes | - | arc-26.03.1.tgz (Helm)
|
What's Changed
- fix(ingest): preserve null values for missing fields in line protocol… by @xe-nvdk in #203
- fix(compaction): invalidate caches after compaction to prevent 404 er… by @xe-nvdk in #205
- feat(compaction): distributed cache invalidation for enterprise clustering by @xe-nvdk in #206
- fix(api): return detailed DuckDB error messages in query responses by @xe-nvdk in #208
- feat(api): add Line Protocol bulk import endpoint for InfluxDB migration by @xe-nvdk in #209
- feat(api): add TLE ingestion and import for satellite orbital data by @xe-nvdk in #210
- perf(ingest): optimize TLE hot path with typed columnar bypass by @xe-nvdk in #211
- fix(query): use DuckDB integer division in time_bucket/date_trunc rewrites by @xe-nvdk in #213
- fix(query): unify cache_httpfs TTLs with s3_cache_ttl_seconds by @xe-nvdk in #215
- fix(query): unify cache_httpfs TTLs with s3_cache_ttl_seconds (#214) by @xe-nvdk in #216
- chore: upgrade to Go 1.26 by @xe-nvdk in #217
- fix(wal): purge old WAL files before recovery on flush failure by @xe-nvdk in #219
- fix(ingest): replace fixed ticker with self-adjusting timer for age-b… by @xe-nvdk in #222
- fix: consolidate compaction schedulers to prevent daily tier starvation by @xe-nvdk in #221
- Revert "fix: consolidate compaction schedulers to prevent daily tier starvation" by @xe-nvdk in #223
- fix(compaction): prevent orphaned files from manifest cleanup bugs by @xe-nvdk in #241
- feat(tiering): add orphaned hot file reconciliation after migration by @xe-nvdk in #242
- fix(tiering): log warning when hot backend unavailable for reconcilia… by @xe-nvdk in #244
- feat(replication): add Prometheus metrics and sequence gap detection by @xe-nvdk in #243
- fix(mqtt): make CleanSession configurable, default to false (#239) by @xe-nvdk in #247
- fix(api): report partial failure in delete response (#235) by @xe-nvdk in #248
- chore(deps): bump github.com/gofiber/fiber/v2 from 2.52.11 to 2.52.12 in the go_modules group across 1 directory by @dependabot[bot] in #250
- fix(quality): 26.03.1 code review — security, correctness, and elegance by @xe-nvdk in #251
- perf(api): replace regex with byte-loop in isValidDatabaseName() by @xe-nvdk in #252
Full Changelog: v26.02.2...v26.03.1