Saltar al contenido principal

General

Si sus usuarios tienen acceso directo a internet, la aplicación estará disponible en el menú del navegador tras iniciar sesión en su instancia Passwork. No se requieren pasos adicionales: el backend detecta automáticamente la última versión compatible. Cuando se actualice el backend, se pedirá a los usuarios que actualicen la aplicación de escritorio en su próximo inicio de sesión.

No obstante, Passwork se utiliza a menudo en redes aisladas. En ese caso, la instalación y actualización de la aplicación de escritorio debe funcionar sin acceso a internet público ni a nuestro repositorio.

La versión de la aplicación de escritorio está alineada con la versión de Passwork que tiene instalada. Este artículo describe los detalles necesarios para desplegar y mantener actualizada la aplicación de escritorio Passwork en redes aisladas.

Servidor de actualización

  • El servidor de actualización debe servir el contenido en una estructura concreta para que los usuarios puedan instalar y actualizar la aplicación correctamente. A continuación describimos la estructura necesaria y cómo rellenarla con los scripts proporcionados.
  • Las versiones de la aplicación de escritorio están ligadas a la función Desktop soportada en el backend (formato de versión XXYY, builds XXYYZZ). El servidor Passwork tiene su propia numeración; la aplicación de escritorio se sincroniza con la versión de la función, no «solo con el backend». No puede publicar la versión «más reciente» de la aplicación en tiendas o un repositorio público e instalarla — el cliente debe recibir un build compatible con su servidor.
  • El backend tiene un ajuste controlado por la variable DESKTOP_SERVER_BASE_URL — la URL del servidor de actualización. El cliente usa esta URL para comprobar actualizaciones y descargar el instalador.
  • Recomendamos encarecidamente alojar el servidor de actualización por separado del servidor de la aplicación: así se asignan mejor los recursos y se separan responsabilidades.

Estructura del servidor de actualización

El cliente espera la siguiente disposición en la URL base (su DESKTOP_SERVER_BASE_URL):

  • En la raíz — directorios para versiones de la función Desktop con formato XXYY (4 dígitos, ej. 0100, 0201). No es la versión completa del backend sino la versión de la función Desktop soportada; corresponde a builds concretos (XXYYZZ).
  • En cada directorio XXYY:
    • Archivos de manifiesto: latest.yml, latest-linux.yml, latest-mac.yml (rutas a instaladores y checksums).
    • Subdirectorios con instaladores: ej. 010203/ con archivos .exe, .deb, .rpm, .dmg, etc.

Ejemplo:

DESKTOP_SERVER_BASE_URL/
0100/
latest.yml
latest-linux.yml
latest-mac.yml
010203/
Passwork-Setup-1.2.3.exe
passwork_1.2.3_amd64.deb
...
0201/
...

El cliente utiliza la versión XXYYZZ obtenida de los archivos de manifiesto latest*.

Scripts para Linux y Windows

Lista rápida

  1. Despliegue el servidor de actualización por separado del backend (recomendado).
  2. Configure DESKTOP_SERVER_BASE_URL en el backend con la URL base de este servidor.
  3. Configure el rellenado: scripts Bash/PowerShell con OUTPUT_DIR y, si aplica, PASSWORK_DOMAIN y HTTP_PROXY. Obtenga la versión solo desde la API o un archivo local; use el repositorio solo como fuente de archivos.
  4. Ejecute el script según una programación o manualmente tras actualizar el backend.
  5. Para supervisión, use el código de salida y opcionalmente STATUS_FILE y LOG_FILE.
  6. En redes totalmente aisladas — use archivos del portal y coloque manualmente el contenido en formato XXYY con latest*.yml e instaladores.

Rollback de versión

Si el servidor de la aplicación se revirtió a una versión anterior (la versión XXYY disponible disminuyó), el script no elimina automáticamente los directorios de versiones más nuevas. Recomendamos:

  1. Determinar la versión de escritorio disponible mediante esta petición API al backend: <PASSWORK_DOMAIN>/api/v1/app/features; en la respuesta, para la función desktop — use el campo version.
  2. En el servidor de actualización, eliminar los directorios XXYY más recientes que esta versión. Bajo OUTPUT_DIR hay directorios con nombres de 4 dígitos; mantenga solo los que no sean más recientes que la versión de rollback y elimine el resto (para que los clientes no reciban una actualización a una versión con la que el backend aún no es compatible).
  3. Ejecute de nuevo el script de obtención de actualizaciones de escritorio tras la próxima actualización del servidor de la aplicación.

No hay gestión automática de rollback en el script: solo sincroniza una versión seleccionada y, según KEEP_RELEASES, elimina directorios antiguos sobrantes. Eliminar directorios «demasiado nuevos» en un rollback es un paso aparte (script o manual) basado en la respuesta de la API y en la limpieza del árbol bajo OUTPUT_DIR.