> ## 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.

# Google Cloud Storage

export const CommonAuthSchemeGcpinstanceaccount = ({siteName = "CData Sync", siteNameShort = "Sync", datasource = "the data source"}) => {
  return <>
      <p>
        When you run {siteName} on a GCP virtual machine, {siteNameShort} can authenticate by using the service account that is tied to the virtual machine. Select <strong>GCPInstanceAccount</strong> for <strong>Auth Scheme</strong> to use that account. No additional properties are required.
      </p>
    </>;
};

export const CommonAuthSchemeOauthJwtFileFormat = ({siteName = "CData Sync", siteNameShort = "Sync", datasource = "the data source"}) => {
  return <>
      <p>To connect with a {datasource} account, specify the following properties:</p>
      <ul>
        <li><strong>Auth Scheme:</strong> Select <strong>OAuthJWT</strong>.</li>
        <li><strong>OAuth JWT Cert:</strong> Enter your Java web tokens (JWT) certificate store.</li>
        <li><strong>OAuth JWT Cert Type:</strong> Enter the type of key store that contains your JWT certificate. The default type is <strong>PEMKEY_BLOB</strong>.</li>
        <li><strong>OAuth Client Id:</strong> Enter the client identifier (Id) that you were assigned when you registered your application with an OAuth authorization server.</li>
        <li><strong>OAuth Client Secret:</strong> Enter the client secret that you were assigned when you registered your application with an OAuth authorization server.</li>
        <li>(Optional) <strong>Scope:</strong> Specify the scope of your access to the application.</li>
        <li>(Optional) <strong>OAuth Authorization URL:</strong> Enter the OAuth authorization URL for the OAuth service.</li>
        <li>(Optional) <strong>OAuth Access Token URL:</strong> Enter the URL from which to retrieve the access token.</li>
        <li>(Optional) <strong>OAuth Refresh Token URL:</strong> Enter the URL from which to refresh the OAuth token.</li>
        <li>(Optional) <strong>OAuth JWT Cert Password:</strong> Enter the password for your OAuth JWT certificate.</li>
        <li>(Optional) <strong>OAuth JWT Cert Subject:</strong> Enter the subject of your OAuth JWT certificate.</li>
        <li>(Optional) <strong>OAuth JWT Subject:</strong> Enter the user subject for which the application is requesting delegated access.</li>
        <li>(Optional) <strong>OAuth JWT Subject Type:</strong> Select the subject type (<strong>enterprise</strong> or <strong>user</strong>) for the JWT authentication. The default type is <strong>enterprise</strong>.</li>
        <li>(Optional) <strong>OAuth JWT Public Key Id:</strong> Enter the Id of the public key for JWT.</li>
      </ul>
    </>;
};

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 = "Google Cloud Storage";
export const pageTitle = "Google Cloud Storage";
export const advancedurl = "JG";

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

## Supported File Formats

When {siteNameShort} writes data to {datasource}, you can choose the file format for the exported data. The following file formats are supported for the {datasource} source:

* (Default) **CSV:** Plain text comma-separated values.
* **Avro:** A row-based binary format that supports schema evolution.
* **Parquet:** A columnar storage format that is optimized for analytics.

## Prerequisites

If you want to authenticate with a Google Cloud service account (for silent authentication or delegated organization-wide access), do the following before configuring your connection in {siteNameShort}:

* Create a service account in Google Cloud and grant it the required permissions on your bucket or project.
* For OAuth JWT authentication, register a custom OAuth application and download the certificate file (.p12 or .pfx).

Then proceed to the relevant authentication method below.

## Add the Google Cloud Storage Connector

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

## Authenticate to Google Cloud Storage

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

* **File Format:** Select the file format that you want to use: **Delta Parquet**, **CSV** (default), **Avro**, and **Parquet**.

  <Note>The **Delta Parquet** and **Apache Iceberg** file formats are not supported for {siteNameShort} source connectors. If you select either of these formats, {siteNameShort} generates an error.</Note>

* **URI:** Enter the path to the resource location for your file format.

* **Project Id:** Enter the identifier (Id) of the project where your {datasource} instance resides.

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

* [**OAuth**](#oauth) (default)
* [**OAuth PKCE**](#oauth-pkce)
* [**OAuth JWT**](#oauth-jwt)
* [**GCP Instance Account**](#gcp-instance-account)

### OAuth

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

* **Auth Scheme:** Select **OAuth**.
* **OAuth Version:** Select the version of OAuth that you want to use. The default version is **2.0**.
* (Optional) **Scope:** Specify the scope of your access to the application.
* (Optional) **OAuth Authorization URL:** Enter the OAuth authorization URL for the OAuth service.
* (Optional) **OAuth Access Token URL:** Enter the URL from which to retrieve the access token.
* (Optional) **OAuth Refresh Token URL:** Enter the URL from which to refresh the OAuth token.

### OAuth PKCE

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

* **Auth Scheme:** Select **OAuthPKCE**.
* (Optional) **OAuth Client Id:** Enter the client identifier (Id) that you were assigned when you registered your application with an OAuth authorization server.

### OAuth JWT

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

### GCP Instance Account

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

## Complete Your Connection

To complete your connection:

1. Specify the following properties:

   **For all file formats:**

   * (Optional) **Project Id:** Enter the identifier (Id) of the project where your Google Cloud Storage instance resides.

     <Note>This property is **required** for the Avro file format, and it is set in [Authenticate to Google Cloud Storage](#authenticate-to-google-cloud-storage).</Note>

   **For the CSV file format:**

   * **FMT:** Enter the format that you want to use to parse all text files. The default format is **CsvDelimited**.
   * **Aggregate Files:** Select whether you want to aggregate all the files that are located in the URI directory and that have the same schema into a single table named AggregatedFiles. By default, the **Enable** checkbox is not selected.
   * **Include Column Headers:** Select whether you want to obtain column headers from the first lines of the specified files. By default, the **Enable** checkbox is already selected.

   **For the Avro and Parquet file formats:**

   * **Data Model:** Select the data model that you want to use to parse documents for your format and to generate the database metadata. The default data model is **Document**.
   * **Aggregate Files:** Select whether you want to aggregate all the files that are located in the URI directory and that have the same schema into a single table named AggregatedFiles. By default, the **Enable** checkbox is not selected.
2. Define advanced connection settings on the **Advanced** tab. (In most cases, though, you should not need these settings.)
3. If you authenticate with OAuth and OAuthPKCE, click **Connect to Google Cloud Storage** to connect to your Google Cloud Storage account.
4. Click **Create & Test** to create your connection.

## More Information

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