クロスワークスペース共有
次のエンドポイントを使用すると、クロスワークスペースグラントをプログラムで管理できます。
グラントには2つの側面があります。 送信グラントは、ワークスペースが外部に共有するグラントであり、完全な管理操作をサポートします。 受信グラントは、他のワークスペースがワークスペースと共有するグラントであり、読み取り専用です。 ソースおよびターゲットEnvironmentエンドポイントは、クライアントがグラントを作成する前に有効なEnvironmentを検出するのに役立ちます。 すべての呼び出しは、呼び出し元自身のワークスペースにスコープ設定されます。
必要な権限
APIクライアントのロールには、APIクライアントロールエディターの管理 > クロスワークスペース共有配下にある関連する権限が含まれている必要があります。 クロスワークスペース共有グラント機能には、送信グラントおよびEnvironment検出の権限が含まれます。 クロスワークスペース共有受信グラント機能には、受信グラントのリストおよび受信グラントの表示権限が含まれます。
レート制限
クロスワークスペース共有Developer APIリソースには、次のレート制限があります。
| タイプ | リソース | 制限 |
|---|---|---|
| 既読 | すべての読み取りワークスペース間共有エンドポイント | 1分あたり600リクエスト |
| 書き込み | すべての書き込みワークスペース間共有エンドポイント | 1分あたり60リクエスト |
クイックリファレンス
| タイプ | リソース | 説明 |
|---|---|---|
| GET | /api/cross_workspace/grants | 送信グラントの一覧を取得。 |
| GET | /api/cross_workspace/grants/:handle | ハンドルを指定して送信グラントを取得。 |
| POST | /api/cross_workspace/grants | グラントを作成。 |
| PUT | /api/cross_workspace/grants/:handle | グラントを更新。 |
| DELETE | /api/cross_workspace/grants/:handle | グラントを取り消し。 |
| GET | /api/cross_workspace/incoming_grants | 受信グラントの一覧を取得。 |
| GET | /api/cross_workspace/incoming_grants/:handle | ハンドルを指定して受信グラントを取得。 |
| GET | /api/cross_workspace/source_environments | グラントソースとして機能できるEnvironmentを取得。 |
| GET | /api/cross_workspace/target_environments | 指定されたソースからグラント可能なEnvironmentを取得。 |
APIがEnvironmentとアセットを参照する方法
クロスワークスペース共有APIでは、次の識別子と規則を使用します。
グラント
各グラントは、
cwsgr-2f8h1k-a3x9qz-1などの一意の文字列handleで識別されます。 1つのグラントで、複数のソースEnvironmentから同時に共有できます。environments配列には、各ソースEnvironmentに対して1つのエントリが含まれます。Environment
Environmentは内部
idによって参照されます。 グラントは、自身のワークスペース内のsource_environment_idから1つ以上のtarget_environment_idsへ共有します。 ターゲットはソースと同じタイプの兄弟である必要があります。そのため、同じAutomation HQ組織および同じデータセンター内で、prodソースはprodターゲットに共有されます。 グラントを作成する前に有効なIDを検出するには、ソースEnvironmentのリストおよびターゲットEnvironmentのリストエンドポイントを使用します。アセット
アセットは
idおよびtypeによって参照されます。 クロスワークスペース共有はEvent streamsトピックをサポートするため、typeはTopicです。 アセットidはトピックのIDであり、Event streams APIで使用されるものと同じ識別子です。 このAPIでは、Event streamsトピックIDが整数であっても、アセットidを文字列として表します。これは、クロスワークスペース共有が、IDが数値ではない将来のアセットタイプに対応できるように設計されているためです。 ここで使用する場合は、IDを引用符で囲みます。アクセスレベル
access_levels配列は、アセットに対してreadとwriteの一方または両方を付与します。 これらは、クロスワークスペース共有UIに表示されるSubscribeおよびPublishアクセスレベルに対応します。 送信グラントと受信グラントはどちらも、アクセスレベルを配列として表します。
送信グラントのリスト
呼び出し元のワークスペースが所有するグラントのリストを取得します。任意で名前フィルタリングとソートを使用できます。
GET /api/cross_workspace/grantsクエリパラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
| name | string 任意 | nameに対する部分一致(大文字と小文字を区別しない)でグラントをフィルタリングします。 |
| sort | string 任意 | 結果の並べ替え方法を定義します。 オプションには、name、-name、updated_at、および-updated_atがあります。 -プレフィックスは降順でソートします。 デフォルトではupdated_atの降順に設定されます。 |
| page[number] | integer optional | 取得するページ番号。 デフォルト値は1です。 |
| page[size] | integer optional | 取得するページあたりのグラント数。 デフォルト値および最大値は100です。 |
サンプルリクエスト
このリクエストは、名前Ordersに一致する送信グラントを取得し、名前でソートします。
curl -g -X GET "https://www.workato.com/api/cross_workspace/grants?name=Orders&sort=name&page[number]=1&page[size]=100" \
-H 'Authorization: Bearer <api_token>'レスポンス
{
"data": [
{
"handle": "cwsgr-2f8h1k-a3x9qz-1",
"name": "Orders topic to EU and APAC",
"description": "Share prod orders stream",
"created_by": { "name": "Sasha Patel" },
"created_at": "2026-06-30T12:00:00.000Z",
"updated_at": "2026-06-30T12:00:00.000Z",
"environments": [
{
"source_environment_id": 123,
"source_environment_type": "prod",
"target_environments": [
{ "id": 456, "type": "prod", "workspace_id": 17293, "workspace_name": "Acme EU" }
],
"assets": [
{ "id": "48213", "name": "orders", "type": "Topic", "access_levels": ["read", "write"] }
]
}
]
}
],
"total": 42,
"page": { "number": 1, "size": 100 }
}送信グラントの取得
呼び出し元のワークスペースが所有する単一のグラントを、ハンドルで解決して取得します。
GET /api/cross_workspace/grants/:handleURLパラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
| handle | string 必須 | グラントのハンドル。 |
サンプルリクエスト
このリクエストは、ハンドルcwsgr-2f8h1k-a3x9qz-1を持つグラントを取得します。
curl -X GET "https://www.workato.com/api/cross_workspace/grants/cwsgr-2f8h1k-a3x9qz-1" \
-H 'Authorization: Bearer <api_token>'レスポンス
{
"data": {
"handle": "cwsgr-2f8h1k-a3x9qz-1",
"name": "Orders topic to EU and APAC",
"description": "Share prod orders stream",
"created_by": { "name": "Sasha Patel" },
"created_at": "2026-06-30T12:00:00.000Z",
"updated_at": "2026-06-30T12:00:00.000Z",
"environments": [
{
"source_environment_id": 123,
"source_environment_type": "prod",
"target_environments": [
{ "id": 456, "type": "prod", "workspace_id": 17293, "workspace_name": "Acme EU" }
],
"assets": [
{ "id": "48213", "name": "orders", "type": "Topic", "access_levels": ["read", "write"] }
]
}
]
}
}呼び出し元のワークスペースが所有していないグラントは404を返します。
グラントの作成
呼び出し元のワークスペースにグラントを作成します。
POST /api/cross_workspace/grants本文パラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
| name | string 必須 | グラントの名前。 |
| 説明 | string 任意 | グラントの説明。 |
| environments | array optional | 共有元の各ソースEnvironmentに対して1つのエントリ。 後で更新によって入力する空のグラントを作成するには、environmentsを省略します。 |
| environments[source_environment_id] | integer required | ソースEnvironmentのID。 呼び出し元のワークスペースに属している必要があります。 |
| environments[target_environment_ids] | array optional | 共有先のターゲットEnvironmentのID。 同じAutomation HQ組織内で、ソースと同じタイプの兄弟である必要があります。 |
| environments[assets] | array optional | このソースEnvironmentから共有されるアセット。 |
| environments[assets][id] | string 必須 | 文字列として指定されるアセットのID。 Event streamsトピックの場合は、トピックのIDを使用します。 |
| environments[assets][type] | string 必須 | アセットのタイプ。 Topicを受け入れます。 |
| environments[assets][access_levels] | array 必須 | アセットに付与されるアクセスレベル。 readとwriteの一方または両方。 |
サンプルリクエスト
このリクエストは、ソースEnvironment123から2つのターゲットEnvironmentにordersトピックを共有するグラントを作成します。
curl -X POST "https://www.workato.com/api/cross_workspace/grants" \
-H 'Authorization: Bearer <api_token>' \
-H "Content-Type: application/json" \
-d '{
"name": "Orders topic to EU and APAC",
"description": "Share prod orders stream",
"environments": [
{
"source_environment_id": 123,
"target_environment_ids": [456, 789],
"assets": [
{ "id": "48213", "type": "Topic", "access_levels": ["read", "write"] }
]
}
]
}'レスポンス
{
"data": {
"handle": "cwsgr-2f8h1k-a3x9qz-1",
"name": "Orders topic to EU and APAC",
"description": "Share prod orders stream",
"created_by": { "name": "Sasha Patel" },
"created_at": "2026-06-30T12:00:00.000Z",
"updated_at": "2026-06-30T12:00:00.000Z",
"environments": [
{
"source_environment_id": 123,
"source_environment_type": "prod",
"target_environments": [
{ "id": 456, "type": "prod", "workspace_id": 17293, "workspace_name": "Acme EU" },
{ "id": 789, "type": "prod", "workspace_id": 40021, "workspace_name": "Acme APAC" }
],
"assets": [
{ "id": "48213", "name": "orders", "type": "Topic", "access_levels": ["read", "write"] }
]
}
]
}
}このエンドポイントは、成功時に201を返します。 本文の検証に失敗した場合は400を返します。これには、自身のソースと等しいtarget_environment_id、異なるEnvironmentタイプのターゲット、ソースのAutomation HQ組織外のターゲット、またはソースEnvironmentが所有していないアセットが含まれます。 各ルールは独自のメッセージを報告するため、複数のルールに失敗したリクエストは、失敗したルールごとに1つのメッセージを受け取ります。
グラントの更新
呼び出し元のワークスペースが所有するグラントを更新します。 リクエストはグラントの作成と同じ本文形式を受け入れ、各ソースEnvironmentの部分更新として適用されます。 各environmentsエントリは、source_environment_idをキーとする部分スライスです。 target_environment_idsまたはassetsを省略するとその側は変更されず、明示的な空の配列を指定するとクリアされます。
PUT /api/cross_workspace/grants/:handleURLパラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
| handle | string 必須 | グラントのハンドル。 |
本文パラメーター
リクエストは付与を作成エンドポイントと同じフィールドを受け入れ、それらを各ソースEnvironmentに部分更新として適用します。 更新時、nameフィールドは任意です。 付与の名前を変更しない場合は省略します。
サンプルリクエスト
このリクエストは、ハンドルcwsgr-2f8h1k-a3x9qz-1を持つグラントを更新し、ソースEnvironment123を単一のターゲットEnvironmentと共有します。
curl -X PUT "https://www.workato.com/api/cross_workspace/grants/cwsgr-2f8h1k-a3x9qz-1" \
-H 'Authorization: Bearer <api_token>' \
-H "Content-Type: application/json" \
-d '{
"name": "Orders topic to EU only",
"environments": [
{ "source_environment_id": 123, "target_environment_ids": [456] }
]
}'レスポンス
{
"data": {
"handle": "cwsgr-2f8h1k-a3x9qz-1",
"name": "Orders topic to EU only",
"description": "Share prod orders stream",
"created_by": { "name": "Sasha Patel" },
"created_at": "2026-06-30T12:00:00.000Z",
"updated_at": "2026-07-21T09:10:00.000Z",
"environments": [
{
"source_environment_id": 123,
"source_environment_type": "prod",
"target_environments": [
{ "id": 456, "type": "prod", "workspace_id": 17293, "workspace_name": "Acme EU" }
],
"assets": [
{ "id": "48213", "name": "orders", "type": "Topic", "access_levels": ["read", "write"] }
]
}
]
}
}このエンドポイントは、成功時に200を返します。 ハンドルが呼び出し元のワークスペースによって所有されていない場合は404を返し、検証に失敗した場合は400を返します。
グラントの取り消し
呼び出し元のワークスペースが所有するグラントを論理削除します。
DELETE /api/cross_workspace/grants/:handleURLパラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
| handle | string 必須 | グラントのハンドル。 |
サンプルリクエスト
このリクエストは、ハンドルcwsgr-2f8h1k-a3x9qz-1を持つグラントを取り消します。
curl -X DELETE "https://www.workato.com/api/cross_workspace/grants/cwsgr-2f8h1k-a3x9qz-1" \
-H 'Authorization: Bearer <api_token>'レスポンス
このエンドポイントは、成功時に空の本文で204 No Contentを返します。 ハンドルが呼び出し元のワークスペースによって所有されていない場合は404を返し、削除に失敗した場合は400を返します。
受信グラントのリスト
呼び出し元のワークスペースをターゲットとするグラントのリストを取得します。 リストビューは軽量です。 各source_environmentsエントリには、完全なアセットリストの代わりにhas_assetsブール値が含まれます。 グラントの完全なアセットリストを取得するには、受信グラントの取得エンドポイントを使用します。
GET /api/cross_workspace/incoming_grantsクエリパラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
| page[number] | integer optional | 取得するページ番号。 デフォルト値は1です。 |
| page[size] | integer optional | 取得するページあたりのグラント数。 デフォルト値および最大値は100です。 |
サンプルリクエスト
このリクエストは、ワークスペースをターゲットとするグラントを取得します。
curl -g -X GET "https://www.workato.com/api/cross_workspace/incoming_grants?page[number]=1&page[size]=100" \
-H 'Authorization: Bearer <api_token>'レスポンス
{
"data": [
{
"handle": "cwsgr-2f8h1k-a3x9qz-1",
"name": "Orders topic to EU and APAC",
"description": "Share prod orders stream",
"created_at": "2026-06-30T12:00:00.000Z",
"updated_at": "2026-06-30T12:00:00.000Z",
"source_workspace": { "id": 8842, "name": "Acme Global" },
"source_environments": [
{ "id": 123, "type": "prod", "has_assets": true }
]
}
],
"total": 3,
"page": { "number": 1, "size": 100 }
}受信グラントの取得
呼び出し元のワークスペースをターゲットとする単一のグラントを取得します。 単一グラントビューには、各ソースEnvironmentの共有assetsが、そのaccess_levelsを含めて一覧表示されます。
GET /api/cross_workspace/incoming_grants/:handleURLパラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
| handle | string 必須 | グラントのハンドル。 |
サンプルリクエスト
このリクエストは、ハンドルcwsgr-2f8h1k-a3x9qz-1を持つ受信グラントを取得します。
curl -X GET "https://www.workato.com/api/cross_workspace/incoming_grants/cwsgr-2f8h1k-a3x9qz-1" \
-H 'Authorization: Bearer <api_token>'レスポンス
{
"data": {
"handle": "cwsgr-2f8h1k-a3x9qz-1",
"name": "Orders topic to EU and APAC",
"description": "Share prod orders stream",
"created_at": "2026-06-30T12:00:00.000Z",
"updated_at": "2026-06-30T12:00:00.000Z",
"source_workspace": { "id": 8842, "name": "Acme Global" },
"source_environments": [
{
"id": 123,
"type": "prod",
"assets": [
{ "id": "48213", "name": "orders", "type": "Topic", "access_levels": ["read"] }
]
}
]
}
}呼び出し元のワークスペースをターゲットとしていないハンドルは404を返します。
ソースEnvironmentのリスト
グラントソースとして機能できる呼び出し元ワークスペースのEnvironmentを取得します。
GET /api/cross_workspace/source_environmentsサンプルリクエスト
このリクエストは、グラントソースとして機能できるEnvironmentを取得します。
curl -X GET "https://www.workato.com/api/cross_workspace/source_environments" \
-H 'Authorization: Bearer <api_token>'レスポンス
{
"data": [
{ "id": 123, "type": "prod", "name": "Acme Global (prod)" },
{ "id": 124, "type": "test", "name": "Acme Global (test)" }
]
}ターゲットEnvironmentのリスト
指定されたソースEnvironmentがグラントを付与できる兄弟Environmentを取得します。 ターゲットは同じAutomation HQ組織および同じデータセンター内にあり、ソースと同じEnvironmentタイプを共有します。
GET /api/cross_workspace/target_environmentsクエリパラメーター
| 名前 | タイプ | 説明 |
|---|---|---|
| source_environment_id | integer required | ソースEnvironmentのID。 呼び出し元のワークスペースに属している必要があります。 |
サンプルリクエスト
このリクエストは、ソースEnvironment123からグラントを付与可能なEnvironmentを取得します。
curl -X GET "https://www.workato.com/api/cross_workspace/target_environments?source_environment_id=123" \
-H 'Authorization: Bearer <api_token>'レスポンス
{
"data": [
{ "id": 456, "type": "prod", "workspace_id": 17293, "workspace_name": "Acme EU" },
{ "id": 789, "type": "prod", "workspace_id": 40021, "workspace_name": "Acme APAC" }
]
}このエンドポイントは、source_environment_idが省略された場合は400を返し、それが呼び出し元のワークスペースに属していない場合は404を返します。
最終更新日: