bastion 0.53.2
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<meta name="referrer" content="no-referrer">
|
||||
<title>Privatae bastion — this machine</title>
|
||||
<link rel="stylesheet" href="/assets/app.css">
|
||||
<link rel="stylesheet" href="/assets/given.css">
|
||||
<!-- htmx injects its own indicator stylesheet with insertAdjacentHTML (it does
|
||||
`<style>` + `.htmx-indicator{opacity:0...}` when includeIndicatorStyles is
|
||||
true, which is its default). This page's CSP is `default-src 'self'` with no
|
||||
style-src escape and no nonce, so the browser BLOCKS that injection and logs
|
||||
a violation on every load. Nothing here uses hx-indicator, so the effect is
|
||||
nil and the console noise is the whole cost — but a CSP that is violated on
|
||||
every page teaches whoever reads the console to ignore it, which is the one
|
||||
thing a CSP cannot afford.
|
||||
|
||||
Turn the injection OFF rather than widen the policy. Found by the disk-map
|
||||
unit while building against this CSP; it fires on the pages shipped in
|
||||
0.25.0 too, so it predates that work. -->
|
||||
<meta name="htmx-config" content='{"includeIndicatorStyles":false}'>
|
||||
<script src="/assets/htmx.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>This machine</h1>
|
||||
<p class="sub">The bastion running here, and what it is doing.</p>
|
||||
<!-- The links off this page, all in the header rather than the footer on
|
||||
purpose. None of these is a footnote: which host may read this screen,
|
||||
read these files or open a root shell here; the way in for someone who
|
||||
has not set the machine up yet; what is running here that nobody has
|
||||
vouched for; and what a rule would stop if it were allowed to. They sit
|
||||
outside <main>, so the 3s htmx swap never touches them.
|
||||
|
||||
Five units each added one link without knowing about the others, and
|
||||
each merge duplicated the block. Resolved by hand
|
||||
at integration; the order below is deliberate — set it up, then what you
|
||||
gave away, then what is on the disk, then what is running, then what a
|
||||
rule would do about it. -->
|
||||
<p class="sub">
|
||||
<a href="/approvals">Approvals</a> ·
|
||||
<a href="/setup">Set this machine up</a> ·
|
||||
<a href="/given">What this machine has given away</a> ·
|
||||
<a href="/diskmap">This machine's disk</a> ·
|
||||
<a href="/agents">Automated programs running here</a> ·
|
||||
<a href="/policy">What would be stopped</a>
|
||||
</p>
|
||||
</header>
|
||||
|
||||
<!-- The ONE piece of htmx in the page: re-fetch the same fragment the server
|
||||
rendered below, every few seconds, and swap it in. No client-side state,
|
||||
no JSON, no duplicate rendering path — the fragment is the truth. -->
|
||||
<main id="status"
|
||||
hx-get="/fragments/status"
|
||||
hx-trigger="every 3s"
|
||||
hx-swap="innerHTML">
|
||||
{{template "status" .}}
|
||||
</main>
|
||||
|
||||
<footer>
|
||||
privatae-bastion {{.Version}} · this page is served from this machine only and
|
||||
is not reachable from anywhere else.
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user