Añadir alcances de clave de API granulares para los endpoints REST de Discourse Events

Discourse Events expone una serie de puntos finales REST bajo /discourse-post-event/..., pero al crear una clave de API de administrador con alcance Granular, no parece haber un alcance específico para Eventos.

Ya existe un alcance de clave de API de usuario discourse-calendar:events_calendar para las fuentes de suscripción al calendario, como el punto final ICS, por lo que esta solicitud se refiere específicamente a las claves de API REST de administrador/servidor-a-servidor con alcance granular, y no a las claves de suscripción al calendario.

Caso de uso

Una integración externa podría necesitar únicamente consultar Discourse Events, por ejemplo, para verificar si un evento existe o recuperar información del evento.

En la actualidad, no parece haber forma de emitir una clave de API de administrador restringida específicamente a los puntos finales REST de Discourse Events. Esto significa que una integración podría necesitar acceso a un alcance de API más amplio del que realmente requiere.

Sería útil que discourse-events registrara alcances granulares de claves de API para sus rutas REST, de modo que las integraciones puedan seguir el principio de privilegio mínimo.

Idealmente, estos podrían distinguir entre operaciones, por ejemplo:

  • leer/consultar eventos
  • gestionar eventos
  • gestionar invitados a eventos

Incluso un alcance inicial de solo lectura para Eventos sería útil.

Un informe relacionado reciente también señaló que, al probar el alcance de clave de API Granular, no había ninguna restricción aparente disponible para los puntos finales de Eventos.

Las rutas de Eventos existentes conservan el espacio de nombres de URL /discourse-post-event/... por compatibilidad, a pesar de que el propio plugin ahora se llama discourse-events, por lo que no creo que el alcance necesite necesariamente usar el nombre antiguo del plugin.

Actualmente no tengo suficiente tiempo para preparar una PR al respecto, pero quería plantearlo como una solicitud de funcionalidad por si también resultara útil para otras integraciones o fuera adecuado como un cambio pr-welcome.

2 Me gusta