62 lines
2.0 KiB
Markdown
62 lines
2.0 KiB
Markdown
# ADR-0001: PostgreSQL als persistente Plattformdatenbank
|
|
|
|
**Status:** Beschlossen
|
|
**Datum:** 12.07.2026
|
|
|
|
## Kontext
|
|
|
|
Tuxflotte verwaltet zunehmend persistente und miteinander verknüpfte Plattformdaten.
|
|
|
|
Dazu gehören unter anderem:
|
|
|
|
- Organisationen
|
|
- Geräte
|
|
- Gerätezuordnungen
|
|
- Hardware-Snapshots
|
|
- Netzwerkprofile
|
|
- Workspaces
|
|
- Backends
|
|
- Runtime Blueprints
|
|
- Secret-Referenzen
|
|
|
|
Die bisherige dateibasierte Device Registry diente dem Nachweis des grundlegenden Provisioning-Handshakes.
|
|
|
|
Für das langfristige Plattformmodell ist eine strukturierte persistente Datenhaltung erforderlich.
|
|
|
|
## Entscheidung
|
|
|
|
Tuxflotte verwendet PostgreSQL als persistente Plattformdatenbank.
|
|
|
|
Die Datenbank bildet die Beziehungen zwischen Organisationen, Geräten, Hardware-Snapshots, Workspaces, Backends und Gerätezuordnungen ab.
|
|
|
|
Die dateibasierte Device Registry wird nicht als dauerhaftes Persistenzmodell weitergeführt.
|
|
|
|
Hardwareinformationen werden als zeitbezogene Snapshots gespeichert.
|
|
|
|
Die stabile Geräteidentität und der erfasste Hardwarezustand werden getrennt behandelt.
|
|
|
|
Secrets werden nicht als Klartextbestandteil der fachlichen Plattformdaten gespeichert.
|
|
|
|
Das konkrete Secret-Management wird in einer separaten Architekturentscheidung definiert.
|
|
|
|
## Konsequenzen
|
|
|
|
Der Provisioning-Server erhält eine PostgreSQL-Anbindung.
|
|
|
|
Änderungen am Datenbankschema werden über versionierte Migrationen verwaltet.
|
|
|
|
Geräte erhalten eine interne, von Hardwaremerkmalen unabhängige Datenbank-ID.
|
|
|
|
Der Hardware-Fingerprint dient der Wiedererkennung eines Geräts während des Provisioning-Handshakes.
|
|
|
|
Hardwaredaten werden getrennt von der Geräteidentität als Snapshots gespeichert.
|
|
|
|
Ein Gerät kann mehrere Hardware-Snapshots besitzen.
|
|
|
|
Netzwerkinterfaces und Massenspeicher können einem Hardware-Snapshot zugeordnet werden.
|
|
|
|
Die bestehende dateibasierte Device Registry wird nach erfolgreicher Einführung der Datenbank entfernt.
|
|
|
|
Die Provisioning API bleibt von der konkreten Persistenzimplementierung unabhängig.
|
|
|