Registrare un’applicazione in OpenPlatform
Un’applicazione è un record che l’amministratore crea nella schermata di configurazione (/setup/, l’API delle app del plugin setup). Il record è il contratto tra OpenPlatform e la tua applicazione: dove vive, come i due dimostrano chi sono e cosa può fare l’utente al suo interno. Lo schema del record è @Apps in plugins/setup/schemas/apps.js.
| Campo | Obbligatorio | Significato |
|---|---|---|
name | sì | il nome mostrato nel portale |
url | sì | l’indirizzo che OpenPlatform apre |
reqtoken | sì | un segreto che scegli tu e che conoscono entrambe le parti: firma la richiesta |
restoken | sì | un secondo segreto, anch’esso condiviso: l’applicazione lo usa per firmare la sua risposta |
color, icon | no | l’aspetto dell’applicazione nel portale |
meta | no | un indirizzo (URL) che restituisce i metadati dell’applicazione: la schermata di configurazione può scaricarli (Apps/download) per compilare il record |
sortindex | no | l’ordine nell’elenco (una nuova applicazione va in fondo) |
notifications | no | se l’applicazione può inviare notifiche |
isexternal | no | l’applicazione non viene aperta nel riquadro del portale: la risposta all’applicazione contiene iframe: false |
isbookmark | no | l’applicazione è un semplice link: nessuno scambio di token, solo un identificatore di sessione nella query string |
isnewtab | no | aprila in una nuova scheda del browser invece che nel riquadro del portale (l’impostazione newtab lo fa per ogni applicazione) |
isscrollbar | no | il riquadro dell’applicazione nel portale mantiene la barra di scorrimento (il portale imposta scrolling su yes o no) |
isdisabled | no | disattivala per tutti: l’utente riceve "App has been temporary disabled" |
permissions | no | l’elenco dei permessi dell’applicazione: ognuno ha un id, un name e un value (vedi gruppi e permessi) |
La tabella tbl_app ha anche una colonna allow ("consente solo indirizzi IP specifici"): quando contiene indirizzi, l’applicazione può chiamare gli endpoint del protocollo di OpenPlatform solo da essi. Lo schema di configurazione qui sopra non la elenca, quindi è una colonna del database che compili direttamente.
I due token
reqtoken e restoken non vengono mai inviati al browser. OpenPlatform ne deriva, per ogni avvio, i valori che viaggiano: il token nell’indirizzo dell’applicazione e l’intestazione che l’applicazione rimanda. La derivazione è in come si connette un’app. Usa valori casuali lunghi e una coppia diversa per ogni applicazione.
Rimuovere e modificare
Un’applicazione non viene mai eliminata dalla tabella: rimuoverla (Apps/remove) imposta isremoved e la data della rimozione, svuota la cache degli utenti che la avevano, e isdisabled la spegne senza rimuoverla. Quando cambia l’indirizzo della piattaforma (l’impostazione url), OpenPlatform svuota i link delle notifiche di ogni utente ed elimina le sessioni di applicazione aperte, perché entrambi contengono quell’indirizzo (impostazioni e database).
Ricorda la regola del README: un’applicazione registrata non è visibile a nessuno finché non le viene assegnato un gruppo.