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

公開アプリケーション向けデータのアップロード

データアップロードの有効化

公開アプリケーション経由でのデータアップロード機能は、クエリを介してセキュアアップロードエンドポイントが利用可能である必要があります。これは、公開アプリケーションを作成し、新しいクエリを作成することでテストできます。セキュアアップロードがソースとして利用できない場合は、Palantir の担当者にサポートを依頼してください。

公開アプリケーションは、ユーザーが Foundry にデータをアップロードできるように設定できます。データをアップロードするユーザーは、Foundry へのアクセス権限が必要ありません。ただし、アップロードされたデータにアクセスできるのは、適切なリソース権限を持つ Foundry ユーザーだけです。

公開アプリケーションでデータアップロードを設定するには、以下の手順に従ってください。

1. 空のデータセットを作成する

選択したプロジェクトまたはフォルダーに新しいデータセットリソースを作成します。

プロジェクト&ファイルを介したデータセットの作成

2. チャンネルを作成する

公開された Slate アプリケーションで、セキュアアップロードソースを元にした新しいクエリを作成します。まず、Test の隣にあるドロップダウンにあるチェックボックスをオンにして、クエリを手動実行のみに設定します。Available サービスから、Channel Service を選択し、エンドポイントのドロップダウンから Put channel を選択します。

注意

セキュアアップロードがソースとして利用できない場合は、Palantir のサポートに連絡してください。

channelId には、チャンネルの一意の名前(例: slate-app-name-data-upload)を入力します。channelId にはスペースを含めないでください。リクエストボディには、以前に作成した空のデータセットの RID が必要です。データセットの RID は、データセットの URL から取得できます(例: ri.foundry.main.dataset.1a2bcd34-5678-90e1-fa23-bc456d7e8f90)。

リクエストのボディに以下の JSON を入力してください。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 { "configuration": { "dataset": "<ここにあなたのデータセットのridを入力してください>", // 最大ブロブサイズ(個々のブロブサイズのオプションの制限(バイト単位)) "maxBlobSize": <任意のサイズ制限(バイト単位)>, "options": { // タイプはjsonであることを指定 "type": "json", // jsonオプションを指定。詳細はここに記入 "json": {} } } }

Test を選択します。レスポンスは、フィールドに入力したものと一致する channelId を返します。 channelId を保存しておいてください。次のステップで必要となります。

このクエリは、データをアップロードするためのユーザーが再度必要とすることはありません。ただし、より多くのチャンネルを作成したい場合は例外です。クエリは安全に削除できます。

3. トークンの作成

チャンネルを作成した後、トークンを作成する必要があります。このトークンは、セキュアなアップロードクエリを提出し、データセットにデータをアップロードするために必要です。ソースとして secure-upload を持つ新しいクエリを作成します。前と同様に、クエリは手動でのみ実行されるように設定します。利用可能なサービスから、Token Service を選択し、Endpoints ドロップダウンから Create Token を選択します。

リクエストのボディは以下の形式となります:

Copied!
1 2 3 4 5 6 7 8 9 10 11 { "type": "blobUploadToDataset", "blobUploadToDataset": { // ステップ2で定義されたchannelIdを設定 "channel": "<channelId defined in step 2>", // ISO-8601形式での有効期限 (例: 2021-06-30T00:00:00Z) "expiry":"<expiration date in ISO-8601: e.g. 2021-06-30T00:00:00Z>", // カウント数 "count": 1 } }

最大有効期限は、ユーザーの Foundry インスタンスのセキュアアップロードの設定に依存します。

テスト を選択してクエリを送信します。レスポンスには、トークンが含まれています。このトークンは一度しか表示されないので保存しておく必要があります。必要であれば、クエリを再実行して別のトークンを取得します。このクエリは、ユーザーがデータをアップロードするために再度必要となることはありません。ただし、より多くのトークンを作成したい場合には必要です。クエリは安全に削除できます。

4. データアップロードのためのクエリを作成する

ユーザーがクエリを送信できるようにするために、もう1つのクエリを作成する必要があります:

  1. ソースとして secure-upload-raw を選択します。これは HTTP JSON データソースで、クエリのリクエストを定義するための JSON データを入力するように求められます。
  2. テスト の近くにあるドロップダウンを開き、データが送信されるタイミングを選択します(ボタンクリック時や他の基準など、通常のクエリと同様)。リクエストの本文は、キャプチャされアップロードされるフィールドを定義します。初回の送信後でもフィールドを編集することができます。変更前に行われたエントリーでは、新たに追加されたフィールドの下には値が表示されません。

すべてのフィールドには値を割り当てる必要があります。値は文字列である必要があります。jsonStringify ハンドルバーヘルパーを使用するか、関数を使用して値を文字列にキャストできます。

リクエスト本文の例を以下に示します:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 { "path": "blobs", "method": "POST", "extractors": { "result": "$" }, "headers": { "authorization": "Bearer <token_from_step_3>" }, "bodyJson": { "content": { // ここに好きな形のJSONデータを入力してください // 例: "field1": "value1", "field2": {{jsonStringify w_input1.text}}, "field3": [ "item1", {{jsonStringify w_input2.text}}, {{jsonStringify f_function1}} ] } } }

このクエリが実行されると、データは _buffer_v2 という接尾辞が追加されたデータセットに格納され、元のデータセットと同じ場所に位置します。データは、このステップで定義された通りの形状になります。例えば、上記の例からのクエリの本体を持つクエリは、「content」行に以下のデータエントリを結果として生じます(データセットには他の行に追加のメタデータが含まれます):

{
  content: {
    "field1": "value1",  // フィールド1の値
    "field2": "<<value of jsonStringify w_input1.text>>",  // w_input1.textのjsonStringifyの値
    "field3": ["item1", "<<value of jsonStringify w_input2.text>>", "<<value of jsonStringify f_function1>>"]  // フィールド3の配列要素
  }
}

データアップロードの停止

データセットへの新しいエントリのアップロードを停止するには、アプリケーションの非公開化と、最後のクエリで認証ヘッダとして使用されているトークンの削除を行う必要があります。

非公開化は、認証されていないユーザーからアプリケーションを隠しますが、認証されていないユーザーは依然として public secure-upload データソースを呼び出すことができます。トークンを削除することは、アプリケーションのセキュリティを維持するために重要です。

生成されたトークンは、復元オプションがないため、安全な場所に保管してください。

トークンを削除するには、次の手順を実行します:

  1. Slate から、secure-upload をソースとするクエリを作成します。
  2. Test の近くにあるドロップダウンを開き、このクエリを手動で実行するために manually チェックボックスをオンにします。
  3. 利用可能なサービスから Token Service を選択します。
  4. エンドポイントから Delete Token を選択します。
  5. 削除したいトークンを文字列として入力します(例:1abcdefgha2bcdef3ghabcdefg)。
  6. トークンが削除されたことを確認するために、データを送信してください。次の InvalidToken レスポンスが表示されるはずです: