github Basekick-Labs/arc v26.03.1
Arc 26.03.1

5 hours ago

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 0 instead of NULL (#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_trunc returning per-second rows instead of buckets (#212)
  • WAL recovery after flush failure replays already-flushed data (#218)
  • Self-adjusting flush timer (#142)
  • MQTT CleanSession now configurable, defaults to false (#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_httpfs TTLs 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 precision parameter 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.1

Debian/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/health

RHEL/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 arc

Kubernetes (Helm)

helm install arc https://github.com/basekick-labs/arc/releases/download/v26.03.1/arc-26.03.1.tgz

Download 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

Don't miss a new arc release

NewReleases is sending notifications on new releases.