Seguridad y privacidad

Los datos de tu empresa son tuyos. Nunca se mezclan con los de otra empresa. Nunca se exponen sin autenticación.

Arquitectura multitenant nativa

Cada empresa es un tenant independiente. Todos los registros de negocio llevan un tenant_id. Es imposible que un usuario acceda a datos de otra empresa por diseño de la base de datos.

  • tenant_id en todas las tablas de negocio
  • Consultas siempre filtradas por tenant
  • Sin rutas que permitan cross-tenant access
  • Aislamiento validado a nivel de servidor

Roles y permisos

Cinco niveles de acceso con permisos diferenciados. Cada rol solo ve y hace lo que le corresponde.

  • Superadmin: gestión de plataforma
  • Tenant Admin: gestión completa de la empresa
  • Manager: gestión operativa, informes, auditoría
  • Técnico: tareas, checklists, incidencias
  • Cliente portal: solo sus instalaciones y documentos

Portal cliente aislado

El cliente solo accede a sus propios datos. No puede ver datos de otros clientes del mismo tenant. La sesión de cliente tiene acceso restringido a /client.

  • Acceso restringido a /client
  • clientPortalId limita los datos visibles
  • Sin acceso al panel de gestión
  • Sin acceso a datos de técnicos o costes internos

Descargas protegidas

Los archivos (documentos, evidencias, informes) nunca se sirven directamente por URL pública. Todas las descargas pasan por un endpoint autenticado que verifica la sesión y los permisos del usuario.

  • Endpoints /api/files protegidos
  • Verificación de sesión en cada descarga
  • Verificación de acceso al tenant y al recurso
  • Sin archivos accesibles sin autenticación

Audit log completo

Cada acción relevante queda registrada: creación, modificación, borrado, login, logout, generación de informes y operaciones de IA.

  • Log por usuario, acción, recurso y timestamp
  • Inmutable: los logs no se editan ni borran
  • Accesible para MANAGER y superiores
  • Filtrable por acción, tipo de recurso y usuario

Despliegue en VPS propio

FieldCore se despliega en un servidor Linux dedicado con PostgreSQL local. Sin dependencias de terceros para el almacenamiento de datos.

  • Sin Supabase
  • Sin Firebase
  • PostgreSQL en servidor propio
  • Storage local protegido (o S3 compatible)

Backups y recuperación

Backups automáticos de base de datos y storage con retención configurable. Proceso de restauración documentado y probado.

  • pg_dump para PostgreSQL
  • tar.gz para storage
  • Retención de 10 backups por defecto
  • Restore verificado y documentado

Sin DEMO_MODE en producción

El modo demo está prohibido a nivel de código en entornos de producción. Si DEMO_MODE=true y NODE_ENV=production, la aplicación lanza un error al arrancar.

  • Prohibición a nivel de lib/config/demo.ts
  • Error de arranque si se activa en prod
  • Datos de demo completamente separados
  • Reset de demo requiere confirmación explícita

¿Tienes preguntas sobre seguridad?

Podemos explicar la arquitectura técnica con más detalle en la demo o por email.

Contactar