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, buildsXXYYZZ). 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.
- Archivos de manifiesto:
Ejemplo:
- shell
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
- Despliegue el servidor de actualización por separado del backend (recomendado).
- Configure DESKTOP_SERVER_BASE_URL en el backend con la URL base de este servidor.
- Configure el rellenado: scripts Bash/PowerShell con
OUTPUT_DIRy, si aplica,PASSWORK_DOMAINyHTTP_PROXY. Obtenga la versión solo desde la API o un archivo local; use el repositorio solo como fuente de archivos. - Ejecute el script según una programación o manualmente tras actualizar el backend.
- Para supervisión, use el código de salida y opcionalmente
STATUS_FILEyLOG_FILE. - En redes totalmente aisladas — use archivos del portal y coloque manualmente el contenido en formato
XXYYconlatest*.ymle 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:
- 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 campoversion. - En el servidor de actualización, eliminar los directorios XXYY más recientes que esta versión. Bajo
OUTPUT_DIRhay 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). - 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.