fix(quick-261009-dkv): Teilen-Dialog, Freigabe-Ansichten und Dateiansicht nach der Pruefung

- Link aendern: nicht angebotene Berechtigung bleibt unberuehrt (Aktuell: ...), Zugriff nur bei ausdruecklicher Wahl gesendet
- Fehler je Abschnitt zugeordnet und geloescht; Aendern nur bei aenderbarer Freigabe; Kopiert-Anzeige laeuft ab
- Freigabe-Ansichten: stabiler Rueckruf, nur das juengste Laden gilt; Weitergaben mit Hinweis
- Ablaufgrenzen nach Serverdatum, Passwort-Erzeugung bis 256 Zeichen
- Dateiansicht blendet Neuer Ordner, Hochladen, Ablegen, Umbenennen, Verschieben und Loeschen nach den Buchstaben der Nextcloud aus
- Import-Reihenfolge nach biome check, Anleitungen und Changelog (10 statt 15 Freigaben, Suche ab einem oder zwei Zeichen)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-09 12:21:31 +02:00
parent 78f6cf358d
commit d487a00955
24 changed files with 913 additions and 130 deletions
+1 -1
View File
@@ -398,7 +398,7 @@ Das Modul „Dateien“ (Gruppe Infrastruktur) aktivieren Sie wie jedes Modul im
**Welche Adresse ist die richtige?** Gemeint ist die Adresse, von der die Anfragen des Tessera-Servers bei der Nextcloud ankommen. Meist ist das einfach die Adresse des Tessera-Servers. Läuft die Nextcloud hinter einem Proxy (zum Beispiel Nginx Proxy Manager), sieht sie unter Umständen nur die Adresse des Proxys. Im Zweifel schauen Sie im Zugriffsprotokoll des Webservers der Nextcloud nach, welche Adresse bei Tessera-Anfragen auftaucht.
- **Adresse ändern:** Ändern Sie die Adresse, während Benutzer verbunden sind, fragt Tessera ausdrücklich nach. Nach dem Wechsel gelten alle bestehenden Verbindungen als abgelaufen, jeder meldet sich neu an (die alten App-Passwörter gelten nur für die alte Nextcloud und werden nie an die neue geschickt). Offene Browser-Anmeldungen werden verworfen.
- **Benutzer löschen:** Löschen Sie einen Tessera-Benutzer, bleibt dessen App-Passwort in der Geräteliste seines Nextcloud-Kontos stehen. Entfernen Sie es dort (Einstellungen → Sicherheit), oder lassen Sie es vorher über „Abmelden“ in Tessera widerrufen. Ohne Tessera-Konto kann niemand den Zugang nutzen, aber er bleibt in Nextcloud eingetragen.
- **Teilen und Regeln für Links:** Die Benutzer können im Modul Dateien und Ordner mit Kollegen und Gruppen teilen und öffentliche Links erstellen. **Die Regeln dafür legen Sie in der Nextcloud fest, nicht in Tessera:** Dort unter „Verwaltungseinstellungen“ im Bereich „Teilen“ schalten Sie ein oder aus, ob Links erlaubt sind, ob ein Passwort für Links Pflicht ist (auch mit Ausnahmegruppen), ob Links ein Ablaufdatum bekommen, ob dieses Pflicht ist und nach wie vielen Tagen es spätestens gilt, ob Besucher in freigegebene Ordner hochladen dürfen (öffentliches Hochladen), ob mit Gruppen geteilt werden darf und ob neue Freigaben automatisch angenommen werden. Tessera liest diese Regeln **für jeden Benutzer bei jeder Aktion neu** aus der Nextcloud; eine Änderung wirkt deshalb nach wenigen Sekunden ohne Neustart und ohne Zwischenspeicher in Tessera. Verlangt die Nextcloud ein Passwort, fragt das Formular danach und bietet „Passwort erzeugen“ an; ein Pflicht-Ablaufdatum trägt es vor. Tessera erlaubt nie mehr, als die Nextcloud dem Benutzer erlaubt, und meldet Ablehnungen der Nextcloud auf Deutsch. **Die Adresse eines Links stammt aus der Nextcloud**, nicht aus Tessera. Tragen Sie deshalb in Tessera die Adresse ein, unter der die Nextcloud von außen erreichbar ist (die, die auch Kollegen und Kunden im Browser benutzen). Ist dort eine interne Adresse eingetragen, tragen die Links ebenfalls die interne Adresse und funktionieren für Außenstehende nicht. Alternativ legen Sie in der `config.php` der Nextcloud `overwritehost`, `overwriteprotocol` und `overwrite.cli.url` auf die externe Adresse fest, dann baut die Nextcloud ihre Links immer damit. Zum Schutz der Nextcloud legt Tessera je Benutzer höchstens 15 neue Freigaben in 10 Minuten an (Näheres im Betriebshandbuch). Freigaben per E-Mail und an andere Server verwalten die Benutzer nur in der Nextcloud selbst; Tessera zeigt sie nicht an.
- **Teilen und Regeln für Links:** Die Benutzer können im Modul Dateien und Ordner mit Kollegen und Gruppen teilen und öffentliche Links erstellen. **Die Regeln dafür legen Sie in der Nextcloud fest, nicht in Tessera:** Dort unter „Verwaltungseinstellungen“ im Bereich „Teilen“ schalten Sie ein oder aus, ob Links erlaubt sind, ob ein Passwort für Links Pflicht ist (auch mit Ausnahmegruppen), ob Links ein Ablaufdatum bekommen, ob dieses Pflicht ist und nach wie vielen Tagen es spätestens gilt, ob Besucher in freigegebene Ordner hochladen dürfen (öffentliches Hochladen), ob mit Gruppen geteilt werden darf und ob neue Freigaben automatisch angenommen werden. Tessera liest diese Regeln **für jeden Benutzer bei jeder Aktion neu** aus der Nextcloud; eine Änderung wirkt deshalb nach wenigen Sekunden ohne Neustart und ohne Zwischenspeicher in Tessera. Verlangt die Nextcloud ein Passwort, fragt das Formular danach und bietet „Passwort erzeugen“ an; ein Pflicht-Ablaufdatum trägt es vor. Tessera erlaubt nie mehr, als die Nextcloud dem Benutzer erlaubt, und meldet Ablehnungen der Nextcloud auf Deutsch. **Die Adresse eines Links stammt aus der Nextcloud**, nicht aus Tessera. Tragen Sie deshalb in Tessera die Adresse ein, unter der die Nextcloud von außen erreichbar ist (die, die auch Kollegen und Kunden im Browser benutzen). Ist dort eine interne Adresse eingetragen, tragen die Links ebenfalls die interne Adresse und funktionieren für Außenstehende nicht. Alternativ legen Sie in der `config.php` der Nextcloud `overwritehost`, `overwriteprotocol` und `overwrite.cli.url` auf die externe Adresse fest, dann baut die Nextcloud ihre Links immer damit. Zum Schutz der Nextcloud legt Tessera je Benutzer höchstens 10 neue Freigaben in 10 Minuten an (Näheres im Betriebshandbuch). Freigaben per E-Mail und an andere Server verwalten die Benutzer nur in der Nextcloud selbst; Tessera zeigt sie nicht an.
- **Kein Dashboard-Widget:** Das Modul bringt keine Dashboard-Kachel mit.
- **Betrieb:** Netzwerkfreigaben, eigene Zertifizierungsstellen, die Größenbegrenzung des Proxys für das Hochladen und Fehlerbilder stehen im Betriebshandbuch, Abschnitt „Dateien (Nextcloud)“.
+4 -4
View File
@@ -255,7 +255,7 @@ Das Modul zeigt Ihre Dateien aus der Firmen-Nextcloud direkt in Tessera: ansehen
**Dateien ansehen:** Oben zeigt eine Pfadleiste, wo Sie sind; ein Klick auf einen Teil des Pfads springt dorthin. Über „Liste“ und „Raster“ wählen Sie die Ansicht (Tessera merkt sich Ihre Wahl), über „Sortieren nach“ die Reihenfolge nach Name, Größe oder Änderungsdatum. Jede Datei hat eine Kachel in der Farbe ihres Typs (zum Beispiel PDF, XLSX, ZIP); bei Bildern erscheint das Vorschaubild. Ein Doppelklick auf einen Ordner öffnet ihn. Ganz unten steht der belegte Speicherplatz. Ist Ihr Speicher in Nextcloud unbegrenzt, steht dort nur, wie viel belegt ist.
**Arbeiten mit Dateien:** Über „Neuer Ordner“ legen Sie einen Ordner an. Über das Menü an jeder Zeile (oder mit der rechten Maustaste) finden Sie Öffnen, Herunterladen, Teilen, Umbenennen, Verschieben, „In Nextcloud öffnen“ und Löschen. Beim Verschieben wählen Sie den Zielordner in einer Ordnerauswahl. **Löschen** verschiebt in den Papierkorb Ihrer Nextcloud, nach einer Rückfrage; dort holen Sie die Dateien bei Bedarf wieder heraus. Alles gilt auch für mehrere Einträge: Setzen Sie Häkchen oder halten Sie Strg (Umschalt für einen Bereich) gedrückt; eine Leiste oben nennt dann die Anzahl und bietet Herunterladen, Verschieben und Löschen für die ganze Auswahl.
**Arbeiten mit Dateien:** Über „Neuer Ordner“ legen Sie einen Ordner an. Über das Menü an jeder Zeile (oder mit der rechten Maustaste) finden Sie Öffnen, Herunterladen, Teilen, Umbenennen, Verschieben, „In Nextcloud öffnen“ und Löschen. **Was Ihnen nicht erlaubt ist, fehlt:** In einem Ordner, den andere nur zum Ansehen mit Ihnen geteilt haben, gibt es kein „Neuer Ordner“ und kein „Hochladen“ (stattdessen steht dort „Nur ansehen“), Dateien lassen sich dort nicht ablegen, und im Menü der Einträge fehlen Umbenennen, Verschieben und Löschen. Herunterladen geht immer. Beim Verschieben wählen Sie den Zielordner in einer Ordnerauswahl. **Löschen** verschiebt in den Papierkorb Ihrer Nextcloud, nach einer Rückfrage; dort holen Sie die Dateien bei Bedarf wieder heraus. Alles gilt auch für mehrere Einträge: Setzen Sie Häkchen oder halten Sie Strg (Umschalt für einen Bereich) gedrückt; eine Leiste oben nennt dann die Anzahl und bietet Herunterladen, Verschieben und Löschen für die ganze Auswahl.
**Hochladen:** Ziehen Sie Dateien oder ganze Ordner aus dem Dateimanager auf die Seite. Eine gestreifte Fläche nennt das Ziel („In „…“ ablegen“); legen Sie die Dateien auf eine Ordnerzeile, landen sie in diesem Ordner. Alternativ klicken Sie auf „Hochladen“ und wählen Dateien aus. Große Dateien gehen automatisch in Stücken hoch. Am unteren Rand erscheint die **Übertragungsleiste**: Jede Datei hat einen Fortschrittsbalken, „Abbrechen“ stoppt sie, „Erneut versuchen“ wiederholt eine fehlgeschlagene, „Erledigte entfernen“ räumt auf. Die Leiste lässt sich ein- und ausklappen.
@@ -263,19 +263,19 @@ Das Modul zeigt Ihre Dateien aus der Firmen-Nextcloud direkt in Tessera: ansehen
**Herunterladen:** Eine einzelne Datei lädt Ihr Browser direkt herunter. Ordner und Mehrfachauswahl kommen als ZIP-Datei; haben Sie alles in einem Ordner ausgewählt, kommt der ganze Ordner als ZIP. Für eine ZIP-Datei aus einer Auswahl nimmt die Nextcloud nur eine begrenzte Zahl von Einträgen an (je nach Länge der Namen etwa 100 bis 200); bei mehr meldet Tessera das sofort, wählen Sie dann weniger aus oder laden Sie den ganzen Ordner herunter. Klappt ein Herunterladen nicht (zum Beispiel, weil die Datei inzwischen gelöscht wurde), steht der Grund in der Zeile unter der Dateiliste; ist die Verbindung abgelaufen, sehen Sie wieder den Anmeldebildschirm.
**Teilen:** Öffnen Sie das Menü einer Datei oder eines Ordners (oder klicken Sie mit der rechten Maustaste darauf) und wählen Sie „Teilen“. Es öffnet sich ein Fenster. Im Abschnitt „Personen und Gruppen“ tippen Sie mindestens zwei Buchstaben eines Namens in das Feld „Person oder Gruppe suchen“; darunter erscheinen die Treffer aus Ihrer Nextcloud, Gruppen sind als „Gruppe“ gekennzeichnet. Wählen Sie vorher unter „Berechtigung für die nächste Freigabe“, ob die Person die Datei nur „Ansehen“ oder auch „Bearbeiten“ darf, und klicken Sie dann auf den Treffer. Die Freigabe ist sofort angelegt, und die Nextcloud benachrichtigt die Kollegin oder den Kollegen selbst. Der Empfänger steht danach in der Liste darunter. Dort ändern Sie die Berechtigung jederzeit im Auswahlfeld hinter dem Namen, und mit „Freigabe für … entfernen“ nehmen Sie die Freigabe wieder zurück; die Datei selbst bleibt dabei unverändert. Wer schon eine Freigabe hat, erscheint in der Suche mit dem Vermerk „bereits geteilt“. In der Dateiliste trägt jeder geteilte Eintrag ein kleines Freigabe-Symbol; ein Klick darauf öffnet das Teilen-Fenster. Eingehende Freigaben, also Einträge, die andere mit Ihnen geteilt haben, tragen ein anderes Symbol („Mit Ihnen geteilt“). Einträge, die andere mit Ihnen geteilt haben, können Sie nicht weiterteilen; dort fehlt „Teilen“ im Menü.
**Teilen:** Öffnen Sie das Menü einer Datei oder eines Ordners (oder klicken Sie mit der rechten Maustaste darauf) und wählen Sie „Teilen“. Es öffnet sich ein Fenster. Im Abschnitt „Personen und Gruppen“ tippen Sie den Anfang eines Namens in das Feld „Person oder Gruppe suchen“ (je nach Einstellung Ihrer Nextcloud ab einem oder zwei Zeichen; ist es noch zu wenig, sagt das Fenster es); darunter erscheinen die Treffer aus Ihrer Nextcloud, Gruppen sind als „Gruppe“ gekennzeichnet. Wählen Sie vorher unter „Berechtigung für die nächste Freigabe“, ob die Person die Datei nur „Ansehen“ oder auch „Bearbeiten“ darf, und klicken Sie dann auf den Treffer. Die Freigabe ist sofort angelegt, und die Nextcloud benachrichtigt die Kollegin oder den Kollegen selbst. Der Empfänger steht danach in der Liste darunter. Dort ändern Sie die Berechtigung jederzeit im Auswahlfeld hinter dem Namen, und mit „Freigabe für … entfernen“ nehmen Sie die Freigabe wieder zurück; die Datei selbst bleibt dabei unverändert. Wer schon eine Freigabe hat, erscheint in der Suche mit dem Vermerk „bereits geteilt“. In der Dateiliste trägt jeder geteilte Eintrag ein kleines Freigabe-Symbol; ein Klick darauf öffnet das Teilen-Fenster. Eingehende Freigaben, also Einträge, die andere mit Ihnen geteilt haben, tragen ein anderes Symbol („Mit Ihnen geteilt“). Einträge, die andere mit Ihnen geteilt haben, können Sie nur weiterteilen, wenn die Freigabe das erlaubt; sonst fehlt „Teilen“ im Menü. Was Sie weitergeben, steht danach unter „Von mir geteilt“ mit dem Hinweis „Von Ihnen weitergegeben“ und dem Eigentümer der Datei.
**Link erstellen:** Mit einem öffentlichen Link kann jeder, der die Adresse kennt, den Inhalt öffnen, auch ohne Nextcloud-Konto. Im Teilen-Fenster klicken Sie im Abschnitt „Link“ auf „Link erstellen“ und wählen, was andere tun dürfen: „Ansehen“ (ansehen und herunterladen), „Bearbeiten“ (Dateien ändern, bei Ordnern auch hinzufügen und löschen) oder, nur bei Ordnern, „Nur hochladen“. „Nur hochladen“ wirkt wie ein Briefkasten: Andere legen Dateien in den Ordner, sehen aber nicht, was darin liegt. Mit „Link kopieren“ legen Sie die Adresse in die Zwischenablage; ein kurzes „Kopiert“ bestätigt das. Das Passwort und das Ablaufdatum bestimmt die Nextcloud Ihrer Firma, nicht Tessera:
- Verlangt die Nextcloud ein Passwort, heißt das Feld „Passwort (Ihre Nextcloud verlangt eines)“, und Sie kommen ohne Passwort nicht weiter. Mit „Passwort erzeugen“ lässt Tessera ein sicheres Passwort einsetzen; „Anzeigen“ macht es lesbar. Ist ein Passwort nicht Pflicht, können Sie den Link trotzdem mit „Mit Passwort schützen“ absichern.
- Verlangt die Nextcloud ein Ablaufdatum, steht das im Formular, und das späteste erlaubte Datum ist genannt („Spätestens am …“). Sonst ist das Ablaufdatum freiwillig, und „Ohne Ablaufdatum“ ist in Ordnung.
- Geben Sie das Passwort getrennt vom Link weiter, zum Beispiel in einer zweiten Nachricht. **Tessera speichert das Passwort nie und kann es später nicht mehr anzeigen:** Es steht nur, solange das Fenster nach dem Erstellen offen ist, in einem Hinweisfeld mit „Passwort kopieren“. Mit „Verstanden“ schließen Sie das Feld. Haben Sie es vergessen, vergeben Sie über „Ändern“ und „Passwort ändern“ einfach ein neues.
- Mit „Ändern“ passen Sie Berechtigung, Ablaufdatum, Passwort und die freiwillige Bezeichnung an (die Bezeichnung hilft, mehrere Links zu unterscheiden), mit „Löschen“ und der Rückfrage „Ja, löschen“ ist der Link sofort ungültig. Wer die Adresse hat, kommt danach nicht mehr an die Datei.
- Mit „Ändern“ passen Sie Berechtigung, Ablaufdatum, Passwort und die freiwillige Bezeichnung an (die Bezeichnung hilft, mehrere Links zu unterscheiden). Lässt die Nextcloud die bisherige Berechtigung eines Links nicht mehr zur Auswahl zu (zum Beispiel „Bearbeiten“, nachdem das öffentliche Hochladen ausgeschaltet wurde), steht sie als „Aktuell: …“ da und bleibt beim Speichern unverändert, bis Sie ausdrücklich eine andere wählen. Mit „Löschen“ und der Rückfrage „Ja, löschen“ ist der Link sofort ungültig. Wer die Adresse hat, kommt danach nicht mehr an die Datei.
- Ob Tessera Links anbietet, entscheidet die Nextcloud. Hat Ihr Administrator öffentliche Links dort ausgeschaltet, sagt das Fenster es Ihnen.
**Von mir geteilt und Mit mir geteilt:** Über den Reitern oben neben „Dateien“ finden Sie diese zwei Übersichten. „Von mir geteilt“ listet alles, was Sie geteilt haben, geordnet nach Datei oder Ordner, mit den Empfängern („Geteilt mit …“, „Link“, „Gruppe …“). „Freigaben bearbeiten“ öffnet das Teilen-Fenster, „Im Ordner zeigen“ springt in den Ordner und markiert den Eintrag. „Mit mir geteilt“ listet, was andere mit Ihnen geteilt haben, mit dem Namen des Absenders („von …“); „Öffnen“ bringt Sie in den passenden Ordner. Eine Freigabe, die Sie nicht mehr brauchen, entfernen Sie mit „Freigabe verlassen“ (nach einer Rückfrage); sie verschwindet dann aus Ihrer Nextcloud, und die Absenderin müsste sie bei Bedarf neu teilen. Hat die Nextcloud so eingestellt, dass Sie neue Freigaben zuerst bestätigen müssen, stehen sie oben unter „Noch nicht angenommen“: „Annehmen“ übernimmt sie in Ihre Dateien, „Ablehnen“ weist sie ab. Zeigt eine Übersicht nur einen Teil, steht ein Hinweis darüber, und den Rest sehen Sie in Nextcloud.
**Grenzen beim Teilen:** Zum Schutz der Nextcloud legt Tessera höchstens 15 neue Freigaben innerhalb von 10 Minuten an; danach bittet eine Meldung, einige Minuten zu warten. Freigaben, die per E-Mail oder an einen anderen Server gehen, können Sie in Tessera weder anlegen noch bearbeiten; die sehen und verwalten Sie nur in Nextcloud (das Teilen-Fenster weist mit einer Zeile darauf hin, wenn es solche Freigaben gibt).
**Grenzen beim Teilen:** Zum Schutz der Nextcloud legt Tessera höchstens 10 neue Freigaben innerhalb von 10 Minuten an; danach bittet eine Meldung, einige Minuten zu warten. Dieselbe Meldung kommt, wenn Sie in kurzer Zeit sehr oft versuchen, eine Freigabe anzulegen, auch wenn die Nextcloud sie ablehnt (mehr als 40 Versuche in 10 Minuten). Freigaben, die per E-Mail oder an einen anderen Server gehen, können Sie in Tessera weder anlegen noch bearbeiten; die sehen und verwalten Sie nur in Nextcloud (das Teilen-Fenster weist mit einer Zeile darauf hin, wenn es solche Freigaben gibt).
**Tastatur:**
+2 -2
View File
@@ -192,7 +192,7 @@ Das Modul „Dateien“ spricht aus dem `api`-Container mit der Nextcloud der In
- **Nginx Proxy Manager (Tessera-Adresse):** Beim Hochladen schickt der Browser große Dateien in Stücken von 8 MiB durch `/api-proxy`. Der Proxy vor Tessera muss das durchlassen: `client_max_body_size` mindestens `10m` (besser `64m`) und Lese- und Sendezeitlimits (`proxy_read_timeout`, `proxy_send_timeout`) von mindestens 120 Sekunden. Bei der Nginx-Voreinstellung von 1 MiB bricht jeder größere Upload schon beim ersten Stück ab.
- **Zusammenbau großer Dateien:** Nextcloud setzt die Stücke am Ende zu einer Datei zusammen. Dauert das länger als etwa 20 Sekunden, antwortet Tessera sofort und die Oberfläche fragt den Fortschritt ab; die Verbindung bleibt also nie lange offen. Unvollständige Uploads (Stücke ohne Abschluss, etwa nach einem Seitenwechsel) räumt Nextcloud nach 24 Stunden selbst auf.
- **Zustand im Arbeitsspeicher:** Offene Browser-Anmeldungen (Zwei-Faktor), laufende Zusammenbauten, die Aufrufsperre gegen die Brute-Force-Sperre der Nextcloud, die zwischengespeicherte Kennung der Nextcloud (10 Minuten) und noch ausstehende Widerrufe von App-Passwörtern liegen im Prozess des `api`-Containers. Ein Widerruf steht aus, wenn Nextcloud ihn gerade nicht annehmen konnte (Sperre nach „zu viele Anfragen“, Netzfehler, Wartung); Tessera versucht ihn nach dem Ende der Sperre bzw. nach einer Minute erneut, höchstens sechsmal. Ebenso beobachtet Tessera eine abgebrochene Browser-Anmeldung bis zu ihrem Ablauf und widerruft ein dort doch noch ausgestelltes App-Passwort sofort. Ein Neustart verwirft all das: Wer gerade eine Browser-Anmeldung offen hatte, startet sie neu; angemeldete Benutzer bleiben angemeldet (ihre Zugänge liegen verschlüsselt in der Datenbank). Ein dabei verlorener Widerruf bleibt als Gerät im Nextcloud-Konto des Benutzers stehen und lässt sich dort entfernen.
- **Teilen:** Tessera legt je Benutzer höchstens 15 neue Freigaben innerhalb von 10 Minuten an. Das liegt bewusst unter dem eigenen Limit der Nextcloud von 20 in 10 Minuten: Läge Tessera darüber, meldete die Nextcloud „zu viele Anfragen“, und Tessera hielte dann alle Anfragen an die Nextcloud für 15 Minuten an, für alle Benutzer. Der Zähler zählt auch Versuche, die die Nextcloud ablehnt, liegt im Arbeitsspeicher des `api`-Containers und beginnt nach einem Neustart bei null. Die Regeln für Links (Passwort, Ablaufdatum, öffentliches Hochladen, Gruppen) liest Tessera bei jeder Aktion frisch aus der Nextcloud und speichert nichts davon; eine Änderung in der Nextcloud wirkt nach wenigen Sekunden ohne Neustart (die Nextcloud selbst hält ihre Angaben nach einer Änderung per `occ` kurz in einem Zwischenspeicher). Passwörter von Links speichert und protokolliert Tessera nie, und auch die Adressen der Links stehen in keinem Protokoll. Die Adresse eines Links baut die Nextcloud aus dem Namen, unter dem Tessera sie aufruft (Administrationshandbuch, Abschnitt „Dateien: Nextcloud anbinden“).
- **Teilen:** Tessera legt je Benutzer höchstens 10 neue Freigaben innerhalb von 10 Minuten an. Das liegt bewusst deutlich unter dem eigenen Limit der Nextcloud von 20 in 10 Minuten: Läge Tessera darüber, meldete die Nextcloud „zu viele Anfragen“, und Tessera hielte dann alle Anfragen an die Nextcloud für 15 Minuten an, für alle Benutzer. Der Zähler liegt im Arbeitsspeicher des `api`-Containers und beginnt nach einem Neustart bei null; die Zusicherung gilt also nur, solange der Container nicht neu startet. Freigaben, die jemand direkt in der Nextcloud anlegt, zählen gegen deren Limit von 20, ohne dass Tessera davon weiß; die Luft zwischen 10 und 20 ist dafür gedacht. Zusätzlich zählt Tessera jeden Versuch, eine Freigabe anzulegen, auch einen abgelehnten (zum Beispiel „gibt es schon“): mehr als 40 Versuche in 10 Minuten je Benutzer weist Tessera ab, ohne die Nextcloud zu fragen, damit wiederholte Fehlversuche sie nicht belasten. Die Regeln für Links (Passwort, Ablaufdatum, öffentliches Hochladen, Gruppen) liest Tessera bei jeder Aktion frisch aus der Nextcloud und speichert nichts davon; eine Änderung in der Nextcloud wirkt nach wenigen Sekunden ohne Neustart (die Nextcloud selbst hält ihre Angaben nach einer Änderung per `occ` kurz in einem Zwischenspeicher). Passwörter von Links speichert und protokolliert Tessera nie, und auch die Adressen der Links stehen in keinem Protokoll. Die Adresse eines Links baut die Nextcloud aus dem Namen, unter dem Tessera sie aufruft (Administrationshandbuch, Abschnitt „Dateien: Nextcloud anbinden“).
- **Brute-Force-Ausnahme in der Nextcloud:** Tragen Sie die Adresse des Tessera-Servers dort in die Ausnahmeliste ein (Administrationshandbuch, Abschnitt „Dateien: Nextcloud anbinden“). Sonst kann eine Reihe falscher Anmeldungen die Nextcloud für alle Benutzer gleichzeitig sperren.
- **Verschlüsselung:** Die gespeicherten App-Passwörter sind mit `TESSERA_ENCRYPTION_KEY` verschlüsselt (Kapitel 2). Ein anderer Schlüssel macht sie unlesbar; die Benutzer müssen sich dann neu verbinden.
@@ -766,4 +766,4 @@ Für die Desktop-Auslieferung ist keine neue Pflichtvariable nötig.
| Eine Fehlermeldung aus der Desktop-App nennt als Herkunft „Desktop-App (unbekannt)“ ohne Version, Betreff-Kürzel `[Desktop]` | Der Client ist älter als diese Fassung: er meldet dem Server beim Start nur `desktop=1`, nicht Version, Stand und Betriebssystem (Parameter `dv`, `dc`, `dos`, aus denen `web` das Cookie `tessera_desktop_client` bildet) | Kein Fehler, die Meldung ist trotzdem als Desktop-App erkennbar. Client über „Auf Version … aktualisieren“ im Infobereich oder den Browser-Installer aktualisieren; danach stehen Betriebssystem, Version und Stand in der Meldung. |
| Beim Hochladen in „Dateien“ bricht jede größere Datei beim ersten 8-MB-Stück ab (Fehler „Die Verbindung wurde unterbrochen“, im Proxy-Protokoll `413`) | Der Proxy vor Tessera (Nginx Proxy Manager) lässt keine Anfragen über seiner Größengrenze durch (`client_max_body_size`), oder sein Zeitlimit ist zu kurz | Für die Tessera-Adresse `client_max_body_size` auf mindestens `10m` und die Lese-/Sendezeitlimits auf mindestens 120 Sekunden stellen (Kapitel 3, Abschnitt „Dateien (Nextcloud)“). |
| In „Dateien“ tragen öffentliche Links eine interne Adresse (zum Beispiel ein interner Rechnername oder eine IP-Adresse) und lassen sich von außen nicht öffnen | Die Nextcloud baut die Adresse eines Links aus dem Namen, unter dem Tessera sie aufruft; in Tessera ist die interne Adresse der Nextcloud eingetragen | In den Einstellungen des Moduls die von außen erreichbare Adresse der Nextcloud eintragen, oder in der `config.php` der Nextcloud `overwritehost`, `overwriteprotocol` und `overwrite.cli.url` auf die externe Adresse setzen; bereits erstellte Links ändern sich nicht rückwirkend, sie müssen neu erstellt werden. |
| In „Dateien“ erscheint „Sie haben in kurzer Zeit viele Freigaben angelegt. Bitte warten Sie einige Minuten.“ | Tessera hat für den Benutzer 15 neue Freigaben innerhalb von 10 Minuten angelegt (oder Versuche gezählt, die die Nextcloud abgelehnt hat) | Einige Minuten abwarten (der Zähler läuft nach 10 Minuten ab); ein Neustart des `api`-Containers setzt den Zähler zurück, ist aber nur im Ausnahmefall nötig. |
| In „Dateien“ erscheint „Sie haben in kurzer Zeit viele Freigaben angelegt. Bitte warten Sie einige Minuten.“ | Tessera hat für den Benutzer 10 neue Freigaben innerhalb von 10 Minuten angelegt oder mehr als 40 Versuche in 10 Minuten gezählt (auch abgelehnte) | Einige Minuten abwarten (der Zähler läuft nach 10 Minuten ab); ein Neustart des `api`-Containers setzt den Zähler zurück, ist aber nur im Ausnahmefall nötig. |
+23 -4
View File
@@ -836,12 +836,31 @@ Browser an. 401 und 403 verlassen die API nie. Die Datums-Eingabe prüft der DTO
Zwei Fallen beim Anlegen: Ein `POST` für einen Empfänger, der die Freigabe schon hat, liefert die
alte Freigabe zurück und **verschickt die Benachrichtigung erneut**. Der Dienst prüft deshalb vorab
über `shares/by-path`, ob es sie schon gibt (`shareAlreadyExists`, 409), und ändert Berechtigungen
immer per `PUT`. Außerdem begrenzt Tessera selbst auf 15 neue Freigaben je Benutzer in 10 Minuten
(`checkShareCreate`, im Arbeitsspeicher, zählt auch Versuche, die die Nextcloud ablehnt;
unmittelbar vor dem `POST`, nach allen Vorprüfungen). Das liegt absichtlich unter dem Limit der
immer per `PUT`. Außerdem begrenzt Tessera selbst auf 10 neue Freigaben je Benutzer in 10 Minuten
(`checkShareCreate`, im Arbeitsspeicher eines Prozesses, zählt auch Versuche, die die Nextcloud
ablehnt; unmittelbar vor dem `POST`, nach allen Vorprüfungen). Davor zählt `checkShareAttempt`
jeden Versuch, auch abgelehnte (40 in 10 Minuten), und zwar vor den Abfragen an die Nextcloud:
so können wiederholte, abgelehnte Anfragen („gibt es schon“) sie nicht beliebig oft belasten.
Beide Zähler räumen leere Einträge regelmäßig weg. Die Zusicherung gilt nur je Prozess ohne Neustart,
und Freigaben, die direkt in der Nextcloud entstehen, zählen gegen deren Limit, ohne dass Tessera
es weiß; deshalb 10 statt 20. Das liegt absichtlich unter dem Limit der
Nextcloud (20 in 600 s): Deren 429 würde die Aufrufsperre des Ursprungs auslösen, und die hielte
die Anfragen aller Benutzer 15 Minuten an. Die Oberfläche legt immer nur eine Freigabe zugleich an.
Gemessen nach der Prüfung (Nextcloud 34.0.4): `uid_owner` einer Freigabe ist der **Freigebende**,
`uid_file_owner` der Eigentümer der Datei. Gibt Ben einen Ordner weiter, den Anna ihm geteilt hat,
steht bei ihm `uid_owner = ben`, `uid_file_owner = anna`, `path` im Baum von Ben und `file_target` im
Baum des Empfängers. Tessera behandelt das als eigene Freigabe von Ben (Pfad = `path`, Hinweis
„Von Ihnen weitergegeben“); als eingehend gilt nur, was ein anderer freigegeben hat. Pfade, Ziele
und Empfängerkennungen gehen unverändert zurück an die Nextcloud und werden nie bereinigt
(`verbatimId`; ein doppeltes oder nachgestelltes Leerzeichen gehört zum Namen); nur Anzeigetexte
laufen durch `cleanText`. Eine offene Freigabe lehnt man mit `DELETE shares/{id}` ab (200; `DELETE
shares/pending/{id}` ergibt 405). Die Berechtigungsbuchstaben eines Ordners kommen mit seiner
eigenen Zeile in der Listenantwort (`permissions` der Liste): eigener Ordner `RGDNVCK`, zum Ansehen
geteilter Ordner selbst `SGDN`, sein Inhalt `SG`; die Dateiansicht blendet damit „Neuer Ordner“
(`K`), „Hochladen“ und Ablegen (`C`) und je Eintrag Umbenennen (`N`), Verschieben (`V`) und
Löschen (`D`) aus. Fehlen die Buchstaben, bleibt alles sichtbar (unbekannt ist nie verboten).
Live-Test: `.planning/quick/261009-dkv-modul-dateien-etappe-2a-teilen-von-datei/e2e/e2e-shares.sh
[people|links|received|version|all]` gegen die Test-Nextcloud (`nc-test-setup.sh` der Etappe 1
vorher). Er legt Benutzer `ben` und Gruppe `tessera-team` an, schaltet die Ratenbegrenzung der
@@ -849,5 +868,5 @@ Nextcloud (`ratelimit.protection.enabled`) nur für den Lauf aus und stellt die
`occ config:app:set core …` um (`shareapi_enforce_links_password`, `shareapi_default_expire_date`,
`shareapi_enforce_expire_date`, `shareapi_expire_after_n_days`; für die offenen Freigaben
`user:setting anna files_sharing default_accept`). Alles setzt der `trap` zurück. Der Zähler von
Tessera liegt im Prozess: `all` verbraucht 7 der 15 Plätze, nach höchstens zwei `all`-Läufen
Tessera liegt im Prozess: `all` verbraucht 7 der 10 Plätze, nach jedem `all`-Lauf
`docker compose restart api`.