Files
felhom.eu/documentation/audits/version-travel-2026-09-26/D4

D4 — R-694: what the app page shows as the password after a load or a restore

The case. The unit never carries a type: password admin login (D5). A restore whose guest has no app.yaml — "Use my kept data", the restore of a removed app, a rebuilt guest — generates a new value (generated replacement for [NEXTCLOUD_ADMIN_PASSWORD], night-2026-09-26/E/E5-5-use.txt). The app page then showed that value in the disabled password field, with the hint „Telepítéskor beállított kezdeti jelszó".

Measured per app (2026-09-26, from each image's entrypoint at the catalog's tag, read-only; sources in upstream/; two claims re-checked by hand: nextcloud installed_version = 0.0.0.0 gate, code-server --auth):

app uses the env value after such a restore the login is
code-server every start (PASSWORD → code-server --auth password, nothing stored) the NEW value (shown value works)
crafty-controller admin created only on a fresh install (installer.is_fresh_install()) the OLD password in the data
gokapi template seeds config.json only if absent OLD
grafana "can be changed before first start" (defaults.ini) OLD
kimai kimai:user:create every start, but it only creates (unique username) OLD
nextcloud only inside if installed_version = 0.0.0.0 (first install) OLD
paperless-ngx manage_superuser skips when the user / a superuser exists OLD

So the shown value was a password that does not work for six of the seven apps. Not measured live (no per-app deploy/remove/load cycle); the verdicts are from the upstream sources, confidence high per the table.

Fix (controller v0.275.0). PersistUnitRedeployConfig (the restore's app.yaml write) records in restored_logins the type: password fields the guest held no value for before the write — i.e. the ones the restore generated — except those in the code register loginAppliedEveryStart (code-server PASSWORD). The page renders no value for them and says: „Mentésből töltötted vissza: a belépéshez a mentés idején érvényes jelszavad kell. Az itt tárolt érték nem az, ezért nem mutatjuk." / "Restored from a backup: log in with the password that was valid when the backup was taken. The value stored here is not it, so it is not shown." Tests: TestR694_ARestoreThatGeneratesTheLoginRecordsIt (production write, 3 cases, red-proofed RP-r694.txt), TestR694_TheDeployPageDoesNotOfferAGeneratedLogin (both languages; the Hungarian parity fixtures unchanged).