Ordo-Protokoll v1

API

Die Mac-App spricht JSON über HTTPS mit diesem Server. Alles, was hier gespeichert wird, ist auf dem Gerät verschlüsselt. Angemeldete Anfragen tragen Authorization: Bearer ordo_….

Server

Was dieser Server ist und ob er zur App passt.

  • GET /api/v1/server öffentlich

    Name, Version, Protokoll, Registrierung, Kontingent und, falls freigegeben, Statistiken.

Konto und Anmeldung

Anmelden ohne Passwort: Der Server schickt eine Challenge, das Gerät signiert sie mit Ed25519.

  • POST /api/v1/accounts öffentlich

    Konto anlegen: Konto-ID, öffentlicher Schlüssel, verpackter Master-Key, ggf. Einladungscode.

  • POST /api/v1/auth/challenge öffentlich

    Einmalige Challenge holen, 2 Minuten gültig. Auch für unbekannte Konten.

  • POST /api/v1/auth/session öffentlich

    Signierte Challenge gegen ein Bearer-Token tauschen.

  • DELETE /api/v1/auth/session angemeldet

    Dieses Gerät abmelden.

  • GET /api/v1/account angemeldet

    Verpackter Master-Key, Speicherverbrauch und Kontingent.

  • PUT /api/v1/account/key angemeldet + frische Signatur

    Master-Key neu verpackt speichern, wenn der Notfallschlüssel gewechselt wird.

  • POST /api/v1/account/delete angemeldet + frische Signatur

    Konto mit allen Dokumenten endgültig löschen.

  • GET /api/v1/account/sessions angemeldet

    Angemeldete Geräte.

  • DELETE /api/v1/account/sessions/{id} angemeldet

    Ein Gerät abmelden.

Ordo-Konto

Auf Servern mit Ordo-Konten (ORDO_ACCOUNTS): Die App meldet sich über /connect im Browser an und bekommt ein Geräte-Token für den Header X-Ordo-User.

  • POST /api/v1/connect/token öffentlich

    Den einmaligen Code von /connect mit dem PKCE-Verifier gegen ein Geräte-Token tauschen.

  • GET /api/v1/me Ordo-Konto

    E-Mail, Name, verknüpfter Tresor und verbundene Apps.

  • POST /api/v1/pairing Ordo-Konto

    Neues Gerät koppeln: X25519-Schlüssel hinterlegen, 10 Minuten gültig.

  • GET /api/v1/pairing Ordo-Konto

    Geräte, die auf Freigabe warten.

  • GET /api/v1/pairing/{id} Ordo-Konto

    Stand der Kopplung; nach Freigabe einmalig mit dem verschlüsselten Notfallschlüssel.

  • PUT /api/v1/pairing/{id} Ordo-Konto

    Freigeben: Notfallschlüssel, verschlüsselt an das neue Gerät.

  • DELETE /api/v1/pairing/{id} Ordo-Konto

    Kopplung abbrechen oder ablehnen.

  • GET /api/v1/employer Ordo-Konto

    Firmen, die diesem Konto Abrechnungen schicken.

  • GET /api/v1/employer/invite?token={token} öffentlich

    Welche Firma einlädt, vor dem Annehmen.

  • POST /api/v1/employer/join öffentlich

    Einladung annehmen, mit dem X25519-Postfach-Schlüssel; gibt das Postfach-Token. Mit X-Ordo-User gilt das Business der Firma für das Konto.

  • DELETE /api/v1/employer/{id} Postfach

    Verbindung zu einer Firma beenden.

  • GET /api/v1/inbox Postfach

    Wartende Abrechnungen, verschlüsselt an den Postfach-Schlüssel (Header X-Ordo-Inbox).

  • GET /api/v1/inbox/{id} Postfach

    Eine verschlüsselte Abrechnung laden.

  • DELETE /api/v1/inbox/{id} Postfach

    Abrechnung entfernen, nachdem die App sie im Tresor abgelegt hat.

Dokumente

Jedes Dokument ist eine verschlüsselte Datei plus verschlüsselte Metadaten. Der Server sieht nur Chiffretext.

  • GET /api/v1/items?since={cursor} angemeldet

    Änderungen seit einer Revision, seitenweise. Gelöschte kommen als Grabstein.

  • PUT /api/v1/items/{id}/blob angemeldet

    Verschlüsselte Datei hochladen. Header X-Ordo-Blob-SHA256 wird geprüft.

  • GET /api/v1/items/{id}/blob angemeldet

    Verschlüsselte Datei laden.

  • PUT /api/v1/items/{id} angemeldet

    Metadaten speichern, mit baseRevision gegen gleichzeitige Änderungen (409).

  • DELETE /api/v1/items/{id} angemeldet

    Dokument löschen.

Betrieb

Für Monitoring und Werkzeuge.