Zum Inhalt springen

Daten und Sicherung

Zwei Wurzeln: das Datenverzeichnis — frei wählbar — und das Installationsverzeichnis, auf das alle übrigen relativen Pfade bezogen sind.

Pfad Inhalt Sicherung
<Datenverzeichnis>\portal.db Konten, Mandanten, Mitgliedschaften, Rechnungsdaten, Nummernkreise, Stammdaten, Kontingentzähler, Verlauf ja
<Datenverzeichnis>\tenants\{id}\invoices\ archivierte Rechnungsdateien je Mandant ja
<Datenverzeichnis>\tenants\{id}\templates\ eigene Word-Vorlagen je Mandant ja
<Datenverzeichnis>\pdf-import-lexicon.custom.json eigene Feldbeschriftungen des PDF-Imports, falls angelegt ja
<Zielverzeichnis>\keys\api-keys.json API-Schlüssel — nur Hashes, der Klartext existiert nirgends ja, sonst sind alle Schlüssel neu auszugeben
<Zielverzeichnis>\.aspnet\DataProtection-Keys\ Schlüsselring für Anmelde-Cookie, Formularschutz und Zeitfalle ja, sonst fliegen alle Sitzungen
<Zielverzeichnis>\appsettings.Production.json die Konfiguration ja
<Zielverzeichnis>\usage\ Nutzungsprotokoll samt Inhalten, wenn eingeschaltet optional
<Zielverzeichnis>\logs\ Protokolldateien, 30 Tage nein

appsettings.Production.json, das Datenverzeichnis, keys\, .aspnet\, usage\ und logs\.

Der Windows-Installer tauscht nur Programmdateien aus und hält sich daran. Wer eigene Verteilwege baut, muss diese Ausnahmen nachbilden.

Für eine konsistente Sicherung den Dienst kurz stoppen

Abschnitt betitelt „Für eine konsistente Sicherung den Dienst kurz stoppen“

Die SQLite-Datenbank läuft im WAL-Modus; eine Dateikopie im laufenden Betrieb kann unvollständig sein.

Terminal-Fenster
sc stop Invoiceflair
:: … sichern …
sc start Invoiceflair
  1. Dienst stoppen
  2. Die gesicherten Dateien zurückkopieren
  3. Dienst starten

Das Datenbankschema wird beim Start automatisch auf den Stand der installierten Version gebracht.

Einmal beim Start und danach alle 24 Stunden werden abgelaufene Anmelde-Token und nicht angenommene Einladungen älter als 30 Tage entfernt. Ein Fehlschlag dabei nimmt den Dienst nicht mit — er wird protokolliert und beim nächsten Durchlauf wiederholt.