API-Konten — Systembeschreibung

Datenmodell externer Speicher- und Mailkonten, Google- und Microsoft-OAuth-Ablauf, Dienstkonto, Ordnersynchronisierung, alter Pfad-Alias, Rechte und bekannte Einschränkungen.

Überblick

Stammdaten externer Speicher- und Mailkonten (Google OAuth, Google-Dienstkonto, Microsoft 365): Name, Client-ID und Secret, Anmelde-JSON, Tenant, Scopes, Stammordner. Der alte Pfad masterdata/googleaccount erbt dieselbe Klasse unverändert; er hat keinen Menüpunkt, bleibt wegen der OAuth-Brücken im Web-Stammverzeichnis bestehen, und seine Rechteprüfung nutzt ebenfalls die Schlüssel der API-Konten.

Datenmodell

Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.

TabelleZweck
gdrive_accountdas Konto: Name, Anbieter (falls die Spalte existiert), Authentifizierungsart, Client-ID, Secret, Tenant, Scopes, Stammordner, Status, Datum
gdrive_tokendas OAuth-Token des Kontos
gdrive_foldersynchronisierte Drive-Ordner (geschrieben vom Modell masterdata/googledrive)
fileNachweis der hochgeladenen Anmeldedatei

Ablauf

  1. Liste: Name, Anbieter, Authentifizierungsart, Status, Datum; je Zeile OAuth-Start und -Stopp, Start des Dienstkontos, Microsoft-Zustimmungslink, Bearbeiten.
  2. Speichern: Name 1–255 Zeichen, Client-ID Pflicht; das Formular zeigt auch die Microsoft-Weiterleitungsadresse.
  3. Google OAuth: Offline-Zugriff, Scopes drive, gmail.send, gmail.modify, die in der Installation fest hinterlegte Weiterleitungsadresse, CSRF-Status in der Sitzung, Weiterleitung zur Zustimmungsseite von Google.
  4. Microsoft: Weiterleitung zur Microsoft-Autorisierungsadresse anhand von Tenant und Scopes des Kontos (Standard offline_access Files.ReadWrite.All Mail.Read). Der Rückruf vergleicht den CSRF-Status der Sitzung zeitsicher, tauscht den Code gegen ein Token, speichert es und benachrichtigt das öffnende Fenster.
  5. Verbindung auffrischen: aktiv setzen; Stopp: inaktiv setzen und Token löschen.
  6. Start des Dienstkontos: Drive-Verbindung mit dem Anmelde-JSON, Auflistung von höchstens 100 Ordnern, Konto aktiv setzen.
  7. Hochladen der Anmeldedatei: nur .json, in den Credentials-Ordner, eine vorhandene Datei wird nicht überschrieben; Nachweis in der Tabelle file.
  8. Ordnersynchronisierung: die Liste der Drive-Ordner in die Tabelle gdrive_folder.
  9. Löschen: physisch, ohne Verweisprüfung.

Berechtigungen

  • Ebene 1: Liste und Formular verlangen Zugriff; jeder ändernde Vorgang (Speichern, Löschen, OAuth, Dienstkonto, Upload, Synchronisierung) das Änderungsrecht.
  • Ebene 2: list (nur beim Neuladen), add/edit beim Speichern, delete, connect (OAuth-Start). Den Schlüssel status fragt der Controller nicht ab.
  • Ebene 3: keine.
  • Der Microsoft-Rückruf läuft ohne Rechteprüfung; geschützt ist er durch den in der Sitzung gespeicherten CSRF-Status.

Bekannte Einschränkungen

  • Der erste Seitenaufruf rendert die Liste auch ohne Recht; nur das Neuladen prüft das Funktionsrecht.
  • Die Löschschaltfläche im Kopfbereich ist auch ohne Recht sichtbar.
  • Das Löschen prüft weder Tokens noch Speicherverweise von Dokumenten.