From f953fde2be285cba632ece161d0a143070c87cf4 Mon Sep 17 00:00:00 2001 From: jwed Date: Sun, 24 May 2026 19:50:44 -0400 Subject: [PATCH] =?UTF-8?q?release:=201.7.0=20=E2=80=94=20rolls=20up=20the?= =?UTF-8?q?=201.6.1/1.6.2/1.6.3=20patch=20series?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bundled cut for the stable channel. Contents since 1.6.0: * fix(webhooks): test endpoint formats payload per platform (Google Chat / Slack / Discord / Teams) so the Test URL button actually succeeds against those targets instead of getting a 400 back. * fix(schema): add missing unifi_device_states.consecutive_count column the scheduled snapshot capture was failing to insert. * feat(rotate): persist the active rotated password as unifi.password_rotation.last_password whenever a whole-SSID rotation succeeds. Surfaced in Settings → Tasks under the wordlist. * feat(api): new GET /api/unifi/wifi/current-password JSON endpoint for external signage / kiosks. Token-protected via Authorization: Bearer or ?token= query. 401 / 503 / 404 on missing auth, disabled API, or no rotation yet. * feat(settings): "Expose WiFi password API" checkbox under the rotate-passwords block. Off by default. Generate / Regenerate / Clear token controls and a copy-paste curl example. No breaking changes. Drop-in upgrade from 1.6.0. Co-Authored-By: Claude Opus 4.7 (1M context) --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 6df6405..13de124 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "dashboard/unifi", "description": "UniFi network management, WiFi stats, and captive portal authentication for the Dashboard platform", - "version": "1.6.3", + "version": "1.7.0", "type": "library", "license": "MIT", "autoload": {