Asset refresh failed. Check server logs for details.
{{end}}
{{if eq .Flash "assets_not_configured"}}
Asset manager is not configured.
{{end}}
{{if eq .Flash "floor_set"}}
Controller-version floor saved.
{{end}}
{{if eq .Flash "floor_invalid"}}
Invalid version — use X.Y.Z (or blank to clear).
{{end}}
{{if eq .Flash "artifacts_set"}}
Artifact manifest saved.
{{end}}
{{if eq .Flash "artifact_ver_invalid"}}
Invalid artifact version — use X.Y.Z (or blank to clear).
{{end}}
{{if eq .Flash "artifact_sha_invalid"}}
Couldn't set the checksum — the Gitea sha lookup failed (version missing / Gitea unreachable) or the manually-entered sha is invalid. Manifest unchanged.
{{end}}
{{if eq .Flash "golden_behind_fleet"}}
Refused: that golden is older than the controller the fleet already runs. A fresh install would land on stale application code — which is R-120, where new boxes shipped a controller that told customers the wrong thing about a missing backup drive. Manifest unchanged. Re-bake the golden on the current controller, publish it, then vouch it here.
{{end}}
{{if eq .Flash "pw_changed"}}
Login password changed. It is already in effect — use it next time you sign in. Existing sessions stay logged in.
{{end}}
{{if eq .Flash "pw_current_wrong"}}
Current password is incorrect — password unchanged.
{{end}}
{{if eq .Flash "pw_too_short"}}
New password is too short (minimum 8 characters) — password unchanged.
{{end}}
{{if eq .Flash "pw_too_long"}}
New password is too long (maximum 72 characters) — password unchanged.
{{end}}
{{if eq .Flash "pw_mismatch"}}
New password and confirmation don't match — password unchanged.
{{end}}
{{if eq .Flash "pw_unchanged"}}
New password is the same as the current one — nothing changed.
{{end}}
Managed updates — global floor
The minimum controller version every box auto-updates to (unless a per-customer override is set).
Saving takes effect immediately — boxes below the floor update on their next
report, no customer action. Blank = no global floor. This setting is independent of the Day-0
artifact manifest below.
Effective floor:
{{if .FloorRes.Effective}}v{{.FloorRes.Effective}}{{else}}none{{end}}
{{if eq .FloorRes.Source "db"}}
— source: DB (hub_settings){{if .FloorRes.EnvValue}}; env fallback would be v{{.FloorRes.EnvValue}}{{end}}
{{else if eq .FloorRes.Source "env"}}
— source: env fallback (DEFAULT_MIN_CONTROLLER_VERSION); no DB override set
{{else}}
— no floor from either source
{{end}}
…
Type the version again to confirm (or CLEAR to remove the DB override):
Day-0 artifacts — agent & golden
The current agent binary + golden archive the host-bootstrap script fetches from Gitea and
verifies (sha256) before installing. The hub vouches for these checksums (a different trust
root than Gitea). Pick a version — the sha256 is read from Gitea automatically (no manual
copy). Choose — none — to clear an artifact.
Login password
The password for signing in to this hub UI. Changing it takes effect immediately
for the next sign-in — your current session stays logged in. Enter your current password to confirm.
If you ever lose it, the deployment ConfigMap (auth.password_hash) remains the reset path.
Assets
App logos and screenshots served to controllers. Assets are seeded from the Docker image
and synced to controllers daily via the asset manifest API.