- Implemented ProcessFeedback component for error handling in process forms. - Created ProcessHelp component to provide contextual assistance for users. - Added internationalization support for process-related strings in Spanish and English. - Developed ProcessStartForm for initiating new processes with person and template selection. - Introduced ProcessTemplateForm for creating and editing process templates. - Built ProcessTemplatesPage to display and manage process templates. - Enhanced ProcessesPage to list current processes and allow for creation and detail viewing. - Added unit tests for various components to ensure functionality and correctness.
64 lines
6.3 KiB
Markdown
64 lines
6.3 KiB
Markdown
# Accesos remotos de las personas
|
|
|
|
Documenta el recorrido «equipo de origen → herramienta → destino». Complementa la autorización de [teletrabajo](teletrabajo.md), sin modificar los permisos ordinarios sobre recursos ni abrir o cerrar conexiones reales. La asistencia técnica remota es un caso separado y queda pendiente.
|
|
|
|
## Datos y referencias
|
|
|
|
Cada acceso pertenece a una compañía y persona. Tiene UUID v7, historial y actor obtenido de la sesión. Las personas de las compañías no son usuarios de Metis Desk.
|
|
|
|
Origen: activo de la compañía, ordenador personal o móvil personal. En los dos últimos casos se registra únicamente el tipo: no se crea un activo, ficha técnica ni identificación individual. Varios ordenadores personales de una misma persona no se distinguen en esta primera versión.
|
|
|
|
Destino: red de la compañía, red de una sede opcional, un activo concreto o un recurso concreto del nuevo catálogo de recursos. Todas las referencias deben pertenecer a la compañía. Origen y destino no pueden ser el mismo activo. Seleccionar cualquier recurso no concede permiso sobre él.
|
|
|
|
La herramienta es un texto corto, con sugerencias VPN, RDP, AnyDesk, TeamViewer y Supremo. Admite nombres propios. «Necesita una VPN previa» documenta un requisito independiente: no identifica ni comprueba automáticamente otra conexión VPN. Los permisos habituales no se duplican por utilizar VPN. Sin credenciales en el formulario.
|
|
|
|
Persona, origen, destino y sede son fijos al editar. Para cambiar el recorrido, cerrar el anterior y dar de alta otro. Se pueden modificar herramienta, requisito VPN y notas mientras el acceso está abierto.
|
|
|
|
No puede haber dos accesos abiertos con la misma persona, origen, destino, sede y herramienta (sin distinguir mayúsculas/minúsculas en la herramienta). Distintas herramientas permiten recorridos distintos. Un acceso cerrado permite una nueva alta del mismo recorrido.
|
|
|
|
## Preparación y retirada
|
|
|
|
Alta en Pendiente de configurar o Configurado.
|
|
|
|
- Pendiente de configurar → Configurado o Nunca configurado.
|
|
- Configurado → Pendiente de retirar.
|
|
- Pendiente de retirar → Retirado.
|
|
|
|
Retirado y Nunca configurado son terminales; se consultan sin editar. Una repetición idéntica es idempotente y no genera revisión.
|
|
|
|
Registrar un acceso Configurado describe una situación documentada, aunque la autorización ya no sea efectiva. No bloqueamos registrar precisamente aquello que debe revisarse o retirarse.
|
|
|
|
Revisión calculada al leer para accesos abiertos si están pendientes de retirar, falta autorización efectiva de teletrabajo, se retira el activo de origen/destino o se desactiva el recurso destino. La autorización depende de la vigencia y de que la persona esté activa. Los cambios de estas referencias no alteran el historial del acceso. Un acceso cerrado no muestra revisión.
|
|
|
|
La disponibilidad del recurso se comprueba mediante su estado activo; esta primera versión no verifica la conectividad real, restricciones de red, pertenencia a grupos ni permisos sobre cada destino.
|
|
|
|
## Interfaz
|
|
|
|
Sección Accesos remotos dentro del espacio de compañía, búsqueda por persona/origen/destino/herramienta y filtro para consultar cerrados. Alta desde la cabecera derecha, edición e historial en modales. Ayuda y ejemplos inmediatamente antes de Guardar y Cancelar.
|
|
|
|
SelectWithAction permite alta rápida de persona, activo, recurso o sede. Máximo un formulario hijo; cancelarlo conserva el padre. Guardar una referencia la conserva aunque después se cancele el acceso. Los tipos y estados son opciones fijas del proceso y no incorporan botón de alta.
|
|
|
|
Entorno actual muestra los accesos abiertos de la persona, con sus orígenes explícitos, separados de las configuraciones del perfil. Incluye accesos desde otros equipos o equipos personales de la misma persona. Gestionar abre un listado filtrado; el alta deja fija a la persona. Volver conserva el perfil.
|
|
|
|
Traducciones es/en y estados de carga, error y reintento. Se invalidan los avisos al modificar personas, autorizaciones, activos y recursos.
|
|
|
|
## DDD y persistencia
|
|
|
|
RemoteConnection es AggregateRoot; RemoteConnectionRevision es DomainEntity con identidad propia; RemoteConnectionValues encapsula referencias UniqueID, herramienta Name y opcionales Maybe. Create genera UUID v7; update conserva la identidad y compara semánticamente. Rehydrate reconstruye sin generar eventos.
|
|
|
|
Migraciones idempotentes para remote_connections y remote_connection_revisions, ejecutadas cuando ya existen activos y recursos. FK a compañía, persona, activo de origen/destino, recurso, sede y actor. El origen personal no tiene FK de inventario. Clave técnica única SHA-256 del recorrido abierto; se libera al cerrar. Posición de revisión única por acceso.
|
|
|
|
Escrituras en transacción con bloqueo de compañía. El mapper bidireccional valida UUID, referencias, historial, orden, transiciones, raíz y última revisión, y clave técnica. También se valida pertenencia a compañía al leer. Corrupción persistida falla sin exponer SQL.
|
|
|
|
GET /api/remote-connections/:companyId devuelve accesos, historial, efectividad de autorización y revisión. POST en esa ruta crea; POST /api/remote-connections/:companyId/:id/update modifica. Contratos Zod estrictos, sesión y protección de origen/CSRF. Los identificadores del actor nunca llegan del cliente.
|
|
|
|
## Validación
|
|
|
|
Diez pruebas nuevas de dominio/interfaz y cobertura HTTP con MariaDB exclusivamente en metis_desk_test: referencias, contratos estrictos, concurrencia, unicidad por herramienta, idempotencia, referencias fijas, estados, historial, actor, ámbito, autorización caducada/revocada, persona inactiva, activos retirados, recurso inactivo y fallo cerrado ante corrupción.
|
|
|
|
Suite completa: 142 pruebas correctas. Typecheck y build correctos. Lint y check mantienen respectivamente 32 y 90 errores previos, dos avisos y tres informativos; el bloque nuevo no añade incidencias.
|
|
|
|
Navegador: listado, formulario, cambio de origen personal, destinos, herramienta libre, altas rápidas y cancelación conservando el padre, ayuda inferior y gestión desde Entorno actual. No se guardan registros ficticios de desarrollo.
|
|
|
|
Los [procesos de cambio y salida](procesos-de-personas.md) incorporan revisiones de accesos remotos abiertos, incluidos los de equipos personales. Resolver el seguimiento no revoca la conexión ni altera el historial del acceso.
|