platform-docs/adr/0020-produktname-flotten-management-und-navigationsstruktur.md
2026-08-26 12:05:33 +02:00

5.8 KiB
Raw Permalink Blame History

ADR-0020: Produktname „Flotten-Management" und zweistufige Navigation

Status: Beschlossen Datum: 26.08.2026

Kontext

ADR-0018 hatte die Umbenennung des Navigationseintrags „Geräte" zu „Flotte" beschlossen, aber die Frage offengelassen, ob auch der Produktname selbst („Kundenplattform", bislang nur spontan gewählt) angepasst werden soll. Der Nutzer entschied sich für „Flotten-Management" als sprechenderen Namen.

Parallel dazu war die bestehende Navigation eine einzige flache horizontale Liste (base.html) ohne jede Gruppierung — mit wachsender Seitenzahl (aktuell Flotte, Struktur, Gruppen, Installationsmedium, Organisation, plus Admin für Superuser) wurde das unübersichtlich. Insbesondere lagen „Struktur" (Organisationseinheiten) und „Gruppen" als gleichrangige Nachbarn neben „Organisation", obwohl beide inhaltlich steuern, welche Merkmale ein Gerät über seine OE-/Gruppen-Zugehörigkeit bekommt (siehe ADR-0012) — organisatorisch näher an „Organisation" als eigenständige Themen.

Entscheidung

Produktname: Nur das sichtbare Label wird geändert — die Navigationsmarke im Header (base.html) und der (aktuell ohnehin dormante, da /docs deaktivierte, siehe Sicherheits-Review 25.08.2026) FastAPI-Titel heißen jetzt „Flotten-Management". Interne technische Namen bleiben bewusst unverändert: Environment-Variablen-Präfix KUNDENPLATTFORM_*, systemd-Service/ -User/-Group kundenplattform, Verzeichnis /opt/kundenplattform, Git-Repo-Name, Postgres-Datenbankname, Cookie-Name kundenplattform_session. Begründung: keiner dieser Namen ist je für einen Kunden sichtbar, eine komplette technische Umbenennung wäre ein eigenes Migrationsprojekt mit Deploy-Risiko (koordinierter Neustart, Pfad-/Secret-Umzug) für rein kosmetischen Nutzen.

Navigation: von einer flachen horizontalen Liste auf eine zweistufige Struktur umgestellt: eine vertikale Primär-Spalte mit den Hauptkategorien (Flotte, Organisation, Installationsmedium, Admin — letzteres weiterhin nur für is_superuser), und bei Kategorien mit mehreren Unterseiten eine horizontale Sekundär-Nav im Hauptbereich. „Struktur" und „Gruppen" werden beide Unterpunkte von „Organisation" (neben der bestehenden Stammdaten/Konten-Seite selbst). Die aktive Kategorie/Unterseite wird rein aus dem URL-Pfad-Präfix abgeleitet (base.html, Jinja-{% set %} auf request.url.path) — keine Router-/Kontext-Änderungen in den einzelnen Seiten nötig, URLs bleiben unverändert (/struktur, /gruppen etc.), reine Darstellungsänderung.

Der interne Admin-Bereich (admin/layout.html) hatte bereits eine eigene horizontale Sub-Nav (Technik/Datenbank, Flotte, Flows, Kunden) — dieses Muster diente als Vorbild für die neue Sekundär-Nav und wurde unverändert übernommen (es erbt weiterhin von base.html und sitzt jetzt konsistent unter derselben Primär-Spalte).

Layout technisch über ein schlankes eigenes Flexbox-CSS in base.html umgesetzt (Pico CSS bringt kein Sidebar-Pattern mit) — nutzt ausschließlich Picos bestehende CSS-Variablen (--pico-primary-background etc.), damit automatisches Dark/Light-Mode-Verhalten erhalten bleibt. Auf schmalen Bildschirmen (max-width: 768px) fällt die Sidebar per Media Query auf eine horizontale Liste über dem Inhalt zurück.

Konsequenzen

Reine Template-/CSS-Änderung (base.html, app.py-Titel) — keine Datenbank-, API- oder Routing-Änderung, kein Migrationsbedarf, keine bestehenden Links/Lesezeichen brechen.

Lokal verifiziert: alle 29 Templates parsen weiterhin fehlerfrei (Jinja- Syntaxcheck), base.html mit gemocktem Request-Objekt für jeden Primär-/Sekundär-Pfad gerendert (korrekte Aktiv-Markierung, Sekundär-Nav erscheint nur unter „Organisation"), und eine Stichprobe realer Seiten (Geräteliste, Organisation, Struktur, Gruppen, Admin-Kunden-Index) rendert mit dem neuen Layout ohne Fehler. Live auf anode verifiziert: echter Login über die WLAN-Test-Fixture, Marke „Flotten-Management" und korrekte Primär-/Sekundär-Nav-Zustände (/geraete, /struktur, /gruppen, /organisation, /installationsmedium) bestätigt.

Wie schon in ADR-0018 festgehalten: sollte künftig auch der übrige Sprachgebrauch der Anwendung (Seitentitel, Tabellenüberschriften, Fehlermeldungen) auf „Flotten-Management" umgestellt werden sollen, ist das eine eigene, hier nicht vorweggenommene Folgeentscheidung.

Nachtrag 26.08.2026: öffentliche Startseite angeglichen

Die separate, eigenständige öffentliche Info-/Landingpage (tuxflotte.de/www.tuxflotte.de, statisches HTML, gehostet auf einem dritten Host außerhalb von anode — neues Repo admin/infoseite, siehe README/Commit-Historie dort) stammte aus einer früheren Phase und trug noch den Arbeitstitel „Workspace Lifecycle Management" — kollidierte mit der oben getroffenen Namensentscheidung. Titel/Überschrift jetzt auf „Tuxflotte Flottenmanagement für Linux-Computer" vereinheitlicht, dazu ein „Anmelden"-Link zu flotten-management.tuxflotte.de ergänzt (der bislang komplett fehlte). Ausführlicherer Seiteninhalt (Produktbeschreibung, Screenshots) bewusst vertagt — die Plattform selbst verändert sich noch zu sehr, um jetzt schon stabile Marketing-Inhalte zu rechtfertigen.

Update, gleicher Tag: die Subdomain ist inzwischen live — DNS (217.154.195.6, derselbe A-Record wie alle anderen Subdomains; ein zunächst fälschlich gesetzter AAAA-Eintrag auf eine andere IP wurde entfernt) und Pangolin-Routing (→ 192.168.178.4:8081, kundenplattform auf anode) vom User eingerichtet, Let's-Encrypt-Zertifikat ausgestellt. Voll durchverifiziert: https://flotten-management.tuxflotte.de/ → 303 → /login → 200, kein Pangolin-interner Auth-Zwischenschritt mehr im Weg — die Kundenplattform ist damit erstmals echt öffentlich erreichbar (siehe Sicherheitshärtung vom 25.08.2026, die genau darauf vorbereitet hatte).