Skip to content

v0.14.9

Choose a tag to compare

@TechDufus TechDufus released this 06 Nov 05:48
· 66 commits to main since this release
v0.14.9
31c2904

dash can now notify your devices (#39). This release adds Web Push for the installed web app, UnifiedPush for the coming Android app, and attention notifications. It is a patch, and push is unavailable until dash has a writable data dir and DASH_SECRET_KEY.

New

  • Settings → Devices. "Subscribe this browser" registers the installed web app or a browser for push.
    • The device proves it can receive pushes with an 8-character code, which the page submits by itself.
    • Each device chooses its alerts: approvals, and attention at critical, warning or off.
    • It can send itself a test push.
    • Administrators can see and remove every user's devices.
    • A QR code holds the server address for the Android app (not released yet).
  • Attention notifications:
    • an attention item at or above a device's threshold that lasts 2 minutes sends one push;
    • an item escalating from warning to critical reaches critical-only devices;
    • an item pushes again only after it clears and returns;
    • at most 30 attention pushes per user per hour, with one summary for the rest.
  • One sender for Web Push and UnifiedPush:
    • RFC 8291 encryption and RFC 8292 VAPID, built on the Go standard library;
    • endpoints must be https and resolve to global addresses, checked at dial time; push.allowPrivate admits a LAN ntfy;
    • no redirects, retries with backoff;
    • fair limits per device, per user and per push service.
  • Devices follow your sessions.
    • A browser device stops receiving pushes when you log out, and comes back by itself the next time you sign in on it.
    • The Android app's device follows its OAuth grant.
    • Endpoints and keys are stored encrypted and never logged.
  • Installed web app: the service worker shows notifications and opens them only on dash's own origin.

Upgrade notes

  • Nothing to change. Without a writable data dir and DASH_SECRET_KEY, push stays off, and one INFO line at start says what is missing. Push also needs push.contact or an https server.publicURL.
  • Rolling back to v0.14.8: remove push: from the config file (the older release refuses the unknown key). v0.14.8 keeps tokens and grants and drops the push data at its next write, so devices subscribe again after a later upgrade. See docs/upgrading.md.