Server-API¶
Krywerk Server spricht das Protokoll des Cryptomator Hub (Beschreibung: Hub-Protokoll)
und ergänzt es um den Notfallzugriff. Alle Pfade unter /api brauchen ein Access Token des Anmeldedienstes
(Authorization: Bearer …), außer GET /api/config. Antworten sind JSON; Fehler nutzen die HTTP-Statuscodes
des Hub-Protokolls (401 ohne gültiges Token, 403 ohne Berechtigung, 404 unbekannt, 409 Konflikt,
410 archiviert, 449 Konto nicht eingerichtet, 429 zu viele Anfragen).
Diese Seite wird bei jedem Bau der Dokumentation aus dem Quellcode erzeugt.
Hub-Protokoll¶
Quelle: crates/kw-server/src/api.rs
| Methode | Pfad | Beschreibung |
|---|---|---|
GET |
/api/config |
– |
GET |
/api/users/me |
– |
PUT |
/api/users/me |
Nutzer anlegen/aktualisieren; mit Body Account-Schlüssel übernehmen (Spec §10.2). |
POST |
/api/users/me/access-tokens |
eigene Access Tokens (Migration von Hub-1.x-Geräten). Unbekannte Tresore und ungültige Einträge werden übersprungen. |
POST |
/api/users/me/reset |
– |
GET |
/api/devices/{id} |
– |
PUT |
/api/devices/{id} |
201 bei Neuanlage und bei Aktualisierung eines eigenen Geräts, 409 bei fremder ID. |
DELETE |
/api/devices/{id} |
– |
GET |
/api/devices/{id}/legacy-access-tokens |
Hub-1.x-Migration (Spec §9.2): dieser Server kennt keine Legacy-Geräte → immer {}. |
GET |
/api/vaults/accessible |
– |
GET |
/api/vaults/{id} |
– |
PUT |
/api/vaults/{id} |
neu → Rolle create-vaults, Ersteller wird OWNER (201); vorhanden → nur OWNER, ändert Name, Beschreibung und Notfall-Anteile (200). |
DELETE |
/api/vaults/{id} |
– |
PUT |
/api/vaults/{id}/archived |
PUT /vaults/{id}/archived mit Body true/false (text/plain). |
GET |
/api/vaults/{id}/members |
– |
PUT |
/api/vaults/{id}/users/{user_id} |
– |
PUT |
/api/vaults/{id}/groups/{group_id} |
– |
DELETE |
/api/vaults/{id}/authority/{authority_id} |
– |
GET |
/api/vaults/{id}/users-requiring-access-grant |
– |
POST |
/api/vaults/{id}/access-tokens |
POST /vaults/{id}/access-tokens (OWNER): {userId: JWE}, legt an oder überschreibt. Prüft (wie der Referenz-Hub) nicht, ob die Nutzer Mitglieder sind; unbekannte Nutzer → 404. |
GET |
/api/vaults/{id}/access-token |
403 (kein Zugriff/unbekannt/kein Token), 410 (archiviert), 449 (Mitglied ohne eingerichteten Account), 200 mit dem JWE als text/plain. |
GET |
/api/authorities/search |
– |
Notfallzugriff (Krywerk-Erweiterung)¶
Quelle: crates/kw-server/src/emergency.rs
| Methode | Pfad | Beschreibung |
|---|---|---|
GET |
/api/krywerk/emergency |
Übersicht (Gremiumssitze und verwaltete Tresore) des Aufrufers. |
GET |
/api/krywerk/vaults/{id}/emergency |
GET /krywerk/vaults/{id}/emergency (OWNER oder Gremium, sonst 404). |
PUT |
/api/krywerk/vaults/{id}/emergency |
einrichten bzw. vollständig ersetzen. |
DELETE |
/api/krywerk/vaults/{id}/emergency |
Einrichtung entfernen, offene Anträge abbrechen. 204 auch, wenn nichts eingerichtet war (dann ohne Ereignis). |
POST |
/api/krywerk/emergency/processes |
POST /krywerk/emergency/processes (Gremium): Antrag stellen → 201 Langform. |
GET |
/api/krywerk/emergency/processes/{id} |
GET /krywerk/emergency/processes/{id} (Antragsteller, Gremium, OWNER). |
DELETE |
/api/krywerk/emergency/processes/{id} |
DELETE /krywerk/emergency/processes/{id} (Antragsteller, Gremium, OWNER): offenen Antrag abbrechen. |
POST |
/api/krywerk/emergency/processes/{id}/approvals |
POST /krywerk/emergency/processes/{id}/approvals (Gremium): Anteil an den Antragsschlüssel. |
POST |
/api/krywerk/emergency/processes/{id}/complete |
POST /krywerk/emergency/processes/{id}/complete (Antragsteller): Prüfwert vergleichen, dann wird der Antragsteller OWNER und sein Access Token gespeichert. |
Web of Trust¶
Quelle: crates/kw-server/src/wot.rs
| Methode | Pfad | Beschreibung |
|---|---|---|
GET |
/api/settings |
nur die Felder, die die Apps brauchen (Spec §16a.5). |
GET |
/api/users/trusted |
– |
GET |
/api/users/trusted/{user_id} |
– |
PUT |
/api/users/trusted/{user_id} |
Body = kompakte JWS als text/plain. 204 gespeichert (eine frühere Signatur desselben Paars wird überschrieben), 404 Ziel unbekannt oder ohne Schlüssel, 400 ungültig. |
Seiten für die Apps¶
Quelle: crates/kw-server/src/pages.rs
| Methode | Pfad | Beschreibung |
|---|---|---|
GET |
/app/unlock-success |
– |
GET |
/app/unlock-error |
– |
GET |
/app/profile |
– |
Betrieb¶
| Methode | Pfad | Beschreibung |
|---|---|---|
GET |
/health |
200 ok, wenn die Datenbank antwortet, sonst 503; ohne Anmeldung, verrät keine Daten |
Die Web-Verwaltung unter /verwaltung/ ist eine Oberfläche für Menschen (HTML-Formulare mit eigener
Anmeldung) und keine Programmierschnittstelle; siehe Web-Verwaltung.