SDK de VergeOS para TypeScript (tsvergeos)
tsvergeos es un SDK de TypeScript para administrar VergeOS a través de la API REST, que ofrece una interfaz tipada, sin dependencias y compatible con tree-shaking para automatizar VM, redes, almacenamiento, inquilinos y entornos multisitio.
Descripción general
tsvergeos es un SDK de TypeScript para gestionar la infraestructura de VergeOS a través de la API REST. Proporciona una interfaz sin dependencias, compatible con tree-shaking y completamente tipada para automatizar el ciclo de vida de las VM, la red, el almacenamiento, las operaciones multitenant y la gestión multisede, lo que lo hace ideal para scripts de automatización, desarrollo de herramientas e integraciones.
Características clave
Sin dependencias: Nada que auditar, nada que romper
Compatible con tree-shaking: Importa solo los servicios que uses; los servicios no utilizados se eliminan como código muerto
Cobertura completa de tipos: Cada recurso, parámetro y respuesta está tipado con documentación TSDoc
93 servicios: Cobertura completa de cada endpoint de la API de VergeOS
Multisitio integrado: Consulta y administra múltiples implementaciones de VergeOS desde un único
SiteManagerMultiplataforma: Funciona en Node.js 20+, Deno, Bun y navegadores modernos
Filtrado: Compatibilidad con filtros OData tanto con un
Filtroconstructor fluido y unbuildFilteratajo
Requisitos
Node.js 20+ (también compatible con Deno y Bun)
VergeOS 6.x (API v4)
Instalación
Desde npm (recomendado)
Usando pnpm / yarn / bun
Autenticación
El SDK admite múltiples métodos de autenticación:
Clave de API (recomendado)
Establezca verifySsl: false solo para entornos con certificados autofirmados. Para entornos de producción con certificados válidos, omita este parámetro o establézcalo en true.
Nombre de usuario / contraseña
Variables de entorno
Recomendado para producción
Usar variables de entorno mantiene las credenciales fuera de su código fuente y facilita el uso de diferentes credenciales en distintos entornos.
Registro de servicios
El SDK usa importaciones compatibles con tree-shaking: los servicios se registran mediante importaciones con efectos secundarios, de modo que los servicios no utilizados se eliminan como código muerto de tu paquete.
Tres niveles de importación
Servicios no registrados
La importación predeterminada no incluye todos los servicios. Si accedes a un servicio que no está registrado (por ejemplo, client.alarms sin importarlo), obtendrás undefined. Para paneles, herramientas de administración o scripts de backend donde el tamaño del paquete no importa, usa import '@vergeio/tsvergeos/full' para registrar todo.
Importaciones solo de tipos
Las importaciones de tipos no tienen impacto en el tamaño del paquete, independientemente de qué servicios estén registrados:
Recursos disponibles
El SDK proporciona acceso a 93 servicios que cubren la API completa de VergeOS:
Computación
VM, unidades, dispositivos, NIC, instantáneas de máquina, estadísticas
Redes
Redes, reglas, alias, direcciones, hosts, zonas/registros/vistas DNS
VPN
Interfaces y peers de WireGuard, conexiones y fases de IPSec
Almacenamiento
Volúmenes, instantáneas de volúmenes, comparticiones CIFS/NFS, sincronizaciones, navegador, niveles de almacenamiento
NAS
Servicios NAS, usuarios, archivos
Inquilinos
Inquilinos, nodos, almacenamiento, instantáneas, Capa 2
Recetas
Recetas de VM e inquilinos, instancias, catálogos, repositorios
Instantáneas
Perfiles de instantáneas, períodos, instantáneas en la nube
Sitios
API sites servicio — sincronizaciones entrantes/salientes, períodos de perfil de sincronización (distintos del SiteManager)
Sistema
Sistema, clústeres, nodos, configuración, registros, tareas
Monitorización
Alarmas, tipos de alarma, webhooks, URL de webhook
Autenticación
Usuarios, grupos, miembros, permisos, claves de API
Etiquetas
Etiquetas, categorías, miembros
Actualizaciones
Configuración de actualizaciones, fuentes, paquetes, ramas
Otros
Certificados, cloud-init, grupos de recursos
Ejemplos de uso
Administración de máquinas virtuales
La powerstate el campo de un recurso VM suele ser omitido por la API. Para obtener el estado de energía en vivo y autoritativo, consulta el servicio de estado de la máquina:
Acceso a la consola
getConsoleInfo() devuelve los detalles de conexión para abrir una consola WebSocket directa a una VM. Se admiten tres métodos de autenticación; elige según dónde se renderice la consola:
El navegador WebSocket API no admite encabezados personalizados: usa nombre de usuario/contraseña o un token preexistente en navegadores. Para un atajo sin llamada a la API hacia la consola de la interfaz web, usa client.vms.getConsoleURL(42).
Recursos de filtrado
El SDK admite múltiples enfoques de filtrado:
Gestión multisitio
Gestiona múltiples implementaciones de VergeOS desde un único punto de entrada:
Consultas multisitio
La SiteManager distribuye consultas de lectura en paralelo entre todos los sitios registrados y devuelve resultados agregados junto con cualquier error por sitio. Usa manager.tagged(tag) para limitar la distribución a un subconjunto de sitios. Las mutaciones siempre pasan por un sitio con nombre (manager.site("dc-east").vms.create(...)); el proxy entre sitios expone solo list().
Manejo de errores
Todos los errores extienden VergeError con subclases tipadas y funciones de guardia de tipos:
VergeError
Error base para todos los errores del SDK
ApiError
Cualquier error HTTP de la API
NotFoundError
Recurso no encontrado (404)
AuthError
Fallo de autenticación (401/403)
ConflictError
Conflicto de estado del recurso (409)
ValidationError
Entrada no válida del lado del cliente
UnsupportedVersionError
Versión del servidor demasiado antigua
TaskError
La tarea asíncrona falló
TaskTimeoutError
La tarea superó el tiempo de espera
SiteError
Fallo en operación multisitio
Configuración del cliente
El conjunto completo de opciones de configuración:
Casos de uso comunes
Automatización de infraestructura: Aprovisione VMs, redes y almacenamiento mediante programación
Integración CI/CD: Cree y destruya entornos de prueba en los pipelines
Monitorización e informes: Consulte el estado de los recursos y genere informes de inventario
Automatización de copias de seguridad: Programe y administre instantáneas y copias de seguridad en la nube
Aprovisionamiento multitenencia: Automatice la creación de inquilinos y la asignación de recursos
Orquestación multisitio: Gestiona y consulta varias implementaciones de VergeOS
Documentación y recursos
Para obtener documentación completa, incluida la referencia completa de la API y ejemplos de uso detallados, visita el repositorio oficial:
Soporte
Si encuentra problemas o tiene solicitudes de funciones, abra un issue en el repositorio de GitHub:
Recursos adicionales
Python SDK - Alternativa de Python
Go SDK - Alternativa en Go
Módulo de PowerShell - alternativa de PowerShell
Proveedor de Terraform - infraestructura como código
Última actualización
¿Te fue útil?