Volver a proyectos
Plataforma de soporteIngeniero de Software Full-Stack

AegisDesk — Soporte y gestión de instalaciones

Plataforma que conecta el soporte de aplicaciones de escritorio con el enrolamiento y la administración de instalaciones. Un shell Windows verifica configuración y avisos firmados, aplica una política offline y acompaña el lanzamiento de la aplicación existente.

Desafío

Una aplicación instalada necesita soporte, identificación del equipo y una política definida cuando no puede consultar al servidor. Hay que coordinar instalaciones y mantenimiento, distinguir un fallo de red de una decisión administrativa y comprobar que cada estado pertenece a la instalación correcta. El panel también necesita limitar los datos y acciones al alcance del operador y su organización.

Solución

Desarrollé un shell que enrola la instalación, sincroniza configuración firmada y consulta avisos calculados por el servidor antes del lanzamiento. Conserva el último estado disponible dentro de límites temporales y solicita soporte cuando la configuración deja de ser utilizable; los cambios remotos de política se incorporan al sincronizar. El backend sirve el portal de tickets y un panel con permisos por organización, registra acciones operativas y gestiona consentimiento de mantenimiento y retención.

Arquitectura y decisiones

Un Worker con Hono compone rutas públicas, del shell y administrativas. Los servicios de enrolamiento, configuración, ciclos, tickets y directorio encapsulan operaciones; repositorios y Drizzle acceden a D1. El enrolamiento consume el código y crea instalación, ciclo y evento en un lote condicionado para evitar registros huérfanos por reutilización. La configuración y los estados se firman con Ed25519 y se vinculan a la instalación. El shell Go verifica respuestas, utiliza ETag y aplica vigencia, gracia offline y rechazo de políticas anteriores. Su token se guarda con DPAPI y permisos locales restringidos. Cloudflare Access identifica administradores y las membresías determinan rol y organización. El shell presenta soporte y consentimiento de mantenimiento e invoca el ejecutable configurado, conservando la lógica de SIDC en la aplicación existente.

Testing y calidad

Vitest y D1 con migraciones de prueba cubren enrolamiento concurrente, códigos reutilizados, roles, aislamiento organizacional, configuración firmada, ciclos, tickets, CSRF, abuso y retención. Los tests de tickets comprueban el resumen del catálogo y el rechazo de texto libre enviado al endpoint. En Go hay casos de firmas inválidas, políticas anteriores, reloj atrasado, conservación de estados deshabilitados o revocados offline, gracia y caducidad, caché corrupta y token fuera del JSON. También se prueban aceptación de términos y validación del ejecutable objetivo.

Impacto

Reúne solicitudes, instalaciones y decisiones de mantenimiento en una sola solución, con un comportamiento offline explícito y trazabilidad operativa. El portal y el panel comparten backend, y la intermediación del lanzamiento mantiene separadas las responsabilidades del soporte y de la aplicación institucional.

Puntos clave

  • Implementé enrolamiento atómico con códigos de un solo uso y tokens de instalación cuyo hash se almacena en D1
  • Vinculé estados y configuración a cada instalación mediante JWT Ed25519, verificando firma, emisor, audiencia y protocolo en el shell
  • Definí vigencia y gracia offline, rechazo de políticas anteriores y mitigación del retroceso del reloj local
  • Añadí administración por roles y organización con Cloudflare Access y controles CSRF en operaciones de escritura
  • Construí tickets con catálogo de incidencias, idempotencia, límites de solicitudes y validación de acción y hostname de Turnstile
  • Registré aceptación de términos por versión y huella SHA-256, con reenvío pendiente y limpieza programada de datos operativos