Test del nuovo caricatore del framework delle estensioni

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 tag base è 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 tag base. Verifica che la suddivisione del codice funzioni ancora o, se necessario, implementa altre tecniche che non si basano sul tag base.
  • Il nuovo caricatore utilizza un preambolo <!DOCTYPE html>. Ciò potrebbe avere un impatto sui componenti che utilizzano height: 100%;. Per risolvere il problema, utilizza height: 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.