Я собирался опубликовать это как запрос на новую функцию, но решил сначала убедиться, что такой возможности ещё нет.
Предоставляет ли Discourse маршрут, с помощью которого можно получить области действия (scopes) и уровень доступа пользователя для данного API-ключа? Цель здесь — подтвердить, что API-ключ, передаваемый внешнему приложению, имеет достаточные разрешения, но при этом не обладает излишне широкими правами.
Редакция: после проведения исследования я понял, что прошу здесь реализовать «эндпоинт информации о ключе» (key info endpoint). Такой эндпоинт обычно позволяет клиентам запрашивать детали об используемом ими API-ключе. Это может включать:
- области действия (scopes)
- уровень доступа пользователя
- срок действия
- статистику использования
В контексте API Discourse были бы полезны информация об областях действия и уровне доступа. API-ключи в Discourse не имеют срока действия, поэтому, если ключ можно использовать для доступа к эндпоинту информации о ключе, можно считать его действительным.
Я подозреваю, что эту тему стоит переформулировать как запрос на новую функцию. Мне неизвестно о существовании чего-либо похожего на «эндпоинт информации о ключе» для API Discourse. Общий вариант использования — это сервис, который разрабатывает приложения, интегрирующиеся с API Discourse. Конкретный пример, где это могло бы быть полезно уже сейчас, — расширение интеграции Discourse с Zapier для добавления дополнительных хуков действий. Типы действий, которые можно будет выполнять, будут зависеть от областей действия (scopes) API-ключа, предоставленного в Zapier. Чтобы обойти это ограничение сейчас, может возникнуть соблазн попросить пользователей предоставлять глобальный API-ключ. Однако это противоречит принципу наименьших привилегий.