From 59a1308eccc2346fe50b050a9e0f55d8202b5ff9 Mon Sep 17 00:00:00 2001 From: "@nekomimi.pet" Date: Fri, 31 Oct 2025 12:37:26 -0400 Subject: [PATCH] knotserver: add cors headers as a middleware function Signed-off-by: @nekomimi.pet --- knotserver/middleware.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/knotserver/middleware.go b/knotserver/middleware.go index ae6280d6..5b579bc6 100644 --- a/knotserver/middleware.go +++ b/knotserver/middleware.go @@ -33,3 +33,21 @@ func (h *Knot) RequestLogger(next http.Handler) http.Handler { ) }) } + +func (h *Knot) CORS(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + // Set CORS headers + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS") + w.Header().Set("Access-Control-Allow-Headers", "Content-Type, Authorization") + w.Header().Set("Access-Control-Max-Age", "86400") + + // Handle preflight requests + if r.Method == "OPTIONS" { + w.WriteHeader(http.StatusOK) + return + } + + next.ServeHTTP(w, r) + }) +} -- 2.51.0 From b19de89d52bc58fdb3324dce3d47fb4075af3665 Mon Sep 17 00:00:00 2001 From: "@nekomimi.pet" Date: Fri, 31 Oct 2025 12:37:37 -0400 Subject: [PATCH] knotserver: have top level router use cors header function Signed-off-by: @nekomimi.pet --- knotserver/router.go | 1 + 1 file changed, 1 insertion(+) diff --git a/knotserver/router.go b/knotserver/router.go index 56fd9eac..d36a184b 100644 --- a/knotserver/router.go +++ b/knotserver/router.go @@ -71,6 +71,7 @@ func Setup(ctx context.Context, c *config.Config, db *db.DB, e *rbac.Enforcer, j func (h *Knot) Router() http.Handler { r := chi.NewRouter() + r.Use(h.CORS) r.Use(h.RequestLogger) r.Get("/", func(w http.ResponseWriter, r *http.Request) { -- 2.51.0