注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
公開アプリケーションからデータをアップロードするには、次の2個のセキュアアップロード用データソースがクエリで利用可能である必要があります。
secure-upload という名前の SERVICE API データソースsecure-upload-raw-oauth という名前の HTTP JSON データソースsecure-upload-raw という名前です。公開アプリケーションを作成し、新しいクエリを作成することで、これらのデータソースが利用可能か確認できます。セキュアアップロード用ソースが利用できない場合は、Palantir サポートにお問い合わせください。
公開アプリケーションを設定して、ユーザーが Foundry にデータをアップロードできるようにできます。データをアップロードするユーザーには、Foundry へのアクセス権は必要ありません。ただし、アップロードされたデータにアクセスできるのは、適切なリソース権限を持つ Foundry ユーザーのみです。
公開アプリケーションでデータアップロードを設定するには、以下の手順に従います。
任意のプロジェクトまたはフォルダーに、新しいデータセットリソースを作成します。

公開 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 を保存します。
追加のチャネルを作成しない限り、ユーザーがデータをアップロードするために、このクエリが再び必要になることはありません。このクエリは削除しても問題ありません。
チャネルを作成したら、トークンを作成する必要があります。このトークンは、セキュアアップロードのクエリを送信し、データセットにデータをアップロードするために必要です。有効期限を指定する必要があります。指定できる最長の有効期限は、エンロールメントのセキュアアップロード設定によって異なります。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回しか表示されないため、保存する必要があります。必要に応じてクエリを再実行すると、別のトークンを取得できます。追加のトークンを作成しない限り、ユーザーがデータをアップロードするために、このクエリが再び必要になることはありません。このクエリは削除しても問題ありません。
ユーザーがクエリを送信できるようにするには、もう1個クエリを作成する必要があります。
すべてのフィールドを値にマッピングする必要があります。値は文字列である必要があります。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 データソースを呼び出すことができます。アプリケーションのセキュリティを維持するために、トークンの削除が重要です。
生成したトークンは安全な場所に保存してください。復元するオプションはなく、削除する際にはトークンの値が必要です。トークンを削除するには、次の手順に従います。
1abcdefgha2bcdef3ghabcdefg です。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": {} }
InvalidToken レスポンスが返されるはずです。{
"errorCode":"PERMISSION_DENIED",
"errorName":"TokenSecurity:InvalidToken",
"errorInstanceId":"13abec1b-3c0f-467d-ad14-6ae702b52b33",
"parameters":{}
}