KEPLIN Docs

Impostazioni dell'app

Tema, traduzioni, autenticazione e registrazione, account degli utenti, autorizzazioni e rotazione dei record — tutto ciò che si mette a punto in un'app, sezione per sezione.

Ogni app ha le proprie impostazioni — il tema è di questa app, gli account sono di questa app, le autorizzazioni sono di questa app. È per questo che le impostazioni viaggiano con lei quando la esporti in un pacchetto (con le eccezioni che la pagina "Importare ed esportare app" dettaglia). Questa pagina percorre tutte le sezioni, con attenzione speciale alle sei che si usano di più: tema, traduzioni, autenticazione, account, autorizzazioni e rotazione dei record.

Aprire le impostazioni

  1. Apri l'app nella barra laterale.
  2. In cima alla barra dell'app, clicca sul pulsante a ingranaggio Impostazioni dell'app. L'albero di navigazione lascia il posto all'albero delle impostazioni, organizzato per gruppi.
  3. Clicca su una sezione: si apre come una scheda dello spazio di lavoro — come una schermata o uno script — con il nome dell'app nell'intestazione, la sezione attiva in un contrassegno accanto, e i pulsanti della sezione (per esempio Salva) sempre nell'angolo in alto a destra.

L'albero delle impostazioni dell'app, con i gruppi e le sezioni
L'albero delle impostazioni dell'app, con i gruppi e le sezioni

La mappa completa:

Gruppo Sezione Che cosa si definisce
Applicazione Generale Identificazione, pubblicazione, esportare ed eliminare — vedi le prime due pagine di questo capitolo.
Applicazione Autenticazione Come gli utenti entrano nell'app, registrazione pubblica e recupero.
Applicazione Notifiche I canali di notifica dell'app: in-app ed email (SMTP proprio).
Applicazione Archiviazione Dove vanno i file che gli utenti dell'app inviano (disco dell'app, S3, SFTP, condivisione di rete).
Utenti Utenti dell'app Gli account di chi usa l'app costruita.
Utenti Autorizzazioni Ruoli e regole: dati, schermate, menu e azioni.
Aspetto Tema Colori, forma e tipografia dell'app costruita, con anteprima.
Localizzazione Traduzioni Le lingue dell'app e le frasi tradotte, in una matrice.
Dati Rotazione dei record Quanti giorni si conserva ogni tipo di record prima che venga eliminato.

Nota

Queste sono le impostazioni dell'app — da non confondere con le Impostazioni della piattaforma (nella zona di amministrazione della barra laterale), che governano l'intera installazione: processi di sfondo, avvisi, sessioni e limiti globali.

Tema

La sezione Tema dipinge l'app costruita — quella che i tuoi utenti vedono — senza toccare nessuna schermata. A sinistra ci sono i gruppi di colori; a destra, il pannello Anteprima mostra "Esempio con i token attuali — si aggiorna in tempo reale": ogni colore che cambi appare lì all'istante.

La sezione Tema delle impostazioni dell'app: i gruppi di colori a sinistra e l'anteprima in tempo reale a destra.
La sezione Tema delle impostazioni dell'app: i gruppi di colori a sinistra e l'anteprima in tempo reale a destra.

Gruppo Che cosa dipinge
Base "Sfondo e testo dell'app, contorni e focus."
Superfici "Card e popover (menu, dropdown, tooltip)."
Colori "Colori semantici dei componenti e il testo sopra ciascuno" — primaria, secondaria, distruttiva, accento, attenuata.
Navigazione "Barre di navigazione dell'app (in alto, laterali, menu)." Per impostazione predefinita seguono le superfici; cambiale per applicare il tuo branding.

Ogni colore ha un selettore visivo e un campo esadecimale (#rrggbb) — scrivi o scegli, è la stessa cosa. In fondo all'elenco, Forma e tipografia definisce il resto:

  • Raggio degli angoli — da Senza arrotondamento (0) a Massimo (1rem), in cinque passi.
  • Posizione degli avvisi — in quale angolo appaiono gli avvisi (toast) dell'app.
  • Font (sans) — lo stack di font dell'app.

Per salvare, Salva; per tornare ai colori di partenza, Ripristina i predefiniti (ripristina nell'editor — diventa definitivo solo quando salvi). Il tema salvato si applica immediatamente all'app costruita, e viaggia con lei in qualsiasi pacchetto.

Traduzioni — le lingue dell'app

La sezione Traduzioni è una matrice: una riga per frase, una colonna per lingua. È qui che l'app guadagna le lingue e che le frasi delle schermate si traducono senza uscire da un unico quadro.

La matrice delle traduzioni dell'app: una riga per frase, una colonna per lingua.
La matrice delle traduzioni dell'app: una riga per frase, una colonna per lingua.

  • Creare una frase: scrivi nell'ultima riga, che è sempre vuota in attesa ("scrivi per creare…"). La Chiave della frase "(deriva dalla frase)" — è il testo stesso nella lingua base a identificarla nelle schermate.
  • Aggiungere una lingua: clicca sul + dell'intestazione, scegli in "scegli una lingua…" e conferma con Aggiungi lingua. Una lingua nuova è una colonna nuova, che nasce vuota.
  • Cambiare la lingua base o eliminare una lingua: nel menu della colonna — Rendi lingua base ed Elimina questa lingua ("Le traduzioni di questa lingua spariscono insieme a lei.").
  • Eliminare una frase: nel menu della riga, Elimina frase — esce da tutte le lingue quando salvi.
  • Trovare quello che manca: la ricerca "Cerca in qualsiasi lingua…" e il filtro Da completare mostrano solo le frasi con celle vuote.

Nelle schermate, le frasi si usano attraverso il testo: t("Elenco clienti") in un evento TypeScript restituisce la traduzione nella lingua di chi sta usando l'app. Per i valori in mezzo alla frase, scrivili fra parentesi graffe — «{n} record» dà «3 record» — e la piattaforma avvisa (cella in giallo) quando una traduzione perde una parentesi graffa che l'originale ha: in quella lingua il valore non apparirebbe.

Dica

Cambiare il testo di una frase già salvata significa cambiarne la chiave — e la piattaforma la sostituisce anche nelle schermate che la usano, dicendo in quante è intervenuta. Niente resta a puntare a una frase che non esiste più.

Alla fine, Salva: "Traduzioni salvate e compilate."

Autenticazione e registrazione

La sezione Autenticazione definisce come si entra nell'app costruita — non nella piattaforma. Sono tre blocchi:

La sezione Autenticazione dell'app, con la modalità di autenticazione e la registrazione pubblica
La sezione Autenticazione dell'app, con la modalità di autenticazione e la registrazione pubblica

Modalità di autenticazione — la scelta di fondo:

Modalità Come funziona
Username e password "Gli utenti dell'app accedono con le credenziali gestite nella scheda Utenti." Tutto vive nell'app; è la modalità di partenza.
OAuth / OpenID Connect "L'app delega l'accesso a un fornitore di identità esterno (issuer OIDC)." Il login diventa quello della tua organizzazione.

OAuth / OpenID Connect — i campi del fornitore (attivi solo in quella modalità): Issuer URL e Client ID (obbligatori), Client secret ("Salvato cifrato; non viene mai più mostrato." — lasciarlo vuoto mantiene quello che c'è) e Scopes ("Separati da spazio. Se vuoto, usa gli scopes predefiniti del fornitore.").

Registrazione e recupero — le schermate di sistema pubbliche dell'app:

  • Consenti la registrazione pubblica: attivo, "qualsiasi visitatore può creare un account nella schermata /register. Disattivato, la schermata non viene servita."
  • Ruolo delle nuove registrazioni: "Ruolo assegnato automaticamente a chi si registra." Scegli un ruolo dall'elenco delle Autorizzazioni, o Nessun ruolo — ma senza ruolo l'account entra e non vede né dati né schermate.
  • Il recupero della password invia il link attraverso il canale email definito in Notifiche — il canale deve essere attivo e con l'SMTP completo, altrimenti non ci sono email di recupero.

Salva con Salva ("Autenticazione salvata.").

Utenti dell'app — gli account

La sezione Utenti dell'app gestisce gli account di chi usa l'app. L'avviso in cima è la regola d'oro: "Questi utenti appartengono all'app costruita — accedono all'app in runtime e non hanno alcun accesso alla piattaforma KEPLIN."

L'elenco degli utenti dell'app Gestione Clienti: i ruoli di ogni account e l'ultimo accesso.
L'elenco degli utenti dell'app Gestione Clienti: i ruoli di ogni account e l'ultimo accesso.

L'elenco mostra ogni account con l'Utente, i Ruoli e l'Ultimo accesso ("mai entrato" quando non c'è mai stato un login), ed è stato fatto per rispondere a delle domande:

  • La ricerca "Cerca per nome, username o email…" e i filtri per ruolo e stato trovano qualsiasi account.
  • L'avviso color ambra "… utente/i senza alcun ruolo — non vedono dati né schermate" è cliccabile e filtra subito quegli account — è la causa numero uno di "l'app è vuota".
  • Seleziona più account per agire in blocco: Assegna ruolo, Revoca ruolo, Attiva, Disattiva — dare lo stesso ruolo a dodici persone è un'operazione, non dodici finestre.

Creare o modificare un account (pulsante Nuovo utente, oppure Modifica nel menu della riga — si apre a pagina intera, mai in una finestra):

Campo Note
Username Obbligatorio. "Lettere, numeri, punto, trattino, _ e @."
Nome / Email Opzionali; l'email serve per il recupero della password.
Password Alla creazione è la password iniziale — "l'utente può cambiarla nell'app." In modifica, "compila solo per impostare una nuova password."
Attivo Spento, l'account esiste ma "non può accedere all'app."
Ruoli Visti per ruolo. Un account nuovo porta prespuntati i ruoli "predefiniti" definiti nelle Autorizzazioni.

Eliminare un account (menu della riga → Elimina) è irreversibile — l'utente non riesce più a entrare nell'app.

Nota

Le autorizzazioni non si modificano nell'account. Si modificano sempre nei ruoli, nella sezione Autorizzazioni — un'eccezione messa su una persona è un'eccezione che nessuno ritroverà più.

Autorizzazioni

La sezione Autorizzazioni definisce che cosa ogni ruolo può fare nell'app, su quattro assi: dati, schermate, menu e azioni. "Le autorizzazioni si sommano: chi ha due ruoli ottiene il meglio di entrambi."

La sezione Autorizzazioni dell'app: i ruoli, con gli utenti e le regole di ciascuno, e le azioni dichiarate sotto.
La sezione Autorizzazioni dell'app: i ruoli, con gli utenti e le regole di ciascuno, e le azioni dichiarate sotto.

L'elenco dei Ruoli mostra ognuno con il numero di utenti e di regole, e i contrassegni "accesso totale" e "predefinito". Nuovo ruolo ne crea uno e ne apre subito la pagina, con cinque schede:

Generale — il Nome, la Descrizione e due interruttori:

  • Accesso totale: "Tutto, senza eccezioni — e resta corretto quando l'app cresce." È il ruolo di amministratore dell'app; con quello attivo, le altre schede non si applicano nemmeno.
  • Assegnato per impostazione predefinita: "Assegnato a chi si registra o viene appena creato."

Dati — una riga per API di tabella, con quattro spunte — Visualizza, Crea, Modifica, Elimina — e un Ambito che dice a quali record si arriva:

Ambito Significato
Tutti i record Senza restrizione di righe.
Solo i miei Solo i record il cui "Campo che dice di chi è" corrisponde all'utente con sessione attiva.
Con condizione… Solo i record che rispettano un filtro che componi — con valori fissi o provenienti dalla sessione.

"L'ambito è applicato sul server, in tutte le letture e scritture — nelle schermate, nel codice, nei report e nei workflow. Senza nessuna regola, questo ruolo non vede nulla di questa API."

Schermate — per ogni schermata e ogni dispositivo (Web, Tablet, Telefono), un livello: Nascosto ("non appare nei menu, e la rotta scritta a mano viene rifiutata"), Visualizza (sola lettura) ("apre in sola lettura — i campi e i pulsanti che salvano restano disattivati") o Modifica. Le scorciatoie "mostra tutti" / "nascondi tutti" riempiono un'intera colonna. Il «visualizza» è un aiuto visivo; ciò che ferma davvero la scrittura sono le autorizzazioni di Dati, sul server.

Menu — al contrario delle schermate, un menu è visibile per impostazione predefinita: la porta è la schermata, e quella è già chiusa. Qui si nasconde il resto — un gruppo intero, la campanella delle notifiche — per dispositivo. Deselezionare un gruppo si porta dietro i figli.

Azioni — i verbi che esistono solo in questa app: approvare, chiudere, esportare. Si dichiarano nel pannello Azioni dell'elenco dei ruoli (una Chiave come aprovar-despesa e un Nome, pulsante Nuova azione) e ogni ruolo spunta quelle che concede. Nelle schermate, qualsiasi widget ha la proprietà «Accesso» per richiedere un'azione; in codice TypeScript si chiede keplin.session.can("aprovar-despesa").

Tutto si salva in una volta con Salva ("Autorizzazioni salvate."). Eliminare un ruolo avvisa quanti utenti restano senza — "chi resta senza alcun ruolo smette di vedere i dati."

Rotazione dei record

Un'app con traffico scrive cronologia senza sosta — chiamate, esecuzioni, clic. La sezione Rotazione dei record decide "quanti giorni si conserva ogni tipo di record prima che venga eliminato. Zero giorni significa conservare per sempre."

La matrice della rotazione dei record, con i giorni da conservare per tipo
La matrice della rotazione dei record, con i giorni da conservare per tipo

È una griglia con una riga per tipo di Record e la scadenza in Conserva (il campo mostra "Conservato per sempre" quando è a zero):

Record Che cos'è Di partenza
Chiamate alle API "Una riga per ogni richiesta GraphQL. È ciò che cresce più in fretta in un'app con traffico." Conservare per sempre
Esecuzioni di script "La cronologia che appare nel pulsante «Esecuzioni» dell'editor di script." Conservare per sempre
Errori delle app "Le occorrenze dei problemi che il Radar mostra. Eliminarle non fa sparire il problema, solo la sua cronologia." Conservare per sempre
Navigazione e clic "Volume alto e valore breve: serve a indagare ciò che è appena successo, non per la cronologia." 2 giorni
Pianificazioni "Gli orari fissati e ciò che non è stato rispettato. Quello che è fallito viene conservato il doppio del tempo." 30 giorni
Istanze di workflow "Solo quelle già terminate. Quelle ancora in esecuzione o in attesa di qualcuno non vengono mai eliminate. Quelle fallite restano per il doppio del tempo." Conservare per sempre
Audit "Chi ha fatto cosa. È condiviso da tutte le app, quindi vale sempre la scadenza più lunga tra loro." Conservare per sempre

Salva applica il criterio ("Rotazione salvata.") e la pulizia comincia a girare in sottofondo, tutti i giorni.

Dica

In un'app di produzione, definisci scadenze reali fin dal primo giorno — da 30 a 90 giorni per le chiamate alle API è un punto di partenza sano. "Conservare per sempre" è ottimo in sviluppo e una fattura del disco in produzione.

Limiti da tenere presenti

I limiti che incontrerai nelle impostazioni e nei gesti di questo capitolo:

Che cosa Limite
Nome dell'app Da 2 a 120 caratteri
Descrizione dell'app Fino a 500 caratteri
Username di un utente dell'app Da 2 a 120 caratteri (lettere, numeri, punto, trattino, _ e @)
Passphrase di esportazione Minimo 8 caratteri
Pacchetto di importazione Massimo 200 MB
Rotazione dei record Da 0 a 3650 giorni per tipo (0 = conservare per sempre)

I limiti globali — la durata delle sessioni e la dimensione massima dei file inviati — non sono per app: vivono nelle Impostazioni della piattaforma, nel pannello "Sessioni e limiti", e valgono per tutta l'installazione.