chore(tools): the live tools take their target, they do not assume it

The dashboard's fifth guard learned to see a host name and found three in
tools/live: a default host in lib.ts and two health checks written out.
A measuring tool that aims at somebody else's server by default is a trap,
so FILIUS_HOST has no fallback and the run says what to set; the two checks
use BASE, which is derived from it.

BASE had to be imported in m3.ts — without that this would have been a
NameError instead of the intended refusal.

README.md keeps the real names: the project is this school's and the prose
describes its deployment; what has to stand on its own is the code.

The allow file also excuses the simulator's own data. Filius simulates a
network, so its scenarios, tests and documentation carry 65 693 addresses
(measured) — all of invented machines in invented networks, which is the
point of the program. Deliberately broad: a list of scenario files would be
one nobody keeps correct.

typecheck green.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-11-13 19:09:03 +00:00
co-authored by Claude Opus 5
parent 13aefaaa75
commit 26ed1495fc
3 changed files with 41 additions and 4 deletions
+3 -3
View File
@@ -9,7 +9,7 @@
//
// npx vite-node tools/live/m3.ts [steps, e.g. 1,10,25,50] [seconds per step]
import { cleanUp, openRoom, seededProject, signIn, svc, type Room } from './lib.js';
import { BASE, cleanUp, openRoom, seededProject, signIn, svc, type Room } from './lib.js';
const EXAMPLE = 'java-examples/Internet_Komplett_mit_eMail_Webserver_Intranet_Portforwarding_Firewall_DHCP_DE.fls';
const steps = (process.argv[2] ?? '1,10,25,50,100,150,200').split(',').map(Number);
@@ -75,7 +75,7 @@ try {
await new Promise((resolve) => setTimeout(resolve, seconds * 1000));
lost += [...pending.values()].filter((sent) => performance.now() - sent > 5_000).length;
const sorted = [...samples].sort((a, b) => a - b);
const health = await (await fetch('https://test-filius.hub.mdg-hamburg.de/healthz')).json();
const health = await (await fetch(`${BASE}/healthz`)).json();
console.log(
[rooms.length, sorted.length, quantile(sorted, 0.5), quantile(sorted, 0.95), quantile(sorted, 0.99), sorted.at(-1) ?? NaN]
.map((value, index) => (index < 2 ? String(value) : value.toFixed(0)).padStart(index === 0 ? 5 : 7))
@@ -88,6 +88,6 @@ try {
room.close();
}
await cleanUp();
const health = await (await fetch('https://test-filius.hub.mdg-hamburg.de/healthz')).json();
const health = await (await fetch(`${BASE}/healthz`)).json();
console.log('after clean-up:', JSON.stringify(health), (await svc('GET', '/svc/sessions')).status);
}