Architektur: Steuerung und Dateidaten sind getrennt
Eine Übertragung hat zwei Aufgaben: klären, wer was an wen senden darf, und die verschlüsselten Bytes bewegen. pipeit hält sie auseinander.
Eine Übertragung hat zwei Aufgaben: klären, wer was an wen senden darf, und die verschlüsselten Bytes zum Empfänger bringen. pipeit trennt diese Aufgaben. Die Online-API verwaltet Konten, Geräte, Freigaben, Aufträge und Zustände. Der Datenweg kann direkt zwischen Endpunkten verlaufen oder über das Relay (Serverweg) führen. Ein Wechsel des Datenwegs verändert nicht automatisch den Empfänger oder die Bedeutung des Auftrags.
- Anmeldung, Freigaben, AuftragSteuerung und Berechtigungen
- Annahme, Zustand, BelegeSteuerung und Berechtigungen
- Verschlüsselte Dateidaten, direktDateidaten
- Alternativ: verschlüsselte FramesAlternativer Weg
- Weiterleitung ohne DateiablageAlternativer Weg
- Dauerhafter ZustandSteuerung und Berechtigungen
- Begrenzte Budgets und LeasesSteuerung und Berechtigungen
- Ereignisse und JobsSteuerung und Berechtigungen
Die beiden Datenwege sind Alternativen, keine parallele Doppelsendung. Auch bei direktem Online-Dateitransport kann die API für Autorisierung, Verbindungsaufbau und Status benötigt werden. Nahbereichsübertragungen zwischen den pipeit-Apps und die lokale Kopplung nativer Clients arbeiten ohne die Online-API; der Empfangsbeleg wird beim nächsten Onlinekontakt nachgereicht.
| Baustein | Aufgabe | Nicht seine Aufgabe |
|---|---|---|
| Go/Chi-API | Fachregeln, Berechtigungen, Zustände und HTTP-Verträge | Dateiinhalte für den normalen Ende-zu-Ende-Transfer entschlüsseln |
| PostgreSQL und sqlc | Dauerhafte Fachzustände, Versionen, atomare Entscheidungen | Nutzdaten aller Liveübertragungen als Blobs speichern |
| Redis | Begrenzte gemeinsame Budgets und Belegungen oder Leases | Eine unbegrenzte Dateiwarteschlange |
| NATS/JetStream und Worker | Ereignisverarbeitung und Hintergrundaufgaben | Der Dateibytestrom einer Übertragung |
| WebSocket- und native Transportadapter | Verschlüsselte Frames zwischen autorisierten Endpunkten bewegen | Eigenständig Kontorechte erfinden |
| S3-kompatibler Speicher | Speicher für gesonderte Profile, darunter die pipeit Cloud, und betriebliche Speicheraufgaben | Automatisches Backup jeder aktuellen Liveübertragung |
| React/TypeScript-Webapp und native Clients | Auswahl, lokale Schlüssel, Kryptografie, Dateizugriff, Bedienung | Eigene abweichende Bedeutung von „zugestellt“ |
| OpenAPI und gemeinsames Go-SDK | Versionierte Schnittstellen und wiederverwendbare native Abläufe | Ersatz für die eigene Datei- und Schlüsselbehandlung jedes Clients |
Wische seitwärts, um die ganze Tabelle zu sehen.
Warum die Fachlogik zentral bleibt
Jeder Client zeigt denselben Übertragungszustand gleich an. Ein Serverdaemon darf dieselbe Empfängerblockade nicht als Erfolg interpretieren, die im Browser einen Fehler ergibt. Umgekehrt kann das Backend nicht prüfen, ob ein lokaler Ordner unter dem Dienstbenutzer beschreibbar ist. Diese Prüfung gehört in die gemeinsame native Dateibibliothek; die Empfangsfreigabe und die erlaubten Aktionen bleiben Teil des gemeinsamen Vertrags.
Verwandte Anleitungen
Vom Senden bis zum verifizierten Empfang
Die fachliche Reihenfolge eines Onlineauftrags: Auftrag, Annahme, verschlüsselte Frames, Prüfung und ein signierter Empfangsbeleg.
Verschlüsselung: Dateiinhalt, Schlüssel und Signaturen
Welche Standardverfahren eine von Gerät zu Gerät gesendete Datei schützen, was jedes tut und was das Profil nicht zusagt.
Relay: Speicherlos heißt nicht arbeitslos
Warum das Relay (Serverweg) keine Datei behält und trotzdem Speicher und CPU braucht, und wie Rückstau es begrenzt hält.