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

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 SiteManager

  • Multiplataforma: Funciona en Node.js 20+, Deno, Bun y navegadores modernos

  • Filtrado: Compatibilidad con filtros OData tanto con un Filtro constructor fluido y un buildFilter atajo

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)

Verificación de certificado SSL

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

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

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:

Categoría
Recursos

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

Estado de energía confiable

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:

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:

Tipos de error disponibles

Clase de error
Descripción

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

Última actualización

¿Te fue útil?