Zum Inhalt springen

CLI-Referenz

Edge Connector Reference

Die Edge Connector CLI (edge-connector) bietet Befehle zum Authentifizieren, Generieren von Tool-Implementierungen, Verwalten von Bundles, lokalem Testen, Paketieren, Hochladen und Verwalten von Cloud Connectors.

Terminal-Fenster
edge-connector [command] [options]

Globale Optionen:

OptionBeschreibung
--versionCLI-Version ausgeben
--auto-resumeAutomatisch vom vorherigen Laufzustand fortfahren. Wird vom Autostart genutzt, um den Connector nach einem Systemneustart in seinen letzten bekannten Zustand zurückzuversetzen.
--helpHilfe für einen beliebigen Befehl anzeigen

Wenn du edge-connector ohne Argumente ausführst, startet ein geführtes interaktives Menü. Das Menü führt dich der Reihe nach durch die gängigsten Workflows:

  1. Authentifizieren — Anmelden via Browser oder Token
  2. Generieren — Tool-Implementierungen aus der Registry erstellen
  3. Hochladen — Deine Tools als Bundle paketieren und hochladen
  4. Bundle-Verwaltung — Bundles auflisten, auschecken, zuweisen und umbenennen
  5. Cloud-Operationen — Cloud Connectors provisionieren, starten, stoppen und verwalten

Jeder Top-Level-Befehl unterstützt auch ein --interactive-Flag (oder -i, wo es nicht mit anderen Kurzflags kollidiert), um statt aller Optionen auf der Kommandozeile geführte Eingabeaufforderungen zu starten.

Terminal-Fenster
# Vollständiges interaktives Menü starten
edge-connector
# Interaktiven Modus für einen bestimmten Befehl starten
edge-connector auth --interactive
edge-connector generate --interactive
edge-connector run --interactive

Den Edge Connector bei der nara-Plattform authentifizieren. Nach erfolgreicher Authentifizierung synchronisiert die CLI das Standard-Bundle deiner Organisation.

Terminal-Fenster
edge-connector auth [options]

Optionen:

OptionBeschreibung
-t, --token <token>Authentifizierungs-Token — akzeptiert einen JWT-String oder einen Pfad zu einer JSON-Datei mit einem token-Feld
-b, --browserÜber Browser-OAuth-Flow authentifizieren (öffnet deinen Standardbrowser)
-i, --interactiveInteraktive Authentifizierungseingaben starten

Verhalten:

  • Wenn --token angegeben wird, validiert die CLI den JWT (prüft Ablauf und Organisationszugehörigkeit), speichert ihn im konfigurierten Token-Pfad und synchronisiert das Standard-Bundle.
  • Wenn --browser angegeben wird, startet die CLI den Desktop-OAuth-Flow: Sie öffnet ein Browserfenster, wartet auf die Autorisierung und speichert den zurückgegebenen Token.
  • Wenn keine Optionen angegeben werden (oder --interactive verwendet wird), startet die CLI eine interaktive Eingabeaufforderung, die dich durch die Authentifizierung führt.
  • --token und --browser können nicht gleichzeitig verwendet werden.

Beispiele:

Terminal-Fenster
# Über Browser authentifizieren
edge-connector auth --browser
# Mit einem JWT-String authentifizieren
edge-connector auth --token "eyJhbGciOiJSUzI1NiIs..."
# Mit einer Token-Datei authentifizieren
edge-connector auth --token ./my-token.json
# Interaktiver Modus
edge-connector auth --interactive

Den Edge Connector lokal starten, um eigene Tool-Implementierungen zu testen. Dieser Befehl startet die Runtime im Testmodus, bei dem State-Persistenz und Autostart deaktiviert sind.

Terminal-Fenster
edge-connector run [options]

Optionen:

OptionStandardBeschreibung
-i, --implementations <path>./custom-implementationsPfad zu deinem Implementierungsverzeichnis
-T, --type <type>EDGEConnector-Typ
-u, --url <url>ws://localhost:3001WebSocket-URL des Platform Servers
--interactiveIm interaktiven Modus mit geführten Eingaben starten

Verhalten:

  • Setzt folgende Umgebungsvariablen für den gestarteten Prozess:
    • EC_TEST_RUN=1 — aktiviert den Testmodus
    • EC_DISABLE_STATE=1 — deaktiviert State-Persistenz
    • EC_DISABLE_AUTOSTART=1 — verhindert Autostart-Registrierung
  • Startet die Edge Connector Runtime als Kindprozess mit der angegebenen Konfiguration. Stdout und stderr der Runtime werden in dein Terminal geleitet.
  • Die Runtime verbindet sich mit dem nara Platform Server, lädt deine eigenen Implementierungen und beginnt, Tool-Ausführungsanfragen anzunehmen.
  • Drücke Ctrl+C, um den Testlauf zu beenden.

Beispiele:

Terminal-Fenster
# Mit Standardeinstellungen starten (lokale Entwicklung)
edge-connector run
# Mit benutzerdefiniertem Implementierungspfad und Produktionsserver starten
edge-connector run -i ./my-tools -u wss://tool-rpc.nara.de
# Interaktiver Modus
edge-connector run --interactive

Tool-Bundles für deine Organisation verwalten. Bundles sind versionierte Sammlungen von Tool-Implementierungen, die auf die Plattform hochgeladen und an Edge-Connector-Instanzen verteilt werden.

Terminal-Fenster
edge-connector bundle <subcommand> [options]

Alle für deine Organisation registrierten Bundles auflisten.

Terminal-Fenster
edge-connector bundle list [--api <url>]

Zeigt jedes Bundle mit Name (oder Kurz-ID), Version, Tool-Anzahl, Gesamtgröße und ob es der Organisations-Standard ist. Das aktuell ausgecheckte Bundle wird mit einem Sternchen (*) markiert.

Zu einem anderen Bundle wechseln oder vom aktuellen Bundle trennen.

Terminal-Fenster
edge-connector bundle checkout <bundleId> [--api <url>]
edge-connector bundle checkout --new
OptionBeschreibung
<bundleId>Vollständige oder partielle Bundle-ID zum Wechseln
--newVom aktuellen Bundle trennen; der nächste Upload erstellt ein neues Bundle

Beim Auschecken eines Bundles synchronisiert die CLI die Tool-Referenzen in dein lokales tools/-Verzeichnis. Für jedes Tool im Bundle: Wenn du lokalen Quellcode hast, bleibt er erhalten. Falls nicht, wird eine .ref.json-Referenzdatei erstellt.

Deine lokalen Tools mit dem aktuell ausgecheckten Bundle vergleichen.

Terminal-Fenster
edge-connector bundle status [--api <url>]

Zeigt jedes Tool mit einem Statusindikator:

  • [src] — lokale Quelldatei vorhanden
  • [ref] — verwendet eine servergehostete Referenz
  • + — neues Tool, das beim nächsten Upload hinzugefügt wird
  • - — Tool fehlt lokal und wird beim nächsten Upload entfernt

Alle verfügbaren Tool-Versionen für deine Organisation über alle Bundles hinweg auflisten.

Terminal-Fenster
edge-connector bundle tools [--api <url>]

Zeigt jeden Tool-Namen, die neueste Versionsnummer und die Gesamtzahl der verfügbaren Versionen.

Einen Tool-Versions-Referenzpointer (.ref.json) für ein bestimmtes Tool abrufen.

Terminal-Fenster
edge-connector bundle ref <toolName> [--version <n>] [--api <url>]
OptionBeschreibung
<toolName>Name des zu referenzierenden Tools
--version <n>Auf eine bestimmte Versionsnummer festlegen (Standard: neueste)

Erstellt eine .ref.json-Datei im tools/-Verzeichnis, die auf die angegebene Tool-Version auf dem Server zeigt. Beim Upload des Bundles löst die Plattform diese Referenz zur korrekten kompilierten Implementierung auf. Eine lokale Quelldatei für dasselbe Tool darf nicht existieren — entferne sie zuerst, um eine Referenz zu verwenden.

Ein Bundle als Organisations-Standard festlegen. Neue Edge-Connector-Instanzen ohne spezifische Bundle-Zuweisung synchronisieren automatisch dieses Bundle.

Terminal-Fenster
edge-connector bundle set-default <bundleId> [--api <url>]

Ein Bundle einem bestimmten Deployment zuweisen. Die zugewiesene Edge-Connector-Instanz synchronisiert dieses Bundle bei ihrem nächsten Check.

Terminal-Fenster
edge-connector bundle assign <bundleId> --deployment <deploymentId> [--version <n>] [--api <url>]
OptionBeschreibung
--deployment <deploymentId>(Erforderlich) Deployment-ID, der das Bundle zugewiesen wird
--version <n>Auf eine bestimmte Bundle-Version festlegen (Standard: neueste)

Ein Bundle umbenennen, um ihm ein lesbares Label zu geben.

Terminal-Fenster
edge-connector bundle rename <bundleId> <name> [--api <url>]

Den Lebenszyklus eines Cloud Connectors für deine Organisation verwalten. Cloud Connectors sind vollständig verwaltete Edge-Connector-Instanzen, die auf der Cloud-Infrastruktur von nara laufen.

Terminal-Fenster
edge-connector cloud <subcommand>

Einen neuen Cloud-Connector-Eintrag für deine Organisation provisionieren.

Terminal-Fenster
edge-connector cloud provision [--env <env>]
OptionStandardBeschreibung
--env <env>prodZielumgebung: dev, stage oder prod

Die Cloud-Connector-Runtime starten. Die Plattform fährt die Kubernetes-Ressourcen hoch und beginnt, dein zugewiesenes Bundle auszuführen.

Terminal-Fenster
edge-connector cloud start

Die Cloud-Connector-Runtime stoppen. Ressourcen werden herunterskaliert, aber der Deployment-Eintrag bleibt erhalten.

Terminal-Fenster
edge-connector cloud stop

Den aktuellen Status deines Cloud Connectors abrufen, einschließlich Runtime-Status, gewünschtem Status, Umgebung, Image-Tag und der letzten Operation.

Terminal-Fenster
edge-connector cloud status

Eine feststeckende Cloud-Operation erzwungen abschließen. Verwende das, wenn eine Provision-, Start- oder Stop-Operation nicht voranschreitet.

Terminal-Fenster
edge-connector cloud force-complete

Den Cloud Connector löschen und alle zugehörigen Kubernetes-Ressourcen abbauen. Diese Aktion ist unwiderruflich.

Terminal-Fenster
edge-connector cloud delete

Boilerplate-Code für eine Tool-Implementierung generieren. Verbindet sich mit dem nara Platform Server, um die Parameter- und Ergebnis-Schemas des Tools abzurufen, und generiert dann eine TypeScript-Datei mit den korrekten Typen und einem Handler-Stub.

Terminal-Fenster
edge-connector generate [options]

Alias: g

Optionen:

OptionStandardBeschreibung
-l, --language <language>Zielsprache (typescript)
-t, --tool <tool>Name des zu generierenden EDGE-Tools
-o, --output <path>./custom-implementationsAusgabeverzeichnis für generierte Dateien
-i, --interactiveInteraktive Eingaben zur Tool-Auswahl starten

Verhalten:

  • Verbindet sich über deinen gespeicherten Authentifizierungs-Token mit dem nara Platform Server.
  • Ruft die Liste der für deine Organisation verfügbaren EDGE-Tools ab (ohne eingebaute Diagnose-Tools).
  • Generiert eine TypeScript-Implementierungsdatei für das angegebene Tool, inklusive typisierter Parameter, Ergebnis-Schema und Fehlerbehandlungs-Scaffolding.
  • Wenn --language oder --tool weggelassen wird, fällt die CLI auf den interaktiven Modus zurück.

Beispiele:

Terminal-Fenster
# Ein bestimmtes Tool generieren
edge-connector generate -l typescript -t getSystemInfo -o ./custom-implementations
# Derselbe Befehl mit dem Kurz-Alias "g"
edge-connector g -l typescript -t getSystemInfo
# Interaktiver Modus -- Tools durchsuchen und auswählen
edge-connector g --interactive

Deine eigenen Implementierungen paketieren und als Bundle auf die nara-Plattform hochladen. Dieser Befehl kombiniert die Paketierungs- und Upload-Schritte in einer einzigen Operation.

Terminal-Fenster
edge-connector upload [options]

Optionen:

OptionStandardBeschreibung
-f, --file <path>Pfad zu einer vorgebauten .tgz-Bundle-Datei (überspringt Paketierung)
-i, --implementations <path>./custom-implementationsPfad zum Implementierungsverzeichnis
--no-buildTypeScript-Kompilierung vor dem Paketieren überspringen
--api <url>Platform-API-URL aus ConfigBasis-URL der Platform-API
--name <text>Optionaler lesbarer Name für das Bundle
--notes <text>Uploaded via CLINotizen zu dieser Bundle-Version

Verhalten:

  • Wenn --file nicht angegeben wird, führt die CLI zuerst den Paketierungsschritt aus: Kompiliert TypeScript-Tool-Dateien mit esbuild, erstellt ein Manifest und erzeugt ein .tgz-Archiv.
  • Das Archiv wird auf die Plattform hochgeladen.
  • Die maximale Bundle-Größe beträgt 50 MB.
  • Wenn du aktuell ein Bundle trackst (currentBundleId in der Config), aktualisiert der Upload dieses Bundle mit einer neuen Version. Andernfalls wird ein neues Bundle erstellt.
  • Manifest-Referenzen (.ref.json) werden automatisch aus dem .tgz-Archiv extrahiert, sodass du Bundles aus lokalen und servergehosteten Tools zusammenstellen kannst.
  • Bei Erfolg gibt die CLI die neue Bundle-Versionsnummer aus.

Beispiele:

Terminal-Fenster
# In einem Schritt paketieren und hochladen
edge-connector upload
# Ein vorgebautes Bundle hochladen
edge-connector upload -f ./artifacts/edge-bundle-org123-1710000000.tgz
# Mit Name und Notizen hochladen
edge-connector upload --name "Production v2" --notes "Added VPN diagnostic tool"

Ein verteilbares Bundle-Archiv aus deinen Tool-Implementierungen bauen, ohne es hochzuladen. Das ist nützlich, wenn du das Bundle vor dem Upload inspizieren oder von einer anderen Maschine hochladen möchtest.

Terminal-Fenster
edge-connector package [options]

Optionen:

OptionStandardBeschreibung
-i, --implementations <path>./custom-implementationsPfad zum Implementierungsverzeichnis
-o, --out <dir>./artifactsAusgabeverzeichnis für das Bundle-Archiv
--no-buildTypeScript-Kompilierung überspringen (setzt voraus, dass dist/ bereits existiert)

Verhalten:

  • Wenn node_modules/ im Implementierungsverzeichnis nicht existiert, wird vor dem Paketieren automatisch pnpm install ausgeführt.
  • Entdeckt Tool-Quelldateien in <implementations>/tools/ (.ts, .js, .mjs, .cjs).
  • TypeScript wird automatisch erkannt: Wenn eine index.ts-Datei im Implementierungs-Root existiert, wird es als TypeScript-Projekt behandelt und entsprechend kompiliert.
  • Kompiliert jedes Tool einzeln mit esbuild in das dist/tools/-Verzeichnis.
  • Generiert einen Auto-Index (dist/index.js), der alle Tool-Handler aus den kompilierten dist/tools/-Dateien re-exportiert.
  • Entdeckt .ref.json-Referenzdateien und nimmt sie in das Manifest auf.
  • Erstellt ein .tgz-Archiv mit Manifest und kompilierter Ausgabe.
  • Die Archivdatei heißt edge-bundle-<orgId>-<timestamp>.tgz.

Beispiele:

Terminal-Fenster
# Mit Standardeinstellungen paketieren
edge-connector package
# Aus einem benutzerdefinierten Verzeichnis paketieren
edge-connector package -i ./my-tools -o ./build
# Ohne Neubau paketieren (vorhandenes dist/ verwenden)
edge-connector package --no-build