Uptimeify Docs

Berechtigungen je Endpunkt

Welche Rolle, welche Token-Art und welchen Token-Scope jeder Endpunkt braucht, und mit welchem Fehlercode ein abgewiesener Aufruf antwortet.

Jeder Aufruf wird in dieser Reihenfolge geprüft. Die erste Prüfung, die scheitert, bestimmt die Antwort:

  1. Anmeldung. Kein Token, oder ein widerrufenes, abgelaufenes oder vertipptes: 401 unauthorized.
  2. Token-Art. Ein kundengebundenes Token auf einem organisationsweiten Pfad: 403 customerScopedTokenForbidden. Ein Token mit Scopes, dem der Scope des Pfads fehlt: 403 apiTokenScopeForbidden. Meldung und data.requiredScope nennen den fehlenden Scope, zum Beispiel api.write.monitors. Siehe Token-Scopes.
  3. Rolle. Ein Organisations-Token (wsm_…) handelt mit der aktuellen Rolle des Nutzers, der es angelegt hat. Ist dieser Nutzer deaktiviert oder gelöscht, handelt das Token als readonly. Alte Tokens ohne hinterlegten Aussteller handeln als admin. Eine nicht zugelassene Rolle bekommt 403 mit dem Code aus der Tabelle unten.
  4. Kundenbereich. readonly-Nutzer, Editoren mit Kundenzuordnung und kundengebundene Tokens erreichen nur ihre eigenen Kunden. Eine einzelne Ressource außerhalb dieses Bereichs antwortet mit 404 und dem Nicht-gefunden-Code der Ressource, nie mit 403. Ein API-Token, ob organisationsweit oder kundengebunden, folgt der aktuellen Rolle und Kundenzuordnung des Nutzers, der es angelegt hat: Ist dieser Nutzer Kunden zugeordnet, erreicht das Token nur diese Kunden (ein kundengebundenes Token erreicht seinen Kunden nur, solange der Nutzer ihn noch hat). Ist der Nutzer deaktiviert oder gelöscht, erreicht das Token keinen Kunden mehr.
  5. Modul. Statusseiten brauchen das Statusseiten-Modul (403 statusPagesModuleDisabled). Incident Management muss für die Organisation aktiviert sein (403 imNotEnabled).

Jeder abgewiesene Aufruf trägt einen stabilen data.code und eine englische statusMessage, die sagt, was fehlt. Verzweige auf den Code; der Text kann sich ändern.

Rollen: admin und editor sind Organisationsrollen, readonly ist die Self-Service-Rolle des Kunden, responder gibt es nur für Incident Management. Global Supporter ändern nie Kundendaten (403 forbidden). Agent-Tokens (wsma_…, verbundene Apps) erreichen nur die Pfade, die ihre Scopes erlauben; jeder andere Pfad antwortet mit 403 agentTokenReadOnly und data.reason.

Monitore

MethodePfadWer darf aufrufenScopeAbweisung mit
GET/api/websites/:id, /api/<type>-monitors/:idJede Rolle innerhalb ihres Kundenbereichsapi.read.monitors404 websiteNotFound / monitorNotFound
POST/api/websites, /api/<type>-monitorsadmin, editor. readonly und kundengebundene Tokens legen self_service-Monitore für den eigenen Kunden an, wenn das Paket Self-Service erlaubt. Nur admin darf managementType setzen.api.write.monitorsforbidden, selfServiceNotAllowed, selfServiceQuotaReached, Kontingent-Codes
PATCH/api/websites/:id, /api/<type>-monitors/:idadmin, editor. Kundengebundene Aufrufer ändern self_service-Monitore, managed nur mit canEditManaged. managementType ändern braucht einen organisationsweiten admin.api.write.monitorsforbidden, managed_by_organization, managementTypeOrgOnly
DELETE/api/websites/:id, /api/<type>-monitors/:idWie PATCH, aber nie readonly (auch kein Token, das dieser Nutzer angelegt hat)api.write.monitorsreadonlyMayNotDelete, managed_by_organization
POST/api/websites/:id/heartbeat-token/rotateWie PATCHapi.write.monitorswie PATCH
GET, POST, DELETE/api/monitor-tagsJede Rolle innerhalb ihres Kundenbereichsapi.read.monitors / api.write.monitorsforbidden, badRequest
GET/api/tags, /api/tags/:idJede Rolle der Organisationapi.read.monitors404 tagNotFound
POST, PATCH, DELETE/api/tags, /api/tags/:idJede Rolle; kundengebundene Aufrufer legen nur Tags ihrer Kunden an und ändern nur diese, nie organisationsweite Tagsapi.write.monitorsforbidden, authorizingUserUnresolved
GET/api/maintenance-windows/:idJede Rolle innerhalb ihres Kundenbereichsapi.read.monitorsforbidden
POST/api/maintenance-windowsJede Rolle außer Global Supportern. Kundengebundene Aufrufer verankern das Fenster an ihrem Kunden.api.write.monitorsforbidden, tagOnlyNeedsCustomer
PATCH, DELETE/api/maintenance-windows/:idKundenfenster: innerhalb des Kundenbereichs. Organisationsweite Fenster: admin oder editor mit organisationsweitem Zugriff.api.write.monitorsforbidden, customerScopedTokenForbidden
GET/api/monitoring-locations/countriesJeder angemeldete Aufruferapi.read.monitors-

<type> ist dns, ftp, icmp, imap-pop, smtp, ssh oder tcp; alle sieben folgen denselben Regeln.

Kunden

MethodePfadWer darf aufrufenScopeAbweisung mit
GET/api/customers, /api/customers/:idJede Rolle; eingeschränkte Aufrufer sehen ihre eigenen Kundenapi.read.customers404 customerNotFound
POST/api/customersadmin, organisationsweiter editor. Keine kundengebundenen Tokens. Berechtigungsfelder wirken nur für admin.api.write.customersforbidden, customerScopedTokenForbidden
PATCH/api/customers/:idadmin, editor. Paket oder Berechtigungsfelder ändern braucht admin.api.write.customersforbidden, packageOrgOnly
DELETE/api/customers/:idadmin, editor (ein Editor mit Kundenzuordnung nur innerhalb dieses Bereichs und nie den letzten Kunden; userAction=delete bleibt admin). Keine kundengebundenen Tokens.api.write.customersforbidden, customerUserDeleteAdminOnly, cannotDeleteOwnLastCustomer
POST/api/customers/:id/ips, /api/customers/:id/domainsJede Rolle innerhalb ihres Kundenbereichs, auch readonly (als self_service, wenn das Paket es erlaubt)api.write.customersforbidden, selfServiceNotAllowed, selfServiceQuotaReached, Kontingent-Codes
GET/api/customer-ips/:id, /api/customer-domains/:idJede Rolle innerhalb ihres Kundenbereichsapi.read.customers404 ipNotFound / domainNotFound
PATCH/api/customer-ips/:id, /api/customer-domains/:idadmin, editor; kundengebundene Aufrufer für self_service-Einträgeapi.write.customersforbidden, managed_by_organization, managementTypeOrgOnly
DELETE/api/customer-ips/:id, /api/customer-domains/:idWie PATCH, nie readonlyapi.write.customersreadonlyMayNotDelete

Organisation

Alle Pfade dieses Abschnitts sind für kundengebundene Tokens gesperrt (customerScopedTokenForbidden), außer GET /api/organization und GET /api/package-configs.

MethodePfadWer darf aufrufenScopeAbweisung mit
GET/api/organization, /api/package-configsJede Rolle der Organisationapi.read.organization-
PATCH/api/organizationadmin. API-Tokens können automatische Upgrades und die MFA-Richtlinie nicht ändern.api.write.organizationforbidden, nonUserSessionForbidden
GET/api/usersJede Rolle; eingeschränkte Aufrufer sehen die Nutzer ihrer Kundenapi.read.organization-
POST, GET, PATCH, DELETE/api/users, /api/users/:idadmin mit organisationsweitem Zugriffapi.read.organization / api.write.organizationforbidden, customerScopedTokenForbidden, globalUserProtected
alle/api/custom-fields, /api/custom-fields/:idLesen: jede Rolle. Ändern: admin.api.read.organization / api.write.organizationforbidden
alle/api/escalation-config/:idadmin mit organisationsweitem Zugriff, auch zum Lesenapi.read.alerts / api.write.alertsforbidden, customerScopedTokenForbidden
GET/api/organization/reports/:idJede Rolle der Organisationapi.read.reports404 notFound
POST, PATCH, DELETE/api/organization/reports, /api/organization/reports/:idadminapi.write.reportsforbidden
alle/api/organization/smtp, /api/organization/whitelabel/**, /api/organization/sso/**admin. Für Tokens mit Scopes gesperrt: nimm ein Token ohne Scopes.-forbidden, ssoAdminOnly, apiTokenScopeForbidden

Benachrichtigungskanäle

MethodePfadWer darf aufrufenScopeAbweisung mit
GET/api/notification-channels, /api/notification-channels/:idJede Rolle; eingeschränkte Aufrufer sehen die Kanäle ihrer Kunden und die Organisationskanäleapi.read.alertsforbidden
POST, PATCH, DELETE/api/notification-channels, /api/notification-channels/:idOrganisationskanäle: admin. Kundenkanäle: admin, oder readonly innerhalb seines Kundenbereichs. editor kann Kanäle nicht ändern.api.write.alertsforbidden

Statusseiten

Das Statusseiten-Modul muss aktiv sein. Kundengebundene Aufrufer erreichen nur Seiten ihrer Kunden; eine Seite ohne Kunde braucht organisationsweiten Zugriff (403 forbidden).

MethodePfadWer darf aufrufenScopeAbweisung mit
GET/api/status-pages, /api/status-pages/:id, …/components, …/groups, /api/status-pages/maintenances/:id, /api/status-pages/domains/:idadmin, editor, readonlyapi.read.statuspagesforbidden, 404 statusPageNotFound
POST, PATCH, DELETE/api/status-pages, /api/status-pages/:id, Komponenten, Gruppen, Wartungen, POST /api/status-pages/domains, DELETE /api/status-pages/domains/:idadmin, editor; kundengebundene Nutzer und Tokens (auch readonly) nur self_service-Seiten ihrer Kundenapi.write.statuspagesforbidden, statusPageLimitReached, managed_by_organization
GET, PATCH/api/status-pages/:id/designadmin, editor, readonlyapi.read.statuspages / api.write.statuspagesforbidden
POST/api/status-pages/domains/verify, /api/status-pages/domains/activateadminapi.write.statuspagesforbidden

Incident Management

Incident Management muss für die Organisation aktiviert sein (403 imNotEnabled; /api/im/org-settings lesen und ändern geht auch ohne). Es braucht die Rolle admin, editor oder responder ohne Kundenzuordnung; readonly und kundengebundene Tokens bekommen 403 imAccessDenied oder 403 customerScopedTokenForbidden. Agent-Tokens können Incident Management nicht nutzen. Scopes: api.read.incidents für GET, api.write.incidents für jede andere Methode.

MethodePfadWer darf aufrufenAbweisung mit
GETjeder /api/im/**-Pfad unten außer den zwei Admin-PfadenJede IM-Rolle (admin, editor, responder)imAccessDenied
POST, PATCH, DELETE/api/im/teams/:id/** (Mitglieder, Einladung, Stufen, Eskalationen, Vertretungen), /api/im/schedules/**, /api/im/tiers/:id/schedules, /api/im/sources/**, /api/im/routing/**, /api/im/statuspage-rules/**admin, oder ein Team-Admin (imRole: admin) dieses Teams. Einen neuen Nutzer einladen braucht admin.imTeamWriteDenied, forbidden
POST/api/im/teamsadminimTeamWriteDenied
POST, PATCH, DELETE/api/im/channels, /api/im/channels/:idOrganisationskanal: admin. Teamkanal: admin oder Team-Admin.imChannelWriteDenied
POST, PATCH, DELETE/api/im/outbound, /api/im/outbound/:idOrganisations-Integration: admin. Team-Integration: admin oder Team-Admin.imOutboundWriteDenied, imTeamWriteDenied
PATCH/api/im/org-settingsadminforbidden
GET, PUT/api/im/notification-template, /api/im/users/:id/notification-settingsadmin, auch zum Lesenforbidden

Ein API-Token ist nie Team-Admin: Team-Admin-Rechte gehören einem Nutzer. Team-Ressourcen mit einem Token zu ändern braucht deshalb ein Token, das ein admin angelegt hat.

Auf dieser Seite