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

基本概念

ベータ版

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

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

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

開発

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

プレビュー

SuperRepo のプレビューは、コンピューター上で一連のローカルサーバーを実行し、実際の Foundry インスタンスとのインタラクションの一部をモックすることで動作します。プレビューでは、SuperRepo は埋め込みオントロジーを使って、オントロジーの動作をローカルで近似的に再現します。関数は言語ごとのプレビューランタイムで実行され、クエリと関数ベースのアクションは埋め込みオントロジーを介して処理されます。オントロジー SDK アプリケーションはローカルでホストされ、これらのサーバーに対して実行されます。

Ontology-as-code

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

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

オントロジー SDK

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

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

インポートする

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

ビルド

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

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 で2件以上の製品を宣言している場合は、代わりに 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 プラットフォームの外部からデプロイするを参照してください。