make local
All checks were successful
Deploy KubeViz / deploy (push) Successful in 11s

This commit is contained in:
2026-03-01 11:37:20 +01:00
parent 1db5805c47
commit 58a10625c3
3 changed files with 14 additions and 10 deletions

View File

@@ -74,7 +74,7 @@ func (s *Server) middleware(next http.Handler) http.Handler {
w.Header().Set("X-Content-Type-Options", "nosniff")
w.Header().Set("Referrer-Policy", "same-origin")
w.Header().Set("Content-Security-Policy", "default-src 'self'; script-src 'self' https://unpkg.com https://cdn.jsdelivr.net; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self';")
w.Header().Set("Content-Security-Policy", "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self';")
if r.TLS != nil || strings.EqualFold(r.Header.Get("X-Forwarded-Proto"), "https") {
w.Header().Set("Strict-Transport-Security", "max-age=31536000; includeSubDomains")
}

View File

@@ -83,17 +83,22 @@ document.addEventListener("DOMContentLoaded", () => {
fileCount.textContent = count === 1 ? fileInput.files[0].name : `${count} files selected`;
});
parseForm.addEventListener("htmx:afterRequest", async (event) => {
const xhr = event.detail.xhr;
if (xhr.status < 200 || xhr.status >= 300) {
const detail = (xhr.responseText || "").trim();
parseForm.addEventListener("submit", async (event) => {
event.preventDefault();
const formData = new FormData(parseForm);
const res = await fetch("/api/manifests/parse", {
method: "POST",
body: formData,
});
if (!res.ok) {
const detail = (await res.text()).trim();
const suffix = detail ? ` ${detail}` : " Check YAML syntax and try again.";
setStatus(`Parse failed (${xhr.status}).${suffix}`, "error");
setStatus(`Parse failed (${res.status}).${suffix}`, "error");
renderParseIssues([]);
return;
}
const payload = JSON.parse(xhr.responseText);
const payload = await res.json();
const parseIssues = payload.summary?.issues || [];
const issues = parseIssues.length;
window.KubeViz.lastParsedResources = payload.summary?.resources || 0;

View File

@@ -5,7 +5,6 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{ .Title }}</title>
<link rel="stylesheet" href="/static/styles.css">
<script defer src="https://unpkg.com/htmx.org@1.9.12"></script>
<script defer src="/static/app.js"></script>
</head>
<body>
@@ -28,7 +27,7 @@
</nav>
<section id="tab-data" class="tab-pane active">
<form id="manifest-form" hx-post="/api/manifests/parse" hx-encoding="multipart/form-data" hx-swap="none">
<form id="manifest-form">
<label for="manifestText">Paste YAML</label>
<textarea id="manifestText" name="manifestText" rows="10" placeholder="apiVersion: apps/v1&#10;kind: Deployment&#10;..."></textarea>
@@ -97,7 +96,7 @@
</section>
<section id="tab-filter" class="tab-pane">
<form id="filter-form" hx-get="/api/graph" hx-swap="none">
<form id="filter-form">
<h3>Quick Filters</h3>
<label for="query">Search</label>
<input id="query" name="q" type="text" placeholder="name, kind, namespace or id">