From 0059ab7dffcf2b96e23f54ac47e1b7bc81bdfe2d Mon Sep 17 00:00:00 2001 From: Sarvesh Mishra Date: Thu, 11 Sep 2025 20:42:19 +0530 Subject: [PATCH 1/3] feat(web): filter push notifications to on-call alerts --- web/handler.go | 15 +++++++++++++++ web/index.html | 36 ++++++++++++++++++++++++++++++++++++ web/manifest.webmanifest | 21 +++++++++++++++++++++ web/service-worker.js | 28 ++++++++++++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 web/manifest.webmanifest create mode 100644 web/service-worker.js diff --git a/web/handler.go b/web/handler.go index b57302c679..b4a10d55cd 100644 --- a/web/handler.go +++ b/web/handler.go @@ -26,6 +26,12 @@ var bundleFS embed.FS //go:embed live.js var liveJS []byte +//go:embed manifest.webmanifest +var pwaManifest []byte + +//go:embed service-worker.js +var serviceWorker []byte + // validateAppJS will return an error if the app.js file is not valid or missing. func validateAppJS(fs fs.FS) error { if version.GitVersion() == "dev" { @@ -96,6 +102,15 @@ func NewHandler(uiDir, prefix string) (http.Handler, error) { mux.Handle("/static/", NewEtagFileServer(http.FS(sub), true)) } + mux.HandleFunc("/manifest.webmanifest", func(w http.ResponseWriter, req *http.Request) { + w.Header().Set("Content-Type", "application/manifest+json") + http.ServeContent(w, req, "/manifest.webmanifest", time.Time{}, bytes.NewReader(pwaManifest)) + }) + mux.HandleFunc("/service-worker.js", func(w http.ResponseWriter, req *http.Request) { + w.Header().Set("Content-Type", "application/javascript") + http.ServeContent(w, req, "/service-worker.js", time.Time{}, bytes.NewReader(serviceWorker)) + }) + mux.HandleFunc("/api/graphql/explore", func(w http.ResponseWriter, req *http.Request) { cfg := config.FromContext(req.Context()) diff --git a/web/index.html b/web/index.html index f5fde126ae..640ea8e040 100644 --- a/web/index.html +++ b/web/index.html @@ -43,6 +43,7 @@ type="image/png" href="{{ .Prefix }}/static/favicon-192.png" /> +