🚀 🤖 Sammel: oui-decode aus fremden Sessions nutzbar machen (toolref statt API) #3

Closed
opened 2026-08-12 13:42:44 +02:00 by holm · 0 comments
Owner
Dimension Bewertung Einschätzung
Aufwand ██░░░░░░░░ Gering — zwei kleine Teil-Fixes, kein neuer Code-Layer
Nutzen █████████░ Sehr hoch — löst den eigentlichen Bedarf ohne API-Infrastruktur
Bruchhäufigkeit ███████░░░ Hoch — der Bedarf entsteht in jeder MikroTik-/Netz-Session neu
Nachhaltigkeit ████████░░ Hoch — kein Server, kein Build-Artefakt, keine Datenduplikate
Dringlichkeit ██████░░░░ Mittel — Workaround ist Quelle lesen, kostet aber jedes Mal Kontext

Ausgangslage

Bedarf: oui-decode wird wiederkehrend in anderen Sessions (MikroTik-Kontext) und von Kollegen gebraucht. Naheliegender Reflex war ein API-Endpunkt.

Verworfen: JS-basierte statische API

Eine rein statische, JS-basierte API ist nur aus einem JS-Runtime konsumierbar (Browser fetch/import, node). curl und RouterOS /tool fetch bekommen das HTML-Gerüst, nicht das Ergebnis — ohne Server führt kein JS die Auflösung aus.

Der einzige serverlose Weg zu echten HTTP-URLs wäre ein vorgenerierter statischer JSON-Baum (api/v1/oui/EC1C5D.json, ~39.5k Dateien) oder Shard-Bundles (256 Dateien + jq beim Konsumenten). Holm-Entscheidung 2026-08-12: verworfen — 39.5k Fälle vorzurendern ist für ein Tool dieser Größe unverhältnismäßig. Damit entfällt der API-Layer ersatzlos; Web-App und CLI bleiben wie sie sind.

Stattdessen: toolref-Registrierung

Der eigentliche Schmerz ist nicht der fehlende HTTP-Endpunkt, sondern dass fremde Sessions nicht wissen, dass und wie es das Tool gibt. Das löst toolref — Syntax-Lookup per SQLite statt Quell-Lektüre.

Dabei fielen zwei Blocker auf, die die Registrierung erst wertlos bzw. unmöglich machten. Teile:

  • #1-h/--help literal im Dispatch, damit toolref die gerenderte Hilfe erntet statt des rohen usage()-Heredocs mit ${C_*}-Platzhaltern
  • #2 — Aufruf über den Symlink ~/bin/mac-vendor bricht (db.js im Symlink-Dir gesucht, Executable-Bit fehlte)

Definition of Done

  • mac-vendor count über ~/bin/mac-vendor liefert 39516
  • toolref mac-vendor gibt lesbare, ANSI-freie Syntax ohne ${…}-Reste aus
  • Architektur-Entscheidung „keine API" in pemmikan.md festgehalten, damit sie nicht in sechs Wochen erneut aufgemacht wird

🤖 angelegt von Claude v00 (API/Token holm)

| Dimension | Bewertung | Einschätzung | |---|---|---| | Aufwand | `██░░░░░░░░` | Gering — zwei kleine Teil-Fixes, kein neuer Code-Layer | | Nutzen | `█████████░` | Sehr hoch — löst den eigentlichen Bedarf ohne API-Infrastruktur | | Bruchhäufigkeit | `███████░░░` | Hoch — der Bedarf entsteht in jeder MikroTik-/Netz-Session neu | | Nachhaltigkeit | `████████░░` | Hoch — kein Server, kein Build-Artefakt, keine Datenduplikate | | Dringlichkeit | `██████░░░░` | Mittel — Workaround ist Quelle lesen, kostet aber jedes Mal Kontext | ## Ausgangslage Bedarf: `oui-decode` wird wiederkehrend in anderen Sessions (MikroTik-Kontext) und von Kollegen gebraucht. Naheliegender Reflex war ein API-Endpunkt. ## Verworfen: JS-basierte statische API Eine rein statische, JS-basierte API ist nur aus einem JS-Runtime konsumierbar (Browser `fetch`/`import`, `node`). `curl` und RouterOS `/tool fetch` bekommen das HTML-Gerüst, nicht das Ergebnis — ohne Server führt kein JS die Auflösung aus. Der einzige serverlose Weg zu echten HTTP-URLs wäre ein **vorgenerierter statischer JSON-Baum** (`api/v1/oui/EC1C5D.json`, ~39.5k Dateien) oder Shard-Bundles (256 Dateien + `jq` beim Konsumenten). **Holm-Entscheidung 2026-08-12: verworfen** — 39.5k Fälle vorzurendern ist für ein Tool dieser Größe unverhältnismäßig. Damit entfällt der API-Layer ersatzlos; Web-App und CLI bleiben wie sie sind. ## Stattdessen: toolref-Registrierung Der eigentliche Schmerz ist nicht der fehlende HTTP-Endpunkt, sondern dass fremde Sessions nicht wissen, **dass und wie** es das Tool gibt. Das löst `toolref` — Syntax-Lookup per SQLite statt Quell-Lektüre. Dabei fielen zwei Blocker auf, die die Registrierung erst wertlos bzw. unmöglich machten. Teile: - [#1](https://forgejo.mueller.network/holm.tools.public/oui-decode/issues/1) — `-h`/`--help` literal im Dispatch, damit toolref die **gerenderte** Hilfe erntet statt des rohen `usage()`-Heredocs mit `${C_*}`-Platzhaltern - [#2](https://forgejo.mueller.network/holm.tools.public/oui-decode/issues/2) — Aufruf über den Symlink `~/bin/mac-vendor` bricht (db.js im Symlink-Dir gesucht, Executable-Bit fehlte) ## Definition of Done - `mac-vendor count` über `~/bin/mac-vendor` liefert `39516` - `toolref mac-vendor` gibt lesbare, ANSI-freie Syntax ohne `${…}`-Reste aus - Architektur-Entscheidung „keine API" in `pemmikan.md` festgehalten, damit sie nicht in sechs Wochen erneut aufgemacht wird > 🤖 angelegt von Claude v00 (API/Token holm)
holm closed this issue 2026-08-12 13:44:13 +02:00
Sign in to join this conversation.
No description provided.