GraphQL Connector for CData Sync

Build 24.0.9175
  • GraphQL
    • 接続の確立
    • GraphQL データのモデリング
      • 自動スキーマ検出
      • Mutation の使用
      • スキーマのカスタマイズ
        • カラム定義
        • SELECT 実行
        • オペレーション
          • OAuthGetAccessToken
          • OAuthGetUserAuthorizationURL
    • 接続文字列オプション
      • Authentication
        • AuthScheme
        • URL
        • User
        • Password
      • AWS Authentication
        • AWSCognitoRegion
        • AWSUserPoolId
        • AWSUserPoolClientAppId
        • AWSUserPoolClientAppSecret
      • OAuth
        • OAuthVersion
        • OAuthClientId
        • OAuthClientSecret
        • OAuthGrantType
        • OAuthIncludeCallbackURL
        • OAuthAuthorizationURL
        • OAuthAccessTokenURL
        • OAuthRefreshTokenURL
        • OAuthRequestTokenURL
        • AuthToken
        • AuthKey
        • OAuthParams
      • JWT OAuth
        • OAuthJWTCert
        • OAuthJWTCertType
        • OAuthJWTCertPassword
        • OAuthJWTCertSubject
      • SSL
        • SSLClientCert
        • SSLClientCertType
        • SSLClientCertPassword
        • SSLClientCertSubject
        • SSLServerCert
      • Firewall
        • FirewallType
        • FirewallServer
        • FirewallPort
        • FirewallUser
        • FirewallPassword
      • Proxy
        • ProxyAutoDetect
        • ProxyServer
        • ProxyPort
        • ProxyAuthScheme
        • ProxyUser
        • ProxyPassword
        • ProxySSLType
        • ProxyExceptions
      • Logging
        • LogModules
      • Schema
        • Location
        • BrowsableSchemas
        • Tables
        • Views
        • ExpandArgumentsDepth
        • ExpandTablesDepth
        • ExpandTemporaryTablesDepth
        • ExpandColumnsDepth
        • IncludeDeprecatedMetadata
        • ExposeDynamicProcedures
        • ExposeObjectTables
      • Miscellaneous
        • CustomHeaders
        • GenerateSchemaFiles
        • MaxRows
        • Other
        • Pagesize
        • PseudoColumns
        • Timeout
        • UserDefinedViews

GraphQL Connector for CData Sync

概要

CData Sync App は、GraphQL データをデータベース、データレイク、またはデータウェアハウスに継続的にパイプライン化する簡単な方法を提供し、分析、レポート、AI、および機械学習で簡単に利用できるようにします。

GraphQL コネクタはCData Sync アプリケーションから使用可能で、GraphQL からデータを取得して、サポートされている任意の同期先に移動できます。

GraphQL バージョンサポート

Sync App はGraphQL API を使用してGraphQL への双方向アクセスを実現します。

GraphQL Connector for CData Sync

接続の確立

GraphQL への接続を追加

GraphQL への接続を追加するには:

  1. アプリケーションコンソールで、接続ページに移動します。
  2. 接続の追加パネルで、追加したい接続のアイコンを選択します。
  3. GraphQL アイコンが利用できない場合は、Add More アイコンをクリックしてCData サイトからGraphQL コネクタをダウンロードおよびインストールします。

必須プロパティについては、設定タブを参照してください。

通常必須ではない接続プロパティについては、高度な設定タブを参照してください。

GraphQL への接続

接続するには以下を設定します。

  • URL:GraphQL のURL を指定。例:https://api.example.com/graphql
  • Location:GraphQL サービスのカスタム定義スキーマを含むファイルパスに設定。

GraphQL への認証

ドライバーは次の認証をサポートします。

  • Basic
  • OAuth 1.0 & 2.0
  • OAuthPKCE
  • AWS Cognito クレデンシャル:
    • AwsCognitoSrp
    • AwsCognitoBasic

Basic

AuthScheme をBasic に設定。GraphQL のUser とPassword を指定する必要があります。

OAuth

すべてのOAuth フローでAuthScheme をOAuth に、OAuthVersion を1.0または2.0に設定する必要があります。以下のセクションは、すでに設定済みであることを前提として書かれています。

ヘッドレスマシン

ヘッドレスサーバーや、Sync App がブラウザを開くことができないその他のマシンにGraphQL データソースを作成するには、別のマシンから認証を行う必要があります。認証は、2段階認証プロセスになります。

  1. 以下のオプションから選択します。
    • オプション1:後述の「Verifier code を取得および交換」に従い、OAuthVerifier 値を取得します。
    • オプション2:インターネットブラウザに対応したマシンにSync App をインストールし、後述の「OAuth 設定を転送」の説明に従い、通常のブラウザベースのフローで認証後にOAuth 認証値を転送します。
  2. 次に、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにSync App を設定します。

オプション1:Verifier code を取得および交換

ヘッドレスマシンで次のプロパティを設定します。

  • InitiateOAuth:OFF に設定。
  • OAuthClientId:アプリケーション設定のアプリケーションId に設定。
  • OAuthClientSecret:アプリケーション設定のアプリケーションシークレットに設定。

別のマシンから認証してOAuthVerifier 接続プロパティを取得する方法は次のとおりです。

  1. CallbackURL 入力パラメータを、アプリケーション設定で指定した正確なリダイレクトURI に設定してGetOAuthAuthorizationURL ストアドプロシージャを呼び出します。
  2. OAuthVersion が1.0に設定されている場合は返されたAuthToken およびAuthKey の値を保存します。これらは次のステップで使用します。
  3. 返されたURL をブラウザで開きます。ログインして、Sync App にアクセス許可を与えます。すると、verifier code を含むコールバックURL にリダイレクトされます。
  4. verifier code の値を保存します。後ほどこれをOAuthVerifier 接続プロパティに設定する必要があります。

ヘッドレスマシンでは、次の接続プロパティを設定してOAuth 認証値を取得します。

  • OAuthRequestTokenURL:OAuth 1.0 に必要です。OAuth 1.0 では、これがアプリケーションがリクエストトークンをリクエストするURL です。
  • OAuthAuthorizationURL:OAuth 1.0 および2.0 に必要です。これは、ユーザーがサービスにログインして、アプリケーションにアクセス許可を与えるURL です。OAuth 1.0 では、権限が与えられるとリクエストトークンが認可されます。
  • OAuthAccessTokenURL:OAuth 1.0 および2.0 に必要です。これは、アクセストークンがリクエストされるURL です。OAuth 1.0 では、認可されたリクエストトークンはアクセストークンと交換されます。
  • OAuthRefreshTokenURL:OAuth 2.0 に必要です。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンを新しいアクセストークンと交換します。データソースによっては、アクセストークンと同じURL である場合がありますので、注意してください。
  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
  • CallbackURL:http://localhost:33333 に設定。アプリケーション設定でリダイレクトURL を指定した場合には、一致している必要があります。

データへの接続

OAuth 設定ファイルが生成されたら、次のプロパティを設定してデータに接続します。

  • OAuthSettingsLocation:暗号化されたOAuth 認証値を含む場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所がプロバイダーに読み書きのアクセス許可を与えることを確認してください。
  • InitiateOAuth:REFRESH に設定。

オプション2:OAuth 設定を転送

別のマシンにSync App をインストールして認証し、結果のOAuth 値を転送する方法は次のとおりです。

セカンドマシンに、Sync App をインストールして、次の接続プロパティセットで接続します。

  • OAuthSettingsLocation:書き込み可能な場所に設定。
  • OAuthClientId:アプリケーション設定のクライアントId に設定。
  • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
  • CallbackURL:アプリケーション設定のコールバックURL に設定。

認証する接続をテストします。生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。接続テストに成功したら、OAuth 設定ファイルをヘッドレスマシンにコピーします。ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。

  • InitiateOAuth:REFRESH に設定。
  • OAuthSettingsLocation:OAuth 設定ファイルの場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所がSync App に読み書きのアクセス許可を与えることを確認してください。

OAuthPKCE

NOTE:OAuth Proof Key for Code Exchange (PKCE) は、OAuth 2.0 Authorization Code フローの拡張機能です。

AWS Cognito クレデンシャル

AWS Cognito のユーザープールに登録されたユーザーでSync App を使用する場合は、以下のプロパティを設定して認証してください。

  • AuthScheme:AwsCognitoSrp に設定(推奨)。また、AwsCognitoBasic を使用することもできます。
  • AWSCognitoRegion:ユーザープールのリージョンに設定。
  • AWSUserPoolId:ユーザープールのId に設定。
  • AWSUserPoolClientAppId:ユーザープールのアプリクライアントId に設定。
  • AWSUserPoolClientAppSecret:ユーザープールのクライアントシークレットに設定。
  • AWSIdentityPoolId:ユーザープールとリンクしているID プールのId に設定。
  • User:ユーザープールに登録されているユーザーのユーザー名に設定。
  • Password:ユーザープールに登録されているユーザーのパスワードに設定。

GraphQL Connector for CData Sync

GraphQL データのモデリング

This section shows how to control the various schemas that the Sync App offers to bridge the gap between relational SQL and GraphQL services.

Schema Introspection

GraphQL services offer a introspection query service which the Sync App can use to obtain view and column names.

All SCALAR mutation fields are exposed directly, and all object fields are expanded.

Mutations

The Sync App will automatically scan for available Mutation の使用. Given that there is no method provided by GraphQL for determining which mutations can be used for each table, each mutation is exposed as a stored procedure.

LIST fields are exposed as temporary tables (GraphQL tables of type TEMPORARY_TABLE). The discovered temporary tables can be obtained by querying the sys_tables and sys_tablecolumns system tables.

Customizing Schemas

オペレーション details the process for configuring custom schema files. Setting up these custom schema files is a required step in establishing a connection to GraphQL data.

System Tables

See システムテーブル to query the current table metadata.

Stored Procedures

The Sync App makes use of Stored Procedures to perform various functions, such as obtaining and refreshing OAuth tokens.

GraphQL Connector for CData Sync

自動スキーマ検出

By default, the Sync App will automatically read metadata from GraphQL.

Schema Introspection

GraphQL services offer a introspection query service which the Sync App can use to obtain view and column names.

A GraphQL introspection query service has a query object at its root. Other objects are nested into the root query object, which can in turn have their own nested objects.

The Sync App reads LIST or Relay Connection type objects as views. If a field is SCALAR, it's read as a column, and if a field is a simple OBJECT, it is expanded.

Set the metadata introspection depth as follows:

  • ExpandTablesDepth: Setting to 0 will read only from the root query object. In scenarios where lists are nested in other lists, set the ExpandTablesDepth to the number of nested layers deep to be scanned.
  • ExpandColumnsDepth: This determines how many more layers deep (starting from the ExpandTablesDepth) to expand objects to include fields from their nested child objects.

GraphQL Connector for CData Sync

Mutation の使用

The Sync App will automatically scan for available mutations. Given that there is no method provided by GraphQL for determining which mutations can be used for each table, each mutation is exposed as a stored procedure. This replaces the traditional use of INSERT, UPDATE, and DELETE SQL statements when working with GraphQL.

All SCALAR mutation fields are exposed directly, and all object fields are expanded.

LIST fields are exposed as temporary tables (GraphQL tables of type TEMPORARY_TABLE). The discovered temporary tables can be obtained by querying the sys_tables and sys_tablecolumns system tables. These tables contain a RowId and ParentId field to denote the row and housing (parent) table of a given child table.

An example of a mutation is productCreate. Invoke mutations as a stored procedure after first loading the relevant child tables needed for the operation:

INSERT INTO productCreate_metafields#TEMP (namespace,key,value,type) VALUES ('MRproductInfo','ALU','449788022','string')

INSERT INTO productCreate_variants#TEMP (RowId,price,sku,inventoryManagement,weightUnit,weight,options,metafields,inventoryQuantities) VALUES (1,'39.99','38536314-0acb-4d3f-b8ff-a0f2014d2c75','SHOPIFY','POUNDS',1,'L,XL,XXL','productCreate_variants_metafields','productCreate_variants_inventoryQuantities')

INSERT INTO productCreate_variants_metafields#TEMP (ParentId,namespace,key,value,type) VALUES ('1','MRproductInfo','ALU','449788022-M-','string')

INSERT INTO productCreate_variants_metafields#TEMP (ParentId,namespace,key,value,type) VALUES ('1','MRproductInfo','ItemNumber','400000881201','string')

INSERT INTO productCreate_variants_inventoryQuantities#TEMP (ParentId,locationId,availableQuantity) VALUES ('1','gid://shopify/Location/1448280087',5)

INSERT INTO productCreate_media#TEMP (originalSource,alt,mediaContentType) VALUES ('https://static.nike.com/a/images/t_PDP_1280_v1/f_auto,q_auto:eco/qwqfyddzikcgc4ozwigp/revolution-5-road-running-shoes-szF7CS.png','Magic Shoes','IMAGE')

EXECUTE productCreate title='NIKE  - 449788022', descriptionHtml='MEN''S SHOES 42-MENS L/S TEES',productType='Staging', vendor='NIKE', published='false', options='size,width',metafields='productCreate_metafields#TEMP', variants='productCreate_variants#TEMP', media='productCreate_media#TEMP'

GraphQL Connector for CData Sync

スキーマのカスタマイズ

Custom schemas are defined in configuration files. This chapter outlines the structure of these files.
Note: The GenerateSchemaFiles property enables you to persist table metadata in static schema files that are easy to customize (to persist your changes to column data types, for example). Set this property to "OnStart" to generate schema files for all tables in your database at connection. Alternatively, set this property to "OnUse" to generate schemas as you execute SELECT queries to tables. It is also possible to create a specific schema file for a table using the CreateSchema stored procedure.

Editing Schema Files

Tables and views are defined by authoring schema files in APIScript. APIScript is a simple configuration language that allows you to define the columns and the behavior of the table. It also has built-in オペレーション that enable you to process GraphQL. In addition to these data processing primitives, APIScript is a full-featured language with constructs for conditionals, looping, etc. However, as shown by the example schema, for most table definitions you will not need to use these features.

Example Schema

Below is a fully functional table schema that models the Labels table and contains all the components you will need to execute SQL to GraphQL data sources.

You can find more information on each of the components of a schema in カラム定義, SELECT 実行.

 <rsb:script xmlns:rsb="http://apiscript.com/ns?v1" xmlns:xs="http://www.cdata.com/ns/rsbscript/2" xmlns:other="http://apiscript.com/ns?v1"> 
   <rsb:info title="Labels" desc="Lists information about the different labels you can apply on an issue." other:possiblePaths="{'path':'/repository/labels/edges/node','Name':{'path':'/repository/label'}}" other:paginationObjects="{'labels':{'cursorPath':'after','cursorType':'String','pageSizeArgumentPath':'first','pageSizeArgumentType':'Int','depth':'1','paginationType':'Cursor','isConnection':'True','pageInfo':['endCursor','hasNextPage','hasPreviousPage','startCursor']}}"> 
     <attr   name="Id"               xs:type="string"     key="true"   other:relativePath="id"             desc="The ID of the label."                                                                                                                                                                                                                                                                                                                     /> 
     <attr   name="RepositoryName"   xs:type="string"                            other:relativePath="name"           desc="The name of the repository."                                     other:filter="name:="    other:argumenttype="String!"    other:depth="1"                                           references="Repositories.Name"                                                                                /> 
     <attr   name="UserLogin"        xs:type="string"                                                                          desc="The login name of the user."                                     other:filter="owner:="   other:argumenttype="String!"    other:depth="1"                                           references="Users.Login"            other:mirror="true"         other:canBeSliced="true"  /> 
     <attr   name="Color"            xs:type="string"                            other:relativePath="color"          desc="Identifies the label color."                                                                                                                                                                                                                                                                                                              /> 
     <attr   name="CreatedAt"        xs:type="datetime"                          other:relativePath="createdAt"      desc="Identifies the date and time when the label was created."                                                                                                                  other:orderby="CREATED_AT"                                                                                                                           /> 
     <attr   name="Description"      xs:type="string"                            other:relativePath="description"    desc="A brief description of this label."                                                                                                                                                                                                                                                                                                       /> 
     <attr   name="IsDefault"        xs:type="boolean"                           other:relativePath="isDefault"      desc="Indicates whether or not this is a default label."                                                                                                                                                                                                                                                                                        /> 
     <attr   name="Name"             xs:type="string"                            other:relativePath="name"           desc="Identifies the label name."                                      other:filter="name:="    other:argumenttype="String!"                                 other:orderby="NAME"                                                       other:isPathFilter="true"                                       /> 
     <attr   name="ResourcePath"     xs:type="string"                            other:relativePath="resourcePath"   desc="The HTTP path for this label."                                                                                                                                                                                                                                                                                                            /> 
     <attr   name="UpdatedAt"        xs:type="datetime"                          other:relativePath="updatedAt"      desc="Identifies the date and time when the label was last updated."                                                                                                                                                                                                                                                                            /> 
     <attr   name="Url"              xs:type="string"                            other:relativePath="url"            desc="The HTTP URL for this label."                                                                                                                                                                                                                                                                                                             /> 
   </rsb:info> 

   <rsb:script method="GET"> 
     <rsb:push op="graphqladoSelect" /> 
   </rsb:script> 

 </rsb:script>

Example Custom Headers

Static Headers

The following example shows how to add static headers in the schema file. These headers are added to the request every time the schema file is called.

  <rsb:script xmlns:rsb="http://apiscript.com/ns?v1" xmlns:xs="http://www.cdata.com/ns/rsbscript/2" xmlns:other="http://apiscript.com/ns?v1"> 
    ...
    <input name="Ship1" other:headerName="DynamicValuedHeader" />
    <input name="Ship2" other:headerName="DynamicValuedHeader" />
  </rsb:info> 

  <api:set attr="Header:Name#1"  value="StaticValuedHeader" />
  <api:set attr="Header:Value#1" value="StaticValuedHeader__Value" />

Dynamic Headers

The following example shows how to add dynamic headers in the schema file. These headers are added to the request every time the schema file is called.

  <rsb:script xmlns:rsb="http://apiscript.com/ns?v1" xmlns:xs="http://www.cdata.com/ns/rsbscript/2" xmlns:other="http://apiscript.com/ns?v1"> 
    ...
    <input name="Ship1" other:headerName="DynamicValuedHeader" />
    <input name="Ship2" other:headerName="DynamicValuedHeader" />
    <input name="Ship3" other:headerName="DynamicValuedHeader2" />
  </rsb:info> 

  <api:set attr="Header:Name#1"  value="DynamicValuedHeader" />
  <api:set attr="Header:Value#1" value="[_input.Ship1] - [_input.Ship2]" />

  SELECT * FROM [Table] WHERE [Ship1] = "Value1" AND [Ship2] = "Value2" AND [DynamicValuedHeader2] = "custom value"
In the above example, the value format of DynamicValuedHeader is parsed by the driver, but for DynamicValuedHeader2, it is the same as the value specified in the query.

GraphQL Connector for CData Sync

カラム定義

The basic attributes of a column are the name of the column, the data type, whether the column is a primary key, the relative path and the depth. The Sync App uses the depth attribute to extract nodes from hierarchical data.

Mark up column attributes in the block of the schema file. You can also provide a description of each attribute using the desc property.

 <rsb:script xmlns:rsb="http://apiscript.com/ns?v1" xmlns:xs="http://www.cdata.com/ns/rsbscript/2" xmlns:other="http://apiscript.com/ns?v1"> 
   <rsb:info title="Labels" desc="Lists information about the different labels you can apply on an issue." other:possiblePaths="{'path':'/repository/labels/edges/node','Name':{'path':'/repository/label'}}" other:paginationObjects="{'labels':{'cursorPath':'after','cursorType':'String','pageSizeArgumentPath':'first','pageSizeArgumentType':'Int','depth':'1','paginationType':'Cursor','isConnection':'True','pageInfo':['endCursor','hasNextPage','hasPreviousPage','startCursor']}}"> 
     <attr   name="Id"               xs:type="string"     key="true"   other:relativePath="id"             desc="The ID of the label."                                                                                                                                                                                                                                                                                                                  /> 
     <attr   name="RepositoryName"   xs:type="string"                            other:relativePath="name"           desc="The name of the repository."                                     other:filter="name:="    other:argumenttype="String!"    other:depth="1"                                           references="Repositories.Name"                                                                             /> 
     <attr   name="UserLogin"        xs:type="string"                                                                          desc="The login name of the user."                                     other:filter="owner:="   other:argumenttype="String!"    other:depth="1"                                           references="Users.Login"         other:mirror="true"         other:canBeSliced="true"  /> 
     <attr   name="Color"            xs:type="string"                            other:relativePath="color"          desc="Identifies the label color."                                                                                                                                                                                                                                                                                                           /> 
     <attr   name="CreatedAt"        xs:type="datetime"                          other:relativePath="createdAt"      desc="Identifies the date and time when the label was created."                                                                                                                  other:orderby="CREATED_AT"                                                                                                                        /> 
     <attr   name="Description"      xs:type="string"                            other:relativePath="description"    desc="A brief description of this label."                                                                                                                                                                                                                                                                                                    /> 
     <attr   name="IsDefault"        xs:type="boolean"                           other:relativePath="isDefault"      desc="Indicates whether or not this is a default label."                                                                                                                                                                                                                                                                                     /> 
     <attr   name="Name"             xs:type="string"                            other:relativePath="name"           desc="Identifies the label name."                                      other:filter="name:="    other:argumenttype="String!"                                 other:orderby="NAME"                                                    other:isPathFilter="true"                                       /> 
     <attr   name="ResourcePath"     xs:type="string"                            other:relativePath="resourcePath"   desc="The HTTP path for this label."                                                                                                                                                                                                                                                                                                         /> 
     <attr   name="UpdatedAt"        xs:type="datetime"                          other:relativePath="updatedAt"      desc="Identifies the date and time when the label was last updated."                                                                                                                                                                                                                                                                         /> 
     <attr   name="Url"              xs:type="string"                            other:relativePath="url"            desc="The HTTP URL for this label."                                                                                                                                                                                                                                                                                                          /> 
   </rsb:info> 

   <rsb:script method="GET"> 
     <rsb:push op="graphqladoSelect" /> 
   </rsb:script> 

 </rsb:script>
The following sections provide more detail on using paths to extract columns and rows. To see the column definitions in a complete schema, refer to スキーマのカスタマイズ.

Mapping SELECT Projection to GraphQL Fields

Control the building process of a GraphQL field path with the properties listed below:

  1. The other:possiblePaths property is used to specify the base paths that select the column's value.

    Base paths start with a '/' and contain the full path to the last GraphQL nested object.

      <rsb:info title="Labels" desc="Lists information about the different labels you can apply to an issue." other:possiblePaths="{'path':'/repository/labels/edges/node','Name':{'path':'/repository/label'}}" other:paginationObjects="{'labels':{'cursorPath':'after','cursorType':'String','pageSizeArgumentPath':'first','pageSizeArgumentType':'Int','depth':'1''paginationType':'Cursor','isConnection':'True','pageInfo':['endCursor','hasNextPage','hasPreviousPage','startCursor']}}">
    The following GraphQL query is based on the above script example:
    { # base path=/repository/labels/edges/node
      repository {
        labels {
          edges {
            node {
              ...
            }
          }
        }
      }
    }

  2. The other:relativePath property must be specified for each column. This property is used in conjuction with the other:possiblePaths property to build the GraphQL field path.

      <attr   name="Name"  xs:type="string"  other:relativePath="name"  desc="Identifies the label name."    />
    Based on the above script example the Sync App will build the following GraphQL query:
    { # base path=/repository/labels/edges/node
      repository { # depth=1 
        labels { # depth=2
          edges {
            node {
              name # path=base path + relative path.
            }
          }
        }
      }
    }

  3. Use the other:depth property to specify an element inside a specific GraphQL object. The indexes are 1-based. If this attribute is not specified then the default value will be equal to the last nested GraphQL object.

      <attr   name="RepositoryName"   xs:type="string"  other:relativePath="name"   desc="The name of the repository."  other:depth="1" />
    The following GraphQL query is built from the above script example:
    { # base path=/repository/labels/edges/node
      repository { # depth=1 
        name # This is mapped to the RepositoryName column
        labels { # depth=2
          edges {
            node {
              ...
            }
          }
        }
      }
    }

  4. Use the other:fragment property to specify a group of fields. This property can be used when the GraphQL server returns an array of objects and the Sync App may need to push this info as an aggregate.

      <attr   name="ColumnValues"   xs:type="string"  other:relativePath="column_values"   desc="Column values."  other:fragment="fragment ItemColumnValues on ColumnValue {  id \\r\\n value }" />
    Based on the above script example, the Sync App will build the following GraphQL query:
    query {
        items {
            column_values {
                ...ItemColumnValues
            }
        }
    }
    fragment ItemColumnValues on ColumnValue {
        id
        value
    }

  5. Use the other:canbesliced property enable slicing behavior in the Sync App

    For example,

    SELECT * FROM Table WHERE Col IN ('1','2','3')
    becomes
    SELECT * FROM Table WHERE Col=1
    SELECT * FROM Table WHERE Col=2
    SELECT * FROM Table WHERE Col=3

  6. Use the other:mirror property to reflect the value specified in the criteria. Use on columns that are not specified in the server response.

    For example:


    SELECT * FROM Table WHERE Col=X (If other:mirror=true the Sync App will artificially set the value of Col to X for every row.)
  7. Use references to reference the key column of the parent table. Example: If there are two tables Orders and OrderLineItems and the OrderLineItems has a column OrderId, the references field for this column will be "Orders.Id".

Notes:

  • Paths and column names (when used to generate the path) are case sensitive.
  • At least one possible path should be specified.
  • The other:relativePath property must be specified for every column. Otherwise, the Sync App cannot map the SELECT column to a GraphQL field.

GraphQL Connector for CData Sync

SELECT 実行

When a SELECT query is issued, the Sync App executes the GET method of the schema, which invokes the Sync App's built-in operations to process GraphQL. In the GET method, you have control over the request for data. The following procedures show several ways to use this: search the remote data, server-side, with SELECT WHERE, or implement paging.

Mapping SELECT criteria to GraphQL arguments

The following sections show how to translate a SELECT WHERE statement into a GraphQL query to GraphQL APIs. The procedure uses the following statement:

SELECT * 
FROM <table> 
WHERE ModifiedAt < '2019-10-30 05:05:36.001'

If this filter is supported on the server via query parameters, you can use the other:filter property of the api:info column definition to specify the desired mapping. For the above query, the Sync App uses this property to map the modifiedAt < '<date>' filter to the query parameter that returns results modified before a given date, and the modifedAt > '<date>' filter to the query parameter that filters the results modified after that date.

  • other:filter is a semicolon-separated list of <parameter name>:<operator list>. <parameter name> is the name of the query parameter and <operator list> is a comma-separated list of operators used for the mapping. Valid operators are <, <=, =, > and >=.
  • other:argumentType is a required extra info. It should contain the type of the argument based on the GraphQL schema type language.

To perform this mapping, the Sync App would use the following markup for the modifedAt column definition:

<attr name="ModifiedAt" xs:type="datetime" other:relativePath="modifiedAt" other:argumentType="DateTime" description="When the vendor was last modified." other:filter="modifiedAtAfter:>;modifiedAtBefore:<" />

This query results in the following postdata:

{
    "variables": {
        "ModifiedAt_modifiedAtBefore": "2019-10-30T09:05:36.001Z"
    },
    "query": "query($ModifiedAt_modifiedAtBefore:DateTime) {\r\nbusinesses {\r\nedges {\r\nnode {\r\ncustomers(modifiedAtBefore:$ModifiedAt_modifiedAtBefore) {\r\nedges {\r\nnode {\r\nid\r\nmodifiedAt\r\n}\r\n}\r\npageInfo {\r\ntotalPages\r\ncurrentPage\r\n}\r\n}\r\nid\r\n}\r\n}\r\npageInfo {\r\ntotalPages\r\ncurrentPage\r\n}\r\n}\r\n}\r\n"
}

Path filters

There are GraphQL services where the GraphQL argument is not enough to process the filter server-side. The path should be changed. In order to correctly use a path filter, you must complete the following steps:
  1. Add the path to the other:possiblePaths extra info and map it with the column name you want to filter.

    Ex: other:possiblepaths="{'path':'/businesses/edges/node','id':{'path':'/business'}}"

  2. Set the other:isPathFilter to TRUE in the column definition.
    <attr  name="Id"  xs:type="string" key="true" other:relativePath="id" other:isPathFilter="true" other:filter="id:="  />
After completing these steps, the following SQL query
SELECT Id, Name, CreatedAt FROM Businesses WHERE Id = 'QnVzaW5M6ZTY4ZDA2MmQtYzkzZS00MGZkLTk4YWUtNDg2YzcxMmExNzFl'
is converted to the postdata:
{
    "variables": {
        "Id_id": "QnVzaW5M6ZTY4ZDA2MmQtYzkzZS00MGZkLTk4YWUtNDg2YzcxMmExNzFl"
    },
    "query": "query($Id_id:ID) {\r\nbusiness(id:$Id_id) {\r\nid\r\nname\r\ncreatedAt\r\n}\r\n}\r\n"
}

Pagination

The driver supports two pagination modes.

  • Cursor
    other:paginationObjects = "{
        'labels': {
            'cursorPath': 'after',
            'cursorType': 'String',
            'pageSizeArgumentPath': 'first',
            'pageSizeArgumentType': 'Int',
    	'depth':'1',
            'paginationType': 'Cursor',
            'isConnection': 'True',
            'pageInfo': ['endCursor', 'hasNextPage', 'hasPreviousPage', 'startCursor']
        }
    }"
    The following postdata is generated after processing the other:paginationObjects table extra info specified above:
    {
        "variables": {
            "UserLogin_owner": "testaccount71",
            "RepositoryName_name": "test",
            "first": <Pagesize>
        },
        "query": "query($UserLogin_owner:String!, $RepositoryName_name:String!, $first:Int) {\r\nrepository(owner:$UserLogin_owner, name:$RepositoryName_name) {\r\nlabels(first:$first) {\r\nedges {\r\nnode {\r\nid\r\ncolor\r\ncreatedAt\r\ndescription\r\nisDefault\r\nname\r\nresourcePath\r\nupdatedAt\r\nurl\r\n}\r\n}\r\npageInfo {\r\nendCursor\r\nhasNextPage\r\n}\r\n}\r\nname\r\n}\r\n}\r\n"
    }
  • Offset
    other:paginationObjects="{
        'businesses': {
            'offsetArgumentPath': 'page',
            'offsetArgumentType': 'Int',
            'pageSizeArgumentPath': 'pageSize',
            'pageSizeArgumentType': 'Int',
    	'depth':'1',
            'paginationType': 'Offset',
            'isConnectionObject': 'True',
            'pageInfo': ['currentPage', 'totalPages', 'totalCount']
        }
    }"
    The following postdata is generated after processing the other:paginationObjects table extra info specified above:
    {
        "variables": {
            "pageSize_1": <Pagesize>
        },
        "query": "query($pageSize_1:Int) {\r\nbusinesses(pageSize:$pageSize_1) {\r\nedges {\r\nnode {\r\nid\r\n}\r\n}\r\npageInfo {\r\ntotalPages\r\ncurrentPage\r\n}\r\n}\r\n}\r\n"
    }
Note: The driver supports pagination with input objects as arguments.
other:paginationObjects="{
    'businesses': {
        'offsetArgumentPath': 'query/pagination/page',
        'offsetArgumentType': 'custom_query',
        'pageSizeArgumentPath': 'query/pagination/pageSize',
        'pageSizeArgumentType': 'custom_query',
		'depth':'1',
        'paginationType': 'Offset',
        'isConnectionObject': 'True',
        'pageInfo': ['currentPage', 'totalPages', 'totalCount']
    }
}"
The following postdata is generated after processing the other:paginationObjects table extra info specified above:
{
    "variables": {
        "query": {
			"pagination": {
				"pageSize":<Pagesize>
			}
		}
    },
    "query": "query($query:custom_query) {\r\nbusinesses(query:$query) {\r\nedges {\r\nnode {\r\nid\r\n}\r\n}\r\npageInfo {\r\ntotalPages\r\ncurrentPage\r\n}\r\n}\r\n}\r\n"
}

Process Other SELECT Statements Server Side

ORDER BY

You can sort the results server-side (if the GraphQL service supports doing so) by specifying the following properties:
  • The other:orderByFormat can be specified in the table definition or in the column definition.
    <rsb:info title="Labels" desc="Lists information about the different labels you can apply on an issue." other:orderByFormat="{field: {orderByArgumentValue}, direction: {sortOrder}}">
    <attr name="CreatedAt" xs:type="datetime" other:relativePath="createdAt"  other:orderByFormat="{field: {orderByArgumentValue}, direction: {sortOrder}}" other:orderBy="orderBy:CREATED_AT" />
  • The other:orderBy should be specified only in the column definition. The format of this property is <orderByArgumentName>:<orderByArgumentValue>
    <attr name="CreatedAt" xs:type="datetime" other:relativePath="createdAt"  other:orderBy="orderBy:CREATED_AT" />
After completing these steps, the following SQL query
SELECT Id FROM Labels ORDER BY CreatedAt ASC
is converted to this postdata:
{
    "variables": {
        "first": <Pagesize>
    },
    "query": "query($first:Int) {\r\nrepository {\r\nlabels(sort:{field: CREATED_AT, direction: ASC}, first:$first) {\r\nedges {\r\nnode {\r\nid\r\n}\r\n}\r\npageInfo {\r\nendCursor\r\nhasNextPage\r\n}\r\n}\r\n}\r\n}\r\n"
}

GraphQL Connector for CData Sync

オペレーション

The Sync App has high-performance operations for processing GraphQL data sources. These operations are platform neutral: Schema files that invoke these operations can be used in both .NET and Java. You can also extend the Sync App with your own operations written in .NET or Java.

The Sync App has the following operations:

Operation NameDescription
OAuthGetAccessTokenFor OAuth 1.0, exchange a request token for an access token. For OAuth 2.0, get an access token or get a new access token with the refresh token.
OAuthGetUserAuthorizationURLGenerates the user authorization URL. OAuth 2.0 will not access the network in this operation.

GraphQL Connector for CData Sync

OAuthGetAccessToken

The OAuthGetAccessToken operation is an APIScript operation that is used to facilitate the OAuth authentication and refresh flows.

The Sync App includes stored procedures that invoke this operation to complete the OAuth exchange. The following example schema briefly lists some of the typically required inputs before the following sections explain them in more detail.

Creating a GetOAuthAccessToken Stored Procedure

Invoke the OAuthGetAccessToken with the GetOAuthAccessToken stored procedure. The following inputs are required for most data sources and will provide default values for the connection properties of the same name.

<api:script xmlns:api="http://www.rssbus.com/ns/rsbscript/2">

  <api:info title="GetOAuthAccessToken"   description="Obtains the OAuth access token to be used for authentication with various APIs."                                                         >
    <input  name="AuthMode"               desc="The OAuth flow. APP or WEB."                                                                                                                    />
    <input  name="CallbackURL"            desc="The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. " />
    <input  name="OAuthAccessToken"       desc="The request token. OAuth 1.0 only."                                                                                                             />
    <input  name="OAuthAccessTokenSecret" desc="The request token secret. OAuth 1.0 only."                                                                                                      />
    <input  name="Verifier"               desc="The verifier code obtained when the user grants permissions to your app."                                                                       />

    <output name="OAuthAccessToken"       desc="The access token."                                                                                                                              />
    <output name="OAuthTokenSecret"       desc="The access token secret."                                                                                                                       />
    <output name="OAuthRefreshToken"      desc="A token that may be used to obtain a new access token."                                                                                         />
 </api:info>

  <!-- Set OAuthVersion to 1.0 or 2.0. -->
  <api:set attr="OAuthVersion"                                                    value="MyOAuthVersion"                 />
  <!-- Set RequestTokenURL to the URL where the request for the request token is made. OAuth 1.0 only.-->
  <api:set attr="OAuthRequestTokenURL"                                            value="http://MyOAuthRequestTokenURL" />
  <!-- Set OAuthAuthorizationURL to the URL where the user logs into the service and grants permissions to the application. -->
  <api:set attr="OAuthAuthorizationURL"                                           value="http://MyOAuthAuthorizationURL" />
  <!-- Set OAuthAccessTokenURL to the URL where the request for the access token is made. -->
  <api:set attr="OAuthAccessTokenURL"                                             value="http://MyOAuthAccessTokenURL"   />
  <!-- Set GrantType to the authorization grant type. OAuth 2.0 only. -->
  <api:set attr="GrantType"                                                       value="CODE"                           />
  <!-- Set SignMethod to the signature method used to calculate the signature of the request. OAuth 1.0 only.-->
  <api:set attr="SignMethod"                                                      value="HMAC-SHA1"                      />
  <api:call op="oauthGetAccessToken">
    <api:push/>
  </api:call>
  
</api:script>

Writing the RefreshOAuthAccessToken Stored Procedure

You can also use OAuthGetAccessToken to refresh the access token by providing the following inputs:

<api:script xmlns:api="http://www.rssbus.com/ns/rsbscript/2">

  <api:info title="RefreshOAuthAccessToken" description="Refreshes the OAuth access token used for authentication." >
    <input  name="OAuthRefreshToken"        desc="A token that may be used to obtain a new access token."           />

    <output name="OAuthAccessToken"         desc="The authentication token returned."                               />
    <output name="OAuthTokenSecret"         desc="The authentication token secret returned. OAuth 1.0 only."        />
    <output name="OAuthRefreshToken"        desc="A token that may be used to obtain a new access token."           />
    <output name="ExpiresIn"                desc="The remaining lifetime on the access token."                      />

  </api:info>

  <!-- Set OAuthVersion to 1.0 or 2.0. -->
  <api:set attr="OAuthVersion"                                                    value="MyOAuthVersion"                 />
    <!-- Set GrantType to REFRESH. OAuth 2.0 only. -->
    <api:set attr="GrantType"            value="REFRESH" />
    <!-- Set SignMethod to the signature method used to calculate the signature of the request. OAuth 1.0 only.-->
    <api:set attr="SignMethod"           value="HMAC-SHA1" />
    <!-- Set OAuthAccessTokenURL to the URL where the request for the access token is made. -->
    <api:set attr="OAuthAccessTokenURL"  value="http://MyOAuthAccessTokenURL" />
    <!-- Set AuthMode to 'WEB' when calling RefreshOAuthAccessToken -->
    <api:set attr="AuthMode" value="WEB"/>
  <api:call op="oauthGetAccessToken">
    <api:push/>
  </api:call>
  
</api:script>

Input Parameters

  • OAuthVersion: The OAuth version. The allowed values are 1.0, 2.0. The default value is 1.0.
  • AuthMode: The OAuth flow. OAuth 2.0 only. If you choose the App mode, this operation will launch your browser and prompt you to authenticate with your account credentials. Set this parameter to WEB to authenticate a Web app or if the Sync App is not allowed to open a Web browser. The default value is APP.
  • OAuthRequestTokenURL: The URL where the Sync App makes a request for the request token. OAuth 1.0 only. Required for OAuth 1.0.
  • OAuthAuthorizationURL: The URL where the user logs into the service and grants permissions to the application. In OAuth 1.0, if permissions are granted the request token is authorized.
  • OAuthAccessTokenURL: The URL where the request for the access token is made. In OAuth 1.0, the authorized request token is exchanged for the access token.
  • CallbackURL: The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. This value must match the callback URL you specify when you register an app. Note that your data source may additionally require the port.
  • OAuthClientId: The client Id obtained when you register an app. Also called a consumer key.
  • OAuthClientSecret: The client secret obtained when you register an app. Also called a consumer secret.
  • OAuthAccessToken: The request token. OAuth 1.0 only.
  • OAuthAccessTokenSecret: The request token secret. OAuth 1.0 only.
  • OAuthRefreshToken: A token that may be used to obtain a new access token.
  • GrantType: Authorization grant type. OAuth 2.0 only. The allowed values are CODE, PASSWORD, CLIENT, REFRESH. The default value is CODE.
  • Verifier: The verifier code obtained when the user grants permissions to the Sync App. In the OAuth 2.0 code grant type, the verifier code is located in the code query string parameter of the callback URL. In OAuth 1.0, the verifier is located in the oauth_verifier query string parameter of the callback URL.
  • SignMethod: The signature method used to calculate the signature for OAuth 1.0. The allowed values are HMAC-SHA1, PLAINTEXT. The default value is HMAC-SHA1.
  • Cert: Path for the PFX personal certificate file. OAuth 1.0 only.
  • CertPassword: Personal certificate password. OAuth 1.0 only.
  • OtherOptions: Other options to control the behavior of OAuth.
  • OAuthParam:*: Other parameters.
  • PostData: The HTTP POST data.
  • Timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default value is 60.
  • LogFile: Specifies a file where the request and response are logged.
  • Proxy_Auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. The allowed values are TRUE, FALSE. The default value is FALSE.
  • Proxy_Server: IP address or host name of the proxy server used for the request.
  • Proxy_Port: The port number of the proxy server.
  • Proxy_User: The user Id used to authenticate with the proxy server.
  • Proxy_Password: The password used to authenticate with the proxy server.
  • Proxy_AuthScheme: The authentication scheme of the proxy server. The allowed values are BASIC, DIGEST, PROPRIETARY, NONE, NTLM. The default value is BASIC.
  • Proxy_AuthToken: The proxy authentication token.
  • Proxy_SSLType: The SSL type of the proxy server. The allowed values are AUTO, ALWAYS, NEVER, TUNNEL. The default value is AUTO.
  • Firewall_Type: The type of the firewall. The allowed values are NONE, TUNNEL, SOCKS4, SOCKS5. The default value is NONE.
  • Firewall_Server: The IP address or host name of the firewall.
  • Firewall_Port: The port number of the firewall.
  • Firewall_User: The user Id used to authenticate with the firewall.
  • Firewall_Password: The password used to authenticate with the firewall.

Output Parameters

  • OAuthAccessToken: The access token.
  • OAuthTokenSecret: The access token secret.
  • OAuthRefreshToken: A token that may be used to obtain a new access token.
  • ExpiresIn: The remaining lifetime on the access token.
  • OAuthParam:*: Other parameters sent from the server.

GraphQL Connector for CData Sync

OAuthGetUserAuthorizationURL

The OAuthGetUserAuthorizationURL is an APIScript operation that is used to facilitate the OAuth authentication flow for Web apps, for offline apps, and in situations where the Sync App is not allowed to open a Web browser. To pass the needed inputs to this operation, define the GetOAuthAuthorizationURL stored procedure. The Sync App can call this internally.

Define stored procedures in .rsb files with the same file name as the schema's title. The example schema briefly lists some of the typically required inputs before the following sections explain them in more detail.

Writing the GetOAuthAuthorizationURL Stored Procedure

Call OAuthGetUserAuthorizationURL in the GetOAuthAuthorizationURL stored procedure.

<api:script xmlns:api="http://www.rssbus.com/ns/rsbscript/2">

  <api:info title="Get OAuth Authorization URL" description="Obtains the OAuth authorization URL used for authentication with various APIs."                                                          >
    <input  name="CallbackURL"                  desc="The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. " />

    <output name="URL"                          desc="The URL where the user logs in and is prompted to grant permissions to the app. "                                                               />
    <output name="OAuthAccessToken"             desc="The request token. OAuth 1.0 only."                                                                                                             />
    <output name="OAuthTokenSecret"             desc="The request token secret. OAuth 1.0 only."                                                                                                      />
  </api:info>

  <!-- Set OAuthVersion to 1.0 or 2.0. -->
  <api:set attr="OAuthVersion"          value="MyOAuthVersion"                 />
  <!-- Set ResponseType to the desired authorization grant type. OAuth 2.0 only.-->
  <api:set attr="ResponseType"           value="code"                           />
  <!-- Set SignMethod to the signature method used to calculate the signature. OAuth 1.0 only.-->
  <api:set attr="SignMethod"            value="HMAC-SHA1"                      />
  <!-- Set OAuthAuthorizationURL to the URL where the user logs into the service and grants permissions to the application. -->
  <api:set attr="OAuthAuthorizationURL"  value="http://MyOAuthAuthorizationURL" />
  <!-- Set OAuthAccessTokenURL to the URL where the request for the access token is made. -->
  <api:set attr="OAuthAccessTokenURL"   value="http://MyOAuthAccessTokenURL"/>
  <!-- Set RequestTokenURL to the URL where the request for the request token is made. OAuth 1.0 only.-->
  <api:set attr="OAuthRequestTokenURL"   value="http://MyOAuthRequestTokenURL"       />
  <api:call op="oauthGetUserAuthorizationUrl">
    <api:push/>
  </api:call>
  
</api:script>

<p>

Input Parameters

  • OAuthVersion: The OAuth version. The allowed values are 1.0, 2.0. The default value is 1.0.
  • OAuthAuthorizationURL: The URL where the user logs into the service and grants permissions to the application. In OAuth 1.0, if permissions are granted the request token is authorized.
  • OAuthRequestTokenURL: The URL where the Sync App makes a request for the request token. OAuth 1.0 only. Required for OAuth 1.0.
  • CallbackURL: The URL to be used as a trusted redirect URL, where the user will return with the token that verifies that they have granted your app access. This value must match the callback URL you specify when you register an app. Note that your data source may additionally require the port. The default value is http://127.0.0.1/.
  • OAuthClientId: The client Id. Also called a consumer key.
  • OAuthClientSecret: The client secret. Also called a consumer secret.
  • ResponseType: The desired authorization grant type. OAuth 2.0 only. The allowed values are CODE, IMPLICIT. The default value is CODE.
  • SignMethod: The signature method used to calculate the signature for OAuth 1.0. The allowed values are HMAC-SHA1, RSA-SHA1, PLAINTEXT. The default value is HMAC-SHA1.
  • Cert: Path for the personal certificate PFX file. OAuth 1.0 only.
  • CertPassword: Personal certificate password. OAuth 1.0 only.
  • OtherOptions: Other options to control the behavior of OAuth.
  • OAuthParam:*: Other parameters. OAuth 1.0 only.
  • Timeout: The timeout, in seconds, for the operation to complete. Zero (0) means no timeout. The default value is 60.
  • Proxy_Auto: Whether or not the proxy should be detected from Windows system settings. This takes precedence over other proxy settings and is not available in Java. The allowed values are TRUE, FALSE. The default value is FALSE.
  • Proxy_Server: IP address or host name of the proxy server used for the request.
  • Proxy_Port: The port number of the proxy server.
  • Proxy_User: The user Id used to authenticate with the proxy server.
  • Proxy_Password: The password used to authenticate with the proxy server.
  • Proxy_AuthScheme: The authentication scheme of the proxy server. The allowed values are BASIC, DIGEST, PROPRIETARY, NONE, NTLM. The default value is BASIC.
  • Proxy_AuthToken: The proxy authentication token.
  • Proxy_SSLType: The SSL type of the proxy server. The allowed values are AUTO, ALWAYS, NEVER, TUNNEL. The default value is AUTO.
  • Firewall_Type: The type of the firewall. The allowed values are NONE, TUNNEL, SOCKS4, SOCKS5. The default value is NONE.
  • Firewall_Server: The IP address or host name of the firewall.
  • Firewall_Port: The port number of the firewall.
  • Firewall_User: The user Id used to authenticate with the firewall.
  • Firewall_Password: The password used to authenticate with the firewall.

Output Parameters

  • URL: The URL where the user logs in and is prompted to grant permissions to the app. In OAuth 1.0, if permissions are granted the request token is authorized.
  • OAuthAccessToken: The request token. OAuth 1.0 only.
  • OAuthTokenSecret: The request token secret. OAuth 1.0 only.
  • OAuthParam:*: Other parameters sent from the server. OAuth 1.0 only.

GraphQL Connector for CData Sync

接続文字列オプション

接続文字列プロパティは、接続を確立するために使用できるさまざまなオプションです。このセクションでは、本プロバイダーの接続文字列で設定できるオプションの一覧を示します。詳細については各リンクをクリックしてください。

接続を確立する方法について詳しくは、接続の確立を参照してください。

Authentication


プロパティ説明
AuthSchemeThe type of authentication to use when connecting to remote services.
URLThe URL of the GraphQL service.
User認証するGraphQL ユーザーアカウントのユーザーID を指定します。
Password認証するユーザーアカウントのパスワードを指定します。

AWS Authentication


プロパティ説明
AWSCognitoRegionAWS Cognito のホスティングリージョン。
AWSUserPoolIdユーザープールのID。
AWSUserPoolClientAppIdユーザープールのアプリクライアントID。
AWSUserPoolClientAppSecretユーザープールのアプリクライアントシークレット。(オプション)

OAuth


プロパティ説明
OAuthVersion使われているOAuth のバージョン。
OAuthClientIdカスタムOAuth アプリケーションの作成時に割り当てられたクライアントId を指定します。(コンシューマーキーとも呼ばれます。)このID は、カスタムアプリケーションをOAuth 認可サーバーに登録します。
OAuthClientSecretカスタムOAuth アプリケーションの作成時に割り当てられたクライアントシークレットを指定します。( コンシューマーシークレット とも呼ばれます。)このシークレットは、カスタムアプリケーションをOAuth 認可サーバーに登録します。
OAuthGrantType選択したOAuth フローのグラント種別を指定します。 この値は、OAuth カスタムアプリケーション作成時に設定されたグラント種別と同じである必要があります。
OAuthIncludeCallbackURLアクセストークンリクエストにコールバックURL を含めるかどうか。
OAuthAuthorizationURLOAuth サービスの認可URL。
OAuthAccessTokenURLOAuth アクセストークンを取得するURL。
OAuthRefreshTokenURLOAuth トークンをリフレッシュするURL。
OAuthRequestTokenURLサービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。
AuthTokenOAuth アクセストークンをリクエストおよび取得するために使用される認証トークン。
AuthKeyOAuth アクセストークンをリクエストおよび取得するために使用される認証シークレット。
OAuthParamsOAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。

JWT OAuth


プロパティ説明
OAuthJWTCertJWT 証明書のストア。
OAuthJWTCertTypeJWT 証明書を格納するキーストアの種類。
OAuthJWTCertPasswordOAuth JWT 証明書のパスワード。パスワードを必要とする証明書ストアにアクセスするために使用されます。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。
OAuthJWTCertSubjectOAuth JWT 証明書のサブジェクトで、ストアで一致する証明書を検索するために使用されます。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。

SSL


プロパティ説明
SSLClientCertSSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストアを指定します。このプロパティは、他のSSL 関連プロパティと連動して、セキュアな接続を確立します。
SSLClientCertTypeSSL クライアント認証用のTLS/SSL クライアント証明書を格納するキーストアの種類を指定します。プラットフォームや証明書のソースに応じて、さまざまなキーストア形式から選択できます。
SSLClientCertPasswordTLS/SSL クライアント証明書ストアにアクセスするために必要なパスワードを指定します。選択した証明書ストアの種類がアクセスにパスワードを必要とする場合、このプロパティを使用します。
SSLClientCertSubjectTLS/SSL クライアント証明書のサブジェクトを指定し、証明書ストアで場所を検索します。 CN=www.server.com, C=US のように、識別名フィールドのカンマ区切りのリストを使用します。ワイルドカード * は、ストアの先頭の証明書を選択します。
SSLServerCertTLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。

Firewall


プロパティ説明
FirewallTypeprovider がプロキシベースのファイアウォールを介してトラフィックをトンネリングするために使用するプロトコルを指定します。
FirewallServerファイアウォールを通過し、ユーザーのクエリをネットワークリソースに中継するために使用されるプロキシのIP アドレス、DNS 名、またはホスト名を識別します。
FirewallPortプロキシベースのファイアウォールで使用するTCP ポートを指定します。
FirewallUserプロキシベースのファイアウォールに認証するアカウントのユーザーID を識別します。
FirewallPasswordプロキシベースのファイアウォールで認証するユーザーアカウントのパスワードを指定します。

Proxy


プロパティ説明
ProxyAutoDetectprovider が、手動で指定されたプロキシサーバーを使用するのではなく、既存のプロキシサーバー構成についてシステムプロキシ設定をチェックするかどうかを指定します。
ProxyServerHTTP トラフィックをルートするプロキシサーバーのホストネームもしくはIP アドレス。
ProxyPortクライアントとの間でHTTP トラフィックをルーティングするために予約された、指定されたプロキシサーバー(ProxyServer 接続プロパティで設定)のTCP ポート。
ProxyAuthSchemeProxyServer 接続プロパティで指定されたプロキシサーバーに対して認証する際にprovider が使用する認証方法を指定します。
ProxyUserProxyServer 接続プロパティで指定されたプロキシサーバーに登録されているユーザーアカウントのユーザー名。
ProxyPasswordProxyUser 接続プロパティで指定されたユーザーに紐付けられたパスワード。
ProxySSLTypeProxyServer 接続プロパティで指定されたプロキシサーバーに接続する際に使用するSSL タイプ。
ProxyExceptionsProxyServer 接続プロパティで設定されたプロキシサーバー経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。

Logging


プロパティ説明
LogModulesログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。

Schema


プロパティ説明
Locationテーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。
BrowsableSchemasレポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
Tablesレポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。
Viewsレポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。
ExpandArgumentsDepthThis property is used to determine how far the provider should search for columns inside the arguments of type INPUT_OBJECT.
ExpandTablesDepthThis property is used to determine the depth of the child tables.
ExpandTemporaryTablesDepthThis property is used to determine the depth of the child temporary tables. Only works if ExposeDynamicProcedures is set to true.
ExpandColumnsDepthThis property is used to determine how far the provider should search for columns inside the GraphQL objects.
IncludeDeprecatedMetadataThis property is used to determine whether the provider should expose deprecated tables and columns or not.
ExposeDynamicProceduresThis property is used to determine whether the provider should expose mutations as dynamic procedures or not.
ExposeObjectTablesThis property is used to determine the extent to which the provider exposes GraphQL object type fields as tables.

Miscellaneous


プロパティ説明
CustomHeaders他のプロパティ(ContentType やFrom など)から作成されたリクエストヘッダーに追加する、追加HTTP ヘッダーを指定します。このプロパティは、特殊または非標準のAPI 用にリクエストをカスタマイズするために使用します。
GenerateSchemaFilesスキーマを生成して保存するユーザーの好みのタイミングを示します。
MaxRows集計やGROUP BY を使用しないクエリで返される最大行数を指定します。
Other特定のユースケースに対して追加の隠しプロパティを指定します。これらは通常のprovider の機能では必要ありません。複数のプロパティを定義するには、セミコロンで区切られたリストを使用します。
PagesizeThe maximum number of results to return per page from GraphQL.
PseudoColumnsテーブルカラムとして公開する擬似カラムを指定します。'TableName=ColumnName;TableName=ColumnName' という形式を使用します。デフォルトは空の文字列で、このプロパティを無効にします。
Timeoutprovider がタイムアウトエラーを返すまでにサーバーからの応答を待機する最大時間を秒単位で指定します。デフォルトは60秒です。タイムアウトを無効にするには0を設定します。
UserDefinedViewsカスタムビューを定義するJSON 構成ファイルへのファイルパスを指定します。provider は、このファイルで指定されたビューを自動的に検出して使用します。
GraphQL Connector for CData Sync

Authentication

このセクションでは、本プロバイダーの接続文字列で設定可能なAuthentication プロパティの全リストを提供します。


プロパティ説明
AuthSchemeThe type of authentication to use when connecting to remote services.
URLThe URL of the GraphQL service.
User認証するGraphQL ユーザーアカウントのユーザーID を指定します。
Password認証するユーザーアカウントのパスワードを指定します。
GraphQL Connector for CData Sync

AuthScheme

The type of authentication to use when connecting to remote services.

解説

General

The following options are generally available to all connections:

  • None: Uses no authentication.
  • Basic: Uses Basic authentication with User and Password.
  • OAuth: Uses either OAuth1 or OAuth2, with the specific flow being determined by the OAuthGrantType. OAuthVersion must be set to determine what version of OAuth is used.
  • OAuthClient: Uses OAuth2 with the client credentials grant type. OAuthClientId and OAuthClientSecret are the credentials. OAuthVersion must be set to 2.0.
  • OAuthPassword: Uses OAuth2 with the password grant type. User and Password are the credentials. OAuthVersion must be set to 2.0.
  • OAuthPKCE: Uses OAuth2 with the authorization code grant type and PKCE extension. OAuthClientId is the credential.
  • AwsCognitoSrp: Set to use Cognito based authentication. This is recommended over AwsCognitoBasic because this option does NOT send the password to the server for authentication, instead it uses the SRP protocol.
  • AwsCognitoBasic: Set to use Cognito based authentication.

GraphQL Connector for CData Sync

URL

The URL of the GraphQL service.

解説

The URL of the GraphQL service.

GraphQL Connector for CData Sync

User

認証するGraphQL ユーザーアカウントのユーザーID を指定します。

解説

認証サーバーは、ユーザーのID を検証するためにUser とPassword の両方を必要とします。

GraphQL Connector for CData Sync

Password

認証するユーザーアカウントのパスワードを指定します。

解説

認証サーバーは、ユーザーのID を検証するためにUser とPassword の両方を必要とします。

GraphQL Connector for CData Sync

AWS Authentication

このセクションでは、本プロバイダーの接続文字列で設定可能なAWS Authentication プロパティの全リストを提供します。


プロパティ説明
AWSCognitoRegionAWS Cognito のホスティングリージョン。
AWSUserPoolIdユーザープールのID。
AWSUserPoolClientAppIdユーザープールのアプリクライアントID。
AWSUserPoolClientAppSecretユーザープールのアプリクライアントシークレット。(オプション)
GraphQL Connector for CData Sync

AWSCognitoRegion

AWS Cognito のホスティングリージョン。

解説

AWS Cognito のホスティングリージョン。利用可能な値は、OHIO、NORTHERNVIRGINIA、NORTHERNCALIFORNIA、OREGON、CAPETOWN、HONGKONG、HYDERABAD、JAKARTA、MALAYSIA、MELBOURNE、MUMBAI、OSAKA、SEOUL、SINGAPORE、SYDNEY、TOKYO、CENTRAL、CALGARY、BEIJING、NINGXIA、FRANKFURT、IRELAND、LONDON、MILAN、PARIS、SPAIN、STOCKHOLM、ZURICH、TELAVIV、BAHRAIN、UAE、SAOPAULO、GOVCLOUDEAST、GOVCLOUDWEST、ISOLATEDUSEAST、ISOLATEDUSEASTB、ISOLATEDUSWEST、およびISOLATEDEUWEST です。

GraphQL Connector for CData Sync

AWSUserPoolId

ユーザープールのID。

解説

[AWS Cognito]->[Manage User Pools(ユーザープールの管理)]->[select your user pool(ユーザープールを選択)]->[General settings(全般設定)]->[Pool ID(プールのID)]で確認できます。

GraphQL Connector for CData Sync

AWSUserPoolClientAppId

ユーザープールのアプリクライアントID。

解説

[AWS Cognito]->[Manage Identity Pools(ID プールの管理)]->[select your user pool(ユーザープールを選択)]->[General settings(全般設定)]->[App clients(アプリクライアント)]->[App client ID(アプリクライアントID)]で確認できます。

GraphQL Connector for CData Sync

AWSUserPoolClientAppSecret

ユーザープールのアプリクライアントシークレット。(オプション)

解説

[AWS Cognito]->[Manage Identity Pools(ID プールの管理)]->[select your user pool(ユーザープールを選択)]->[General settings(全般設定)]->[App clients(アプリクライアント)]->[App client secret(アプリクライアントシークレット)]で確認できます。

GraphQL Connector for CData Sync

OAuth

このセクションでは、本プロバイダーの接続文字列で設定可能なOAuth プロパティの全リストを提供します。


プロパティ説明
OAuthVersion使われているOAuth のバージョン。
OAuthClientIdカスタムOAuth アプリケーションの作成時に割り当てられたクライアントId を指定します。(コンシューマーキーとも呼ばれます。)このID は、カスタムアプリケーションをOAuth 認可サーバーに登録します。
OAuthClientSecretカスタムOAuth アプリケーションの作成時に割り当てられたクライアントシークレットを指定します。( コンシューマーシークレット とも呼ばれます。)このシークレットは、カスタムアプリケーションをOAuth 認可サーバーに登録します。
OAuthGrantType選択したOAuth フローのグラント種別を指定します。 この値は、OAuth カスタムアプリケーション作成時に設定されたグラント種別と同じである必要があります。
OAuthIncludeCallbackURLアクセストークンリクエストにコールバックURL を含めるかどうか。
OAuthAuthorizationURLOAuth サービスの認可URL。
OAuthAccessTokenURLOAuth アクセストークンを取得するURL。
OAuthRefreshTokenURLOAuth トークンをリフレッシュするURL。
OAuthRequestTokenURLサービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。
AuthTokenOAuth アクセストークンをリクエストおよび取得するために使用される認証トークン。
AuthKeyOAuth アクセストークンをリクエストおよび取得するために使用される認証シークレット。
OAuthParamsOAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。
GraphQL Connector for CData Sync

OAuthVersion

使われているOAuth のバージョン。

解説

使われているOAuth のバージョン。次のオプションが利用可能です:Disabled,1.0,2.0

GraphQL Connector for CData Sync

OAuthClientId

カスタムOAuth アプリケーションの作成時に割り当てられたクライアントId を指定します。(コンシューマーキーとも呼ばれます。)このID は、カスタムアプリケーションをOAuth 認可サーバーに登録します。

解説

OAuthClientId は、ユーザーがOAuth 経由で認証を行う前に設定する必要があるいくつかの接続パラメータの1つです。詳細は接続の確立を参照してください。

GraphQL Connector for CData Sync

OAuthClientSecret

カスタムOAuth アプリケーションの作成時に割り当てられたクライアントシークレットを指定します。( コンシューマーシークレット とも呼ばれます。)このシークレットは、カスタムアプリケーションをOAuth 認可サーバーに登録します。

解説

OAuthClientSecret は、ユーザーがOAuth 経由で認証を行う前に設定する必要があるいくつかの接続パラメータの1つです。詳細は接続の確立を参照してください。

GraphQL Connector for CData Sync

OAuthGrantType

選択したOAuth フローのグラント種別を指定します。 この値は、OAuth カスタムアプリケーション作成時に設定されたグラント種別と同じである必要があります。

解説

ほとんどの場合、デフォルトのグラント種別は変更すべきではありません。 最も一般的なOAuth グラント種別とそれぞれのメリット・デメリットについては、https://oauth.net/2/grant-types/ を参照してください。

GraphQL Connector for CData Sync

OAuthIncludeCallbackURL

アクセストークンリクエストにコールバックURL を含めるかどうか。

解説

デフォルトではtrue です。 標準に準拠したOAuth サービスでは、redirect_uri パラメータを必要としないCLIENT やPASSWORD などのグラント種別では、 redirect_uri パラメータを無視するからです。

このオプションは、redirect_uri が含まれる場合にエラーを報告するOAuth サービスに対してのみ有効にしてください。

GraphQL Connector for CData Sync

OAuthAuthorizationURL

OAuth サービスの認可URL。

解説

OAuth サービスの認可URL。このURL でユーザーはサーバーにログインしてアプリケーションにアクセス許可を与えます。OAuth 1.0 では、アクセス許可が付与されるとリクエストトークンが認可されます。

GraphQL Connector for CData Sync

OAuthAccessTokenURL

OAuth アクセストークンを取得するURL。

解説

OAuth アクセストークンを取得するURL。OAuth 1.0 では、このURL で認可されたリクエストトークンがアクセストークンと交換されます。

GraphQL Connector for CData Sync

OAuthRefreshTokenURL

OAuth トークンをリフレッシュするURL。

解説

OAuth トークンをリフレッシュするURL。OAuth 2.0 では、古いトークンの期限が切れたときは、このURL でリフレッシュトークンと新しいアクセストークンと交換します。

GraphQL Connector for CData Sync

OAuthRequestTokenURL

サービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。

解説

サービスがリクエストトークンを取得するために提供するURL。これは、OAuth 1.0 では必須です。OAuth 1.0 では、これがアプリケーションがリクエストトークンをリクエストするURL です。

GraphQL Connector for CData Sync

AuthToken

OAuth アクセストークンをリクエストおよび取得するために使用される認証トークン。

解説

このプロパティは、OAuth 1.0でヘッドレス認証を実行する場合にのみ必要です。これは、GetOAuthAuthorizationUrl ストアドプロシージャから取得できます。

GetOAuthAccessToken ストアドプロシージャでAuthKey とともに指定して、OAuthAccessToken を取得できます。

GraphQL Connector for CData Sync

AuthKey

OAuth アクセストークンをリクエストおよび取得するために使用される認証シークレット。

解説

このプロパティは、OAuth 1.0でヘッドレス認証を実行する場合にのみ必要です。これは、GetOAuthAuthorizationUrl ストアドプロシージャから取得できます。

GetOAuthAccessToken ストアドプロシージャでAuthToken とともに指定して、OAuthAccessToken を取得できます。

GraphQL Connector for CData Sync

OAuthParams

OAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。

解説

OAuth アクセストークンのリクエストでparamname=value の形式でサブミットするその他のパラメータのカンマ区切りのリスト。

GraphQL Connector for CData Sync

JWT OAuth

このセクションでは、本プロバイダーの接続文字列で設定可能なJWT OAuth プロパティの全リストを提供します。


プロパティ説明
OAuthJWTCertJWT 証明書のストア。
OAuthJWTCertTypeJWT 証明書を格納するキーストアの種類。
OAuthJWTCertPasswordOAuth JWT 証明書のパスワード。パスワードを必要とする証明書ストアにアクセスするために使用されます。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。
OAuthJWTCertSubjectOAuth JWT 証明書のサブジェクトで、ストアで一致する証明書を検索するために使用されます。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。
GraphQL Connector for CData Sync

OAuthJWTCert

JWT 証明書のストア。

解説

クライアント証明書のための証明書ストア名。

OAuthJWTCertType フィールドは、OAuthJWTCert により指定された証明書ストアの種類を指定します。 ストアがパスワードで保護されている場合は、OAuthJWTCertPassword でパスワードを指定します。

OAuthJWTCert は、OAuthJWTCertSubject フィールドとともにクライアント証明書を指定するために使われます。 OAuthJWTCert に値がある場合で、OAuthJWTCertSubject が設定されている場合は、証明書の検索が始まります。 詳しくは、OAuthJWTCertSubject フィールドを参照してください。

証明書ストアの指定はプラットフォームに依存します。

Windows の共通のユーザとシステム証明書ストアの指定は以下のとおりです。

MY個人証明書と関連付けられた秘密キーを格納している証明書ストア。
CA証明機関の証明書。
ROOTルート証明書。
SPCソフトウェア発行元証明書。

Javaでは、証明書ストアは通常、証明書および任意の秘密キーを含むファイルです。

証明書ストアの種類がPFXFile の場合は、このプロパティにファイル名を設定します。 PFXBlob の場合は、このプロパティをPFX ファイルのバイナリコンテンツ(例えば、PKCS12証明書ストア)に設定する必要があります。

GraphQL Connector for CData Sync

OAuthJWTCertType

JWT 証明書を格納するキーストアの種類。

解説

このプロパティには次の値の一つを設定できます。

USERWindows の場合、現在のユーザーにより所有された証明書ストアであることを指定します。 Note:この種類はJava では利用できません。
MACHINEWindows の場合、この証明書ストアがシステムストアであることを指定します。 Note:この種類はJava では利用できません。
PFXFILEこの証明書ストアは、証明書を含むPFX(PKCS12)ファイルの名前です。
PFXBLOBこの証明書ストアは、PFX(PKCS12)形式の証明書ストアを表すBase-64でエンコードされた文字列です。
JKSFILEこの証明書ストアは、証明書を含むJava key store(JKS)ファイルの名前です。 Note:この種類はJava のみで利用できます。
JKSBLOBこの証明書ストアは、Java key store(JKS)形式の証明書ストアを表すBase-64でエンコードされた文字列です。 Note:この種類はJava のみで利用できます。
PEMKEY_FILEこの証明書ストアは、秘密キーと任意の証明書を含むPEM でエンコードされたファイルの名前です。
PEMKEY_BLOBこの証明書ストアは、秘密キーと任意の証明書を含むBase-64でエンコードされた文字列です。
PUBLIC_KEY_FILEこの証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むファイルの名前です。
PUBLIC_KEY_BLOBこの証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むBase-64でエンコードされた文字列です。
SSHPUBLIC_KEY_FILEこの証明書ストアは、SSH 公開キーを含むファイルの名前です。
SSHPUBLIC_KEY_BLOBこの証明書ストアは、SSH 公開キーを含むBase-64でエンコードされた文字列です。
P7BFILEこの証明書ストアは、証明書を含むPKCS7 ファイルの名前です。
PPKFILEこの証明書ストアは、PuTTY 秘密キー(PPK)を含むファイルの名前です。
XMLFILEこの証明書ストアは、XML 形式の証明書を含むファイルの名前です。
XMLBLOBこの証明書ストアは、XML 形式の証明書を含む文字列の名前です。
BCFKSFILEこの証明書ストアは、Bouncy Castle キーストアを含むファイルの名前です。
BCFKSBLOBこの証明書ストアは、Bouncy Castle キーストアを含む文字列(Base-64エンコード)です。

GraphQL Connector for CData Sync

OAuthJWTCertPassword

OAuth JWT 証明書のパスワード。パスワードを必要とする証明書ストアにアクセスするために使用されます。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。

解説

このプロパティは、証明書ストアを開くために必要なパスワードを指定します。ただし、ストアの種類がパスワードを必要とする場合に限ります。 パスワードが必要かどうかを判断するには、ご利用の証明書ストアのドキュメントまたは設定を参照してください。

GraphQL Connector for CData Sync

OAuthJWTCertSubject

OAuth JWT 証明書のサブジェクトで、ストアで一致する証明書を検索するために使用されます。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。

解説

このプロパティの値は、ストアで一致する証明書を検索するために使用されます。検索プロセスは以下のように動作します。

  • サブジェクトに完全に一致する証明書が見つかれば、該当する証明書が選択されます。
  • 完全に一致するものがない場合、ストアは、サブジェクトがプロパティ値を含む証明書を検索します。
  • 一致する証明書がない場合、証明書は選択されません。

値を '*' に設定すると、ストアの先頭の証明書が自動的に選択されます。 証明書のサブジェクトは識別名フィールドおよび値のカンマ区切りのリストです。 例:CN=www.server.com, OU=test, C=US, [email protected]。一般的なフィールドには以下のものが含まれます。

フィールド説明
CN共通名。一般的には、www.server.com のようなホスト名です。
O法人名
OU法人の部署名
L法人の住所(市町村名)
S法人の住所(都道府県)
C国名
EE メールアドレス

フィールド値にカンマが含まれる場合は、引用符で囲んでください。例:"O=ACME, Inc."。

GraphQL Connector for CData Sync

SSL

このセクションでは、本プロバイダーの接続文字列で設定可能なSSL プロパティの全リストを提供します。


プロパティ説明
SSLClientCertSSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストアを指定します。このプロパティは、他のSSL 関連プロパティと連動して、セキュアな接続を確立します。
SSLClientCertTypeSSL クライアント認証用のTLS/SSL クライアント証明書を格納するキーストアの種類を指定します。プラットフォームや証明書のソースに応じて、さまざまなキーストア形式から選択できます。
SSLClientCertPasswordTLS/SSL クライアント証明書ストアにアクセスするために必要なパスワードを指定します。選択した証明書ストアの種類がアクセスにパスワードを必要とする場合、このプロパティを使用します。
SSLClientCertSubjectTLS/SSL クライアント証明書のサブジェクトを指定し、証明書ストアで場所を検索します。 CN=www.server.com, C=US のように、識別名フィールドのカンマ区切りのリストを使用します。ワイルドカード * は、ストアの先頭の証明書を選択します。
SSLServerCertTLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。
GraphQL Connector for CData Sync

SSLClientCert

SSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストアを指定します。このプロパティは、他のSSL 関連プロパティと連動して、セキュアな接続を確立します。

解説

このプロパティは、SSL クライアント認証のためのクライアント証明書ストアを指定します。 このプロパティは、証明書ストアの種類を定義するSSLClientCertType、およびパスワードで保護されたストア用のパスワードを指定するSSLClientCertPassword と一緒に使用します。 SSLClientCert が設定され、SSLClientCertSubject が設定されている場合、ドライバーは指定されたサブジェクトに一致する証明書を検索します。

証明書ストアの指定はプラットフォームによって異なります。 Windowsでは、証明書ストアはMY(個人証明書)などの名前で識別されますが、Java では、証明書ストアは通常、証明書とオプションの秘密キーを含むファイルです。

Windows の共通のユーザとシステム証明書ストアの指定は以下のとおりです。

MY個人証明書と関連付けられた秘密キーを格納している証明書ストア。
CA証明機関の証明書。
ROOTルート証明書。
SPCソフトウェア発行元証明書。

PFXFile タイプの場合、このプロパティをファイル名に設定します。PFXBlob タイプの場合は、このプロパティをPKCS12 形式のファイルのバイナリコンテンツに設定します。

GraphQL Connector for CData Sync

SSLClientCertType

SSL クライアント認証用のTLS/SSL クライアント証明書を格納するキーストアの種類を指定します。プラットフォームや証明書のソースに応じて、さまざまなキーストア形式から選択できます。

解説

このプロパティは、クライアント証明書を指定するために使用されるキーストアの形式と場所を決定します。 サポートされている値には、プラットフォーム固有およびユニバーサルなキーストア形式があります。 有効な値と使用方法は以下のとおりです。

USER - デフォルトWindows の場合、現在のユーザーにより所有された証明書ストアであることを指定します。この種類はJava では利用できませんので注意してください。
MACHINEWindows の場合、この証明書ストアがシステムストアであることを指定します。この種類はJava では利用できませんので注意してください。
PFXFILEこの証明書ストアは、証明書を含むPFX(PKCS12)ファイルの名前です。
PFXBLOBこの証明書ストアは、PFX(PKCS12)形式の証明書ストアを表すBase-64でエンコードされた文字列です。
JKSFILEこの証明書ストアは、証明書を含むJava key store(JKS)ファイルの名前です。この種類はJava でのみ利用できますので注意してください。
JKSBLOBこの証明書ストアは、Java key store(JKS)形式の証明書ストアを表すBase-64でエンコードされた文字列です。この種類はJava でのみ利用できますので注意してください。
PEMKEY_FILEこの証明書ストアは、秘密キーと任意の証明書を含むPEM でエンコードされたファイルの名前です。
PEMKEY_BLOBこの証明書ストアは、秘密キーと任意の証明書を含むBase-64でエンコードされた文字列です。
PUBLIC_KEY_FILEこの証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むファイルの名前です。
PUBLIC_KEY_BLOBこの証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むBase-64でエンコードされた文字列です。
SSHPUBLIC_KEY_FILEこの証明書ストアは、SSH 公開キーを含むファイルの名前です。
SSHPUBLIC_KEY_BLOBこの証明書ストアは、SSH 公開キーを含むBase-64でエンコードされた文字列です。
P7BFILEこの証明書ストアは、証明書を含むPKCS7 ファイルの名前です。
PPKFILEこの証明書ストアは、PuTTY 秘密キー(PPK)を含むファイルの名前です。
XMLFILEこの証明書ストアは、XML 形式の証明書を含むファイルの名前です。
XMLBLOBこの証明書ストアは、XML 形式の証明書を含む文字列の名前です。
BCFKSFILEこの証明書ストアは、Bouncy Castle キーストアを含むファイルの名前です。
BCFKSBLOBこの証明書ストアは、Bouncy Castle キーストアを含む文字列(Base-64エンコード)です。

GraphQL Connector for CData Sync

SSLClientCertPassword

TLS/SSL クライアント証明書ストアにアクセスするために必要なパスワードを指定します。選択した証明書ストアの種類がアクセスにパスワードを必要とする場合、このプロパティを使用します。

解説

このプロパティは、パスワードで保護された証明書ストアを開くために必要なパスワードを指定します。 このプロパティは、PFX やJKS タイプのストアによく推奨されるように、復号化のためにパスワードを必要とする証明書ストアを使用する場合に必要です。

証明書ストアの種類がパスワードを必要としない場合(Windows のUSER やMACHINE など)、このプロパティは空白のままにできます。 認証エラーを回避するため、パスワードが指定された証明書ストアに関連付けられたものと一致していることを確認してください。

GraphQL Connector for CData Sync

SSLClientCertSubject

TLS/SSL クライアント証明書のサブジェクトを指定し、証明書ストアで場所を検索します。 CN=www.server.com, C=US のように、識別名フィールドのカンマ区切りのリストを使用します。ワイルドカード * は、ストアの先頭の証明書を選択します。

解説

このプロパティは、サブジェクトに基づいてロードするクライアント証明書を決定します。Sync App は、指定されたサブジェクトに完全に一致する証明書を検索します。 完全に一致するものが見つからない場合、Sync App はサブジェクトの値を含む証明書を検索します。 一致する証明書がない場合、証明書は選択されません。

サブジェクトは、識別名フィールドと値のカンマ区切りリストという標準の形式に従うべきです。 例えば、CN=www.server.com, OU=Test, C=US です。一般的なフィールドには以下のものが含まれます。

フィールド説明
CN共通名。一般的には、www.server.com のようなホスト名です。
O法人名
OU法人の部署名
L法人の住所(市町村名)
S法人の住所(都道府県)
C国名
EE メールアドレス

Note: フィールドにカンマなどの特殊文字が含まれている場合は、値を引用符で囲む必要があります。例:CN="Example, Inc.", C=US。

GraphQL Connector for CData Sync

SSLServerCert

TLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。

解説

TLS/SSL 接続を使用する場合は、このプロパティを使用して、サーバーが受け入れるTLS/SSL 証明書を指定できます。コンピュータによって信頼されていない他の証明書はすべて拒否されます。

このプロパティは、次のフォームを取ります:

説明 例
フルPEM 証明書(例では省略されています) -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE-----
証明書を保有するローカルファイルへのパス。 C:\cert.cer
公開鍵(例では省略されています) -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY-----
MD5 Thumbprint (hex 値はスペースおよびコロン区切り) ecadbdda5a1529c58a1e9e09828d70e4
SHA1 Thumbprint (hex 値はスペースおよびコロン区切り) 34a929226ae0819f2ec14b4a3d904f801cbb150d

これを指定しない場合は、マシンが信用するすべての証明書が受け入れられます。

すべての証明書の受け入れを示すには、'*'を使用します。セキュリティ上の理由から、これはお勧めできません。

GraphQL Connector for CData Sync

Firewall

このセクションでは、本プロバイダーの接続文字列で設定可能なFirewall プロパティの全リストを提供します。


プロパティ説明
FirewallTypeprovider がプロキシベースのファイアウォールを介してトラフィックをトンネリングするために使用するプロトコルを指定します。
FirewallServerファイアウォールを通過し、ユーザーのクエリをネットワークリソースに中継するために使用されるプロキシのIP アドレス、DNS 名、またはホスト名を識別します。
FirewallPortプロキシベースのファイアウォールで使用するTCP ポートを指定します。
FirewallUserプロキシベースのファイアウォールに認証するアカウントのユーザーID を識別します。
FirewallPasswordプロキシベースのファイアウォールで認証するユーザーアカウントのパスワードを指定します。
GraphQL Connector for CData Sync

FirewallType

provider がプロキシベースのファイアウォールを介してトラフィックをトンネリングするために使用するプロトコルを指定します。

解説

プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。

プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。

Note:デフォルトでは、Sync App はシステムプロキシに接続します。この動作を無効化し、次のプロキシタイプのいずれかに接続するには、ProxyAutoDetect をfalse に設定します。

次の表は、サポートされている各プロトコルのポート番号情報です。

プロトコル デフォルトポート 説明
TUNNEL 80 Sync App がGraphQL への接続を開くポート。トラフィックはこの場所のプロキシを経由して行き来します。
SOCKS4 1080 Sync App がGraphQL への接続を開くポート。SOCKS 4 は次にFirewallUser 値をプロキシに渡し、接続リクエストが許容されるかどうかを決定します。
SOCKS5 1080 Sync App がGraphQL にデータを送信するポート。SOCKS 5 プロキシに認証が必要な場合には、FirewallUser およびFirewallPassword をプロキシが認識する認証情報に設定します。

HTTP プロキシへの接続には、ProxyServer およびProxyPort ポートを使ってください。HTTP プロキシへの認証には、ProxyAuthScheme、ProxyUser、およびProxyPassword を使ってください。

GraphQL Connector for CData Sync

FirewallServer

ファイアウォールを通過し、ユーザーのクエリをネットワークリソースに中継するために使用されるプロキシのIP アドレス、DNS 名、またはホスト名を識別します。

解説

プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。

プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。

GraphQL Connector for CData Sync

FirewallPort

プロキシベースのファイアウォールで使用するTCP ポートを指定します。

解説

プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。

プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。

GraphQL Connector for CData Sync

FirewallUser

プロキシベースのファイアウォールに認証するアカウントのユーザーID を識別します。

解説

プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。

プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。

GraphQL Connector for CData Sync

FirewallPassword

プロキシベースのファイアウォールで認証するユーザーアカウントのパスワードを指定します。

解説

プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。

プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。

GraphQL Connector for CData Sync

Proxy

このセクションでは、本プロバイダーの接続文字列で設定可能なProxy プロパティの全リストを提供します。


プロパティ説明
ProxyAutoDetectprovider が、手動で指定されたプロキシサーバーを使用するのではなく、既存のプロキシサーバー構成についてシステムプロキシ設定をチェックするかどうかを指定します。
ProxyServerHTTP トラフィックをルートするプロキシサーバーのホストネームもしくはIP アドレス。
ProxyPortクライアントとの間でHTTP トラフィックをルーティングするために予約された、指定されたプロキシサーバー(ProxyServer 接続プロパティで設定)のTCP ポート。
ProxyAuthSchemeProxyServer 接続プロパティで指定されたプロキシサーバーに対して認証する際にprovider が使用する認証方法を指定します。
ProxyUserProxyServer 接続プロパティで指定されたプロキシサーバーに登録されているユーザーアカウントのユーザー名。
ProxyPasswordProxyUser 接続プロパティで指定されたユーザーに紐付けられたパスワード。
ProxySSLTypeProxyServer 接続プロパティで指定されたプロキシサーバーに接続する際に使用するSSL タイプ。
ProxyExceptionsProxyServer 接続プロパティで設定されたプロキシサーバー経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。
GraphQL Connector for CData Sync

ProxyAutoDetect

provider が、手動で指定されたプロキシサーバーを使用するのではなく、既存のプロキシサーバー構成についてシステムプロキシ設定をチェックするかどうかを指定します。

解説

この接続プロパティをTrue に設定すると、Sync App は既存のプロキシサーバー構成についてシステムプロキシ設定をチェックします(プロキシサーバーの詳細を手動で入力する必要はありません)。

この接続プロパティは他のプロキシ設定より優先されます。特定のプロキシサーバーに接続するためにSync App を手動で構成する場合は、False に設定します。

HTTP プロキシへの接続には、ProxyServer を参照してください。SOCKS やトンネリングなどの他のプロキシには、FirewallType を参照してください。

GraphQL Connector for CData Sync

ProxyServer

HTTP トラフィックをルートするプロキシサーバーのホストネームもしくはIP アドレス。

解説

ProxyAutoDetect がFalse に設定されている場合、Sync App はこの接続プロパティで指定されたプロキシサーバーを通じてのみHTTP トラフィックをルーティングします。ProxyAutoDetect がTrue に設定されている場合(デフォルト)、Sync App は代わりにシステムプロキシ設定で指定されたプロキシサーバーを介してHTTP トラフィックをルーティングします。

GraphQL Connector for CData Sync

ProxyPort

クライアントとの間でHTTP トラフィックをルーティングするために予約された、指定されたプロキシサーバー(ProxyServer 接続プロパティで設定)のTCP ポート。

解説

ProxyAutoDetect がFalse に設定されている場合、Sync App はこの接続プロパティで指定されたプロキシサーバーポートを通じてのみHTTP トラフィックをルーティングします。ProxyAutoDetect がTrue に設定されている場合(デフォルト)、Sync App は代わりにシステムプロキシ設定で指定されたプロキシサーバーポートを介してHTTP トラフィックをルーティングします。

その他のプロキシタイプについては、FirewallType を参照してください。

GraphQL Connector for CData Sync

ProxyAuthScheme

ProxyServer 接続プロパティで指定されたプロキシサーバーに対して認証する際にprovider が使用する認証方法を指定します。

解説

認証タイプは次のいずれかです。

  • BASIC:Sync App はHTTP BASIC 認証を行います。
  • DIGEST:Sync App はHTTP DIGEST 認証を行います。
  • NTLM:Sync App はNTLM トークンを取得します。
  • NEGOTIATE:Sync App は認証において有効なプロトコルに応じて、NTLM もしくはKerberos トークンを取得します。
  • NONE:ProxyServer が認証を必要としない場合に設定します。

"NONE" 以外のすべての値については、ProxyUser およびProxyPassword 接続プロパティも設定する必要があります。

SOCKS 5 認証のような他の認証タイプを使用するには、FirewallType を参照してください。

GraphQL Connector for CData Sync

ProxyUser

ProxyServer 接続プロパティで指定されたプロキシサーバーに登録されているユーザーアカウントのユーザー名。

解説

ProxyUser および ProxyPassword 接続プロパティは、ProxyServer で指定されたHTTP プロキシに対して接続よび認証するために使用されます。

ProxyAuthScheme で利用可能な認証タイプを1つ選択した後、このプロパティを以下のように設定します。

ProxyAuthScheme の値 ProxyUser に設定する値
BASIC プロキシサーバーに登録されているユーザーのユーザー名。
DIGEST プロキシサーバーに登録されているユーザーのユーザー名。
NEGOTIATE プロキシサーバーが属するドメインまたは信頼されたドメイン内の有効なユーザーであるWindows ユーザーのユーザー名。user@domain またはdomain\user の形式で指定。
NTLM プロキシサーバーが属するドメインまたは信頼されたドメイン内の有効なユーザーであるWindows ユーザーのユーザー名。user@domain またはdomain\user の形式で指定。
NONE ProxyPassword 接続プロパティは設定しないでください。

Sync App は、ProxyAutoDetect がFalse に設定されている場合にのみ、このユーザー名を使用します。ProxyAutoDetect がTrue に設定されている場合(デフォルト)、Sync App は代わりにシステムのプロキシ設定で指定されているユーザー名を使用します。

GraphQL Connector for CData Sync

ProxyPassword

ProxyUser 接続プロパティで指定されたユーザーに紐付けられたパスワード。

解説

ProxyUser および ProxyPassword 接続プロパティは、ProxyServer で指定されたHTTP プロキシに対して接続よび認証するために使用されます。

ProxyAuthScheme で利用可能な認証タイプを1つ選択した後、このプロパティを以下のように設定します。

ProxyAuthScheme の値 ProxyPassword に設定する値
BASIC ProxyUser で指定したプロキシサーバーユーザーに紐付けられたパスワード。
DIGEST ProxyUser で指定したプロキシサーバーユーザーに紐付けられたパスワード。
NEGOTIATE ProxyUser で指定したWindows ユーザーアカウントに紐付けられたパスワード。
NTLM ProxyUser で指定したWindows ユーザーアカウントに紐付けられたパスワード。
NONE ProxyPassword 接続プロパティは設定しないでください。

SOCKS 5 認証もしくは、トンネリングは、FirewallType を参照してください。

Sync App は、ProxyAutoDetect がFalse に設定されている場合にのみ、このパスワードを使用します。ProxyAutoDetect がTrue に設定されている場合(デフォルト)、Sync App は代わりにシステムのプロキシ設定で指定されているパスワードを使用します。

GraphQL Connector for CData Sync

ProxySSLType

ProxyServer 接続プロパティで指定されたプロキシサーバーに接続する際に使用するSSL タイプ。

解説

このプロパティは、ProxyServer で指定されたHTTP プロキシへの接続にSSL を使用するかどうかを決定します。この接続プロパティには、以下の値を設定できます。

AUTOデフォルト設定。ProxyServer がHTTPS URL に設定されている場合、Sync App は、TUNNEL オプションを使用します。ProxyServer がHTTP URL に設定されている場合、コンポーネントはNEVER オプションを使用します。
ALWAYS接続は、常にSSL 有効となります。
NEVER接続は、SSL 有効になりません。
TUNNEL接続はトンネリングプロキシ経由で行われます。プロキシサーバーがリモートホストへの接続を開き、プロキシを経由して通信が行われます。

GraphQL Connector for CData Sync

ProxyExceptions

ProxyServer 接続プロパティで設定されたプロキシサーバー経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。

解説

ProxyServer は、このプロパティで定義されたアドレスを除くすべてのアドレスに使用されます。セミコロンを使用してエントリを区切ります。

Sync App はデフォルトでシステムプロキシ設定を使用するため、それ以上の設定は必要ありません。この接続にプロキシ例外を明示的に設定する場合は、ProxyAutoDetect をFalse に設定します。

GraphQL Connector for CData Sync

Logging

このセクションでは、本プロバイダーの接続文字列で設定可能なLogging プロパティの全リストを提供します。


プロパティ説明
LogModulesログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。
GraphQL Connector for CData Sync

LogModules

ログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。

解説

このプロパティは、含めるログモジュールを指定することでログファイルの内容をカスタマイズすることができます。 ログモジュールは、クエリ実行、メタデータ、SSL 通信などの異なる領域にログ情報を分類します。 各モジュールは4文字のコードで表され、文字の名前の場合は末尾にスペースが必要なものもあります。

例えば、EXEC はクエリ実行をログに記録し、INFO は一般的なプロバイダーメッセージをログに記録します。 複数のモジュールを含めるには、次のように名前をセミコロンで区切ります:INFO;EXEC;SSL。

Verbosity 接続プロパティは、このプロパティで指定されたモジュールベースのフィルタリングよりも優先されます。 Verbosity レベルを満たし、指定されたモジュールに属するログエントリのみが記録されます。 利用可能なすべてのモジュールをログファイルに含めるには、このプロパティを空白のままにします。

利用可能なモジュールの完全なリストとログの設定に関する詳細な手引きについては、ログ の「高度なログの記録」セクションを参照してください。

GraphQL Connector for CData Sync

Schema

このセクションでは、本プロバイダーの接続文字列で設定可能なSchema プロパティの全リストを提供します。


プロパティ説明
Locationテーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。
BrowsableSchemasレポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
Tablesレポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。
Viewsレポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。
ExpandArgumentsDepthThis property is used to determine how far the provider should search for columns inside the arguments of type INPUT_OBJECT.
ExpandTablesDepthThis property is used to determine the depth of the child tables.
ExpandTemporaryTablesDepthThis property is used to determine the depth of the child temporary tables. Only works if ExposeDynamicProcedures is set to true.
ExpandColumnsDepthThis property is used to determine how far the provider should search for columns inside the GraphQL objects.
IncludeDeprecatedMetadataThis property is used to determine whether the provider should expose deprecated tables and columns or not.
ExposeDynamicProceduresThis property is used to determine whether the provider should expose mutations as dynamic procedures or not.
ExposeObjectTablesThis property is used to determine the extent to which the provider exposes GraphQL object type fields as tables.
GraphQL Connector for CData Sync

Location

テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。

解説

Location プロパティは、定義をカスタマイズしたり(例えば、カラム名を変更する、カラムを無視するなど)、新しいテーブル、ビュー、またはストアドプロシージャでデータモデルを拡張する場合にのみ必要です。

指定しない場合、デフォルトの場所は%APPDATA%\\CData\\GraphQL Data Provider\\Schema となり、%APPDATA%はユーザーのコンフィギュレーションディレクトリに設定されます:

プラットフォーム %APPDATA%
Windows APPDATA 環境変数の値
Linux ~/.config

GraphQL Connector for CData Sync

BrowsableSchemas

レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。

解説

利用可能なデータベーススキーマをすべてリストすると余分な時間がかかり、パフォーマンスが低下します。 接続文字列にスキーマのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。

GraphQL Connector for CData Sync

Tables

レポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。

解説

データベースによっては、利用可能なすべてのテーブルをリストするのに時間がかかり、パフォーマンスが低下する場合があります。 接続文字列にテーブルのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。

利用可能なテーブルがたくさんあり、すでに作業したいテーブルが決まっている場合、このプロパティを使用して対象のテーブルのみに表示を制限することができます。これを行うには、カンマ区切りのリストで使用したいテーブルを指定します。各テーブルは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space` です。

Note:複数のスキーマまたはカタログを持つデータソースに接続する場合は、表示する各テーブルを完全修飾名で指定する必要があります。これにより、複数のカタログやスキーマに存在するテーブルが混同されることを防ぎます。

GraphQL Connector for CData Sync

Views

レポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。

解説

データベースによっては、利用可能なすべてのビューをリストするのに時間がかかり、パフォーマンスが低下する場合があります。 接続文字列にビューのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。

利用可能なビューがたくさんあり、すでに作業したいビューが決まっている場合、このプロパティを使用して対象のビューのみに表示を制限することができます。これを行うには、カンマ区切りのリストで使用したいビューを指定します。各ビューは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space` です。

Note:複数のスキーマまたはカタログを持つデータソースに接続する場合は、確認する各ビューを完全修飾名で指定する必要があります。これにより、複数のカタログやスキーマに存在するビューが混同されることを防ぎます。

GraphQL Connector for CData Sync

ExpandArgumentsDepth

This property is used to determine how far the provider should search for columns inside the arguments of type INPUT_OBJECT.

解説

This property is used to determine how far the Sync App should search for columns inside the arguments of type INPUT_OBJECT. For example:

{
    "variables": {
        "input": {
            "filters": {
                "type": "SUPPLIER"
            }
        }
    },
    "query": "query($input:FilteredCompaniesInput!) {\r\nfilteredCompanies(input:$input) {\r\nid:id\r\nvalue:value\r\n}\r\n}\r\n"
}
for the SQL query:
SELECT id,value FROM filteredCompanies WHERE type='SUPPLIER'
In this case the nested "FilteredCompaniesInput" is itself of type INPUT_OBJECT. In a column search, the ExpandColumnsDepth property controls how many nested levels of type INPUT_OBJECT are subjected to searching.

GraphQL Connector for CData Sync

ExpandTablesDepth

This property is used to determine the depth of the child tables.

解説

This property is used to determine the depth of the child tables.

GraphQL Connector for CData Sync

ExpandTemporaryTablesDepth

This property is used to determine the depth of the child temporary tables. Only works if ExposeDynamicProcedures is set to true.

解説

This property is used to determine the depth of the child temporary tables. Only works if ExposeDynamicProcedures is set to true.

GraphQL Connector for CData Sync

ExpandColumnsDepth

This property is used to determine how far the provider should search for columns inside the GraphQL objects.

解説

This property is used to determine how far the Sync App should search for columns inside the GraphQL objects.

GraphQL Connector for CData Sync

IncludeDeprecatedMetadata

This property is used to determine whether the provider should expose deprecated tables and columns or not.

解説

This property is used to determine whether the Sync App should expose deprecated tables and columns or not.

GraphQL Connector for CData Sync

ExposeDynamicProcedures

This property is used to determine whether the provider should expose mutations as dynamic procedures or not.

解説

This property is used to determine whether the Sync App should expose mutations as dynamic procedures or not.

GraphQL Connector for CData Sync

ExposeObjectTables

This property is used to determine the extent to which the provider exposes GraphQL object type fields as tables.

解説

This property is used to determine the extent to which the Sync App exposes GraphQL object type fields as tables. It applies only to fields that meet the following conditions:

  • The object type does not have a field of the same type that is a list or connection at the same depth (e.g., a 'user' field of type User should not have a field 'users' of type [User] at the same depth).
  • The object is a field of the root ‘Query’ type or has required arguments defined.
The values correspond to the following functionality:
  • NONE: No objects are exposed as tables.
  • SHALLOW: Objects directly under the root 'Query' type are exposed as tables.
  • DEEP: All objects that meet the conditions up to ExpandTablesDepth are exposed as tables.

GraphQL Connector for CData Sync

Miscellaneous

このセクションでは、本プロバイダーの接続文字列で設定可能なMiscellaneous プロパティの全リストを提供します。


プロパティ説明
CustomHeaders他のプロパティ(ContentType やFrom など)から作成されたリクエストヘッダーに追加する、追加HTTP ヘッダーを指定します。このプロパティは、特殊または非標準のAPI 用にリクエストをカスタマイズするために使用します。
GenerateSchemaFilesスキーマを生成して保存するユーザーの好みのタイミングを示します。
MaxRows集計やGROUP BY を使用しないクエリで返される最大行数を指定します。
Other特定のユースケースに対して追加の隠しプロパティを指定します。これらは通常のprovider の機能では必要ありません。複数のプロパティを定義するには、セミコロンで区切られたリストを使用します。
PagesizeThe maximum number of results to return per page from GraphQL.
PseudoColumnsテーブルカラムとして公開する擬似カラムを指定します。'TableName=ColumnName;TableName=ColumnName' という形式を使用します。デフォルトは空の文字列で、このプロパティを無効にします。
Timeoutprovider がタイムアウトエラーを返すまでにサーバーからの応答を待機する最大時間を秒単位で指定します。デフォルトは60秒です。タイムアウトを無効にするには0を設定します。
UserDefinedViewsカスタムビューを定義するJSON 構成ファイルへのファイルパスを指定します。provider は、このファイルで指定されたビューを自動的に検出して使用します。
GraphQL Connector for CData Sync

CustomHeaders

他のプロパティ(ContentType やFrom など)から作成されたリクエストヘッダーに追加する、追加HTTP ヘッダーを指定します。このプロパティは、特殊または非標準のAPI 用にリクエストをカスタマイズするために使用します。

解説

このプロパティを使用して、Sync App から送信されるHTTP リクエストにカスタムヘッダーを追加します。

このプロパティは、追加ヘッダーや非標準ヘッダーを必要とするAPI とやり取りするためにリクエストを微調整する際に役立ちます。 ヘッダーはHTTP 仕様で記述されているとおり"header: value" の形式に従う必要があり、各ヘッダー行はキャリッジリターンとラインフィード(CRLF)文字で区切る必要があります。 重要:このプロパティを設定する際は注意してください。無効なヘッダーを指定するとHTTP リクエストが失敗する場合があります。

GraphQL Connector for CData Sync

GenerateSchemaFiles

スキーマを生成して保存するユーザーの好みのタイミングを示します。

解説

このプロパティは、Location で指定されたパスの.rsd ファイルにスキーマをアウトプットします。

有効な設定は次のとおりです。

  • Never:スキーマファイルは生成されません。
  • OnUse:スキーマファイルがまだ存在していない場合に、初めてテーブルが参照されるときにスキーマファイルが生成されます。
  • OnStart:現在スキーマファイルを持たないあらゆるテーブルに対して、接続時にスキーマファイルが生成されます。
  • OnCreate:CREATE TABLE SQL クエリを実行すると、スキーマファイルが生成されます。
ファイルを再生成したい場合には、既存のファイルを削除する必要があることに注意してください。

SQL でスキーマを生成する

GenerateSchemaFiles をOnUse に設定すると、Sync App はSELECT クエリを実行したときにスキーマを生成します。スキーマはクエリのそれぞれの参照されたテーブルに対して生成されます。

GenerateSchemaFiles をOnCreate に設定すると、CREATE TABLE クエリが実行されたときにのみスキーマが生成されます。

接続時にスキーマを生成する

このプロパティのもう一つの使い方は、接続するときにデータベース内のすべてのテーブルのスキーマを取得することです。これには、GenerateSchemaFiles をOnStart に設定して接続します。

GraphQL Connector for CData Sync

MaxRows

集計やGROUP BY を使用しないクエリで返される最大行数を指定します。

解説

このプロパティは、集計やGROUP BY 句を含まないクエリに対してSync App が返す行数の上限を設定します。 この制限により、クエリがデフォルトで過度に大きな結果セットを返さないようにします。

クエリにLIMIT 句が含まれている場合、クエリで指定された値がMaxRows 設定よりも優先されます。 MaxRows が"-1" に設定されている場合、LIMIT 句が明示的にクエリに含まれていない限り、行の制限は行われません。

このプロパティは、非常に大きなデータセットを返す可能性のあるクエリを実行する際に、パフォーマンスを最適化し過剰なリソース消費を防ぐのに役立ちます。

GraphQL Connector for CData Sync

Other

特定のユースケースに対して追加の隠しプロパティを指定します。これらは通常のprovider の機能では必要ありません。複数のプロパティを定義するには、セミコロンで区切られたリストを使用します。

解説

このプロパティは、シニアユーザーが特定のシナリオに対して隠しプロパティを設定できるようにします。 これらの設定は通常のユースケースには必要ありませんが、特定の要件に対応したり、追加の機能を提供したりすることができます。 複数のプロパティをセミコロン区切りのリストで定義できます。

Note: 特定のシナリオや問題に対処するためにサポートチームから助言があった場合にのみ、これらのプロパティを設定することを強く推奨します。

複数のプロパティをセミコロン区切りリストで指定します。

統合およびフォーマット

DefaultColumnSizeデータソースがメタデータにカラムの長さを提供しない場合に、文字列フィールドのデフォルトの長さを設定します。デフォルト値は2000です。
ConvertDateTimeToGMT日時の値を、マシンのローカルタイムではなくGMT グリニッジ標準時に変換するかどうかを決定します。
RecordToFile=filename基底のソケットデータ転送を指定のファイルに記録します。

GraphQL Connector for CData Sync

Pagesize

The maximum number of results to return per page from GraphQL.

解説

The Pagesize property affects the maximum number of results to return per page from GraphQL. Setting a higher value may result in better performance at the cost of additional memory eaten up per page consumed. The pageSize is proportional to the GraphQL query cost.

GraphQL Connector for CData Sync

PseudoColumns

テーブルカラムとして公開する擬似カラムを指定します。'TableName=ColumnName;TableName=ColumnName' という形式を使用します。デフォルトは空の文字列で、このプロパティを無効にします。

解説

このプロパティを使用すると、Sync App がテーブルカラムとして公開する擬似カラムを定義できます。

個々の擬似カラムを指定するには、以下の形式を使用します。"Table1=Column1;Table1=Column2;Table2=Column3"

すべてのテーブルのすべての擬似カラムを含めるには、次のようにします:"*=*"

GraphQL Connector for CData Sync

Timeout

provider がタイムアウトエラーを返すまでにサーバーからの応答を待機する最大時間を秒単位で指定します。デフォルトは60秒です。タイムアウトを無効にするには0を設定します。

解説

このプロパティは、Sync App が操作をキャンセルする前に操作の完了を待機する最大時間を秒単位で制御します。 操作の完了前にタイムアウト時間が経過すると、Sync App は操作をキャンセルして例外をスローします。

タイムアウトは、クエリや操作全体ではなくサーバーとの個々の通信に適用されます。 例えば、各ページング呼び出しがタイムアウト制限内に完了する場合、クエリは60秒を超えて実行を続けることができます。

このプロパティを0に設定するとタイムアウトが無効になり、操作が成功するか、サーバー側のタイムアウト、ネットワークの中断、またはサーバーのリソース制限などの他の条件で失敗するまで無期限に実行されます。 このプロパティは慎重に使用してください。長時間実行される操作がパフォーマンスを低下させたり、応答しなくなる可能性があるためです。

GraphQL Connector for CData Sync

UserDefinedViews

カスタムビューを定義するJSON 構成ファイルへのファイルパスを指定します。provider は、このファイルで指定されたビューを自動的に検出して使用します。

解説

このプロパティを使用すると、UserDefinedViews.json というJSON 形式の構成ファイルを通じてカスタムビューを定義および管理できます。 これらのビューはSync App によって自動的に認識され、標準のデータベースビューのようにカスタムSQL クエリを実行できるようになります。 JSON ファイルは、各ビューをルート要素として定義し、その子要素として"query" を持ちます。この"query" にはビューのSQL クエリが含まれています。次に例を示します。


{
	"MyView": {
		"query": "SELECT * FROM Users WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}

このプロパティを使用して、1つのファイルに複数のビューを定義し、ファイルパスを指定できます。 例:UserDefinedViews=C:\Path\To\UserDefinedViews.json。 このプロパティを使用すると、指定されたビューのみがSync App によって検知されます。

詳しくは、ユーザー定義ビュー を参照してください。

Copyright (c) 2025 CData Software, Inc. - All rights reserved.
Build 24.0.9175