From ad11e014acea626b63d1f4919ad603846e9e4084 Mon Sep 17 00:00:00 2001 From: Rian Brooks-Kane Date: Fri, 9 Jan 2026 19:53:19 +1000 Subject: [PATCH] Add no-cache headers to webserver endpoints Prevents browsers and proxies from caching stale inverter data by adding Cache-Control, Pragma, and Expires headers to all HTTP responses. --- SunGather/exports/webserver.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/SunGather/exports/webserver.py b/SunGather/exports/webserver.py index 5a13bcf..905f226 100644 --- a/SunGather/exports/webserver.py +++ b/SunGather/exports/webserver.py @@ -80,11 +80,17 @@ def do_GET(self): if self.path.startswith('/metrics'): self.send_response(200) self.send_header("Content-type", "text/plain") + self.send_header("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0") + self.send_header("Pragma", "no-cache") + self.send_header("Expires", "0") self.end_headers() self.wfile.write(bytes(export_webserver.metrics, "utf-8")) elif self.path.startswith('/config'): self.send_response(200) self.send_header("Content-type", "text/html") + self.send_header("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0") + self.send_header("Pragma", "no-cache") + self.send_header("Expires", "0") self.end_headers() self.wfile.write(bytes(export_webserver.config, "utf-8")) parsed_data = parse_qs(urlparse(self.path).query) @@ -92,11 +98,17 @@ def do_GET(self): elif self.path.startswith('/json'): self.send_response(200) self.send_header("Content-type", "application/json") + self.send_header("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0") + self.send_header("Pragma", "no-cache") + self.send_header("Expires", "0") self.end_headers() self.wfile.write(bytes(export_webserver.json, "utf-8")) else: self.send_response(200) self.send_header("Content-type", "text/html") + self.send_header("Cache-Control", "no-store, no-cache, must-revalidate, max-age=0") + self.send_header("Pragma", "no-cache") + self.send_header("Expires", "0") self.end_headers() self.wfile.write(bytes("SunGather", "utf-8")) self.wfile.write(bytes("", "utf-8"))