Files
bambuddy/backend
maziggy e0cfa90be7 fix(backup): reconnect the MQTT relay after restoring mqtt_* settings (#2656)
The relay reads its broker config once, when configure() is called — which is
    why the settings PUT handler reconfigures it after writing those rows
    (api/routes/settings.py:246). The restore wrote the rows and stopped there, so
    the relay stayed on the pre-restore broker until the next backend restart while
    the UI showed the restored values: the one way a settings restore could look
    applied without being applied.

    _restore_settings now reports the keys it actually wrote, and run_restore
    reconfigures the relay from the committed rows when any of them is an mqtt_ one.
    Three details worth keeping:

    * it runs after the commit, because configure() drops the connection and
      rebuilds it — not something to do on values a later failure could roll back;
    * it is keyed on written, not merely present: a key skipped for overwrite=off
      or by the credential blocklist must not trigger a reconnect;
    * mqtt_password is never restorable, so configure() gets the row already in the
      database and an unchanged broker keeps working.

    A broker that refuses the new config is noted on the settings tally ("restart
    Bambuddy") rather than failing the restore, matching the PUT handler's
    best-effort handling of the same call.
2026-08-15 14:11:57 +02:00
..