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

基本概念

ベータ版

SuperRepo は開発のベータ版段階にあり、お使いのエンロールメントでは利用できない場合があります。開発が進行中のため、機能が変更される可能性があります。

SuperRepo のライフサイクルは、開発、ビルド、デプロイの3つのステップに分かれています。SuperRepo では、プレビューを使ってローカルで開発し、任意のビルドシステムで再現可能なアーティファクトを生成して、そのアーティファクトをプログラムからデプロイできます。そのアーティファクトを Marketplace にアップロードすると、1つ以上のエンロールメントにインストールできるようになります。

SuperRepo は Foundry エコシステムのさまざまなコンポーネントで構成できます。各コンポーネントには固有の詳細があり、それぞれのドキュメントセクションで説明されています。以下のセクションでは、SuperRepo に含まれるさまざまな概念の概要を説明します。

開発

開発中は、Foundry CLI が SuperRepo をローカルで実行するため、オントロジー、関数、アプリケーションをまとめて反復的に開発できます。

プレビュー

SuperRepo のプレビューは、コンピューター上で一連のローカルサーバーを実行し、実際の Foundry インスタンスとのインタラクションの一部を模擬することで動作します。デフォルトの SEED_ONLY モードでは、SuperRepo は埋め込みオントロジーを使い、オントロジーの動作を近似したものをローカルで提供します。このモードでは、関数は言語別のプレビューランタイムで実行され、クエリと関数ベースのアクションは埋め込みオントロジーを経由して処理されます。オントロジー SDK アプリケーションはローカルでホストされ、これらのサーバーに対して実行されます。

また、プレビューでは埋め込みオントロジーを使わずに、REMOTE_ONLY モードで Foundry オントロジーからライブのオブジェクトを読み取ることもできます。

Ontology-as-code

Ontology-as-code は、SuperRepo 内でオントロジーリソースをコードによって定義する方法を提供します。オブジェクトタイプ、インターフェース、アクション、その他のリソースの TypeScript 定義は、製品のデプロイ後にコンパイルされ、エンロールメント上の実際のリソースとして実体化されます。Ontology-as-code はリソースの信頼できる唯一の情報源として機能するため、すべての変更をコード定義から管理してください。

Ontology-as-code の API リファレンスについては、オープンソースリポジトリ ↗を参照してください。このワークフローに相当する UI 中心の方法については、オブジェクトタイプを作成するを参照してください。

OSDK

SuperRepo は、Ontology-as-code の定義から、関数やオントロジー SDK アプリケーションでそのまま使用できる SDK バインディングを自動生成します。ローカル開発サーバーはオントロジーの変更を監視し、必要に応じてバインディングを自動的に再生成します。

オントロジー SDK のドキュメントは、オントロジー SDK セクションにあります。

インポートする

Ontology Manager で作成したものを含め、エンロールメント上にすでに存在するオントロジーリソースは、コードで再定義する代わりに、foundry import ontology コマンドで SuperRepo にインポートできます。インポートすると、これらのリソースの OSDK および Ontology-as-code の型が生成されるため、SuperRepo のコンポーネント全体で使用できます。このコマンドはインポートメタデータをロックファイルに書き込みます。コード生成はこのファイルに基づいて行われるため、リポジトリにコミットしてください。インポートワークフローのウォークスルーについては、チュートリアル:SuperRepo で開発するを参照してください。

ビルド

ビルドステップでは、デフォルトのテンプレートに付属するビルドツール、または任意のビルドシステムを使って、SuperRepo 内で宣言されたコンポーネントを単一の再現可能なアーティファクトに変換します。

Foundry CLI

SuperRepo は、Foundry CLI のコンポーネント別コマンドを通じてビルドとプレビューを管理します。SuperRepo には、ビルドステップとその依存関係を統括・管理するビルドツールがあらかじめ選択されたテンプレートが標準で用意されています。ただし、コンポーネント別のビルドはモジュール化されているため、SuperRepo のビルドワークフローを柔軟に制御できます。Foundry CLI は、独自のビルドシステムを使っても SuperRepo のアーティファクトを生成できるように設計されています。

SuperRepo のモジュール化を実現するため、foundry.yml ファイルは、Foundry CLI がコンポーネントを検出する際に参照する一元的な場所として機能します。次の例は、デフォルトの foundry.yml を示しています。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 minCliVersion: "0.196.0" functionsTypescriptRuntimeVersion: "0.123.0" components: - type: ONTOLOGY path: ./ontology - type: TYPESCRIPT_FUNCTIONS path: ./functions/typescript-functions - type: APP path: ./app imports: - ontology: ontology/external-imports/ontology-full-metadata.json bundle: name: "product" description: "" mavenCoordinate: "com.palantir.example:product" installMode: SINGLETON osdkOutput: ontology/osdk-output apiNamespace: com.palantir.example

複数の製品の宣言、コンポーネントの構造変更、その他の foundry.yml 設定の詳細については、高度なワークフローを参照してください。

継続的インテグレーション

SuperRepo の基本方針の1つは、プラットフォームの外部でホスト、ビルド、デプロイできることです。その重要な要素として、継続的インテグレーションのプロバイダーから SuperRepo のワークフローを実行できることが挙げられます。特に注目すべきワークフローは次の2つです。

  • テスト: SuperRepo はコードであるため、簡単にテストできます。CLI には埋め込みオントロジーが付属しているため、ワークフロー全体を対象とする統合テストを記述できます。オントロジーを Linter で解析することも、確立されたパターンの1つです。スタイルや設計パターンのガイドラインを適用する必要があるオントロジー所有者は、コード内のリソース定義をデプロイ前にチェックする Linter を記述します。
  • リリース管理: 各コンポーネントのビルドが完了したら、foundry bundle --project-version <VERSION> コマンドを実行して、最終的なビルドアーティファクトを生成します。--project-version オプションにはセマンティックバージョンを指定する必要があり、これが Marketplace 製品のバージョンになります。プラットフォーム内で SuperRepo を使用する場合、セマンティックバージョンのタグが付いたコミットはすべて製品バージョンとしてリリースされ、Git タグが --project-version オプションに渡されます。これは、用途に合った任意のリリースフローを活用できるようにすることを目的としています。foundry.yml で複数の製品を宣言している場合は、代わりに foundry bundle product コマンドと foundry bundle store コマンドを使用します。詳細については、複数の製品を含む SuperRepo をバンドルするを参照してください。

デプロイする

デプロイでは、Palantir プラットフォーム自体または外部の CI システムから、ビルドステップで生成されたアーティファクトを1つ以上の Foundry エンロールメントにインストールします。

Marketplace

SuperRepo は、Foundry エンロールメントにインストールできる Marketplace 製品にネイティブにコンパイルされます。Marketplace の入力、対象のエンロールメントやストアなどのインストールパラメーターは、SuperRepo 自体の内部で静的に設定できるため、クリック操作なしでインストールを自動化できます。

CLI は、foundry deploy コマンドで Marketplace へのデプロイを実行します。設定項目は環境 YAML ファイルで指定します。デフォルトでは、foundry deploy は env.yml という名前のファイルを検索します。別のファイルを指定するには、--env-file-path を渡します。ファイルを対話形式で作成するには、foundry deploy configure を実行します。

次の例は、env.yml ファイルを示しています。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 input_mappings: organizationInput: type: markings markings: markingIds: - 12345678-1234-5678-1234-567812345678 stableId: null websiteSubdomain: type: parameter parameter: value: type: stringValue stringValue: my-site.example.palantirfoundry.com # 任意の対象場所の設定 store_rid: ri.marketplace.main.local.12345678-1234-5678-1234-567812345678

設定が完了すると、foundry deploy コマンドは製品バージョンをアップロードし、環境ファイルで指定された設定済みの入力を使ってインストールします。ステップごとのウォークスルーについては、初回のデプロイに向けて準備するを参照してください。

内部デプロイ

SuperRepo のソースを Palantir プラットフォーム内でホストしている場合は、リポジトリのバージョンにタグを付けると、Foundry CI がビルドを実行し、生成された製品をデプロイします。ワークフロー全体については、Palantir プラットフォームからデプロイするを参照してください。

外部デプロイ

SuperRepo のソースを Palantir プラットフォーム外でホストしている場合は、Foundry CLI を使い、ターミナルまたは任意の CI システムからビルドとデプロイを実行します。ワークフロー全体については、Palantir プラットフォーム外からデプロイするを参照してください。