Skip to content

v2.2.0

Latest

Choose a tag to compare

@BattermanZ BattermanZ released this 24 Apr 14:21
6cb5e6c

What's New in v2.2.0

Runtime status reporting

  • Added a JSON runtime status file for health monitoring.
  • Tracks startup time, latest public IP, latest IP check, per-domain state, recent errors, and shutdown state.
  • Added STATUS_FILE_PATH, defaulting to status/flaresync-status.json.

Graceful shutdown

  • Added SIGINT and SIGTERM handling.
  • Shutdown can now interrupt IP discovery, Cloudflare updates, retry sleeps, and interval waits.
  • FlareSync writes a final status update before exiting.

Reliability and security hardening

  • Status writes now use a temporary file and atomic rename to avoid partial JSON reads.
  • Cloudflare API error handling now preserves API error details and classifies transient errors more safely.
  • DNS backup filenames now include sub-second timestamps and are created with safer file permissions.
  • Switched HTTP TLS handling to rustls.

Docker updates

  • Docker image now explicitly runs as the distroless nonroot user.
  • Docker copy steps preserve nonroot ownership.
  • Docker examples now mount ./status:/app/status.
  • Build image and cargo-chef install behavior were updated to avoid brittle pinned image/tooling behavior.

Maintenance

  • Bumped package version to 2.2.0.
  • Updated dependencies and lockfile.
  • Added focused regression coverage for status writing, config defaults, Cloudflare response parsing, and backup permissions.