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. |