Files
fusion/packages
Semih ddce7ff5a8 auth-middleware: exempt plugin-defined webhook routes from daemon token
External services (Grafana, Sentry, Slack) call plugin webhooks with
their own per-plugin shared secret — they cannot present the
dashboard's daemon token. Daemon auth was 401'ing those callbacks
before they reached the plugin handler, so even with the route
correctly mounted the secret check inside the plugin never fired.

Add a registry of dynamically-exempt paths populated at server
startup when plugin routes are mounted. Plugin management routes
(/api/plugins, /api/plugins/:id/enable, etc.) stay gated; only the
plugin-defined routes (/api/plugins/:pluginId/<route>) are exempted.
Each plugin handler is responsible for its own secret check (the
telemetry-watcher webhook compares Authorization Bearer against
settings.grafanaWebhookSecret in constant time at the handler).
2026-05-10 09:04:16 +00:00
..
2026-04-26 12:24:08 -07:00
2026-04-26 12:24:08 -07:00
2026-04-26 12:24:08 -07:00
2026-04-26 12:24:08 -07:00