Grundlagen
Sync-in basiert auf Designentscheidungen, die Speicherkontrolle, Zugriffskonsistenz und betriebliche Skalierbarkeit priorisieren.
- Lesbarer und reversibler Speicher, wobei die Dateien in ihrem ursprünglichen Dateisystem verbleiben.
- On-Demand-Metadaten, die nur erstellt werden, wenn eine Funktion dies erfordert.
- Betriebliche Skalierbarkeit, ohne einen obligatorischen vollständigen Datenbankspiegel des Dateibaums.
- Kollaborative Governance, mit kollaborativen Bereichen, granularen Berechtigungen, virtueller Verankerung und kontrollierbarer Delegation von Freigaben.
- Integrierte Sicherheit, basierend auf konsistenten Berechtigungs-, Sperr- und Rückverfolgbarkeitsregeln.
- Zugriffskonsistenz, unabhängig vom Einstiegspunkt: Webschnittstelle, WebDAV, Synchronisierung, Editoren oder API.
- Native Interoperabilität durch WebDAV, Synchronisierungsclients und Dokumentenintegrationen.
Diese Entscheidungen führen zu mehreren Schlüsselmechanismen, die die Architektur von Sync-in strukturieren.
Informationen zum Vergleich dieser Auswahlmöglichkeiten mit anderen Open-Source-EFSS-Architekturen finden Sie unter Designvergleich.
Speichermodell und Reversibilität
Speicherreversibilität
Dateien werden weder von einer Datenbank vereinnahmt noch darin gespeichert: Sie bleiben im Dateisystem direkt zugänglich.
Dies stellt sicher, dass Benutzer die Freiheit behalten, ihre Daten ohne Einschränkungen oder Abhängigkeit von Sync-in zu lesen, zu sichern, zu migrieren oder mit anderen Tools zu verarbeiten. Wenn Dateisystemänderungen auftreten, kann Sync-in den beobachteten Status mit vorhandenen Metadaten abgleichen, um die Anwendungskonsistenz zu wahren.
Der Anwendungsstatus wird nicht über Backend-spezifische Dateisystem-Metadaten in Dateien eingebettet, wodurch Kopier-, Wiederherstellungs- und Migrationsworkflows weniger von versteckten Speicherattributen abhängig werden.
👉 Siehe auch: Designvergleich
Gezielter Metadaten- und Dateisystemabgleich
Für kollaborative Metadaten indiziert Sync-in nur Dateien, die einen relevanten Anwendungsstatus tragen: Kommentare, Freigaben, Verankerungen, Synchronisierungen, Berechtigungen, Aktivitäten usw. Die Datenbank fungiert nicht als obligatorischer vollständiger Spiegel des Dateisystembaums, sondern speichert nur den von der Plattform benötigten Funktionsstatus. Dieser Ansatz hält das Datenbankwachstum näher an der tatsächlichen kollaborativen Nutzung, reduziert den Indexierungsaufwand für sehr große Bäume und verbessert sowohl die Reaktionsfähigkeit als auch die Gesamtleistung der Plattform.
Dieses Modell stärkt auch die Skalierbarkeit: Durch das Hinzufügen von Millionen von Dateien werden nicht automatisch Millionen von Anwendungseinträgen erstellt. Die Datenbanklast wächst vor allem mit den tatsächlich genutzten Funktionen wie Freigaben, Synchronisierungen, Berechtigungen oder Aktivität.
Wenn sich eine Datei, die bereits mit Metadaten verknüpft ist, im Dateisystem ändert, kann Sync-in den tatsächlichen Speicherstatus mit den vorhandenen Metadaten abgleichen. Dadurch bleiben Freigaben, Verankerungen, Synchronisierungen, Berechtigungen und Aktivitäten kohärent, ohne dass für jede Datei ein globaler Cache erforderlich ist.
Die Volltextindizierung ist ein separater Mechanismus: Sie betrifft den Dokumentinhalt, kann aktiviert oder deaktiviert werden und muss nicht an die Datenbank gebunden sein. Sie kann auf Suchmaschinen zurückgreifen, die besser für Volltext-Workloads geeignet sind, wie etwa Elasticsearch. Die Ergebnisse bleiben nach den Zugriffsrechten des Benutzers gefiltert, auch wenn sie aus dem Inhaltsindex stammen.
Virtuelle Verankerung ohne Duplizierung
Der Verankerungsmechanismus ermöglicht es, eine Datei oder einen Ordner mit einem kollaborativen Bereich zu verknüpfen, ohne den Inhalt verschieben oder duplizieren zu müssen.
Das Element ist zugänglich, als ob es physisch vorhanden wäre (Benutzeroberfläche, WebDAV, API), und unterliegt dabei weiterhin den Berechtigungsregeln des Zielbereichs.
Dies vermeidet Redundanz und bietet eine bessere Kontrolle über die Datenverteilung.
Verankerte Dateien unterliegen weiterhin der doppelten Kontrolle: Die Rechte des ursprünglichen Speicherorts und die Rechte des kollaborativen Bereichs müssen beide die Aktion ermöglichen. Dadurch wird verhindert, dass ein Bereich die vom Dateieigentümer definierten Berechtigungen indirekt erweitert.
Diese Logik gilt auch für externe Speicherorte: Ein Administrator kann ein vorhandenes Serververzeichnis mit einer Freigabe oder einem kollaborativen Bereich verknüpfen, ohne es in ein anwendungsspezifisches Speicherlayout zu importieren.
👉 Siehe: Konzept verankerter Dateien und Externer Speicherort
Rechte und Governance
Geregelte Delegation und verschachtelte Freigabe
Mit Sync-in ist das Teilen eine dauerhafte Delegation von Rechten. Eine aus einer anderen Freigabe erstellte Freigabe zeichnet ihre unmittelbare übergeordnete Freigabe auf, und die Berechtigungen, die sie gewähren kann, sind auf die über diese übergeordnete Freigabe beschränkt. Nachkommen können rekursiv durchlaufen werden und werden in Kaskade mit dem Zweig gelöscht, von dem sie abhängen.
Durch diese Eltern-Kind-Struktur bleiben verschachtelte Freigaben kontrollierbar: Eigentümer und Manager kollaborativer Bereiche können untergeordnete Freigaben prüfen, anpassen oder widerrufen, selbst wenn der Zugriff von mehreren Mitgliedern nacheinander weiterdelegiert wurde.
👉 Siehe: Souveränität, Freigaben in kollaborativen Bereichen verwalten und Untergeordnete Freigaben verwalten.
Governance kollaborativer Bereiche und betriebliche Transparenz
Kollaborative Bereiche definieren eine Manager-Rolle, die für die Überwachung der mit dem Bereich verbundenen Dateien, Mitglieder, Freigaben und Berechtigungen verantwortlich ist.
Die Governance umfasst auch die Verwaltung verankerter Dateien. Strenge Regeln stellen sicher, dass die ursprünglichen Rechte der Datei unverändert bleiben, auch wenn die Verankerung auf Bereichsebene verwaltet wird.
Dieser Ansatz bietet eine klare, direkt nutzbare Governance für kollaborative Bereiche mit einem eindeutigen Verantwortungsmodell.
Auch wenn eine Datei an anderer Stelle freigegeben oder verankert wird, bleibt ihre Speichernutzung an ihrem ursprünglichen Speicherort hängen. Quoten behalten daher ein klares Verantwortungsmodell bei, unabhängig von den unterschiedlichen Kontexten, aus denen auf die Datei zugegriffen wird.
👉 Siehe: Verwaltung kollaborativer Bereiche
Zugriffstrennung und Widerrufbarkeit
Sync-in trennt die Zugriffstypen nach ihrer Verwendung: interne Benutzer, Gäste, Gastlinks, Gruppen, WebDAV-Clients, die Desktop-Anwendung und Befehlszeilentools. Diese Trennung ermöglicht es, für jeden Kontext die richtige Zugriffsebene anzuwenden, ohne das Hauptkonto unnötig offenzulegen.
WebDAV kann dedizierte Anwendungskennwörter verwenden, die widerrufen werden können, ablaufen können und nachverfolgbar sind. Die Synchronisierungsclients der Desktop-Anwendung und der Befehlszeile verwenden einen eigenen Registrierungsmechanismus: Sie erfordern eine anfängliche Authentifizierung und eine regelmäßige erneute Authentifizierung und unterliegen weiterhin denselben Prinzipien für Widerruf, Ablauf und Nachverfolgbarkeit.
Für sensible Umgebungen kann die Benutzer- und Gruppensichtbarkeit eingeschränkt werden. Dies reduziert die unnötige Auffindbarkeit von Konten und ermöglicht stärker voneinander getrennte kollaborative Bereiche.
Sync-in kann auch in Standardauthentifizierungsmechanismen wie OIDC oder LDAP integriert werden und Konten bei Bedarf mit MFA stärken. Diese Optionen ergänzen das Zugriffsmodell, ohne die internen Berechtigungs-, Freigabe- und Rückverfolgbarkeitsregeln zu ersetzen.
Konsistenz über alle Zugriffsmethoden hinweg
Anwendungskonsistenz
Die Kernmechanismen von Sync-in (Berechtigungen, Sperren, WebDAV, Synchronisierung, Freigaben, Verankerungen und Aktivitäten) basieren auf denselben Fachdiensten. Diese Organisation vermeidet unterschiedliches Verhalten je nach verwendeter Zugriffsmethode: Webschnittstelle, WebDAV, Synchronisierungsclient, kollaborativer Editor oder API.
Diese Konsistenz ermöglicht eine Weiterentwicklung der Plattform, ohne dass Sicherheitsregeln dupliziert oder protokollspezifische Ausführungspfade vervielfacht werden müssen.
Einheitliche Sperrung
Das einheitliche Sperrsystem gewährleistet Transaktionskonsistenz und Dateiintegrität auf der gesamten Plattform, unabhängig von der verwendeten Zugriffsmethode: Webschnittstelle, WebDAV, Synchronisierungsclients, kollaborative Editoren oder APIs.
Die Implementierung dieses Systems bietet deterministische Verwaltung des gleichzeitigen Zugriffs durch Serialisierung von Vorgängen, wodurch jegliche Zustandsbeschädigung verhindert und Konflikte durch gleichzeitige Schreibvorgänge beseitigt werden.
👉 Siehe: Dateisperrverwaltung
Optimierte und integrierte Synchronisierung
Sync-in bietet ein natives Dateisynchronisierungssystem, das optimiert und mit der Weboberfläche konsistent ist.
Es stützt sich auf bestehende APIs, um ein einheitliches Verhalten in Bezug auf Kontrolle, Sicherheit und Rückverfolgbarkeit sicherzustellen.
Die optimierte Handhabung von Kopier- und Verschiebeaktionen reduziert die Netzwerknutzung.
Diese Funktion umfasst auch erweiterte Mechanismen wie automatische Wiederaufnahme der Übertragung, Synchronisationssimulation, Schutz vor Datenverlust, Filterung regulärer Ausdrücke ...
Bei der Synchronisierung steht daher die Betriebssicherheit genauso an erster Stelle wie die Geschwindigkeit: Probelaufsimulation, Übertragungswiederaufnahme, Schutz vor Datenverlust und Verschiebeoptimierung begrenzen sowohl Fehler als auch unnötige Übertragungen.
👉 Siehe: Synchronisierung
Native WebDAV-Protokollimplementierung
Während andere Lösungen auf externen Bibliotheken basieren (z. B. sabre-dav in PHP), bietet Sync-in eine eigene WebDAV-Implementierung, die vollständig mit RFC 4918 kompatibel ist und in TypeScript entwickelt wurde.
Diese technische Wahl gewährleistet nativen Support, optimierte Leistung und nahtlose Integration in das globale Sicherheitsmodell der Plattform.
👉 Siehe: WebDAV