新しい拡張フレームワーク ローダのテスト

Looker 拡張フレームワークは、まもなく新しい読み込みメカニズムを使用します。新しいローダでは、既存の拡張機能の読み込み時に、予期しない動作やエラーが発生する可能性があります。このページでは、新しい拡張機能フレームワーク ローダーが Looker 環境で正式に有効になる前に、デベロッパーが拡張機能をテストおよび更新できるようにテストする方法について説明します。

このアップデートの発売日はまだ決まっていません。その際、お客様が新しい読み込み方法を一時的に無効にするための切り替えボタンが表示されます。ただし、コンテンツ セキュリティ ポリシー(CSP)の違反を修正し、<!DOCTYPE html> プリアンブルを使用するには、新しい読み込み手法を随時有効にする必要があります。

拡張機能に影響する可能性がある変更

拡張機能に影響を与える可能性のある拡張機能フレームワークの変更は次のとおりです。

  • CSP 違反を修正するために、ブラウザではなくサーバーで拡張機能を読み込む HTML が生成されます。この変更自体が既存の拡張機能に影響することはありません。
  • base タグが削除され、カスタムコード分割に影響する可能性があります。base タグは CSP に違反していたため、削除されました。ただし、base タグに依存する独自のコード分割手法を実装しているデベロッパーもあります。コード分割が引き続き機能することを確認するか、必要に応じて base タグに依存しない別の方法を実装してください。
  • 新しいローダでは、<!DOCTYPE html> プリアンブルを使用します。これは、height: 100%; を使用するコンポーネントに影響する可能性があります。これを確認するには、height: 100vh を使用します。

新しい読み込み方法で拡張機能をテストする

新しい読み込み手法では、Looker インスタンスで Looker 22.4 以降を実行する必要があります。起動オプションを使用してオンにする。起動オプションでは、拡張機能の読み込みに使用する URL を定義します。この URL の送信元は、Looker サーバーの送信元と異なる必要があります。これは、拡張機能を安全にサンドボックス化するために必要です。

次の手順では、システムの他のユーザーに影響を与えることなく、1 人のユーザーの新しい読み込み方法で拡張機能をテストできます。具体的には、拡張機能を読み込む URL をブラウザのセッション ストレージに書き込みます。新しいメカニズムは、ユーザーのセッションが終了するまで、またはユーザーがセッション ストレージから値を削除するまで保持されます。この手法は、経験豊富なデベロッパーが活用することが想定されています。

HTTP プロキシ サーバーの構成

新しい拡張機能の読み込み方法をオンにする前に、拡張機能の読み込みサービスをシミュレートするプロキシ サーバーをローカルマシンで実行する必要があります。ローカルマシンに Node.js がインストールされていることを確認し、次のコマンドを実行します。

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

https://experiment.dev.looker.com は、Looker インスタンスの URL に置き換えます。ポート番号を変更することもできますが、拡張機能の開発サーバーで使用されているポート番号と競合しないようにしてください。

このコマンドを実行すると、http-server をインストールする権限を入力するよう求められます。

HTTPS プロキシ サーバーの構成

環境によっては、HTTP と HTTPS のコンテンツの混在が妨げられることがあります。この場合は、証明書を使用して HTTPS プロキシ サーバーを構成する必要があります。HTTPS プロキシ サーバーを構成するには、自己署名証明書を生成する必要があります。前提条件として、openssl がシステムにインストールされている必要があります。HTTPS プロキシ サーバーを実行するディレクトリで、次のコマンドを実行します。

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

これにより、cert.pemkey.pem の 2 つのファイルが生成されます。

HTTPS プロキシ サーバーを実行するには、ローカルマシンに Node.js がインストールされていることを確認し、次のコマンドを実行します。

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

プロキシ サーバーを使用する前に、ブラウザで自己署名証明書の使用を承認する必要があります。ブラウザを開き、「https://localhost:4000」と入力します。Chrome では、サーバーに進むためのリンクやボタンが表示されることがあります。ブラウザ ウィンドウにフォーカスがある状態で「thisisunsafe」と入力することが必要になる場合もあります。後者の場合、テキストは表示されませんが、続行できます。

https を使用するように http-server を構成する方法について詳しくは、https://www.npmjs.com/package/http-server をご覧ください。

テストを開始する

  • HTTP プロキシ サーバーを設定する場合は、プロキシを使用するようにブラウザを構成するには、次の URL を使用します。

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

    ここで

    • https://experiment.dev.looker.com は、Looker インスタンスの URL です。
    • /kitchensink::kitchensink は、テストする拡張機能の ID です。
    • http://localhost:4000 はプロキシ サーバーです。前の手順でポート番号を変更した場合は、そのポート番号を変更します。
  • HTTPS プロキシ サーバーを設定する場合は、プロキシを使用するようにブラウザを構成するには、次の URL を使用します。

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

    ここで

    • https://experiment.dev.looker.com は、Looker インスタンスの URL です。
    • /kitchensink::kitchensink は、テストする拡張機能の ID です。
    • https://localhost:4000 はプロキシ サーバーです。前の手順でポート番号を変更した場合は、そのポート番号を変更します。

パラメータ LOOKER_EXTENSION_LOAD_URL は URL からすぐに削除されます。前述のように、プロキシ サーバーの URL はセッション ストレージに保存され、セッション中はアクティブのままになります。

テストの停止

テストを停止するには、次の URL を入力します。

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

この操作を行うと、セッション ストレージから URL が削除されます。繰り返しになりますが、LOOKER_EXTENSION_LOAD_URL パラメータが URL から削除されます。