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

# Google Cloud Data OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for Google Cloud Data in StackOne. One-time admin setup required before your users can link Google Cloud Data accounts via Hub.

<Warning>Cloud SQL Admin and Pub/Sub Admin roles (or Owner) on the target GCP project are required to complete this setup.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;googleclouddata_list_pubsub_schemas&#x22;,&#x22;label&#x22;:&#x22;List Pub/Sub Schemas&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_get_pubsub_schema&#x22;,&#x22;label&#x22;:&#x22;Get Pub/Sub Schema&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_create_pubsub_schema&#x22;,&#x22;label&#x22;:&#x22;Create Pub/Sub Schema&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_delete_pubsub_schema&#x22;,&#x22;label&#x22;:&#x22;Delete Pub/Sub Schema&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_validate_pubsub_schema&#x22;,&#x22;label&#x22;:&#x22;Validate Pub/Sub Schema&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_update_pubsub_schema&#x22;,&#x22;label&#x22;:&#x22;Commit Pub/Sub Schema Revision&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_list_pubsub_subscriptions&#x22;,&#x22;label&#x22;:&#x22;List Pub/Sub Subscriptions&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_get_pubsub_subscription&#x22;,&#x22;label&#x22;:&#x22;Get Pub/Sub Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_create_pubsub_subscription&#x22;,&#x22;label&#x22;:&#x22;Create Pub/Sub Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_update_pubsub_subscription&#x22;,&#x22;label&#x22;:&#x22;Update Pub/Sub Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_delete_pubsub_subscription&#x22;,&#x22;label&#x22;:&#x22;Delete Pub/Sub Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_detach_pubsub_subscription&#x22;,&#x22;label&#x22;:&#x22;Detach Pub/Sub Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_pull_pubsub_messages&#x22;,&#x22;label&#x22;:&#x22;Pull Pub/Sub Messages&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_acknowledge_pubsub_messages&#x22;,&#x22;label&#x22;:&#x22;Acknowledge Pub/Sub Messages&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_modify_ack_deadline&#x22;,&#x22;label&#x22;:&#x22;Modify Ack Deadline&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_seek_pubsub_subscription&#x22;,&#x22;label&#x22;:&#x22;Seek Pub/Sub Subscription&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_list_pubsub_topics&#x22;,&#x22;label&#x22;:&#x22;List Pub/Sub Topics&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_get_pubsub_topic&#x22;,&#x22;label&#x22;:&#x22;Get Pub/Sub Topic&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_create_pubsub_topic&#x22;,&#x22;label&#x22;:&#x22;Create Pub/Sub Topic&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_update_pubsub_topic&#x22;,&#x22;label&#x22;:&#x22;Update Pub/Sub Topic&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_delete_pubsub_topic&#x22;,&#x22;label&#x22;:&#x22;Delete Pub/Sub Topic&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_publish_pubsub_messages&#x22;,&#x22;label&#x22;:&#x22;Publish Pub/Sub Messages&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_list_topic_subscriptions&#x22;,&#x22;label&#x22;:&#x22;List Topic Subscriptions&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/pubsub&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_list_sql_backup_runs&#x22;,&#x22;label&#x22;:&#x22;List Cloud SQL Backup Runs&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_get_sql_backup_run&#x22;,&#x22;label&#x22;:&#x22;Get Cloud SQL Backup Run&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_create_sql_backup&#x22;,&#x22;label&#x22;:&#x22;Create Cloud SQL Backup&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_delete_sql_backup&#x22;,&#x22;label&#x22;:&#x22;Delete Cloud SQL Backup&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_restore_sql_backup&#x22;,&#x22;label&#x22;:&#x22;Restore Cloud SQL Backup&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_list_sql_databases&#x22;,&#x22;label&#x22;:&#x22;List Cloud SQL Databases&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_get_sql_database&#x22;,&#x22;label&#x22;:&#x22;Get Cloud SQL Database&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_create_sql_database&#x22;,&#x22;label&#x22;:&#x22;Create Cloud SQL Database&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_update_sql_database&#x22;,&#x22;label&#x22;:&#x22;Update Cloud SQL Database&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_delete_sql_database&#x22;,&#x22;label&#x22;:&#x22;Delete Cloud SQL Database&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_test_auth_googleclouddata&#x22;,&#x22;label&#x22;:&#x22;Test Auth&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_list_sql_instances&#x22;,&#x22;label&#x22;:&#x22;List Cloud SQL Instances&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_get_sql_instance&#x22;,&#x22;label&#x22;:&#x22;Get Cloud SQL Instance&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_create_sql_instance&#x22;,&#x22;label&#x22;:&#x22;Create Cloud SQL Instance&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_update_sql_instance&#x22;,&#x22;label&#x22;:&#x22;Update Cloud SQL Instance&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_delete_sql_instance&#x22;,&#x22;label&#x22;:&#x22;Delete Cloud SQL Instance&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_restart_sql_instance&#x22;,&#x22;label&#x22;:&#x22;Restart Cloud SQL Instance&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_start_sql_replica&#x22;,&#x22;label&#x22;:&#x22;Start Cloud SQL Replica&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_stop_sql_replica&#x22;,&#x22;label&#x22;:&#x22;Stop Cloud SQL Replica&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_failover_sql_instance&#x22;,&#x22;label&#x22;:&#x22;Failover Cloud SQL Instance&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_clone_sql_instance&#x22;,&#x22;label&#x22;:&#x22;Clone Cloud SQL Instance&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_list_sql_operations&#x22;,&#x22;label&#x22;:&#x22;List Cloud SQL Operations&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_list_sql_users&#x22;,&#x22;label&#x22;:&#x22;List Cloud SQL Users&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_get_sql_user&#x22;,&#x22;label&#x22;:&#x22;Get Cloud SQL User&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_create_sql_user&#x22;,&#x22;label&#x22;:&#x22;Create Cloud SQL User&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_update_sql_user&#x22;,&#x22;label&#x22;:&#x22;Update Cloud SQL User&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]},{&#x22;id&#x22;:&#x22;googleclouddata_delete_sql_user&#x22;,&#x22;label&#x22;:&#x22;Delete Cloud SQL User&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/sqlservice.admin&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Create or select a Google Cloud project</h2>

  <p>To use Cloud SQL Admin API and Cloud Pub/Sub API with OAuth 2.0, you need a Google Cloud project.</p>

  <Steps>
    <Step title="Sign in to Google Cloud">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://console.cloud.google.com/" target="_blank" rel="noopener noreferrer">Google Cloud Console</a>.</p>
      </div>
    </Step>

    <Step title="Create or select a project">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Select an existing project from the dropdown at the top of the page, or create a new one by clicking <strong>New Project</strong> and filling in the <strong>Project name</strong>, <strong>Organization</strong>, and <strong>Parent resource</strong> fields, then clicking <strong>Create</strong>.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Enable the Cloud SQL Admin API and Cloud Pub/Sub API</h2>

  <p>Navigate to <strong>APIs & Services</strong> > <strong>Library</strong>, search for each API below, click on it, then click <strong>Enable</strong>. If it already shows <strong>Manage</strong>, the API is already enabled.</p>

  <ul>
    <li>Cloud SQL Admin API</li>
    <li>Cloud Pub/Sub API</li>
  </ul>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure Google Auth Platform</h2>

  <p>Before creating OAuth credentials, ensure Google Auth Platform is configured.</p>

  <Steps>
    <Step title="Navigate to Google Auth Platform">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Google Cloud Console, go to <strong>APIs & Services</strong> > <strong>OAuth consent screen</strong>. This will open the Google Auth Platform dashboard.</p>
      </div>
    </Step>

    <Step title="Start configuration">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>If you have already configured Auth Platform (the OAuth Overview page with usage metrics is shown), skip this step and navigate to the <strong>Branding</strong> page from the sidebar. Otherwise, you will see a <strong>Get started</strong> button — click it to begin the configuration process.</p>
      </div>
    </Step>

    <Step title="Enter app information">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fill in the required fields for your application.</p>

        <ul>
          <li><strong>App name</strong>: Enter a name for your application (e.g., StackOne GCP Data Integration).</li>
          <li><strong>User support email</strong>: Select an email for user inquiries.</li>
          <li>Click <strong>Next</strong> to continue.</li>
        </ul>
      </div>
    </Step>

    <Step title="Select audience">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Choose the appropriate user type for your application.</p>

        <ul>
          <li><strong>Internal</strong>: Only users within your Google Workspace organization can authorize (no app verification required).</li>
          <li><strong>External</strong>: Any Google account can authorize (requires app verification for production use).</li>
          <li>Click <strong>Next</strong> to continue.</li>
        </ul>
      </div>
    </Step>

    <Step title="Enter contact information">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Provide email addresses for Google to notify you about any changes to your project. Click <strong>Next</strong> to continue.</p>
      </div>
    </Step>

    <Step title="Finish configuration">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Review your settings, agree to the Google API Services User Data Policy, and click <strong>Create</strong> to complete the setup.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure scopes</h2>

  <p>In Google Auth Platform, go to <strong>Data Access</strong> and click <strong>Add or Remove Scopes</strong> to configure the OAuth scopes your application needs.</p>

  <Steps>
    <Step title="Add scopes">
      <div data-guide-step data-guide-scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/sqlservice.admin,https://www.googleapis.com/auth/pubsub" data-guide-display-scopes-list="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/sqlservice.admin,https://www.googleapis.com/auth/pubsub">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only,https://www.googleapis.com/auth/sqlservice.admin,https://www.googleapis.com/auth/pubsub" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Acknowledge Pub/Sub Messages, Clone Cloud SQL Instance, Commit Pub/Sub Schema Revision, Create Cloud SQL Backup, Create Cloud SQL Database, Create Cloud SQL Instance, Create Cloud SQL User, Create Pub/Sub Schema, Create Pub/Sub Subscription, Create Pub/Sub Topic, Delete Cloud SQL Backup, Delete Cloud SQL Database, Delete Cloud SQL Instance, Delete Cloud SQL User, Delete Pub/Sub Schema, Delete Pub/Sub Subscription, Delete Pub/Sub Topic, Detach Pub/Sub Subscription, Failover Cloud SQL Instance, Get Cloud SQL Backup Run, Get Cloud SQL Database, Get Cloud SQL Instance, Get Cloud SQL User, Get Pub/Sub Schema, Get Pub/Sub Subscription, Get Pub/Sub Topic, List Cloud SQL Backup Runs, List Cloud SQL Databases, List Cloud SQL Instances, List Cloud SQL Operations, List Cloud SQL Users, List Pub/Sub Schemas, List Pub/Sub Subscriptions, List Pub/Sub Topics, List Topic Subscriptions, Modify Ack Deadline, Publish Pub/Sub Messages, Pull Pub/Sub Messages, Restart Cloud SQL Instance, Restore Cloud SQL Backup, Seek Pub/Sub Subscription, Start Cloud SQL Replica, Stop Cloud SQL Replica, Test Auth, Update Cloud SQL Database, Update Cloud SQL Instance, Update Cloud SQL User, Update Pub/Sub Subscription, Update Pub/Sub Topic, Validate Pub/Sub Schema</span>
        </div>

        <p>Add the required Google Cloud Platform scopes for your integration.</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/cloud-platform">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/cloud-platform" title="Copy scope" data-copy="https://www.googleapis.com/auth/cloud-platform">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/cloud-platform](https://www.googleapis.com/auth/cloud-platform)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/cloud-platform.read-only">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/cloud-platform.read-only" title="Copy scope" data-copy="https://www.googleapis.com/auth/cloud-platform.read-only">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/cloud-platform.read-only](https://www.googleapis.com/auth/cloud-platform.read-only)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/sqlservice.admin">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/sqlservice.admin" title="Copy scope" data-copy="https://www.googleapis.com/auth/sqlservice.admin">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/sqlservice.admin](https://www.googleapis.com/auth/sqlservice.admin)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/pubsub">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/pubsub" title="Copy scope" data-copy="https://www.googleapis.com/auth/pubsub">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/pubsub](https://www.googleapis.com/auth/pubsub)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Select scopes from the list">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the <strong>Update selected scopes</strong> side panel that opens, check the required scopes from the list.</p>
      </div>
    </Step>

    <Step title="Manually add scopes (if needed)">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>If a required scope is not shown in the list, use the <strong>Manually add scopes</strong> section.</p>

        <ul>
          <li>Enter the full scope URL in the input field.</li>
          <li>Click <strong>Add to table</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Apply and save">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Confirm and persist your scope configuration.</p>

        <ul>
          <li>Click <strong>Update</strong> to apply the selected scopes. The side panel will close.</li>
          <li>On the <strong>Data Access</strong> page, click <strong>Save</strong> to persist the scope configuration.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Create OAuth 2.0 client credentials</h2>

  <p>Set up OAuth client credentials to authenticate with Cloud SQL Admin API and Cloud Pub/Sub API. If you already have an existing OAuth 2.0 client, you can reuse it by adding the StackOne redirect URI and generating a new secret.</p>

  <Steps>
    <Step title="Navigate to Credentials">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Google Cloud Console, go to <strong>APIs & Services</strong> > <strong>Credentials</strong>.</p>
      </div>
    </Step>

    <Step title="Option A — Create a new OAuth client">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Skip this step if you are using an existing client.</p>

        <ul>
          <li>Click <strong>+ Create Credentials</strong> and select <strong>OAuth client ID</strong>.</li>
          <li>Select <strong>Web application</strong> as the application type.</li>
          <li>Enter a <strong>Name</strong> for your OAuth client (e.g., StackOne Cloud Data Integration).</li>
          <li>Under <strong>Authorized redirect URIs</strong>, click <strong>Add URI</strong> and enter `https://api.stackone.com/connect/oauth2/googleclouddata/callback`.</li>
          <li>Click <strong>Create</strong>. A dialog will display your <strong>Client ID</strong> and <strong>Client Secret</strong> — copy and store them securely.</li>
        </ul>
      </div>
    </Step>

    <Step title="Option B — Use an existing OAuth client">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Skip this step if you created a new client above.</p>

        <ul>
          <li>Click on your existing OAuth 2.0 client ID from the list.</li>
          <li>Under <strong>Authorized redirect URIs</strong>, click <strong>Add URI</strong>, enter `https://api.stackone.com/connect/oauth2/googleclouddata/callback`, and click <strong>Save</strong>.</li>
          <li>Under <strong>Client secrets</strong>, click <strong>+ Add secret</strong> to generate a new secret. Copy it and store it securely — it will not be shown again.</li>
          <li>Your <strong>Client ID</strong> is shown on the same page under <strong>Additional information</strong>.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Google Cloud Data</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>Google Cloud Data</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Client ID</strong></li>
          <li><strong>Client Secret</strong></li>
          <li><strong>Scopes</strong> (Optional)</li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>Google Cloud Data</strong>.
