SDK TypeScript VergeOS (tsvergeos)
tsvergeos est un SDK TypeScript pour gérer VergeOS via l’API REST, offrant une interface typée, sans dépendance et compatible tree-shaking pour automatiser les VM, le réseau, le stockage, les locataires et le multi-site.
Vue d’ensemble
tsvergeos est un SDK TypeScript pour gérer l’infrastructure VergeOS via l’API REST. Il fournit une interface sans dépendances, compatible avec l’élimination du code mort, entièrement typée, pour automatiser le cycle de vie des VM, le réseau, le stockage, les opérations multi-locataires et la gestion multi-site, ce qui le rend idéal pour les scripts d’automatisation, le développement d’outils et les intégrations.
Fonctionnalités clés
Aucune dépendance: Rien à auditer, rien à casser
Compatible avec l’élimination du code mort: Importez uniquement les services que vous utilisez ; les services inutilisés sont éliminés du code mort
Couverture complète des types: Chaque ressource, paramètre et réponse est typé avec une documentation TSDoc
93 services: Couverture complète de tous les points de terminaison de l’API VergeOS
Prise en charge multi-site intégrée: Interrogez et gérez plusieurs déploiements VergeOS depuis un seul
SiteManagerMultiplateforme: Fonctionne avec Node.js 20+, Deno, Bun et les navigateurs modernes
Filtrage: Prise en charge des filtres OData avec à la fois un
Filterconstructeur fluide et unbuildFilterraccourci
Prérequis
Node.js 20+ (prend aussi en charge Deno et Bun)
VergeOS 6.x (API v4)
Installation
Depuis npm (recommandé)
Avec pnpm / yarn / bun
Authentification
Le SDK prend en charge plusieurs méthodes d'authentification :
Clé API (recommandé)
Définissez verifySsl: false uniquement pour les environnements avec des certificats auto-signés. Pour les environnements de production avec des certificats valides, omettez ce paramètre ou définissez-le sur true.
Nom d’utilisateur / mot de passe
Variables d'environnement
Recommandé pour la production
L'utilisation de variables d'environnement permet de garder les identifiants hors de votre code source et facilite l'utilisation d'identifiants différents selon les environnements.
Enregistrement des services
Le SDK utilise des imports compatibles avec l’élimination du code mort — les services sont enregistrés via des imports à effet de bord, de sorte que les services inutilisés sont supprimés de votre bundle.
Trois niveaux d’importation
Services non enregistrés
L’import par défaut n’inclut pas tous les services. Si vous accédez à un service qui n’est pas enregistré (par exemple, client.alarms sans l’importer), vous obtiendrez undefined. Pour les tableaux de bord, les outils d’administration ou les scripts backend où la taille du bundle n’a pas d’importance, utilisez import '@vergeio/tsvergeos/full' pour tout enregistrer.
Imports de type uniquement
Les imports de type n’ont aucun impact sur le bundle, quel que soit le nombre de services enregistrés :
Ressources disponibles
Le SDK fournit un accès à 93 services couvrant l’intégralité de l’API VergeOS :
Calcul
VM, lecteurs, périphériques, NIC, instantanés de machine, statistiques
Réseautage
Réseaux, règles, alias, adresses, hôtes, zones/enregistrements/vues DNS
VPN
Interfaces et pairs WireGuard, connexions et phases IPSec
Stockage
Volumes, instantanés de volume, partages CIFS/NFS, synchronisations, navigateur, niveaux de stockage
NAS
Services NAS, utilisateurs, fichiers
Locataires
Locataires, nœuds, stockage, instantanés, couche 2
Recettes
Recettes de VM et de locataires, instances, catalogues, dépôts
Instantanés
Profils d’instantanés, périodes, instantanés cloud
Sites
API sites service — synchronisations entrantes/sortantes, périodes de profil de synchronisation (distinct du SiteManager)
Système
Système, clusters, nœuds, paramètres, journaux, tâches
Surveillance
Alarmes, types d’alarme, webhooks, URL de webhook
Auth
Utilisateurs, groupes, membres, permissions, clés API
Tags
Tags, catégories, membres
Mises à jour
Paramètres de mise à jour, sources, packages, branches
Autre
Certificats, cloud-init, groupes de ressources
Exemples d'utilisation
Gestion des machines virtuelles
Le powerstate champ d’une ressource VM est souvent omis par l’API. Pour obtenir l’état d’alimentation en temps réel faisant autorité, interrogez le service d’état de la machine :
Accès à la console
getConsoleInfo() renvoie les détails de connexion pour ouvrir une console WebSocket directe vers une VM. Trois méthodes d’authentification sont prises en charge — choisissez selon l’endroit où la console est rendue :
L’API WebSocket du navigateur ne prend pas en charge les en-têtes personnalisés — utilisez un nom d’utilisateur/mot de passe ou un jeton existant dans les navigateurs. Pour un raccourci sans appel API vers la console de l’interface web, utilisez client.vms.getConsoleURL(42).
Filtrage des ressources
Le SDK prend en charge plusieurs approches de filtrage :
Gestion multi-site
Gérez plusieurs déploiements VergeOS depuis un point d’entrée unique :
Requêtes multi-site
Le SiteManager répartit les requêtes de lecture sur tous les sites enregistrés en parallèle et renvoie des résultats agrégés ainsi que les erreurs éventuelles par site. Utilisez manager.tagged(tag) pour limiter la diffusion à un sous-ensemble de sites. Les mutations passent toujours par un site nommé (manager.site("dc-east").vms.create(...)); le proxy inter-sites n’expose que list().
Gestion des erreurs
Toutes les erreurs héritent de VergeError avec des sous-classes typées et des fonctions de garde de type :
VergeError
Erreur de base pour toutes les erreurs du SDK
ApiError
Toute erreur HTTP de l’API
NotFoundError
Ressource introuvable (404)
AuthError
Échec d’authentification (401/403)
ConflictError
Conflit d’état de la ressource (409)
ValidationError
Entrée client invalide
UnsupportedVersionError
Version du serveur trop ancienne
TaskError
Échec de la tâche asynchrone
TaskTimeoutError
La tâche a dépassé le délai d’attente
SiteError
Échec d’une opération multi-site
Configuration du client
L’ensemble complet des options de configuration :
Cas d'utilisation courants
Automatisation de l'infrastructure: Provisionner des VM, des réseaux et du stockage par programmation
Intégration CI/CD: Créer et détruire des environnements de test dans les pipelines
Surveillance et reporting: Interroger l'état des ressources et générer des rapports d'inventaire
Automatisation des sauvegardes: Planifier et gérer les instantanés et les sauvegardes cloud
Provisionnement multi-locataire: Automatiser la création des locataires et l'allocation des ressources
Orchestration multi-site: Gérez et interrogez plusieurs déploiements VergeOS
Documentation et ressources
Pour une documentation complète, y compris la référence API intégrale et des exemples d’utilisation détaillés, consultez le dépôt officiel :
Support
Si vous rencontrez des problèmes ou avez des demandes de fonctionnalités, veuillez ouvrir un ticket sur le dépôt GitHub :
Ressources supplémentaires
SDK Python - Alternative Python
SDK Go - Alternative Go
Module PowerShell - alternative PowerShell
Fournisseur Terraform - Infrastructure as code
Mis à jour
Ce contenu vous a-t-il été utile ?