Addon Visibility Proxy — leitet visibilityCheck-Pfade an den Bot-Host weiter
Die Host-App ruft `apiSelect(a.visibilityCheck.replace('{UID}', UID))` gegen
den Members-Host auf (siehe members-app src/show/group/Group.jsx). Der
visibilityCheck ist ein relativer Pfad wie `/project-bot/groups/{UID}/visibility`.
Dieses Modul stellt einen generischen Proxy bereit: Für jede Anfrage wird aus
den registrierten Addons (Runtime-Config-Cache) der passende Bot-Host
ermittelt — abgeleitet aus der `url` des Addons (`https://{botHost}/addons/...`).
Die Anfrage wird unverändert (Headers, Query, Body) an den Bot weitergeleitet.
Der Proxy ist bewusst generisch gehalten, damit jeder Bot mit `visibilityCheck`
funktioniert, ohne dass der Members-Host Bot-spezifische Routen kennt.
- Source:
Methods
(inner) buildPrefixMap() → {Map.<string, string>}
Sammelt aus dem Config-Cache alle Addons mit `visibilityCheck` und leitet
daraus das Präfix → Bot-Basis-URL Mapping ab.
- Source:
Returns:
Map: Pfad-Präfix (z.B. `/project-bot`) → Basis-URL (z.B. `https://project-bot.dev.commtool.org`)
- Type
- Map.<string, string>
(async, inner) proxyHandler()
Proxy-Middleware: leitet Anfragen, deren Pfad mit einem visibilityCheck-Präfix
beginnt, an den zugehörigen Bot-Host weiter. Für alle anderen Pfade ruft sie
`next()` auf, damit bestehende Routen nicht blockiert werden.
- Source:
(inner) visibilityPrefix(visibilityCheck) → {string|null}
Extrahiert das statische Präfix aus einem visibilityCheck-Pfad.
`/project-bot/groups/{UID}/visibility` → `/project-bot`
Parameters:
| Name | Type | Description |
|---|---|---|
visibilityCheck |
string |
- Source:
Returns:
Präfix oder `null` wenn keines ableitbar
- Type
- string | null