> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sync.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GraphQL

export const CommonAuthSchemeAwscognitobasic = () => {
  return <>
      <p>To connect with your Amazon Web Services (AWS) Cognito credentials, specify the following properties:</p>
      <ul>
        <li><strong>Auth Scheme:</strong> Select <strong>AwsCognitoBasic</strong>.</li>
        <li><strong>User:</strong> Enter the username of the user that is registered in the user pool.</li>
        <li><strong>Password:</strong> Enter the password of the user that is registered in the user pool.</li>
        <li><strong>AWS Cognito Region:</strong> Select the region for your Amazon Web Services (AWS) user pool. The default region is <strong>NORTHERNVIRGINIA</strong>.</li>
        <li><strong>AWS User Pool Id:</strong> Enter your AWS user-pool identifier (Id).</li>
        <li><strong>AWS User Pool Client App Id:</strong> Enter your AWS user-pool client application Id.</li>
        <li>(Optional) <strong>AWS User Pool Client App Secret:</strong> Enter the secret for your user-pool client.</li>
      </ul>
    </>;
};

export const CommonAuthSchemeAwscognitosrp = () => {
  return <>
      <p>To connect with your Amazon Web Services (AWS) Cognito credentials, specify the following properties:</p>
      <ul>
        <li><strong>Auth Scheme:</strong> Select <strong>AwsCognitoSrp</strong>.</li>
        <li><strong>User:</strong> Enter the username of the user that is registered in the user pool.</li>
        <li><strong>Password:</strong> Enter the password of the user that is registered in the user pool.</li>
        <li><strong>AWS Cognito Region:</strong> Select the hosting region for Amazon Web Services (AWS) Cognito. The default region is <strong>NORTHERNVIRGINIA</strong>.</li>
        <li><strong>AWS User Pool Id:</strong> Enter your AWS user-pool identifier (Id).</li>
        <li><strong>AWS User Pool Client App Id:</strong> Enter your AWS user-pool client application Id.</li>
        <li>(Optional) <strong>AWS User Pool Client App Secret:</strong> Enter the secret for your user-pool client.</li>
        <li><strong>AWS Region:</strong> Select the hosting region for your Amazon Web Services. The default region is <strong>NORTHERNVIRGINIA</strong>.</li>
      </ul>
    </>;
};

export const CommonAuthSchemeBasic = ({siteName = "CData Sync", siteNameShort = "Sync", datasource = "the data source"}) => {
  return <>
      <p>To connect with your user credentials, set the following properties:</p>
      <ul>
        <li><strong>Auth Scheme:</strong> Select <strong>Basic</strong>.</li>
        <li><strong>User:</strong> Enter the username that you use to authenticate to your {datasource} account.</li>
        <li><strong>Password:</strong> Enter the password that you use to authenticate to your {datasource} account.</li>
      </ul>
    </>;
};

export const CommonAuthSchemeNone = ({siteName = "CData Sync", siteNameShort = "Sync", datasource = "the data source"}) => {
  return <>
      <p>To connect without authentication, select <strong>None</strong> for <strong>Auth Scheme</strong>. No additional properties are required.</p>
    </>;
};

export const CommonDatasourceMoreInformation = ({datasource = "the data source", advancedurl = "", siteName = "CData Sync", driverVersion = ""}) => {
  return <>
      <p>
        For more information about interactions between {siteName} and {datasource}, see{' '}
        <a href={`https://cdn.cdata.com/help/${advancedurl}${driverVersion}/synch/default.htm`}>
          {datasource} Connector for {siteName}
        </a>.
      </p>
    </>;
};

export const CommonDatasourceAddConnector = ({datasource = "the data source", title = "the connector", destination = false, siteNameShort = "Sync"}) => {
  return <>
      <p>
        To enable {siteNameShort} to use data from {datasource}, you first must add the
        connector, as follows:
      </p>
      <ol>
        <li>Open the <strong>Connections</strong> page of the {siteNameShort} dashboard.</li>
        <li>Click <strong>Add Connection</strong> to open the <strong>Select Connectors</strong> page.</li>
        <li>
          Click the <strong>{destination ? "Destinations" : "Sources"}</strong> tab and locate
          the <strong>{title}</strong> row.
        </li>
        <li>
          Click the <strong>Configure Connection</strong> icon at the end of that row to open
          the <strong>New Connection</strong> page. This action opens the{' '}
          <strong>Add Connection</strong> dialog box.
          <br />
          <strong>Note:</strong> If the <strong>Configure Connection</strong> icon is not
          available, click the <strong>Download Connector</strong> icon to install
          the {title} connector.
        </li>
        <li>Enter a name for your connection in the <strong>Add Connection</strong> dialog box.</li>
        <li>Click <strong>Add</strong> to open the <strong>Settings</strong> tab for your connector.</li>
      </ol>
      <p>
        For more information about installing new connectors, see{' '}
        <a href="../connections">Connections</a>.
      </p>
    </>;
};

export const CommonDatasourceIntroSource = ({datasource = "the data source", siteName = "CData Sync"}) => {
  return <p>
      You can use the {datasource} connector from the {siteName} application to capture data
      from {datasource} and move it to any supported destination. To do so, you need to add
      the connector, authenticate to the connector, and complete your connection.
    </p>;
};

export const driverVersion = "M";

export const siteNameShort = "Sync";

export const siteName = "CData Sync";

export const datasource = "GraphQL";
export const pageTitle = "GraphQL";
export const advancedurl = "LA";
export const oauthschemes = "OAuth and OAuthPKCE";

<CommonDatasourceIntroSource datasource={datasource} siteName={siteName} />

## Add the GraphQL Connector

<CommonDatasourceAddConnector datasource={datasource} title={pageTitle} destination={false} siteNameShort={siteNameShort} />

## Authenticate to GraphQL

After you add the connector, you need to set the required properties.

**URL:** Enter the URL for your GraphQL service.

{siteName} supports authenticating to {datasource} in several ways. Select your authentication method below to proceed to the relevant section that contains the authentication details.

* [**None**](#none)
* [**Basic**](#basic)
* [**OAuth**](#oauth) (default)
* [**OAuth PKCE**](#oauth-pkce)
* [**Aws Cognito Secure Remote Password**](#aws-cognito-secure-remote-password)
* [**Aws Cognito Basic**](#aws-cognito-basic)

### None

<CommonAuthSchemeNone siteName={siteName} siteNameShort={siteNameShort} datasource={datasource} />

### Basic

<CommonAuthSchemeBasic siteName={siteName} siteNameShort={siteNameShort} datasource={datasource} />

### OAuth

To connect with OAuth custom credentials, specify the following properties:

* **Auth Scheme:** Select **OAuth**.
* **OAuth Version:** Select the OAuth version that you want to use. The versions are **Disabled** (default), **1.0**, and **2.0**.
* **OAuth Client Id:** Enter the client Id that you were assigned when you registered your application with an OAuth authorization server.
* **OAuth Client Secret:** Enter the client secret that you were assigned when you registered your application with an OAuth authorization server.
* **OAuth Authorization URL:** Enter the OAuth authorization URL that you need to authorize request tokens when you sign in.
* **OAuth Access Token URL:** Enter the URL from which the request for the access token is made.
* **OAuth Refresh Token URL:**  Enter the URL from which the refresh token is exchanged for a new access token when the old one expires. Note that for your data source, this URL might be the same as the access-token URL.
* (Optional) **OAuth Request Token URL:** Enter the URL from which the application requests the request token.

### OAuth PKCE

To connect with the OAuth PKCE extension, set the following properties:

* **Auth Scheme:** Select **OAuthPKCE**.
* **OAuth Client Id:** Enter the client Id that you were assigned when you registered your application with an OAuth authorization server.
* **OAuth Authorization URL:** Enter the OAuth authorization URL that you need to authorize request tokens when you sign in.
* **OAuth Access Token URL:** Enter the URL where the request for the access token is made.
* **OAuth Refresh Token URL:** Enter the URL where the refresh token is exchanged for a new access token when the old one expires. Note that for your data source, this URL might be the same as the access-token URL.

### AWS Cognito Secure Remote Password

<CommonAuthSchemeAwscognitosrp siteName={siteName} siteNameShort={siteNameShort} datasource={datasource} />

### AWS Cognito Basic

<CommonAuthSchemeAwscognitobasic siteName={siteName} siteNameShort={siteNameShort} datasource={datasource} />

## Complete Your Connection

To complete your connection:

1. Define advanced connection settings on the **Advanced** tab. (In most cases, though, you should not need these settings.)
2. {oauthschemes ? `If you authenticate with ${oauthschemes}, click` : "Click"} **Connect to {datasource}** to connect to your {pageTitle} account.
3. Click **Create & Test** to create your connection.

## More Information

<CommonDatasourceMoreInformation datasource={datasource} advancedurl={advancedurl} siteName={siteName} driverVersion={driverVersion} />
