注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

オントロジー SDK アプリケーションを Foundry でホストする

Developer Console の Web ホスティング機能により、オントロジー SDK を使用してフロントエンドのみのアプリケーションを構築する開発者は、追加のホスティングインフラストラクチャを用意せずに、これらのアプリケーションを Foundry でホストできます。

Web ホスティング機能は、GitHub Pages と同様に、静的アセットのホスティングのみに対応しており、サーバーの実行には対応していません。つまり、次のものをホストできます。

  • HTML、CSS、JavaScript ファイル
  • ブラウザー内ですべての処理を実行するシングルページアプリケーション(React、Vue、Angular など)
  • 画像、フォント、その他の静的リソース

この機能を使用して、Node.js バックエンド、Python サーバー、サーバーサイドレンダリングなどのサーバーサイドコードを実行することはできません。サーバーサイドの機能を利用するには、アプリケーションからオントロジー SDK を介して Foundry に API 呼び出しを行うか、その他の外部サービスに API 呼び出しを行う必要があります。

Web サイトホスティングは、クライアント向けアプリケーションとして設定されたアプリケーションでのみ利用可能です。アプリケーションがバックエンドサービスとしても設定されている場合、この組み合わせによってサーバーサイドアプリケーション用の機密クライアントが作成されるため、Web サイトホスティングのオプションは表示されません。

ホストする Web サイトは、Foundry エンロールメントのドメインのサブドメイン、またはご自身が所有するカスタムドメインのいずれかから配信できます。デフォルトでは、サブドメインを選択し、アプリケーションは <YOUR-APPLICATION-SUBDOMAIN>.[YOUR-ENROLLMENT].palantirfoundry.com から配信されます。あるいは、[your-organization].com などのカスタムドメインでアプリケーションをホストすることもできます。詳細については、カスタムドメインで Web サイトをホストするを参照してください。

Foundry エンロールメントが .palantirfoundry.com で終わるドメインから配信されていない場合は、追加の調整が必要です。Web ホスティングの設定については、Palantir サポートにお問い合わせください。これらのエンロールメントで通常必要となる DNS、証明書、ネットワークイングレスの設定については、外部で管理されるドメインでの Web サイトホスティングを確認してください。

IL5 および FedRAMP 環境では、Developer Console で Web サイトホスティングが無効になっているように表示される場合があります。これらの環境で Web サイトホスティングを有効にするには、カスタム TLS 証明書とホストする Web サイトに対する追加の承認と設定が必要です。この手続きを開始し、必要な変更をネットワークインフラストラクチャチームと調整するには、Palantir サポートにお問い合わせください。

アプリケーションを準備する

次のセクションでは、Developer Console のアプリケーションを Foundry でホストするために必要な手順を説明します。

シングルページアプリケーションのレンダリング

アプリケーションにカスタム404ページを含めない場合、Foundry はそのアプリケーションをシングルページアプリケーション ↗とみなし、このサブドメイン配下のパスへのすべてのリクエストを index.html にルーティングします。

リダイレクト URL を更新する

認証フローの一環として、ホスティングドメインの後に /auth/callback を付けた URL を含むように、リダイレクト URL を更新する必要があります。エンロールメントのサブドメインを使用する場合は、<YOUR-APPLICATION-SUBDOMAIN>.[YOUR-ENROLLMENT].palantirfoundry.com/auth/callback になります。カスタムドメインを使用する場合は、<YOUR-CUSTOM-DOMAIN>/auth/callback になります。 また、Developer Console のアプリケーションにも同じリダイレクト URL を追加する必要があります。詳細については、新しいオントロジー SDK を作成するを確認してください。

リダイレクト URL を設定する際は、必ず https:// を使用してください(http:// は使用しないでください)。プラットフォームは http の URL を https に自動的に変更しないため、http を使用すると、コンテンツセキュリティポリシー違反やその他のセキュリティ上の問題が発生する可能性があります。

アセットを準備する

Web サイトのファイルの本番用ビルドが格納されているディレクトリの内容を圧縮します。ディレクトリ自体は含めないでください。一般的な Web フレームワークでは、このディレクトリは通常 dist/ です。

圧縮ファイルにディレクトリを含めると、それらのディレクトリが Web サイトへのパスに含まれます。

制限

Foundry で Web サイトをホストする場合、次の制限が適用されます。

制限最大値
ファイル数1,000
合計アップロードサイズ20 MB

アプリケーションがこれらの制限を超える場合、アップロードする前にファイル数またはファイルサイズを削減する必要があります。これらの制限内に収めるために、アセットのバンドル化と縮小、未使用ファイルの削除、画像の圧縮を検討してください。

サブドメイン対応の利用可否を確認する

サブドメインホスティングに依存する機能を構築する前に、エンロールメントでサブドメインホスティングが有効になっているかどうかをプログラムで確認します。

サブドメインの対応ステータスを確認するには、Control Panel でエンロールメントサブドメイン API を使用するか、Developer Console の Web サイトホスティング対応ステータスユーティリティを使用します。どちらの方法でも、指定されたエンロールメントがサブドメインおよび Web サイトホスティングに対応しているかどうかが返されます。

ドメインを設定する

Developer Console のアプリケーション内で、左側のメニューから[Web サイトホスティング]を選択します。

サブドメインで Web サイトをホストする

エンロールメントのドメインのサブドメインで Web サイトをホストするには、次の手順に従います。

  1. アプリケーションのサブドメインを選択します。アプリケーション名でも、任意のほかの名前でもかまいません。次に、アプリケーションドメインをリクエストを選択します。次の例では、my-first-hosted-app.example.palantirfoundry.com を選択しています。

    ドメインリクエストのインターフェースにサブドメイン項目とリクエストボタンが表示されています。

サブドメインのリクエストは、送信後に編集できません。サブドメイン名を変更する必要がある場合は、既存のリクエストをキャンセルまたはクローズし、正しいサブドメイン名で新しいリクエストを送信する必要があります。

  1. エンロールメントの情報セキュリティ責任者に承認を依頼するか、必要な権限がある場合は、リクエストを表示を選択してご自身で承認します。エンロールメント管理者は、Control Panel でエンロールメントの権限を管理できます。

    ドメインのステータスが承認待ちと表示され、リクエストを表示するリンクが示されています。

  2. リクエストが承認されたら、ページを再読み込みします。この時点で、ドメインが使用できる状態であることを示すドメイン準備完了が表示されるはずです。この処理が完了するまで数分かかる場合があります。

    承認が完了した後、ドメインのステータスが準備完了と表示されています。

カスタムドメインで Web サイトをホストする

エンロールメントのサブドメインを使用する代わりに、[your-organization].com など、所有しているカスタムドメインでアプリケーションをホストできます。これは、ブランド名を冠したドメインや一般公開用のドメインからアプリケーションにアクセスできるようにしたい場合に便利です。

一部のエンロールメントでは、カスタムドメインでのホスティングを利用できない場合があります。Developer Console アプリケーションにこの選択肢が表示されない場合は、Palantir サポートにお問い合わせください。

前提条件

アプリケーション用のカスタムドメインを申請する前に、そのドメインを対象とする証明書が Control Panel で作成されていることを確認してください。ドメインの証明書が存在しない場合、承認申請は成功しません。証明書の作成手順については、ドメインと証明書を設定するを参照してください。

カスタムドメインを申請する

Developer Console のアプリケーション内で、左側のメニューから[Web サイトホスティング]を選択します。

  1. カスタムドメインでのホスティングを申請を選択します。この選択肢は、エンロールメントのサブドメイン登録フォームの下に表示されます。

    ドメイン申請インターフェースに、サブドメインの項目とカスタムドメインでホストする選択肢が表示されています。

  2. 表示されるダイアログで、カスタムドメイン(例:[your-organization].com)、申請タイトル、任意の説明を入力します。次に、リクエストを選択します。

    カスタムドメイン申請インターフェースに、カスタムドメイン、申請タイトル、申請の説明の項目が表示されています。

  3. これにより承認タスクが作成され、エンロールメントの情報セキュリティ責任者による承認が必要になります。成功通知の表示を選択すると、Control Panel の承認申請に移動できます。

    カスタムドメイン申請インターフェースに、申請したカスタムドメインがまだ承認されていないことが表示されています。

  4. 申請が承認されると、カスタムドメインがアプリケーションに関連付けられます。更新されたステータスを表示するには、ページを再読み込みする必要がある場合があります。Foundry へのログインに使用したドメインが、設定したカスタムドメインに関連付けられます。つまり、ネットワークイングレスと認証プロバイダーの設定は、このドメインから継承されます。

    カスタムドメイン申請インターフェースに、申請したカスタムドメインが承認されたことが表示されています。

カスタムドメインの DNS 設定も更新し、Foundry 環境を指すようにする必要があります。DNS レコードの更新については、ドメインと証明書を設定するを参照してください。

カスタムドメイン配下のサブドメインを登録する

カスタムドメインが承認され、設定が完了した後、そのカスタムドメイン配下に追加のサブドメインを登録したい場合があります。カスタムドメイン配下にサブドメインを登録するには、そのカスタムドメイン経由で Foundry にログインしている必要があります。デフォルトのエンロールメントドメインなど、別のドメイン経由でログインしている場合、Developer Console ではカスタムドメイン配下にサブドメインを登録する選択肢を利用できません。

たとえば、カスタムドメイン your-organization.com 配下のサブドメインとして app.your-organization.com を登録するには、まず your-organization.com にアクセスして Foundry にログインし、その後 Developer Console からサブドメインを申請する必要があります。

外部で管理されているドメインでの Web サイトホスティング

Foundry のデプロイメントによっては、特にエアギャップ環境やその他のネットワーク制限がある環境では、標準の自動化されたフローでワイルドカード DNS や証明書が設定されていない場合があります。このような場合、エンロールメントが Web サイトホスティングをサポートし、インフラストラクチャチームが次の設定を行っていれば、

  • Foundry 環境を指すカスタム DNS レコード
  • 希望するサブドメインを対象とする TLS 証明書
  • サブドメインのトラフィックを Foundry 環境にルーティングするネットワークイングレス

Palantir サポートに連絡し、エンロールメントで外部管理ドメインの Web サイトホスティングを有効にするよう依頼してください。

Web サイトホスティングが有効になると、サブドメインで Web サイトをホストするで説明されている標準のワークフローを使用して、Developer Console アプリケーション用のサブドメインを申請してリンクできます。Developer Console の設定は変わりません。追加のインフラストラクチャ設定(イングレスルーティング、TLS 証明書、DNS)は、Developer Console のセットアップとは別に、ネットワークインフラストラクチャチームと調整する必要があります。

通常、この設定は .palantirfoundry.com で終わるドメインから提供されていないデプロイメントに必要です。このセットアップについては、Palantir サポートまたはインフラストラクチャチームにお問い合わせください。

アセットをアップロードしてデプロイする

開発者は、Developer Console の Web サイトホスティングのユーザーインターフェースを使用してアセットを手動でアップロードする方法と、@osdk/cli コマンドラインツールを使用する方法から選択できます。

  • Developer Console のユーザーインターフェースを使用してアップロードする方法については、以下のガイドに沿って進めてください。
  • コマンドラインインターフェースを使用してアセットをアップロードする方法については、以下のスクリーンショットに示す、プラットフォーム内のアプリケーションをデプロイ中ガイドに沿って進めてください。@osdk/cli コマンドラインツールの詳細は、公開 npm リポジトリ ↗で確認できます。

    アプリケーションをデプロイ中ガイドに CLI デプロイコマンドが表示されています。

Developer Console を使用してアセットをアップロードする

次の手順では、前の手順で作成した圧縮アセットを Foundry にアップロードします。

  1. ページのアセットセクションで、新しいアセットをアップロードを選択します。

  2. zip アーカイブファイルをここにドロップするか、コンピューターから選択してアップロードを選択します。

    Web サイトホスティングにアセットをアップロードします。

  3. アップロードが完了したら、プレビューを使用して本番環境へのデプロイ前にサイトをプレビューするか、以下に示すように ... オプションから本番環境にデプロイを選択します。

    バージョンをプレビューします。

    本番環境にデプロイを選択すると、そのバージョンがすべてのユーザーに提供されます。まずサイトをプレビューすることを推奨します。

  4. 次に、サイトを表示を選択して、デプロイしたサイトにアクセスします。

    デプロイしたサイトを表示します。

非同期スキャン用のアップロード専用モード

一部の Foundry エンロールメントでは、デプロイメントがライブになる前に、サイトアセットのスキャンや脆弱性スキャンが非同期で実行されます。エンロールメントでこのスキャンが必須になっている場合、アップロード直後にデプロイすると、スキャンがまだ完了していないため失敗する場合があります。

foundry.config.json で site.uploadOnly を true に設定します。

Copied!
1 2 3 4 5 { "site": { "uploadOnly": true } }

この設定では、公開ステップで新しいバージョンのアップロードのみが行われ、本番環境への即時デプロイは試行されません。非同期スキャンが完了した後、Developer Console から希望するバージョンをライブバージョンとして手動でデプロイできます。

site.uploadOnly が false(デフォルト)に設定されている場合、公開プロセスではアップロードが行われ、その直後に本番環境へのデプロイが試行されます。非同期スキャンが有効なエンロールメントでは、アップロードに成功していても、タグのステータスが失敗になる場合があります。

Web サイトへのアクセスを付与する

Foundry でホストされる Web サイトは、Foundry のログイン資格情報を持つユーザーのみが利用できます。デフォルトでは、Developer Console アプリケーションにアクセスできるユーザーは、デプロイされたサイトにもアクセスできますが、通常はご自身と開発チームのみが該当します。 ほかの Foundry ユーザーがサイトにアクセスできるようにするには、左側の共有とトークンメニューに移動します。以下に示すように、ページのホストされた Web サイトを共有セクションでユーザーの名前を追加します。

ユーザーとアプリケーションを共有する。

詳細設定

[Web サイトホスティング]ページのアドバンスドタブで、追加の設定オプションを確認できます。

コンテンツセキュリティポリシー

デフォルトでは、アプリケーションは、サブドメインからのリソースの読み込みのみを許可する、制限付きのコンテンツセキュリティポリシー (CSP) ↗ とともに配信されます。必要に応じて、アプリケーション内の特定のインタラクションに対して追加の CSP ルールを設定でき、それらはデフォルトのポリシーと統合されます。ただし、これらの変更により、クロスサイトスクリプティング (XSS) やデータインジェクション攻撃に対するアプリケーションの脆弱性が高まる可能性があることに注意してください。

以下の画像に示すコンテンツセキュリティポリシーセクションで、アプリケーションの CSP を制御できます。別の場所でホストされている画像やコンテンツを取得する場合や、外部サービスを呼び出す場合は、CSP の更新が重要です。

コンテンツセキュリティポリシーの編集。

構文については、Mozilla のドキュメント ↗ を参照してください。これらの項目に対する検証は行われません。

クロスオリジンリソース共有 (CORS)

ホストされたアプリケーションが、Foundry でホストされる別のアプリケーションからアセットを読み込む、またはそのアプリケーションにリクエストを送信する必要がある場合(たとえば、親アプリケーションが子アプリケーションから remoteEntry.js を取得するマイクロフロントエンドアーキテクチャの場合)、これらのクロスオリジンリクエストを許可する CORS ポリシーを設定する必要があります。

Control Panel で、アーティファクトの Web サイトのサブドメインに対する CORS を設定できます。ホストされたアプリケーション間のクロスオリジンリクエストを有効にするには、次の手順を実行します。

  1. Control Panel に移動し、CORS タブを開きます。
  2. アクセス先のアプリケーション(「子」アプリケーション)のサブドメインを見つけます。
  3. リクエスト元のアプリケーション(「親」アプリケーション)のオリジンを、許可されたオリジンのリストに追加します。

たとえば、parent-app.example.palantirfoundry.com が child-app.example.palantirfoundry.com からアセットを取得する必要がある場合は、子アプリケーションのサブドメインに対して、許可されたオリジンとして https://parent-app.example.palantirfoundry.com を追加します。

詳細については、CORS を設定するを参照してください。

ルートの一致ルール

Foundry は、拡張子や末尾のスラッシュの有無にかかわらず、ルートで HTML ページを配信できます。

Web サイトのファイルが次のように配置されている場合を考えます。

├── file.html
├── folder
│   └── index.html
├── both.html
└── both
    └── index.html

Foundry は、次のルートでこれらの HTML ページを配信します。

ルートファイル
/file/file.html
/file//file.html
/file.html/file.html
/folder/folder/index.html
/folder//folder/index.html
/folder/index.html/folder/index.html
/both/both.html
/both.html/both.html
/both//both/index.html
/both/index.html/both/index.html

Foundry は、末尾のスラッシュを強制したり、ルートから拡張子を削除したりするなど、特定のルート形式へのリダイレクトは行いません。

カスタム404ページ

Web サイトのルートに 404.html ページを追加して、ルートが一致しない場合にカスタムエラーページとして配信できます。これにより、シングルページアプリケーション (SPA) のレンダリングで説明されている、一致しないルートに対してルートの index.html ページを配信するデフォルトの動作が無効になります。

トラブルシューティング

お使いの環境では Web サイトホスティングがサポートされていません

ホストされたフロントエンドアプリケーションをデプロイする際に、Web サイトの設定を編集すると「ページが見つかりません」と表示される、リリースがいつまでも完了しない、または「現在、お使いの環境では Web サイトホスティングがサポートされていません」という明示的な警告が表示されるなどの問題が発生した場合は、次の手順に従って問題を解決します。

  1. アプリケーションの種類を確認する: Web サイトホスティングは、クライアント向けアプリケーションとして設定されたアプリケーションでのみ利用可能です。アプリケーションがバックエンドサービスとしても設定されている場合、この組み合わせによってサーバー側アプリケーション向けの機密クライアントが作成されるため、Web サイトホスティングのオプションは利用できません。アプリケーションで使用する OAuth クライアントが、機密クライアントではなくパブリッククライアントであることを確認してください。
  2. Web サイトホスティングが有効になっていることを確認する: 外部で管理されるドメインの Web サイトホスティングは、エンロールメントで有効になっている必要があります。Palantir サポートにお問い合わせのうえ、有効になっているかどうかを確認し、必要に応じて有効化を依頼してください。
  3. 環境のサポートを確認する: エンロールメントが Web サイトホスティングをサポートしていることを確認します。一部の環境、特に特定のコンプライアンス要件がある環境では、Web サイトホスティングを使用する前に追加の設定が必要になる場合があります。

エンロールメントで Web サイトホスティングが有効になり、アプリケーションでパブリック OAuth クライアントを使用していれば、ホストされたフロントエンドアプリケーションを正常にデプロイできるはずです。

SiteAssetScanning:ScanningInProgress エラー

オントロジー SDK アプリケーションを初めてデプロイする際に、SiteAssetScanning:ScanningInProgress エラーが発生する場合があります。このエラーは、サイトのアセットスキャンがまだ実行中であり、初回のデプロイがブロックされているために発生します。

この問題を解決するには、次の手順を実行します。

  1. アセットスキャンが完了するまで待ちます。スキャンエンドポイントにクエリを送信することで、スキャンのステータスを監視できます。
  2. スキャンが完了したら、デプロイを再試行します。

初回のスキャンが完了すれば、以降のデプロイではこの問題は発生しないはずです。