feat(tarpit): MazeNET topology-scoped tarpit — Inspector controls + topology API

This commit is contained in:
2026-04-29 21:10:02 -04:00
parent f84c66cf9b
commit 917f7e8e54
5 changed files with 369 additions and 1 deletions

View File

@@ -926,6 +926,19 @@ const MazeNET: React.FC = () => {
onLiveAddService={requestAddService}
onLiveRemoveService={liveRemoveService}
onToggleGateway={toggleGateway}
onLiveTarpitEnable={async (nodeName, ports, delayMs) => {
await axios.post(
`/topologies/${encodeURIComponent(topologyId)}/deckies/${encodeURIComponent(nodeName)}/tarpit`,
{ ports, delay_ms: delayMs },
);
pushToast({ text: `TARPIT ON · ${nodeName.toUpperCase()} · ${ports.join(',')} / ${delayMs >= 1000 ? `${delayMs / 1000}s` : `${delayMs}ms`}`, tone: 'matrix', icon: 'shield' });
}}
onLiveTarpitDisable={async (nodeName) => {
await axios.delete(
`/topologies/${encodeURIComponent(topologyId)}/deckies/${encodeURIComponent(nodeName)}/tarpit`,
);
pushToast({ text: `TARPIT OFF · ${nodeName.toUpperCase()}`, tone: 'matrix', icon: 'shield' });
}}
onAddDecky={(netId) => {
const net = nets.find((n) => n.id === netId);
if (!net) return;