VergeOS TypeScript SDK (tsvergeos)
tsvergeos ist ein TypeScript-SDK zur Verwaltung von VergeOS über die REST API und bietet eine dependanzfreie, tree-shakeable, typisierte Schnittstelle zur Automatisierung von VMs, Netzwerken, Speicher, Mandanten und Multi-Site.
Übersicht
tsvergeos ist ein TypeScript-SDK zur Verwaltung der VergeOS-Infrastruktur über die REST-API. Es bietet eine Zero-Dependency-, tree-shakebare, vollständig typisierte Schnittstelle zur Automatisierung von VM-Lebenszyklus, Netzwerken, Speicher, Multi-Tenant-Operationen und Multi-Site-Verwaltung und ist damit ideal für Automatisierungsskripte, Tool-Entwicklung und Integrationen.
Hauptmerkmale
Keine Abhängigkeiten: Nichts zu prüfen, nichts zu brechen
Tree-Shakebar: Importiere nur die Dienste, die du verwendest; ungenutzte Dienste werden als Dead Code entfernt
Vollständige Typabdeckung: Jede Ressource, jeder Parameter und jede Antwort ist mit TSDoc-Dokumentation typisiert
93 Dienste: Vollständige Abdeckung jedes VergeOS-API-Endpunkts
Multi-Site integriert: Abfrage und Verwaltung mehrerer VergeOS-Deployments von einer einzigen
SiteManagerPlattformübergreifend: Funktioniert in Node.js 20+, Deno, Bun und modernen Browsern
Filterung: OData-Filterunterstützung mit sowohl einem fließenden
FilterBuilder als auch einer funktionalenbuildFilterKurzschreibweise
Anforderungen
Node.js 20+ (unterstützt auch Deno und Bun)
VergeOS 6.x (API v4)
Installation
Über npm (empfohlen)
Mit pnpm / yarn / bun
Authentifizierung
Das SDK unterstützt mehrere Authentifizierungsmethoden:
API-Schlüssel (empfohlen)
Setzen Sie verifySsl: false nur für Umgebungen mit selbstsignierten Zertifikaten. In Produktionsumgebungen mit gültigen Zertifikaten lassen Sie diesen Parameter weg oder setzen Sie ihn auf true.
Benutzername / Passwort
Umgebungsvariablen
Empfohlen für die Produktion
Die Verwendung von Umgebungsvariablen hält Anmeldedaten aus Ihrem Quellcode heraus und erleichtert die Verwendung unterschiedlicher Anmeldedaten in verschiedenen Umgebungen.
Dienstregistrierung
Das SDK verwendet tree-shakebare Imports — Dienste werden über Side-Effect-Imports registriert, sodass ungenutzte Dienste aus deinem Bundle als Dead Code entfernt werden.
Drei Import-Ebenen
Nicht registrierte Dienste
Der Standard-Import enthält nicht jeden Dienst. Wenn du auf einen Dienst zugreifst, der nicht registriert ist (z. B., client.alarms ohne ihn zu importieren), erhältst du undefined. Für Dashboards, Admin-Tools oder Backend-Skripte, bei denen die Bundle-Größe keine Rolle spielt, verwende import '@vergeio/tsvergeos/full' um alles zu registrieren.
Nur Typ-Importe
Typ-Imports haben unabhängig davon, welche Dienste registriert sind, keinen Einfluss auf die Bundle-Größe:
Verfügbare Ressourcen
Das SDK bietet Zugriff auf 93 Dienste, die die gesamte VergeOS-API abdecken:
Compute
VMs, Laufwerke, Geräte, NICs, Maschinen-Snapshots, Statistiken
Netzwerk
Netzwerke, Regeln, Aliase, Adressen, Hosts, DNS-Zonen/-Einträge/-Ansichten
VPN
WireGuard-Schnittstellen und Peers, IPSec-Verbindungen und -Phasen
Speicher
Volumes, Volume-Snapshots, CIFS/NFS-Freigaben, Synchronisierungen, Browser, Speicherstufen
NAS
NAS-Dienste, Benutzer, Dateien
Mandanten
Mandanten, Knoten, Speicher, Snapshots, Layer 2
Rezepte
VM- und Mandanten-Rezepte, Instanzen, Kataloge, Repositories
Snapshots
Snapshot-Profile, Zeiträume, Cloud-Snapshots
Sites
API sites Dienst — eingehende/ausgehende Synchronisierungen, Zeiträume des Synchronisierungsprofils (getrennt vom SDKs SiteManager)
System
System, Cluster, Knoten, Einstellungen, Protokolle, Aufgaben
Überwachung
Alarme, Alarmtypen, Webhooks, Webhook-URLs
Auth
Benutzer, Gruppen, Mitglieder, Berechtigungen, API-Schlüssel
Tags
Tags, Kategorien, Mitglieder
Updates
Update-Einstellungen, Quellen, Pakete, Branches
Andere
Zertifikate, cloud-init, Ressourcengruppen
Anwendungsbeispiele
Virtuelle Maschinen verwalten
Die powerstate Feld einer VM-Ressource wird von der API oft weggelassen. Für den maßgeblichen Live-Energiezustand frage den Machine-Status-Dienst ab:
Konsolenzugriff
getConsoleInfo() gibt Verbindungsdetails zum Öffnen einer direkten WebSocket-Konsole zu einer VM zurück. Es werden drei Authentifizierungsmethoden unterstützt — wähle je nachdem, wo die Konsole dargestellt wird:
Der Browser WebSocket Die API unterstützt keine benutzerdefinierten Header — verwende in Browsern Benutzername/Passwort oder ein bereits vorhandenes Token. Für eine Abkürzung ohne API-Aufruf zur Web-UI-Konsole verwende client.vms.getConsoleURL(42).
Ressourcen filtern
Das SDK unterstützt mehrere Filteransätze:
Multi-Site-Verwaltung
Verwalte mehrere VergeOS-Deployments über einen einzigen Einstiegspunkt:
Multi-Site-Abfragen
Die SiteManager verteilt Leseabfragen parallel über alle registrierten Sites und gibt aggregierte Ergebnisse zusammen mit etwaigen Site-spezifischen Fehlern zurück. Verwende manager.tagged(tag) um die Verteilung auf eine Teilmenge von Sites zu beschränken. Änderungen laufen immer über eine benannte Site (manager.site("dc-east").vms.create(...)); der standortübergreifende Proxy stellt nur list().
Fehlerbehandlung
Alle Fehler erben von VergeError mit typisierten Unterklassen und Type-Guard-Funktionen:
VergeError
Basiserror für alle SDK-Fehler
ApiError
Jeder HTTP-Fehler der API
NotFoundError
Ressource nicht gefunden (404)
AuthError
Authentifizierungsfehler (401/403)
ConflictError
Ressourcenzustandskonflikt (409)
ValidationError
Ungültige Eingabe auf Client-Seite
UnsupportedVersionError
Serverversion zu alt
TaskError
Asynchrone Aufgabe fehlgeschlagen
TaskTimeoutError
Aufgabe überschritt die Wartezeit
SiteError
Fehler bei Multi-Site-Operation
Client-Konfiguration
Der vollständige Satz an Konfigurationsoptionen:
Häufige Anwendungsfälle
Infrastrukturautomatisierung: VMs, Netzwerke und Speicher programmatisch bereitstellen
CI/CD-Integration: Testumgebungen in Pipelines erstellen und zerstören
Überwachung und Berichterstellung: Ressourcenstatus abfragen und Bestandsberichte erstellen
Backup-Automatisierung: Snapshots und Cloud-Backups planen und verwalten
Multi-Tenant-Bereitstellung: Mandantenerstellung und Ressourcenzuweisung automatisieren
Multi-Site-Orchestrierung: Verwaltung und Abfrage über mehrere VergeOS-Deployments hinweg
Dokumentation und Ressourcen
Für die vollständige Dokumentation, einschließlich der kompletten API-Referenz und detaillierter Anwendungsbeispiele, besuche das offizielle Repository:
Support
Wenn Sie auf Probleme stoßen oder Funktionswünsche haben, eröffnen Sie bitte ein Issue im GitHub-Repository:
Weitere Ressourcen
Python SDK - Python-Alternative
Go-SDK - Go-Alternative
PowerShell-Modul - PowerShell-Alternative
Terraform-Provider - Infrastruktur als Code
Zuletzt aktualisiert
War das hilfreich?