Granulare API-Key-Bereiche für die REST-Endpunkte von Discourse Events hinzufügen

Discourse Events stellt eine Reihe von REST-Endpunkten unter /discourse-post-event/... bereit, aber bei der Erstellung eines Admin-API-Schlüssels mit Granular-Umfang scheint es keinen Events-spezifischen Umfang zu geben.

Es gibt bereits einen discourse-calendar:events_calendar-Benutzer-API-Schlüssel-Umfang für Kalender-Abonnement-Feeds wie den ICS-Endpunkt. Diese Anfrage bezieht sich daher spezifisch auf granulare Admin-/Server-zu-Server-REST-API-Schlüssel und nicht auf Kalender-Abonnement-Schlüssel.

Anwendungsfall

Eine externe Integration benötigt möglicherweise nur den Zugriff auf Discourse Events – beispielsweise, um zu prüfen, ob ein Event existiert, oder um Event-Informationen abzurufen.

Derzeit scheint es keine Möglichkeit zu geben, einen Admin-API-Schlüssel auszustellen, der speziell auf die Discourse Events-REST-Endpunkte beschränkt ist. Das bedeutet, dass einer Integration möglicherweise ein breiterer API-Umfang gewährt werden muss, als sie tatsächlich benötigt.

Es wäre nützlich, wenn discourse-events granulare API-Schlüssel-Umfänge für seine REST-Routen registrieren würde, damit Integrationen dem Prinzip der geringsten Berechtigung folgen können.

Idealerweise könnten diese zwischen verschiedenen Operationen unterscheiden, beispielsweise:

  • Events lesen/abfragen
  • Events verwalten
  • Event-Einladungen verwalten

Schon ein anfänglicher read-only-Events-Umfang wäre nützlich.

Ein jüngster, verwandter Bericht wies ebenfalls darauf hin, dass bei der Verwendung des Granular-API-Schlüssel-Umfangs keine offensichtliche Einschränkung für die Events-Endpunkte verfügbar war.

Die bestehenden Events-Routen behalten den URL-Namensraum /discourse-post-event/... aus Kompatibilitätsgründen bei, obwohl das Plugin selbst nun discourse-events heißt. Daher denke ich nicht, dass der Umfang zwingend den alten Plugin-Namen verwenden muss.

Ich habe derzeit nicht genügend Zeit, einen PR dafür zusammenzustellen, wollte dies aber als Funktionswunsch einreichen, falls es auch für andere Integrationen nützlich wäre oder sich als #pr-welcome-Änderung eignen würde.

2 „Gefällt mir“