DataGraph API ソース管理の CLI

コマンド 説明

API ソースを追加する

API ソースを昇格する

API ソースを更新する

統合スキーマに対する API コールをスケーリングする

統合スキーマをダウンロードする

API ソースを削除する

API ソースを取得する

すべての API ソースをリストする

DataGraph に関する情報を返す

統合スキーマの API ソースを検証する

datagraph sources add

> datagraph sources add <g/a/v>

DataGraph では、​stable​ 状態の API バージョンのみがサポートされています。

このコマンドは、​<g/a/v>​ で指定された API ソースを追加します。ここで、​g​ はグループ ID、​a​ はアセット ID、​v​ は API ソースのバージョン ID です。グループ ID は省略可能です。グループ ID を指定しない場合、このコマンドは現在の組織 ID を使用します。

このコマンドでは、デフォルトの ​--help​、​-f/--fields​、​-o/--output​、​--verbose​ オプション以外に次のオプションも使用できます。

オプション 説明

--auth-none

API が公開の場合に使用します。

--auth-basic

基本認証ヘッダー、またはユーザー名とパスワードを渡して、API に対する認証を行う場合に使用します。

必須:

  • --credentials <username>:<password>

--auth-oauth

OAuth 2.0 の ​client_id​、​client_secret​、認証サーバーの値を渡して API に対する認証を行う場合に使用します。

必須:

  • --credentials <client_id>:<client_secret>

  • --server <authorization server URL>​ ​

    省略可能:

  • --scope <server>

--auth-pass-through

認証ヘッダーを渡して API に対する認証を行う場合に使用します。

必須:

  • --mapping: <comma-separated list of key-value pairs, for example, key1:value1,key2:value2>

--auth-headers

カスタムヘッダーパラメーターと値を渡して API に対する認証を行う場合に使用します。

ヘッダーで必須:

  • --custom-headers: <comma-separated list of header-value pairs, for example, header1:value1,header2:value2>

    Or (または)

  • --custom-headers-file: <location of the file containing header-value pairs, one per line>

--auth-query-params

クエリパラメーターと値を渡して API に対する認証を行う場合に使用します。

クエリパラメーターで必須:

  • --credentials <client_id:client_secret>

--url <url>

バックエンド API の URL を設定します。

--discover-url

現在の環境で実行されているインスタンスに基づいて、バックエンド API の URL を自動的に検出します。複数の API が実行されている場合、DataGraph は最初の URL を使用します。

--ca

API のトラストストアに追加する認証機関 (CA) ファイルのカンマ区切りリストを指定します (​file.ca,file2.ca​ など)。

--cert

相互トランスポートレイヤーセキュリティ (mTLS) に使用するクライアント証明書のファイル名を指定します (​cert.ca​ など)。

--key

mTLS に使用する非公開キーのファイル名を指定します (​key.pem​ など)。

--key-password

暗号化された非公開キーを復号化するパスワードを指定します。

--ignore-invalid-edits

API 仕様の拡張機能で行われた有効な編集を適用し、無効な編集を無視するために使用します。

コマンドラインで定義されたすべてのヘッダーとクエリパラメーター、およびすべてのヘッダーとクエリパラメーターファイルが追加されます。反復キーがある場合、コマンドラインで指定された値が優先されます。

コマンド例

datagraph sources add 18dc11ee-4a09-4aae-9c6c-4371a87eafa8/product-api/1.0.0/  --url http://test.com

出力例

{
  "apiVersion": "v1",
  "assetId": "product-api",
  "createDate": "2022-05-20T18:05:41",
  "endpoint": "http://test.com",
  "environmentId": "<envID>",
  "groupId": "<groupID>",
  "name": "Product API",
  "organizationId": "<orgID>",
  "securityScheme": "NO_AUTH",
  "sourceId": "deca7be1-c299-4441-bc7b-dba733e3a11f",
  "updateDate": "2022-05-20T18:05:41",
  "version": "1.0.0",
  "origin": "CLI"
}

datagraph sources promote

> datagraph sources promote <sourceId> <target-EnvID>

このコマンドは、API ソース ​<sourceId>​ を対象環境 ​<targetEnv>​ に昇格します。

このコマンドでは、デフォルトの ​--help​、​-f/--fields​、​-o/--output​、​--verbose​ オプション以外に次のオプションも使用できます。

オプション 説明

--auth-none

API が公開の場合に使用します。

--auth-basic

基本認証ヘッダー、またはユーザー名とパスワードを使用して、API に対する認証を行う場合に使用します。

必須:

  • --credentials <username>:<password>

--auth-oauth

OAuth 2.0 の ​client_id​、​client_secret​、認証サーバーの値を渡して API に対する認証を行う場合に使用します。

必須:

  • --client-credentials <client_id>:<client_secret>

  • --server <authorization server URL>​ ​

    省略可能:

  • --scope <server>

--auth-pass-through

認証ヘッダーを渡して API に対する認証を行う場合に使用します。

必須:

  • --mapping: <comma-separated list of key-value pairs, for example, key1:value1,key2:value2>

--auth-headers

カスタムヘッダーパラメーターと値を渡して API に対する認証を行う場合に使用します。

ヘッダーで必須:

  • --custom-headers: <comma-separated list of header-value pairs, for example, header1:value1,header2:value2>

    Or (または)

  • --custom-headers-file: <location of the file containing header header-value pairs, one per line>

--auth-query-params

クエリパラメーターと値を渡して API に対する認証を行う場合に使用します。

クエリパラメーターで必須:

  • --credentials <client_id:client_secret>

--url

バックエンド API の URL を設定します。

--discover-url

現在の環境で実行されているインスタンスに基づいて、バックエンド API の URL を自動的に検出します。複数の API が実行されている場合、DataGraph は最初の URL を使用します。

--ca

API のトラストストアに追加する CA ファイルのリストを指定します。

--cert

mTLS に使用するクライアント証明書を指定します。

--key

mTLS に使用する非公開キーを指定します。

--key-password

暗号化された非公開キーを復号化するパスワードを指定します。

--empty-ca

すべての CA 証明書を削除します。

--empty-mtls

クライアント証明書、非公開キー、非公開キーパスワード情報を削除します。

コマンドラインで定義されたすべてのヘッダーとクエリパラメーター、およびすべてのヘッダーとクエリパラメーターファイルが追加されます。反復キーがある場合、コマンドラインで指定された値が優先されます。

コマンド例

この例では、​promote​ コマンドの実行後に ​environmentId​ が変更されます。

datagraph sources promote d1d27987-939a-4b41-b3ef-411568ee5bdd e7e8da65-9cf1-569e-c9d2-brd2r0rc7rd6 --auth-none

出力例

{
  "apiVersion": "1.0",
  "assetId": "order-e2e",
  "createDate": "2022-05-27T18:56:03",
  "endpoint": "http://test.com",
  "environmentId": "e7e8da65-9cf1-569e-c9d2-brd2r0rc7rd6",
  "groupId": "<groupID>",
  "name": "Order E2E",
  "organizationId": "<orgID>",
  "securityScheme": "NO_AUTH",
  "sourceId": "1ff021b3-9296-43fd-9d64-2f9027c25740",
  "updateDate": "2022-05-27T18:56:03",
  "version": "1.0.0",
  "origin": "CLI"
}

datagraph sources update

> datagraph sources update <sourceId>

DataGraph では、​stable​ 状態の API バージョンのみがサポートされています。​update​ コマンドは、API ソースのパッチおよびマイナーバージョンのみを更新します。

このコマンドは、API ソース ​<sourceId>​ のバージョンを更新します。

このコマンドでは、デフォルトの ​--help​、​-f/--fields​、​-o/--output​、​--verbose​ オプション以外に次のオプションも使用できます。

オプション 説明

--auth-none

API が公開の場合に使用します。

--auth-basic

基本認証ヘッダー、またはユーザー名とパスワードの両方を渡して、API に対する認証を行う場合に使用します。

必須:

  • --credentials <username>:<password>

--auth-oauth

OAuth 2.0 の ​client_id​、​client_secret​、認証サーバーの値を渡して API に対する認証を行う場合に使用します。

必須:

  • --credentials <client_id>:<client_secret>

  • --server <authorization server URL>​ ​

    省略可能:

  • --scope <server>

--auth-pass-through

認証ヘッダーを渡して API に対する認証を行う場合に使用します。

必須:

  • --mapping: <comma-separated list of key-value pairs, for example, key1:value1,key2:value2>

--auth-headers

カスタムヘッダーパラメーターと値を渡して API に対する認証を行う場合に使用します。

ヘッダーで必須:

  • --custom-headers: <comma-separated list of header-value pairs, for example, header1:value1,header2:value2>

    Or (または)

  • --custom-headers-file: <location of the file containing header-value pairs, one per line>

--auth-query-params

クエリパラメーターと値を渡して API に対する認証を行う場合に使用します。

クエリパラメーターで必須:

  • --credentials <client_id:client_secret>

--url

バックエンド API の URL を設定します。

--discover-url

現在の環境で実行されているインスタンスに基づいて、バックエンド API の URL を自動的に検出します。複数の API が実行されている場合、DataGraph は最初の URL を使用します。

--ca

API のトラストストアに追加する CA ファイルのリストを指定します。

--cert

mTLS に使用するクライアント証明書を指定します。

--key

mTLS に使用する非公開キーを指定します。

--key-password

暗号化された非公開キーを復号化するパスワードを指定します。

--empty-ca

すべての CA 証明書を削除します。

--empty-mtls

クライアント証明書、非公開キー、非公開キーパスワード情報を削除します。

--keep-edits

API ソースの現在のバージョンに存在する編集を、API 仕様から抽出する代わりに保持します。

--override-ui-edits

API ソースの取得元を CLI に変更します。API ソースの取得元が DataGraph UI である場合、このオプションを使用して、UI の編集を API 仕様の編集で上書きします。

--ignore-invalid-edits

API 仕様の拡張機能で行われた有効な編集を適用し、無効な編集を無視するために使用します。

コマンドラインで定義されたすべてのヘッダーとクエリパラメーター、およびすべてのヘッダーとクエリパラメーターファイルが追加されます。反復キーがある場合、コマンドラインで指定された値が優先されます。

コマンド例

次のコマンドは、ソース API の URL を更新し、その認証を ​auth-none​ から ​auth-basic​ に変更して、クライアント ID とシークレットを追加します。

> datagraph sources update b6cb82a6-51dc-4968-861a-aa04447c3442 --url http://test2.com --version 1.0.0 --auth-basic --credentials client-test:client-secret

出力例

{
  "apiVersion": "v1",
  "assetId": "product-api",
  "createDate": "2022-05-20T18:56:57Z",
  "endpoint": "http://test2.com",
  "environmentId": "<envID>",
  "groupId": "<groupID>",
  "name": "Product API",
  "organizationId": "<orgID>",
  "securityScheme": "BASIC",
  "sourceId": "b6cb82a6-51dc-4968-861a-aa04447c3442",
  "updateDate": "2022-05-27T18:31:39",
  "version": "1.0.0",
  "origin": "CLI"
}

datagraph scale

> datagraph scale <concurrent-api-calls>

このコマンドでは、統合スキーマで許可される同時 API コール数を設定できます。API コール数を増減することで、必要に応じて処理するワークロードを増やし、コンシュームを最適化できます。

このコマンドはデフォルトのオプション ​--help​、​-f/--fields​、​-o/--output​、​--verbose​ を受け入れます。

コマンド例

datagraph scale 300

出力例

{
  "message": "Api calls updated"
}

datagraph schema-download

> datagraph schema-download

このコマンドは、現在の環境の統合スキーマをダウンロードします。

このコマンドはデフォルトのオプション ​--help​、​-f/--fields​、​-o/--output​、​--verbose​ を受け入れます。

出力例

directive @key(fields: String) on OBJECT

"An Item"
type Item {
  itemId: Int!
  "A Product"
  product: OrderProduct!
  quantity: Int!
}

"An Order"
type Order {
  items: [Item!]!
  orderId: String!
  customerId: String!
}

"A Product"
type OrderProduct {
  productId: String!
  name: String!
}

type Query {
  orders(ordersCount: Int): [Order!]
  ordersByOrderId(orderId: String!): Order
  ordersProductsByOrderId(productsCounts: Int, orderId: String!): [OrderProduct!]
}

datagraph sources delete

> datagraph sources delete <sourceId>

このコマンドは、指定された API ソースを削除します。

このコマンドはデフォルトのオプション ​--help​、​-f/--fields​、​-o/--output​、​--verbose​ を受け入れます。

コマンド例

datagraph sources delete d40df394-785d-4c91-8aeb-f07568dd57c

出力例

{
  "message": "Source deleted successfully",
  "sourceId": "620afe93-b196-42eb-ae77-b68a0a937b6a"
}

datagraph sources get

> datagraph sources get <sourceId>

このコマンドは、指定された API ソースを取得します。

このコマンドはデフォルトのオプション ​--help​、​-f/--fields​、​-o/--output​、​--verbose​ を受け入れます。

コマンド例

datagraph sources get d1d27987-939a-4b41-b3ef-411568ee5bdd

出力例

{
  "apiVersion": "1.0",
  "assetId": "order-e2e",
  "createDate": "2022-05-20T16:49:00Z",
  "hasKeystore": false,
  "endpoint": "http://test.com",
  "environmentId": "<envID>",
  "groupId": "<groupID>",
  "name": "Order E2E",
  "organizationId": "<orgID>",
  "hasTruststore": false,
  "securityScheme": "NO_AUTH",
  "sourceId": "d1d27987-939a-4b41-b3ef-411568ee5bdd",
  "updateDate": "2022-05-20T16:49:00Z",
  "version": "1.0.0",
  "origin": "CLI"
}

datagraph sources list

> datagraph sources list

このコマンドは、現在の環境のすべての API ソースをリストします。

このコマンドはデフォルトのオプション ​--help​、​-f/--fields​、​-o/--output​、​--verbose​ を受け入れます。

出力例

{
    "apiVersion": "1.0",
    "assetId": "order-e2e",
    "createDate": "2022-05-20T16:49:00.000Z",
    "endpoint": "http://test.com",
    "environmentId": "<envID>",
    "groupId": "<groupID>",
    "name": "Order E2E",
    "organizationId": "<orgID>",
    "securityScheme": "NO_AUTH",
    "sourceId": "d1d27987-939a-4b41-b3ef-411568ee5bdd",
    "updateDate": "2022-05-20T16:49:00.000Z",
    "version": "1.0.0",
    "origin": "CLI"
  },
  {
    "apiVersion": "v1",
    "assetId": "product-api",
    "createDate": "2022-05-20T18:05:41.000Z",
    "endpoint": "http://test.com",
    "environmentId": "<envID>",
    "groupId": "<groupID>",
    "name": "Product API",
    "organizationId": "<orgID>",
    "securityScheme": "NO_AUTH",
    "sourceId": "deca7be1-c299-4441-bc7b-dba733e3a11f",
    "updateDate": "2022-05-20T18:05:41.000Z",
    "version": "1.0.0",
    "origin": "CLI"
  }

datagraph describe

> datagraph describe

このコマンドは、DataGraph に関する次の情報を返します。

  • endpoint​: 要求を受け入れる GraphQL エンドポイントを表示します。

  • deploymentError​: DataGraph のデプロイメントが失敗した場合、この項目にエラーの情報が表示されます。それ以外の場合は空です。

  • deploymentStatus​: DataGraph はデプロイ中、実行中、またはエラーがあるかどうかを示します。

  • logLevels​: 設定されたログレベルのリストを表示します。

  • envStatus​: 現在の環境の状況を表示します。

  • dlbEndpoint​: ロードバランサーエンドポイントを表示します。

このコマンドはデフォルトのオプション ​--help​、​-f/--fields​、​-o/--output​、​--verbose​ を受け入れます。

出力例

{
  "deploymentStatus": "STARTED",
  "dlbEndpoint": "datagraph-example.us-e1.prod.cloudhub.io",
  "endpoint": "datagraph-example.us-e1.prod.cloudhub.io",
  "envStatus": "STARTED"
}

datagraph validate

> datagraph validate asset <g/a/v>

このコマンドは、API ソースを統合スキーマに追加できるかどうかを検証します。そのために、このコマンドは次の処理を行います。

  • API ソースを GraphQL スキーマに変換する。

  • API 仕様に適用されている API 拡張機能を検証する。

  • 統合スキーマに対して競合チェックを実行する。

これらのステップのいずれかで競合またはエラーが発生した場合、コマンドは結果を返します。競合やエラーが見つからない場合は、成功メッセージを返します。

検証する API ソースは、​<g/a/v>​ で指定されます。ここで、​g​ はグループ ID、​a​ はアセット ID、​v​ は API ソースのバージョン ID です。グループ ID は省略可能です。グループ ID を指定しない場合、このコマンドは現在の組織 ID を使用します。

このコマンドはデフォルトのオプション ​--help​、​-f/--fields​、​-o/--output​、​--verbose​ を受け入れます。

コマンド例

datagraph validate asset 73b0d8f2-5a2f-4107-884d-fcd80f30bc51/sales-api/1.0.0

出力例

{
  "code": "success"
}