Alerting: add route owner middleware (#73869)
alerting: add route owner middleware Signed-off-by: bergquist <carl.bergquist@gmail.com>
This commit is contained in:
@@ -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"
|
||||
@@ -216,6 +217,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
api.RouteRegister.Group("", func(group routing.RouteRegister) {
|
||||
group.Delete(
|
||||
toMacaronPath("/api/v1/provisioning/alert-rules/{UID}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodDelete, "/api/v1/provisioning/alert-rules/{UID}"),
|
||||
metrics.Instrument(
|
||||
http.MethodDelete,
|
||||
@@ -226,6 +228,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Delete(
|
||||
toMacaronPath("/api/v1/provisioning/contact-points/{UID}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodDelete, "/api/v1/provisioning/contact-points/{UID}"),
|
||||
metrics.Instrument(
|
||||
http.MethodDelete,
|
||||
@@ -236,6 +239,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Delete(
|
||||
toMacaronPath("/api/v1/provisioning/mute-timings/{name}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodDelete, "/api/v1/provisioning/mute-timings/{name}"),
|
||||
metrics.Instrument(
|
||||
http.MethodDelete,
|
||||
@@ -246,6 +250,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Delete(
|
||||
toMacaronPath("/api/v1/provisioning/templates/{name}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodDelete, "/api/v1/provisioning/templates/{name}"),
|
||||
metrics.Instrument(
|
||||
http.MethodDelete,
|
||||
@@ -256,6 +261,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/alert-rules/{UID}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/alert-rules/{UID}"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -266,6 +272,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/alert-rules/{UID}/export"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/alert-rules/{UID}/export"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -276,6 +283,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -286,6 +294,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}/export"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}/export"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -296,6 +305,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/alert-rules"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/alert-rules"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -306,6 +316,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/alert-rules/export"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/alert-rules/export"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -316,6 +327,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/contact-points"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/contact-points"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -326,6 +338,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/contact-points/export"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/contact-points/export"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -336,6 +349,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/mute-timings/{name}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/mute-timings/{name}"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -346,6 +360,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/mute-timings"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/mute-timings"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -356,6 +371,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/policies"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/policies"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -366,6 +382,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/policies/export"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/policies/export"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -376,6 +393,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/templates/{name}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/templates/{name}"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -386,6 +404,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Get(
|
||||
toMacaronPath("/api/v1/provisioning/templates"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodGet, "/api/v1/provisioning/templates"),
|
||||
metrics.Instrument(
|
||||
http.MethodGet,
|
||||
@@ -396,6 +415,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Post(
|
||||
toMacaronPath("/api/v1/provisioning/alert-rules"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodPost, "/api/v1/provisioning/alert-rules"),
|
||||
metrics.Instrument(
|
||||
http.MethodPost,
|
||||
@@ -406,6 +426,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Post(
|
||||
toMacaronPath("/api/v1/provisioning/contact-points"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodPost, "/api/v1/provisioning/contact-points"),
|
||||
metrics.Instrument(
|
||||
http.MethodPost,
|
||||
@@ -416,6 +437,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Post(
|
||||
toMacaronPath("/api/v1/provisioning/mute-timings"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodPost, "/api/v1/provisioning/mute-timings"),
|
||||
metrics.Instrument(
|
||||
http.MethodPost,
|
||||
@@ -426,6 +448,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Put(
|
||||
toMacaronPath("/api/v1/provisioning/alert-rules/{UID}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodPut, "/api/v1/provisioning/alert-rules/{UID}"),
|
||||
metrics.Instrument(
|
||||
http.MethodPut,
|
||||
@@ -436,6 +459,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Put(
|
||||
toMacaronPath("/api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodPut, "/api/v1/provisioning/folder/{FolderUID}/rule-groups/{Group}"),
|
||||
metrics.Instrument(
|
||||
http.MethodPut,
|
||||
@@ -446,6 +470,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Put(
|
||||
toMacaronPath("/api/v1/provisioning/contact-points/{UID}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodPut, "/api/v1/provisioning/contact-points/{UID}"),
|
||||
metrics.Instrument(
|
||||
http.MethodPut,
|
||||
@@ -456,6 +481,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Put(
|
||||
toMacaronPath("/api/v1/provisioning/mute-timings/{name}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodPut, "/api/v1/provisioning/mute-timings/{name}"),
|
||||
metrics.Instrument(
|
||||
http.MethodPut,
|
||||
@@ -466,6 +492,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Put(
|
||||
toMacaronPath("/api/v1/provisioning/policies"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodPut, "/api/v1/provisioning/policies"),
|
||||
metrics.Instrument(
|
||||
http.MethodPut,
|
||||
@@ -476,6 +503,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Put(
|
||||
toMacaronPath("/api/v1/provisioning/templates/{name}"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodPut, "/api/v1/provisioning/templates/{name}"),
|
||||
metrics.Instrument(
|
||||
http.MethodPut,
|
||||
@@ -486,6 +514,7 @@ func (api *API) RegisterProvisioningApiEndpoints(srv ProvisioningApi, m *metrics
|
||||
)
|
||||
group.Delete(
|
||||
toMacaronPath("/api/v1/provisioning/policies"),
|
||||
requestmeta.SetOwner(requestmeta.TeamAlerting),
|
||||
api.authorize(http.MethodDelete, "/api/v1/provisioning/policies"),
|
||||
metrics.Instrument(
|
||||
http.MethodDelete,
|
||||
|
||||
Reference in New Issue
Block a user