Das neue Framework-Ladeprogramm für Erweiterungen testen

Für das Looker-Erweiterungs-Framework wird demnächst ein neuer Lademechanismus verwendet. Der neue Ladeprogramm kann zu unerwartetem Verhalten und Fehlern führen, wenn vorhandene Erweiterungen geladen werden. Damit Entwickler ihre Erweiterungen testen und aktualisieren können, wird auf dieser Seite beschrieben, wie Sie den neuen Framework-Builder testen, bevor er in Looker-Umgebungen offiziell aktiviert wird.

Das Datum, an dem dieses Update veröffentlicht wird, steht noch nicht fest. Dann können Kunden die neue Lademethode vorübergehend deaktivieren. Die neue Lademethode muss jedoch irgendwann wieder aktiviert werden, um Verstöße gegen die Content Security Policy (CSP) zu beheben und die <!DOCTYPE html>-Vorgabe zu verwenden.

Änderungen, die sich auf Erweiterungen auswirken können

Die folgende Liste enthält Änderungen, die möglicherweise Auswirkungen auf Erweiterungen haben:

  • Zur Korrektur von CSP-Verstößen wird die HTML-Datei so generiert, dass die Erweiterung auf dem Server und nicht im Browser geladen wird. Diese Änderung allein hat keine Auswirkungen auf bestehende Erweiterungen.
  • Das base-Tag wird entfernt, was sich möglicherweise auf die benutzerdefinierte Codeaufteilung auswirkt. Das base-Tag wurde entfernt, weil seine Verwendung gegen die CSP verstößt. Einige Entwickler haben jedoch möglicherweise ihre eigenen Codeaufteilungstechniken implementiert, die auf dem base-Tag basieren. Prüfe, ob die Codeaufteilung funktioniert, oder implementiere gegebenenfalls andere Techniken, die nicht auf das base-Tag angewiesen sind.
  • Der neue Lader verwendet eine <!DOCTYPE html>-Präambel. Dies kann sich auf Komponenten auswirken, die height: 100%; verwenden. Sie können dieses Risiko mit height: 100vh reduzieren.

Erweiterungen mit der neuen Lademethode testen

Für das neue Ladeverfahren muss Looker 22.4 oder höher auf der Looker-Instanz ausgeführt werden. Sie wird über eine Startoption aktiviert. Mit der Startoption wird eine URL definiert, die zum Laden der Erweiterung verwendet wird. Der Ursprung dieser URL muss sich vom Ursprung des Looker-Servers unterscheiden. Dies ist erforderlich, damit die Erweiterung sicher in einer Sandbox ausgeführt werden kann.

Mit dem folgenden Verfahren können Sie Erweiterungen mit der neuen Lademethode für einen einzelnen Nutzer testen, ohne andere Nutzer des Systems zu beeinträchtigen. Hierzu wird die URL der Erweiterung in den Sitzungsspeicher des Browsers geschrieben. Der neue Mechanismus bleibt bestehen, bis die Sitzung des Nutzers abgeschlossen ist ODER der Nutzer den Wert aus dem Sitzungsspeicher löscht. Es wird erwartet, dass dieses Verfahren von erfahrenen Entwicklern verwendet wird.

HTTP-Proxyserver konfigurieren

Bevor Sie die neue Methode zum Laden der Erweiterung aktivieren, müssen Sie einen Proxyserver auf Ihrem lokalen Computer ausführen, der den Dienst zum Laden der Erweiterung simuliert. Prüfen Sie, ob auf Ihrem lokalen Computer Node.js installiert ist, und führen Sie den folgenden Befehl aus:

npx http-server --port 4000 --proxy https://experiment.dev.looker.com --proxy-options.secure false

Ersetzen Sie https://experiment.dev.looker.com durch die URL Ihrer Looker-Instanz. Sie können auch die Portnummer ändern. Diese darf jedoch nicht im Konflikt mit der Portnummer stehen, die vom Server für die Erweiterungsentwicklung verwendet wird.

Wenn Sie diesen Befehl zum ersten Mal ausführen, werden Sie gefragt, ob Sie http-server installieren möchten.

HTTPS-Proxyserver konfigurieren

Einige Umgebungen verhindern möglicherweise gemischte HTTPs- und HTTPS-Inhalte. In diesem Fall muss ein HTTPS-Proxyserver mit einem Zertifikat konfiguriert werden. Zur Konfiguration eines HTTPS-Proxyservers müssen Sie ein selbst signiertes Zertifikat generieren. openssl muss auf Ihrem System installiert sein. Führen Sie in dem Verzeichnis, in dem Sie den HTTPS-Proxyserver ausführen möchten, den folgenden Befehl aus:

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

Dadurch werden zwei Dateien generiert: cert.pem und key.pem.

Zum Ausführen des HTTPS-Proxyservers muss Node.js auf Ihrem lokalen Computer installiert sein. Führen Sie dann den folgenden Befehl aus:

npx http-server --port 4000 -S -C cert.pem --proxy https://experiment.dev.looker.com --proxy-options.secure false

Bevor Sie den Proxyserver verwenden können, müssen Sie den Browser autorisieren, das selbst signierte Zertifikat zu verwenden. Öffnen Sie den Browser und geben Sie https://localhost:4000 ein. Unter Umständen wird in Chrome ein Link oder eine Schaltfläche angezeigt, um den Server aufzurufen. Eventuell müssen Sie aber auch thisisunsafe eingeben, während das Browserfenster geöffnet ist. In letzterem Fall wird der Text nicht angezeigt, aber Sie können fortfahren.

Weitere Informationen zum Konfigurieren von http-server zur Verwendung von https finden Sie hier: https://www.npmjs.com/package/http-server

Test starten

  • Wenn Sie einen HTTP-Proxyserver einrichten, verwenden Sie die folgende URL, um Ihren Browser für die Verwendung des Proxys zu konfigurieren:

        https://experiment.dev.looker.com/extensions/kitchensink::kitchensink/?LOOKER_EXTENSION_LOAD_URL=http://localhost:4000
        

    Dabei gilt:

    • https://experiment.dev.looker.com ist die URL Ihrer Looker-Instanz.
    • /kitchensink::kitchensink ist die ID der Erweiterung, die Sie testen möchten.
    • http://localhost:4000 ist der Proxyserver. Ändern Sie die Portnummer, wenn Sie sie zuvor in diesem Verfahren geändert haben.
  • Wenn Sie einen HTTPS-Proxyserver einrichten, verwenden Sie die folgende URL, um Ihren Browser für die Verwendung des Proxys zu konfigurieren:

        https://experiment.dev.looker.com/extensions/kitchensink::kitchensink/?LOOKER_EXTENSION_LOAD_URL=https://localhost:4000
        

    Dabei gilt:

    • https://experiment.dev.looker.com ist die URL Ihrer Looker-Instanz.
    • /kitchensink::kitchensink ist die ID der Erweiterung, die Sie testen möchten.
    • https://localhost:4000 ist der Proxyserver. Ändern Sie die Portnummer, wenn Sie sie zuvor in diesem Verfahren geändert haben.

Der Parameter LOOKER_EXTENSION_LOAD_URL wird sofort aus der URL entfernt. Wie bereits erwähnt, wird die Proxyserver-URL im Sitzungsspeicher gespeichert und bleibt für die Dauer der Sitzung aktiv.

Test beenden

Wenn Sie den Test beenden möchten, geben Sie die folgende URL ein:

https://experiment.dev.looker.com/extensions/kitchensink::kitchensink/?LOOKER_EXTENSION_LOAD_URL=

Dadurch wird die URL aus dem Sitzungsspeicher entfernt. Auch hier wird der Parameter LOOKER_EXTENSION_LOAD_URL aus der URL entfernt.