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

公開アプリケーション向けにデータをアップロードする

データアップロードを有効にする

公開アプリケーションからデータをアップロードするには、次の2個のセキュアアップロード用データソースがクエリで利用可能である必要があります。

  1. セキュアなチャネルとトークンの生成に使用するデータソース。次のいずれかです。
    • secure-upload という名前の SERVICE API データソース
    • secure-upload-raw-oauth という名前の HTTP JSON データソース
  2. 生成されたセキュアトークンを使用して JSON BLOB をアップロードするためのデータソース。通常、secure-upload-raw という名前です。

公開アプリケーションを作成し、新しいクエリを作成することで、これらのデータソースが利用可能か確認できます。セキュアアップロード用ソースが利用できない場合は、Palantir サポートにお問い合わせください。

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

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

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

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

プロジェクトとファイルからデータセットを作成する

2. チャネルを作成する

公開 Slate アプリケーションで、secure-upload または secure-upload-raw-oauth ソースに基づく新しいクエリを作成します。テストの横にあるドロップダウンのチェックボックスをオンにして、クエリが手動でのみ実行されるように設定します。

チャネルの一意の ID を選びます。たとえば、slate-app-name-data-upload です。channelId にスペースを含めることはできません。リクエスト本文には、先ほど作成した空のデータセットの RID が必要です。データセットの RID は、データセットの URL から取得できます。たとえば、ri.foundry.main.dataset.abcd1234-1234-5678-9000-1234abcd1234 です。

secure-upload を使用してチャネルを作成する

利用可能なサービスから Channel Service を選択し、エンドポイントのドロップダウンから Put channel を選択します。

channelId フィールドに、チャネルの一意の ID を入力します。

リクエスト本文に次の JSON を入力します。

Copied!
1 2 3 4 5 6 7 8 9 10 { "configuration": { "dataset": "<your_dataset_rid_here>", "maxBlobSize": <optional size limit for individual blob size (in bytes)>, "options": { "type": "json", "json": {} } } }

secure-upload-raw-oauth を使用してチャネルを作成する

クエリエディターに次の JSON を入力します。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 { "path": "channels/{channelId}", "method": "PUT", "extractors": { "result": "$" }, "pathParams": { "channelId": "<your_channel_name_here>" }, "queryParams": {}, "bodyJson": { "configuration": { "dataset": "<your_dataset_rid_here>", "maxBlobSize": <optional size limit for individual blob size (in bytes)>, "options": { "type": "json", "json": {} } } } }

secure-upload または secure-upload-raw-oauth ソースに基づくクエリを作成したら、テストを選択します。レスポンスには、フィールドに入力した値と一致する channelId が返されます。次のステップで必要になるため、channelId を保存します。

追加のチャネルを作成しない限り、ユーザーがデータをアップロードするために、このクエリが再び必要になることはありません。このクエリは削除しても問題ありません。

3. トークンを作成する

チャネルを作成したら、トークンを作成する必要があります。このトークンは、セキュアアップロードのクエリを送信し、データセットにデータをアップロードするために必要です。有効期限を指定する必要があります。指定できる最長の有効期限は、エンロールメントのセキュアアップロード設定によって異なります。secure-upload または secure-upload-raw-oauth ソースに基づく新しいクエリを作成します。クエリが手動でのみ実行されるように設定します。

secure-upload を使用してトークンを作成する

利用可能なサービスから Token Service を選択し、エンドポイントのドロップダウンからトークンを作成するを選択します。

リクエスト本文は次の形式です。

Copied!
1 2 3 4 5 6 7 8 { "type": "blobUploadToDataset", "blobUploadToDataset": { "channel": "<channelId defined in step 2>", "expiry":"<expiration date in ISO-8601: e.g. 2021-06-30T00:00:00Z>", "count": 1 } }

secure-upload-raw-oauth を使用してトークンを作成する

クエリエディターに次の JSON を入力します。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 { "path": "tokens", "method": "POST", "extractors": { "result": "$" }, "pathParams": {}, "queryParams": {}, "bodyJson": { "type": "blobUploadToDataset", "blobUploadToDataset": { "channel": "<channelId defined in step 2>", "expiry":"<expiration date in ISO-8601: e.g. 2021-06-30T00:00:00Z>", "count": 1 } } }

secure-upload または secure-upload-raw-oauth ソースに基づくクエリを作成したら、テストを選択してクエリを送信します。レスポンスにはトークンが含まれます。このトークンは1回しか表示されないため、保存する必要があります。必要に応じてクエリを再実行すると、別のトークンを取得できます。追加のトークンを作成しない限り、ユーザーがデータをアップロードするために、このクエリが再び必要になることはありません。このクエリは削除しても問題ありません。

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

ユーザーがクエリを送信できるようにするには、もう1個クエリを作成する必要があります。

  1. ソースとして secure-upload-raw を選択します。
  2. テストの近くにあるドロップダウンを開き、データを送信するタイミングを選択します(通常のクエリと同様に、ボタンのクリック時やその他の条件を指定します)。リクエスト本文では、取得して先ほど作成したデータセットにアップロードするフィールドを定義します。初回の送信後でもフィールドを編集できます。変更前に作成されたエントリーでは、新しく追加したフィールドの値は空になります。

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

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

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",
    "field2": "<<value of jsonStringify w_input1.text>>",
    "field3": ["item1", "<<value of jsonStringify w_input2.text>>", "<<value of jsonStringify f_function1>>"]
  }
}

データアップロードを停止する

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

アプリケーションを非公開にすると、未認証ユーザーには表示されなくなりますが、未認証ユーザーは引き続き公開の secure-upload データソースを呼び出すことができます。アプリケーションのセキュリティを維持するために、トークンの削除が重要です。

生成したトークンは安全な場所に保存してください。復元するオプションはなく、削除する際にはトークンの値が必要です。トークンを削除するには、次の手順に従います。

  1. Slate で、secure-upload または secure-upload-raw-oauth をソースとするクエリを作成します。
  2. テストの近くにあるドロップダウンを開き、手動チェックボックスをオンにして、このクエリを手動で実行するようにします。
  3. クエリを設定して実行します。
    • secure-upload を使用する場合:
      1. 使用可能なサービスから Token Service を選択します。
      2. エンドポイントからトークンを削除を選択します。
      3. 削除するトークンを文字列として入力します。たとえば、1abcdefgha2bcdef3ghabcdefg です。
    • secure-upload-raw-oauth を使用する場合:
      1. 削除するトークン(たとえば 1abcdefgha2bcdef3ghabcdefg)を使用して、クエリエディターに次の JSON を入力します。
      Copied!
      1 2 3 4 5 6 7 8 9 10 11 12 { "path": "tokens/{token}", "method": "DELETE", "extractors": { "result": "$" }, "headers": {}, "pathParams": { "token": "1abcdefgha2bcdef3ghabcdefg" }, "queryParams": {} }
  4. トークンが削除されたことを確認するには、データを送信して確認します。次の InvalidToken レスポンスが返されるはずです。
{
  "errorCode":"PERMISSION_DENIED",
  "errorName":"TokenSecurity:InvalidToken",
  "errorInstanceId":"13abec1b-3c0f-467d-ad14-6ae702b52b33",
  "parameters":{}
 }