Il framework dell'estensione Looker presto utilizzerà un nuovo meccanismo di caricamento. Il nuovo caricatore potrebbe causare comportamenti imprevisti ed possibili errori quando vengono caricate le estensioni esistenti. Per consentire agli sviluppatori di testare e aggiornare le proprie estensioni, questa pagina descrive come testare il nuovo caricatore del framework delle estensioni prima di attivarlo ufficialmente negli ambienti Looker.
La data di uscita dell'aggiornamento non è ancora stata stabilita. A quel punto, sarà disponibile un pulsante di attivazione/disattivazione che consentirà ai clienti di disattivare temporaneamente il nuovo metodo di caricamento. Tuttavia, in un determinato momento, la nuova tecnica di caricamento dovrà essere attivata per correggere le violazioni dei Criteri di sicurezza del contenuto (CSP) e per utilizzare il preambolo <!DOCTYPE html>
.
Modifiche che potrebbero influire sulle estensioni
Di seguito è riportato un elenco dei cambiamenti relativi al framework delle estensioni che potrebbero influire sulle estensioni:
- Per correggere le violazioni dei CSP, viene generato l'HTML per caricare l'estensione sul server anziché nel browser. Questa modifica in sé non dovrebbe influire sulle estensioni esistenti.
- Il tag
base
viene rimosso, il che potrebbe influire sulla suddivisione del codice personalizzato. Il tagbase
è stato rimosso perché il relativo utilizzo violava il CSP. Tuttavia, alcuni sviluppatori potrebbero aver implementato le proprie tecniche di suddivisione del codice che facevano affidamento sul tagbase
. Verifica che la suddivisione del codice funzioni ancora o, se necessario, implementa altre tecniche che non si basano sul tagbase
. - Il nuovo caricatore utilizza un preambolo
<!DOCTYPE html>
. Ciò potrebbe avere un impatto sui componenti che utilizzanoheight: 100%;
. Per risolvere il problema, utilizzaheight: 100vh
.
Test delle estensioni con il nuovo metodo di caricamento
La nuova tecnica di caricamento richiede che l'istanza di Looker esegua Looker 22.4 o versioni successive. Viene attivato tramite un'opzione di avvio. L'opzione di avvio definisce un URL che verrà utilizzato per caricare l'estensione. L'origine di questo URL deve essere diversa dall'origine del server Looker. Questo passaggio è necessario affinché l'estensione possa essere sottoposta a sandbox.
La seguente procedura consente di testare le estensioni con il nuovo metodo di caricamento per un singolo utente, senza influire su eventuali altri utenti del sistema. A tal fine, scrivi l'URL di caricamento dell'estensione nello spazio di archiviazione della sessione del browser. Il nuovo meccanismo rimane attivo finché la sessione dell'utente non viene terminata OPPURE l'utente elimina il valore dallo spazio di archiviazione della sessione. Si prevede che questa tecnica verrà utilizzata da sviluppatori esperti.
Configurazione di un server proxy HTTP
Prima di attivare il nuovo metodo di caricamento delle estensioni, devi eseguire un server proxy sulla tua macchina locale che simula il servizio di caricamento delle estensioni. Assicurati di avere installato Node.js sulla macchina locale ed esegui il seguente comando:
npx http-server --port 4000 --proxy https://experiment.dev.looker.com --proxy-options.secure false
Sostituisci https://experiment.dev.looker.com
con l'URL della tua istanza di Looker. Puoi anche modificare il numero della porta, ma assicurati che non sia in conflitto con il numero di porta utilizzato dal server di sviluppo delle estensioni.
La prima volta che esegui questo comando, ti verrà chiesta l'autorizzazione per installare http-server
.
Configurazione di un server proxy HTTP
Alcuni ambienti potrebbero impedire il contenuto misto di HTTP e HTTPS. In questo caso, un server proxy HTTP deve essere configurato con un certificato. Per configurare un server proxy HTTP, devi generare un certificato autofirmato. Il prerequisito è che openssl
sia installato sul tuo sistema. Nella directory in cui intendi eseguire il server proxy HTTP, esegui il comando seguente:
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem
Verranno generati due file, cert.pem
e key.pem
.
Per eseguire il server proxy HTTP, assicurati di aver installato Node.js sulla macchina locale ed esegui il comando seguente:
npx http-server --port 4000 -S -C cert.pem --proxy https://experiment.dev.looker.com --proxy-options.secure false
Prima di utilizzare il server proxy, devi autorizzare il browser a utilizzare il certificato autofirmato. Apri il browser e inserisci https://localhost:4000
. In Chrome potrebbe essere visualizzato un link o un pulsante per accedere al server oppure potrebbe essere necessario digitare thisisunsafe
quando la finestra del browser è attiva. In quest'ultimo caso, il testo non verrà visualizzato, ma ti permetterà di procedere.
Ulteriori informazioni sulla configurazione di http-server
per l'uso di https
sono disponibili qui: https://www.npmjs.com/package/http-server
Avvio del test
-
Se imposti un server proxy HTTP, utilizza il seguente URL per configurare il browser in modo che utilizzi il proxy:
https://experiment.dev.looker.com/extensions/kitchensink::kitchensink/?LOOKER_EXTENSION_LOAD_URL=http://localhost:4000
Dove:
https://experiment.dev.looker.com
è l'URL della tua istanza di Looker./kitchensink::kitchensink
è l'ID dell'estensione che vuoi verificare.http://localhost:4000
è il server proxy. Modifica il numero della porta se l'hai cambiato in precedenza in questa procedura.
-
Se imposti un server proxy HTTP, utilizza il seguente URL per configurare il browser in modo che utilizzi il proxy:
https://experiment.dev.looker.com/extensions/kitchensink::kitchensink/?LOOKER_EXTENSION_LOAD_URL=https://localhost:4000
Dove:
https://experiment.dev.looker.com
è l'URL della tua istanza di Looker./kitchensink::kitchensink
è l'ID dell'estensione che vuoi verificare.https://localhost:4000
è il server proxy. Modifica il numero della porta se l'hai cambiato in precedenza in questa procedura.
Il parametro LOOKER_EXTENSION_LOAD_URL
verrà immediatamente rimosso dall'URL. Come indicato in precedenza, l'URL del server proxy viene archiviato nello spazio di archiviazione della sessione e rimarrà attivo per tutta la durata della sessione.
Interrompere la verifica
Per interrompere il test, inserisci il seguente URL:
https://experiment.dev.looker.com/extensions/kitchensink::kitchensink/?LOOKER_EXTENSION_LOAD_URL=
L'URL verrà rimosso dallo spazio di archiviazione della sessione. Anche in questo caso, il parametro LOOKER_EXTENSION_LOAD_URL
verrà rimosso dall'URL.