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.
| Tabelle | Zweck |
|---|---|
gdrive_account | das Konto: Name, Anbieter (falls die Spalte existiert), Authentifizierungsart, Client-ID, Secret, Tenant, Scopes, Stammordner, Status, Datum |
gdrive_token | das OAuth-Token des Kontos |
gdrive_folder | synchronisierte Drive-Ordner (geschrieben vom Modell masterdata/googledrive) |
file | Nachweis der hochgeladenen Anmeldedatei |
Ablauf
- Liste: Name, Anbieter, Authentifizierungsart, Status, Datum; je Zeile OAuth-Start und -Stopp, Start des Dienstkontos, Microsoft-Zustimmungslink, Bearbeiten.
- Speichern: Name 1–255 Zeichen, Client-ID Pflicht; das Formular zeigt auch die Microsoft-Weiterleitungsadresse.
- 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. - 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. - Verbindung auffrischen: aktiv setzen; Stopp: inaktiv setzen und Token löschen.
- Start des Dienstkontos: Drive-Verbindung mit dem Anmelde-JSON, Auflistung von höchstens 100 Ordnern, Konto aktiv setzen.
- Hochladen der Anmeldedatei: nur
.json, in den Credentials-Ordner, eine vorhandene Datei wird nicht überschrieben; Nachweis in der Tabellefile. - Ordnersynchronisierung: die Liste der Drive-Ordner in die Tabelle
gdrive_folder. - 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/editbeim Speichern,delete,connect(OAuth-Start). Den Schlüsselstatusfragt 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.