Ir al contenido

Desarrollo remoto

Puedes desarrollar plugins desde cualquier ordenador y subirlos a un servidor Keirost remoto sin SSH.

Si es tu primer plugin, empieza por el tutorial paso a paso — esta guía cubre en detalle la conexión con el servidor y el hot reload.

Ventana de terminal
npm i -g @openfactu/cli
npm i @openfactu/plugin-sdk

Desde la UI del ERP como admin: Plugins > Desarrollo > Generar API Key

Obtienes:

  • Client ID (ofk_...) — identificador publico
  • Client Secret (ofs_...) — clave privada, solo se muestra una vez

Las keys se pueden desactivar o revocar en cualquier momento.

Ventana de terminal
# Desde la carpeta de tu plugin
openfactu plugin watch \
--server http://192.168.1.100:3000 \
--client-id ofk_abc123... \
--client-secret ofs_xyz789...

Cada vez que guardes un archivo, se sube al servidor y se recarga automáticamente. El browser se actualiza sin refrescar.

Ventana de terminal
openfactu plugin push \
--server http://192.168.1.100:3000 \
--client-id ofk_abc123... \
--client-secret ofs_xyz789...

Si tienes Keirost instalado en tu maquina:

Ventana de terminal
# Enlazar tu plugin (symlink)
openfactu plugin link ~/mi-plugin
# Arrancar con hot reload
openfactu plugin dev mi-plugin

Al guardar un archivo del plugin:

  1. El watcher detecta el cambio
  2. Se limpian los hooks anteriores (sin duplicados)
  3. Se recarga init() del plugin
  4. Se actualiza el manifest en memoria
  5. WebSocket notifica al frontend
  6. Los componentes UI se recargan sin refrescar la página
Ventana de terminal
npm install --save-dev @openfactu/plugin-sdk

El SDK es type-only: proporciona los tipos completos para IntelliSense (PluginContext, HookContext, HookEvent…). La referencia está en PluginContext y el Catálogo de hooks.

Usa el template oficial para empezar:

  1. Click en “Use this template” en GitHub
  2. Clona tu repo
  3. npm install
  4. Edita index.ts y manifest.json
  5. openfactu plugin push o openfactu plugin watch
Endpoint Descripción
POST /api/plugins/upload Sube plugin como ZIP (requiere admin/dev key)
POST /api/plugins/:id/push Sync incremental de archivos
POST /api/plugins/:id/reload Recarga manual
GET /api/dev-keys Lista API keys
POST /api/dev-keys Genera nueva key
DELETE /api/dev-keys/:id Revoca key
PATCH /api/dev-keys/:id/toggle Activa/desactiva key