Discourse Events は /discourse-post-event/... 配下に複数の REST エンドポイントを公開していますが、Granular スコープで 管理用 API キー を作成する場合、Events 専用のスコープは見当たりません。
カレンダー購読フィード(ICS エンドポイントなど)には discourse-calendar:events_calendar という ユーザー API キー スコープが既に存在するため、このリクエストはカレンダー購読キーではなく、Granular な管理用/サーバー間 REST API キー に関するものです。
ユースケース
外部統合では、Discourse Events のクエリのみが必要な場合があります。例えば、イベントが存在するかどうかの確認や、イベント情報の取得などです。
現在、Discourse Events の REST エンドポイントにのみ制限される管理用 API キーを発行する方法は見当たりません。そのため、統合には実際に必要とするよりも広い API スコープへのアクセス権限を付与する必要が生じる可能性があります。
discourse-events が REST ルートに対して Granular な API キー スコープを登録し、統合が最小権限の原則(principle of least privilege)に従えるようになると有用です。
理想的には、操作を区別できるものが望ましいです。例えば:
- イベントの読み取り/クエリ
- イベントの管理
- イベント招待者の管理
初期段階でも、読み取り専用の Events スコープがあれば有用です。
最近の関連レポート でも、Granular API キー スコープを試みた際に、Events エンドポイントに対する制限が見当たらないことが指摘されていました。
既存の Events ルートは、プラグイン自体が現在 discourse-events と名付けられているにもかかわらず、互換性のために /discourse-post-event/... という URL 名前空間を維持しています。そのため、スコープ名に旧プラグイン名を使用する必要はないと考えます。
現時点ではこのための PR をまとめる時間が十分ありませんが、他の統合にも有用である場合や、pr-welcome として適している変更である可能性があるため、機能リクエストとして提起しておきます。