Skip to content

Commit 987db9b

Browse files
committed
fix: Allow OPTIONS method on every path
Signed-off-by: Célian Garcia <[email protected]>
1 parent 2e50cb2 commit 987db9b

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

Diff for: injectproxy/routes.go

+13-13
Original file line numberDiff line numberDiff line change
@@ -315,21 +315,21 @@ func NewRoutes(upstream *url.URL, label string, extractLabeler ExtractLabeler, o
315315
mux := newStrictMux(newInstrumentedMux(http.NewServeMux(), opt.registerer))
316316

317317
errs := merrors.New(
318-
mux.Handle("/federate", r.el.ExtractLabel(enforceMethods(r.matcher, "GET"))),
319-
mux.Handle("/api/v1/query", r.el.ExtractLabel(enforceMethods(r.query, "GET", "POST"))),
320-
mux.Handle("/api/v1/query_range", r.el.ExtractLabel(enforceMethods(r.query, "GET", "POST"))),
321-
mux.Handle("/api/v1/alerts", r.el.ExtractLabel(enforceMethods(r.passthrough, "GET"))),
322-
mux.Handle("/api/v1/rules", r.el.ExtractLabel(enforceMethods(r.passthrough, "GET"))),
323-
mux.Handle("/api/v1/series", r.el.ExtractLabel(enforceMethods(r.matcher, "GET", "POST"))),
324-
mux.Handle("/api/v1/query_exemplars", r.el.ExtractLabel(enforceMethods(r.query, "GET", "POST"))),
318+
mux.Handle("/federate", r.el.ExtractLabel(enforceMethods(r.matcher, "OPTIONS", "GET"))),
319+
mux.Handle("/api/v1/query", r.el.ExtractLabel(enforceMethods(r.query, "OPTIONS", "GET", "POST"))),
320+
mux.Handle("/api/v1/query_range", r.el.ExtractLabel(enforceMethods(r.query, "OPTIONS", "GET", "POST"))),
321+
mux.Handle("/api/v1/alerts", r.el.ExtractLabel(enforceMethods(r.passthrough, "OPTIONS", "GET"))),
322+
mux.Handle("/api/v1/rules", r.el.ExtractLabel(enforceMethods(r.passthrough, "OPTIONS", "GET"))),
323+
mux.Handle("/api/v1/series", r.el.ExtractLabel(enforceMethods(r.matcher, "OPTIONS", "GET", "POST"))),
324+
mux.Handle("/api/v1/query_exemplars", r.el.ExtractLabel(enforceMethods(r.query, "OPTIONS", "GET", "POST"))),
325325
)
326326

327327
if opt.enableLabelAPIs {
328328
errs.Add(
329-
mux.Handle("/api/v1/labels", r.el.ExtractLabel(enforceMethods(r.matcher, "GET", "POST"))),
329+
mux.Handle("/api/v1/labels", r.el.ExtractLabel(enforceMethods(r.matcher, "OPTIONS", "GET", "POST"))),
330330
// Full path is /api/v1/label/<label_name>/values but http mux does not support patterns.
331331
// This is fine though as we don't care about name for matcher injector.
332-
mux.Handle("/api/v1/label/", r.el.ExtractLabel(enforceMethods(r.matcher, "GET"))),
332+
mux.Handle("/api/v1/label/", r.el.ExtractLabel(enforceMethods(r.matcher, "OPTIONS", "GET"))),
333333
)
334334
}
335335

@@ -340,20 +340,20 @@ func NewRoutes(upstream *url.URL, label string, extractLabeler ExtractLabeler, o
340340
r.errorIfRegexpMatch(
341341
enforceMethods(
342342
assertSingleLabelValue(r.silences),
343-
"GET", "POST",
343+
"OPTIONS", "GET", "POST",
344344
),
345345
),
346346
)),
347347
mux.Handle("/api/v2/silence/", r.el.ExtractLabel(
348348
r.errorIfRegexpMatch(
349349
enforceMethods(
350350
assertSingleLabelValue(r.deleteSilence),
351-
"DELETE",
351+
"OPTIONS", "DELETE",
352352
),
353353
),
354354
)),
355-
mux.Handle("/api/v2/alerts/groups", r.el.ExtractLabel(enforceMethods(r.enforceFilterParameter, "GET"))),
356-
mux.Handle("/api/v2/alerts", r.el.ExtractLabel(enforceMethods(r.alerts, "GET"))),
355+
mux.Handle("/api/v2/alerts/groups", r.el.ExtractLabel(enforceMethods(r.enforceFilterParameter, "OPTIONS", "GET"))),
356+
mux.Handle("/api/v2/alerts", r.el.ExtractLabel(enforceMethods(r.alerts, "OPTIONS", "GET"))),
357357
)
358358

359359
errs.Add(

0 commit comments

Comments
 (0)