Zum Inhalt springen

API

API-Schlüssel sind da. Sie legen sie in der App unter Integrationen, API-Schlüssel an (das dürfen nur Owner und Admin) und schicken sie als Bearer-Token mit:

Authorization: Bearer pst_...

Ein Schlüssel gehört zu genau einer Organisation, und er bringt seine Geltungsbereiche mit: monitors, incidents, status-pages und webhooks, jeweils als :read oder :write, dazu org:read. Wer schreiben darf, darf dieselbe Ressource auch lesen. Enger geht immer: Sie begrenzen einen Schlüssel auf ausgewählte Projekte oder auf einzelne Monitore. Widerruf und Ablauf greifen bei der nächsten Anfrage, nicht erst, wenn irgendein Zwischenspeicher abgelaufen ist.

Schlüssel können keine Schlüssel verwalten. Die Endpunkte dafür verlangen von Haus aus eine Browser-Sitzung. Ein abhandengekommener Schlüssel liest also, was seine Geltungsbereiche hergeben, und stellt sich niemals selbst einen Nachfolger aus.

Die Authentifizierung per Schlüssel ist auf sieben lesenden Endpunkten aktiv:

Endpunkt was zurückkommt
Monitore eines Projekts die Liste mit Zustand, Typ, Intervall, Regionen
ein einzelner Monitor die Detailansicht, wie das Cockpit sie zeigt
Checks eines Monitors die rohen Checkergebnisse dahinter
Zeitreihe eines Monitors die Antwortzeiten über einen Zeitraum
Incidents eines Monitors die Incidents an diesem Monitor
Incidents einer Organisation die Liste
ein einzelner Incident die Detailansicht samt Zeitleiste

Nicht jeder Geltungsbereich wird schon ausgewertet. Einen auszuwählen, der es nicht wird, ändert nichts, deshalb sagt diese Tabelle klar, wo jeder heute wirkt:

Geltungsbereich REST mit API-Schlüssel MCP
monitors:read 4 Endpunkte Lesewerkzeuge gemäß verbundenem tools/list
monitors:write noch nicht ausgewertet Schreibwerkzeuge, zusätzlich gegen die aktuelle Rolle geprüft
incidents:read 3 Endpunkte Lesewerkzeuge gemäß verbundenem tools/list
incidents:write noch nicht ausgewertet Bestätigen und Beenden, wenn autorisiert
status-pages:read noch nicht ausgewertet ein Lesewerkzeug, wenn tools/list es anbietet
status-pages:write reserviert reserviert
webhooks:read reserviert reserviert
webhooks:write reserviert reserviert
org:read reserviert reserviert

Reserviert heißt: der Geltungsbereich existiert und lässt sich auswählen, aber nichts prüft ihn bisher. Ein Schlüssel, der nur reservierte Bereiche trägt, kann gar nichts. Wir führen sie hier auf, statt sie zu verstecken, denn eine Auswahl, die mehr anbietet als das Produkt einlöst, ist schlimmer als eine kurze Liste.

Der Katalog hier ist bewusst auf diese sieben per API-Schlüssel erreichbaren Endpunkte begrenzt. Der kuratierte öffentliche OpenAPI-Vertrag kann daneben sitzungsgebundene Vorgänge beschreiben, ist aber kein Verzeichnis jeder internen Route. Derselbe Vertrag ist maschinenlesbar unter https://api.perstat.io/openapi.json.

Funktionsbereiche, die noch nicht veröffentlicht sind, etwa mehrstufige Checks, bleiben draußen, bis sie ausgeliefert sind.