Alerting: add route owner middleware (#73869)

alerting: add route owner middleware

Signed-off-by: bergquist <carl.bergquist@gmail.com>
This commit is contained in:
Carl Bergquist
2023-08-29 12:43:33 +02:00
committed by GitHub
parent fe1563882a
commit 10a82e30ba
8 changed files with 89 additions and 0 deletions
@@ -12,6 +12,7 @@ import (
"github.com/grafana/grafana/pkg/api/response"
"github.com/grafana/grafana/pkg/api/routing"
"github.com/grafana/grafana/pkg/middleware"
"github.com/grafana/grafana/pkg/middleware/requestmeta"
contextmodel "github.com/grafana/grafana/pkg/services/contexthandler/model"
apimodels "github.com/grafana/grafana/pkg/services/ngalert/api/tooling/definitions"
"github.com/grafana/grafana/pkg/services/ngalert/metrics"
@@ -195,6 +196,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
api.RouteRegister.Group("", func(group routing.RouteRegister) {
group.Post(
toMacaronPath("/api/alertmanager/grafana/api/v2/silences"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodPost, "/api/alertmanager/grafana/api/v2/silences"),
metrics.Instrument(
http.MethodPost,
@@ -205,6 +207,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Post(
toMacaronPath("/api/alertmanager/{DatasourceUID}/api/v2/silences"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodPost, "/api/alertmanager/{DatasourceUID}/api/v2/silences"),
metrics.Instrument(
http.MethodPost,
@@ -215,6 +218,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Delete(
toMacaronPath("/api/alertmanager/{DatasourceUID}/config/api/v1/alerts"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodDelete, "/api/alertmanager/{DatasourceUID}/config/api/v1/alerts"),
metrics.Instrument(
http.MethodDelete,
@@ -225,6 +229,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Delete(
toMacaronPath("/api/alertmanager/grafana/config/api/v1/alerts"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodDelete, "/api/alertmanager/grafana/config/api/v1/alerts"),
metrics.Instrument(
http.MethodDelete,
@@ -235,6 +240,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Delete(
toMacaronPath("/api/alertmanager/grafana/api/v2/silence/{SilenceId}"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodDelete, "/api/alertmanager/grafana/api/v2/silence/{SilenceId}"),
metrics.Instrument(
http.MethodDelete,
@@ -245,6 +251,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Delete(
toMacaronPath("/api/alertmanager/{DatasourceUID}/api/v2/silence/{SilenceId}"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodDelete, "/api/alertmanager/{DatasourceUID}/api/v2/silence/{SilenceId}"),
metrics.Instrument(
http.MethodDelete,
@@ -255,6 +262,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/{DatasourceUID}/api/v2/alerts/groups"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/{DatasourceUID}/api/v2/alerts/groups"),
metrics.Instrument(
http.MethodGet,
@@ -265,6 +273,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/{DatasourceUID}/api/v2/alerts"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/{DatasourceUID}/api/v2/alerts"),
metrics.Instrument(
http.MethodGet,
@@ -275,6 +284,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/{DatasourceUID}/api/v2/status"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/{DatasourceUID}/api/v2/status"),
metrics.Instrument(
http.MethodGet,
@@ -285,6 +295,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/{DatasourceUID}/config/api/v1/alerts"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/{DatasourceUID}/config/api/v1/alerts"),
metrics.Instrument(
http.MethodGet,
@@ -295,6 +306,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/grafana/api/v2/alerts/groups"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/grafana/api/v2/alerts/groups"),
metrics.Instrument(
http.MethodGet,
@@ -305,6 +317,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/grafana/api/v2/alerts"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/grafana/api/v2/alerts"),
metrics.Instrument(
http.MethodGet,
@@ -315,6 +328,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/grafana/api/v2/status"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/grafana/api/v2/status"),
metrics.Instrument(
http.MethodGet,
@@ -325,6 +339,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/grafana/config/api/v1/alerts"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/grafana/config/api/v1/alerts"),
metrics.Instrument(
http.MethodGet,
@@ -335,6 +350,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/grafana/config/history"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/grafana/config/history"),
metrics.Instrument(
http.MethodGet,
@@ -345,6 +361,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/grafana/config/api/v1/receivers"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/grafana/config/api/v1/receivers"),
metrics.Instrument(
http.MethodGet,
@@ -355,6 +372,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/grafana/api/v2/silence/{SilenceId}"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/grafana/api/v2/silence/{SilenceId}"),
metrics.Instrument(
http.MethodGet,
@@ -365,6 +383,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/grafana/api/v2/silences"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/grafana/api/v2/silences"),
metrics.Instrument(
http.MethodGet,
@@ -375,6 +394,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/{DatasourceUID}/api/v2/silence/{SilenceId}"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/{DatasourceUID}/api/v2/silence/{SilenceId}"),
metrics.Instrument(
http.MethodGet,
@@ -385,6 +405,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Get(
toMacaronPath("/api/alertmanager/{DatasourceUID}/api/v2/silences"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodGet, "/api/alertmanager/{DatasourceUID}/api/v2/silences"),
metrics.Instrument(
http.MethodGet,
@@ -395,6 +416,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Post(
toMacaronPath("/api/alertmanager/{DatasourceUID}/api/v2/alerts"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodPost, "/api/alertmanager/{DatasourceUID}/api/v2/alerts"),
metrics.Instrument(
http.MethodPost,
@@ -405,6 +427,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Post(
toMacaronPath("/api/alertmanager/{DatasourceUID}/config/api/v1/alerts"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodPost, "/api/alertmanager/{DatasourceUID}/config/api/v1/alerts"),
metrics.Instrument(
http.MethodPost,
@@ -415,6 +438,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Post(
toMacaronPath("/api/alertmanager/grafana/config/api/v1/alerts"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodPost, "/api/alertmanager/grafana/config/api/v1/alerts"),
metrics.Instrument(
http.MethodPost,
@@ -425,6 +449,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Post(
toMacaronPath("/api/alertmanager/grafana/config/history/{id}/_activate"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodPost, "/api/alertmanager/grafana/config/history/{id}/_activate"),
metrics.Instrument(
http.MethodPost,
@@ -435,6 +460,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Post(
toMacaronPath("/api/alertmanager/grafana/config/api/v1/receivers/test"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodPost, "/api/alertmanager/grafana/config/api/v1/receivers/test"),
metrics.Instrument(
http.MethodPost,
@@ -445,6 +471,7 @@ func (api *API) RegisterAlertmanagerApiEndpoints(srv AlertmanagerApi, m *metrics
)
group.Post(
toMacaronPath("/api/alertmanager/grafana/config/api/v1/templates/test"),
requestmeta.SetOwner(requestmeta.TeamAlerting),
api.authorize(http.MethodPost, "/api/alertmanager/grafana/config/api/v1/templates/test"),
metrics.Instrument(
http.MethodPost,