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 enorganization_members. Controla el acceso a nivel de toda la organización.
| Rol | Permisos |
|---|---|
| Owner | Control total — facturación, configuración, gestión de miembros, todas las funcionalidades |
| Admin | Gestionar miembros, equipos y la mayoría de las configuraciones. No puede eliminar la organización ni gestionar facturación |
| Member | Acceso a funcionalidades según los roles de equipo y board. No puede gestionar la configuración de la organización |
| External Collaborator | Acceso limitado únicamente a proyectos específicamente asignados |
Nivel 2: Equipo
Gestionado enteam_members. Controla los recursos dentro del ámbito del equipo.
| Rol | Permisos |
|---|---|
| Lead | Gestionar configuración del equipo, miembros, configuración de funcionalidades y asignaciones de proyectos |
| Member | Acceso a proyectos, tareas, releases y base de conocimiento del equipo |
Nivel 3: Board (Proyecto)
Gestionado enuser_project_access.board_role. Controla el acceso por proyecto.
| Rol | Permisos |
|---|---|
| Owner | Control total del proyecto — configuración, miembros, eliminación |
| Editor | Crear y modificar tareas, releases y páginas de la base de conocimiento |
| Viewer | Acceso de solo lectura a los recursos del proyecto |
Tipos de Usuario
Derivados del rol en la organización:| Tipo de Usuario | Derivado De | Ve |
|---|---|---|
| Internal | Rol de Owner, Admin o Member en la organización | Plataforma completa según el acceso a funcionalidades |
| Customer | Tipo de usuario Customer | Dashboard simplificado, proyectos asignados |
| External Collaborator | Rol de External Collaborator en la organización | Solo 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 enauth.uid().