Skip to content

v0.3.0

Choose a tag to compare

@slippyex slippyex released this 15 Jun 08:59
· 75 commits to main since this release

Sunsteer v0.3.0

A hardening and portability release — no breaking changes (the /state contract stays schema: 1). Compose users upgrade by pulling the new images; Kubernetes users get a ready-to-adapt
manifest base.

✨ Highlights

  • Pluggable relay drivers (RELAY_DRIVER) — the relay is now abstracted like the meter, with a documented relay interface.
  • Kubernetes manifests (deploy/k8s/) — non-root kustomize base with an automatic db-migrate Job and pinned images.
  • CSRF protection on the UI, loopback-by-default binding for the UI and Grafana, and non-root containers.
  • Supply chain: digest-pinned base images, SHA-pinned Actions, and SBOM + SLSA provenance on every released image.
  • CI now gates on ruff, pip-audit, and a real-TimescaleDB integration smoke.

🔒 Security

  • Dependency bumps clearing known CVEs (starlette → 1.0.x, plus fastapi/jinja2/python-multipart).
  • CHANGE_ME placeholders for credentials keep the UI fail-closed and make services fail fast.

🐛 Fixed

  • Forecast honors PV_TZ; exporter threads no longer die silently; the UI degrades gracefully on DB outages; relay "success" requires a non-error RPC body; the hardware auto-off watchdog
    is enforced.

Full detail in the CHANGELOG.