Tema
Organizzazioni e Scope
Sono le due entità da cui dipende tutto il resto. Un'Organizzazione è il cliente; uno Scope è un perimetro dentro l'organizzazione. Ogni altra cosa della piattaforma — un canale, un intent, una sessione, una Knowledge Base — appartiene a un'organizzazione e vive in uno o più dei suoi scope.
01OrganizzazioneIl cliente. È il confine dei dati: niente attraversa da un'organizzazione a un'altra.
02ScopeUn perimetro funzionale dentro il cliente. Separa ambiti che non devono mescolarsi.
03Ciò che si appendeCanali, intent, moduli e Knowledge Base si collegano a uno scope, non all'organizzazione.
L'organizzazione
È l'unità di intestazione e di isolamento. Ha un nome leggibile e uno slug, che è la forma breve usata dappertutto — nei percorsi, nelle etichette, nel nome composto di uno scope.
Sull'organizzazione stanno le cose che valgono per tutto il cliente:
- Identità
- Nome e slug
- Autenticazione
- Il riferimento al sistema con cui si verifica chi sta parlando
- Configurazione
- Le impostazioni del modello linguistico e i parametri propri del cliente
- Licenza
- Piano e consumi — esecuzioni, flow, integrazioni, spazio delle Knowledge Base — consultabili nella pagina dell'abbonamento
- Stato
- Un'organizzazione può essere disattivata senza essere cancellata
Lo scope
Uno scope è un raggruppamento orizzontale di funzionalità. Serve quando dentro lo stesso cliente ci sono ambiti che devono restare distinti: un comune che gestisce i rifiuti e i tributi non vuole che un intent dell'uno risponda a una domanda dell'altro, né che i due condividano i documenti.
Uno scope ha uno slug — lettere, cifre, e i separatori / e : — e il suo nome completo si compone con quello dell'organizzazione:
organizzazione:scopecomune-di-esempio:servizi/rifiuticomune-di-esempio:servizi/tributi
È la forma con cui lo scope compare nelle sessioni e nella configurazione di un canale. Le due parti restano leggibili: davanti ai due punti c'è sempre il cliente.
Cosa si collega a uno scope
| Si collega | Relazione | Conseguenza |
|---|---|---|
| Canali | Un canale può servire più scope | Il canale sa in quale perimetro sta arrivando il messaggio |
| Intent | Ogni intent appartiene a un solo scope | Un intent non è raggiungibile da fuori dal suo perimetro |
| Moduli (DIM) | Un modulo può essere registrato su più scope | Lo stesso modulo serve ambiti diversi senza duplicarlo |
| Knowledge Base | Molte a molte, con una modalità per collegamento | La stessa Knowledge Base può essere obbligatoria in uno scope e opzionale in un altro |
| Data Source | Molte a molte | Lo scope decide su quali database si può chiedere |
La direzione è sempre la stessa: le cose si appendono allo scope, e lo scope appartiene all'organizzazione. Non esiste un intent «dell'organizzazione» che valga per tutti i suoi scope.
Chi può fare cosa
La piattaforma non decide chi è l'utente né cosa gli è permesso. Quando arriva un messaggio, chiede al sistema di autenticazione dell'organizzazione se quell'utente è riconosciuto, e quello risponde con l'elenco delle sue Capability.
Le capability non vengono generate da Calybron: sono trasmesse da fuori, e la piattaforma le applica per stabilire quali intent dello scope siano disponibili in quella sessione. Il criterio è prudente per costruzione: un intent che richiede una capability è visibile soltanto a chi la possiede, e un utente non riconosciuto vede soltanto gli intent pubblici. La riservatezza di un intent si ottiene chiedendogli una capability.
Cosa non si mescola mai
documenti e indicisessioni e cronologiaintent e modulivariabili e credenzialidatabase collegati
L'organizzazione è il confine dei dati, e il confine è verificato dove i dati si leggono, non solo dove si scrivono: un'interrogazione che nominasse una Knowledge Base di un altro cliente viene respinta interamente, non filtrata.
Lo scope, invece, è un confine funzionale: separa ciò che non deve mescolarsi per non confondere l'utente e il riconoscimento dell'intenzione. Quello che deve restare riservato si protegge con le capability e con la separazione fra organizzazioni.
Da dove si comincia
Un'organizzazione nuova richiede, in quest'ordine: l'organizzazione, almeno uno scope, un canale collegato allo scope, e gli intent che quel canale deve saper servire. Tutto si fa dalla dashboard, in pochi minuti; la prima risposta arriva appena il canale è collegato.