For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 SiteManager

  • Multiplateforme: Fonctionne avec Node.js 20+, Deno, Bun et les navigateurs modernes

  • Filtrage: Prise en charge des filtres OData avec à la fois un Filter constructeur fluide et un buildFilter raccourci

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é)

Vérification du certificat SSL

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

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

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 :

Catégorie
Ressources

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

État d’alimentation fiable

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 :

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 :

Types d’erreur disponibles

Classe d’erreur
Description

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

Mis à jour

Ce contenu vous a-t-il été utile ?