Zum Inhalt springen

REST-API

Dieser Inhalt ist für v1.0. Wechseln Sie zur neuesten Version, um die aktuelle Dokumentation zu sehen.

Klokk bietet eine schreibgeschützte öffentliche REST-API unter /api/v1/* (/status, /users, /clock/states, /time/entries, /companies). Anfragen werden mit einem API-Schlüssel authentifiziert und pro Scope autorisiert (z. B. read:users, read:time_entries) und auf 60 Anfragen pro Minute und IP begrenzt.

Super-Admins verwalten Integrationen unter API & Erweiterungen (/admin/extensions). Jede Integration bündelt einen API-Schlüssel, seine Scopes und einen Verbindungsmodus:

  • Nur API — die Erweiterung ruft die obige REST-API mit ihrem Schlüssel auf.
  • Webhooks — Klokk sendet bei Ein-/Ausstempeln und Abwesenheitsereignissen ausgehende HTTP-POSTs.
  • WebSocket — die Erweiterung öffnet eine dauerhafte eingehende Verbindung unter GET /api/v1/extension/connect.

Mit EXTENSIONS_ENABLED=false wird das Erweiterungs-Subsystem auf Netzwerkebene abgeschaltet. Die oben aufgeführten schreibgeschützten REST-API-Endpunkte bleiben verfügbar; nur die Webhook-/WebSocket-Funktionen unten werden deaktiviert.

Variable Standard Beschreibung
EXTENSIONS_ENABLED true Aktiviert das Erweiterungs-API-Subsystem. Bei false: /admin/extensions und alle Unterrouten liefern 404 Der WebSocket-Endpunkt /api/v1/extension/connect wird nicht registriert Der Versand ausgehender Webhooks entfällt vollständig Es werden keine ExtensionHub-Goroutinen gestartet
WEBHOOK_ALLOW_PRIVATE_TARGETS false SSRF-Schutz für ausgehende Webhooks. Standardmäßig werden Webhook-URLs abgelehnt, die auf Loopback-, private oder Link-Local-Adressen auflösen (auch über Redirects und DNS-Rebinding). Nur auf true setzen, wenn Webhooks bewusst an einen Endpunkt im internen Netz zugestellt werden sollen.