Saltar al contenido principal

Descripción General

Apollo utiliza un modelo de permisos de tres niveles que proporciona control de acceso granular desde el nivel de la organización hasta los boards de proyectos individuales.

Niveles de Permisos

Nivel 1: Organización

Gestionado en organization_members. Controla el acceso a nivel de toda la organización.
RolPermisos
OwnerControl total — facturación, configuración, gestión de miembros, todas las funcionalidades
AdminGestionar miembros, equipos y la mayoría de las configuraciones. No puede eliminar la organización ni gestionar facturación
MemberAcceso a funcionalidades según los roles de equipo y board. No puede gestionar la configuración de la organización
External CollaboratorAcceso limitado únicamente a proyectos específicamente asignados

Nivel 2: Equipo

Gestionado en team_members. Controla los recursos dentro del ámbito del equipo.
RolPermisos
LeadGestionar configuración del equipo, miembros, configuración de funcionalidades y asignaciones de proyectos
MemberAcceso a proyectos, tareas, releases y base de conocimiento del equipo

Nivel 3: Board (Proyecto)

Gestionado en user_project_access.board_role. Controla el acceso por proyecto.
RolPermisos
OwnerControl total del proyecto — configuración, miembros, eliminación
EditorCrear y modificar tareas, releases y páginas de la base de conocimiento
ViewerAcceso de solo lectura a los recursos del proyecto

Tipos de Usuario

Derivados del rol en la organización:
Tipo de UsuarioDerivado DeVe
InternalRol de Owner, Admin o Member en la organizaciónPlataforma completa según el acceso a funcionalidades
CustomerTipo de usuario CustomerDashboard simplificado, proyectos asignados
External CollaboratorRol de External Collaborator en la organizaciónSolo proyectos específicamente asignados

Protección de Rutas

Apollo aplica permisos en múltiples niveles:
  • <ProtectedRoute> — requiere autenticación (cualquier usuario con sesión iniciada)
  • <FeatureRoute feature="..."> — requiere que la funcionalidad indicada esté habilitada para el usuario
  • <InternalRoute> — requiere tipo de usuario interno
  • <AdminRoute> — requiere rol de admin o owner en la organización

Row-Level Security (RLS)

Todas las tablas de la base de datos tienen políticas de Row-Level Security aplicadas a nivel de PostgreSQL. Incluso si se eludiera el frontend, la base de datos aplica reglas de acceso basadas en auth.uid().