Panoramica
Apollo utilizza un modello di permessi a tre livelli che fornisce un controllo degli accessi granulare dal livello dell’organizzazione fino ai board dei singoli progetti.Livelli di Permesso
Livello 1: Organizzazione
Gestito inorganization_members. Controlla l’accesso a livello dell’intera organizzazione.
| Ruolo | Permessi |
|---|---|
| Owner | Controllo completo — fatturazione, impostazioni, gestione membri, tutte le funzionalità |
| Admin | Gestire membri, team e la maggior parte delle impostazioni. Non può eliminare l’organizzazione o gestire la fatturazione |
| Member | Accesso alle funzionalità in base ai ruoli di team e board. Non può gestire le impostazioni dell’organizzazione |
| External Collaborator | Accesso limitato solo ai progetti specificamente assegnati |
Livello 2: Team
Gestito inteam_members. Controlla le risorse nell’ambito del team.
| Ruolo | Permessi |
|---|---|
| Lead | Gestire impostazioni del team, membri, configurazione delle funzionalità e assegnazioni di progetto |
| Member | Accesso a progetti, attività, release e base di conoscenza del team |
Livello 3: Board (Progetto)
Gestito inuser_project_access.board_role. Controlla l’accesso per progetto.
| Ruolo | Permessi |
|---|---|
| Owner | Controllo completo del progetto — impostazioni, membri, eliminazione |
| Editor | Creare e modificare attività, release e pagine della base di conoscenza |
| Viewer | Accesso in sola lettura alle risorse del progetto |
Tipi di Utente
Derivati dal ruolo nell’organizzazione:| Tipo di Utente | Derivato Da | Visualizza |
|---|---|---|
| Internal | Ruolo Owner, Admin o Member nell’organizzazione | Piattaforma completa in base all’accesso alle funzionalità |
| Customer | Tipo utente Customer | Dashboard semplificata, progetti assegnati |
| External Collaborator | Ruolo External Collaborator nell’organizzazione | Solo progetti specificamente assegnati |
Protezione delle Rotte
Apollo applica i permessi su più livelli:<ProtectedRoute>— richiede autenticazione (qualsiasi utente autenticato)<FeatureRoute feature="...">— richiede che la funzionalità indicata sia abilitata per l’utente<InternalRoute>— richiede tipo di utente interno<AdminRoute>— richiede ruolo admin o owner nell’organizzazione
Row-Level Security (RLS)
Tutte le tabelle del database hanno policy di Row-Level Security applicate a livello PostgreSQL. Anche se il frontend venisse aggirato, il database applica le regole di accesso basate suauth.uid().