Zum Inhalt

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.