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

# Connect Databricks with OAuth 2.0 (M2M - Machine to Machine) – StackOne Hub

> Link a Databricks account in the StackOne Hub using OAuth 2.0 (M2M - Machine to Machine). End-user guide to authorize the integration and start using Databricks actions.

<Warning>You must have Databricks account admin privileges to create service principals and generate OAuth secrets.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;databricks_download_billable_usage&#x22;,&#x22;label&#x22;:&#x22;Download Billable Usage&#x22;,&#x22;scopes&#x22;:[&#x22;billing&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_log_delivery_configs&#x22;,&#x22;label&#x22;:&#x22;List Log Delivery Configurations&#x22;,&#x22;scopes&#x22;:[&#x22;billing&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_log_delivery_config&#x22;,&#x22;label&#x22;:&#x22;Get Log Delivery Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;billing&#x22;]},{&#x22;id&#x22;:&#x22;databricks_update_log_delivery_config&#x22;,&#x22;label&#x22;:&#x22;Update Log Delivery Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;billing&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_log_delivery_config&#x22;,&#x22;label&#x22;:&#x22;Create Log Delivery Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;billing&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_budgets&#x22;,&#x22;label&#x22;:&#x22;List Budgets&#x22;,&#x22;scopes&#x22;:[&#x22;billing&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_budget&#x22;,&#x22;label&#x22;:&#x22;Create Budget&#x22;,&#x22;scopes&#x22;:[&#x22;billing&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_budget&#x22;,&#x22;label&#x22;:&#x22;Get Budget&#x22;,&#x22;scopes&#x22;:[&#x22;billing&#x22;]},{&#x22;id&#x22;:&#x22;databricks_update_budget&#x22;,&#x22;label&#x22;:&#x22;Update Budget&#x22;,&#x22;scopes&#x22;:[&#x22;billing&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_budget&#x22;,&#x22;label&#x22;:&#x22;Delete Budget&#x22;,&#x22;scopes&#x22;:[&#x22;billing&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_custom_app_integrations&#x22;,&#x22;label&#x22;:&#x22;List Custom App Integrations&#x22;,&#x22;scopes&#x22;:[&#x22;all-apis&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_custom_app_integration&#x22;,&#x22;label&#x22;:&#x22;Get Custom App Integration&#x22;,&#x22;scopes&#x22;:[&#x22;all-apis&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_custom_app_integration&#x22;,&#x22;label&#x22;:&#x22;Create Custom App Integration&#x22;,&#x22;scopes&#x22;:[&#x22;all-apis&#x22;]},{&#x22;id&#x22;:&#x22;databricks_update_custom_app_integration&#x22;,&#x22;label&#x22;:&#x22;Update Custom App Integration&#x22;,&#x22;scopes&#x22;:[&#x22;all-apis&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_custom_app_integration&#x22;,&#x22;label&#x22;:&#x22;Delete Custom App Integration&#x22;,&#x22;scopes&#x22;:[&#x22;all-apis&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_groups&#x22;,&#x22;label&#x22;:&#x22;List Groups&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_group&#x22;,&#x22;label&#x22;:&#x22;Get Group&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_group&#x22;,&#x22;label&#x22;:&#x22;Create Group&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_update_group&#x22;,&#x22;label&#x22;:&#x22;Update Group&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_group&#x22;,&#x22;label&#x22;:&#x22;Delete Group&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_add_group_member&#x22;,&#x22;label&#x22;:&#x22;Add Group Member&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_remove_group_member&#x22;,&#x22;label&#x22;:&#x22;Remove Group Member&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_ip_access_lists&#x22;,&#x22;label&#x22;:&#x22;List IP Access Lists&#x22;,&#x22;scopes&#x22;:[&#x22;access-management&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_ip_access_list&#x22;,&#x22;label&#x22;:&#x22;Get IP Access List&#x22;,&#x22;scopes&#x22;:[&#x22;access-management&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_ip_access_list&#x22;,&#x22;label&#x22;:&#x22;Create IP Access List&#x22;,&#x22;scopes&#x22;:[&#x22;access-management&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_ip_access_list&#x22;,&#x22;label&#x22;:&#x22;Delete IP Access List&#x22;,&#x22;scopes&#x22;:[&#x22;access-management&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_metastore_workspace_assignments&#x22;,&#x22;label&#x22;:&#x22;List Metastore Workspace Assignments&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_workspace_metastore&#x22;,&#x22;label&#x22;:&#x22;Get Workspace Metastore&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_assign_metastore_to_workspace&#x22;,&#x22;label&#x22;:&#x22;Assign Metastore To Workspace&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_metastore_from_workspace&#x22;,&#x22;label&#x22;:&#x22;Delete Metastore From Workspace&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_metastores&#x22;,&#x22;label&#x22;:&#x22;List Metastores&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_metastore&#x22;,&#x22;label&#x22;:&#x22;Get Metastore&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_metastore&#x22;,&#x22;label&#x22;:&#x22;Create Metastore&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_update_metastore&#x22;,&#x22;label&#x22;:&#x22;Update Metastore&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_metastore&#x22;,&#x22;label&#x22;:&#x22;Delete Metastore&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_credentials&#x22;,&#x22;label&#x22;:&#x22;List Credential Configurations&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_credential&#x22;,&#x22;label&#x22;:&#x22;Create Credential Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_credential&#x22;,&#x22;label&#x22;:&#x22;Get Credential Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_credential&#x22;,&#x22;label&#x22;:&#x22;Delete Credential Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;unity-catalog&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_storage_configurations&#x22;,&#x22;label&#x22;:&#x22;List Storage Configurations&#x22;,&#x22;scopes&#x22;:[&#x22;provisioning&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_storage_configuration&#x22;,&#x22;label&#x22;:&#x22;Get Storage Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;provisioning&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_network&#x22;,&#x22;label&#x22;:&#x22;Create Network Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;networking&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_networks&#x22;,&#x22;label&#x22;:&#x22;List Network Configurations&#x22;,&#x22;scopes&#x22;:[&#x22;networking&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_network&#x22;,&#x22;label&#x22;:&#x22;Get Network Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;networking&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_network&#x22;,&#x22;label&#x22;:&#x22;Delete Network Configuration&#x22;,&#x22;scopes&#x22;:[&#x22;networking&#x22;]},{&#x22;id&#x22;:&#x22;databricks_unified_get_me&#x22;,&#x22;label&#x22;:&#x22;Get Unified Credentials&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_unified_list_groups&#x22;,&#x22;label&#x22;:&#x22;List Unified Groups&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_unified_get_group&#x22;,&#x22;label&#x22;:&#x22;Get Unified Group&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_unified_list_organizations&#x22;,&#x22;label&#x22;:&#x22;List Unified Organizations&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_unified_get_organization&#x22;,&#x22;label&#x22;:&#x22;Get Unified Organization&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_unified_list_roles&#x22;,&#x22;label&#x22;:&#x22;List Unified Roles&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_unified_get_role&#x22;,&#x22;label&#x22;:&#x22;Get Unified Role&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_unified_list_users&#x22;,&#x22;label&#x22;:&#x22;List Unified Users&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_unified_get_user&#x22;,&#x22;label&#x22;:&#x22;Get Unified User&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_service_principal_secrets&#x22;,&#x22;label&#x22;:&#x22;List Service Principal Secrets&#x22;,&#x22;scopes&#x22;:[&#x22;all-apis&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_service_principal_secret&#x22;,&#x22;label&#x22;:&#x22;Create Service Principal Secret&#x22;,&#x22;scopes&#x22;:[&#x22;all-apis&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_service_principal_secret&#x22;,&#x22;label&#x22;:&#x22;Delete Service Principal Secret&#x22;,&#x22;scopes&#x22;:[&#x22;all-apis&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_service_principals&#x22;,&#x22;label&#x22;:&#x22;List Service Principals&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_service_principal&#x22;,&#x22;label&#x22;:&#x22;Get Service Principal&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_service_principal&#x22;,&#x22;label&#x22;:&#x22;Create Service Principal&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_update_service_principal&#x22;,&#x22;label&#x22;:&#x22;Update Service Principal&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_service_principal&#x22;,&#x22;label&#x22;:&#x22;Delete Service Principal&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_users&#x22;,&#x22;label&#x22;:&#x22;List Users&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_user&#x22;,&#x22;label&#x22;:&#x22;Get User&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_user&#x22;,&#x22;label&#x22;:&#x22;Create User&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_update_user&#x22;,&#x22;label&#x22;:&#x22;Update User&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_user&#x22;,&#x22;label&#x22;:&#x22;Delete User&#x22;,&#x22;scopes&#x22;:[&#x22;scim&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_workspace_permission_assignments&#x22;,&#x22;label&#x22;:&#x22;List Workspace Permission Assignments&#x22;,&#x22;scopes&#x22;:[&#x22;access-management&#x22;]},{&#x22;id&#x22;:&#x22;databricks_create_or_update_workspace_permission_assignment&#x22;,&#x22;label&#x22;:&#x22;Create Or Update Workspace Permission Assignment&#x22;,&#x22;scopes&#x22;:[&#x22;access-management&#x22;]},{&#x22;id&#x22;:&#x22;databricks_delete_workspace_permission_assignment&#x22;,&#x22;label&#x22;:&#x22;Delete Workspace Permission Assignment&#x22;,&#x22;scopes&#x22;:[&#x22;access-management&#x22;]},{&#x22;id&#x22;:&#x22;databricks_list_workspaces&#x22;,&#x22;label&#x22;:&#x22;List Workspaces&#x22;,&#x22;scopes&#x22;:[&#x22;provisioning&#x22;]},{&#x22;id&#x22;:&#x22;databricks_get_workspace&#x22;,&#x22;label&#x22;:&#x22;Get Workspace&#x22;,&#x22;scopes&#x22;:[&#x22;provisioning&#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>Finding Your Account ID</h2>

  <p>The Account ID is a UUID required for all account-level API calls.</p>

  <Steps>
    <Step title="Sign in to the Account Console">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to the <a href="https://accounts.cloud.databricks.com" target="_blank" rel="noopener noreferrer">Databricks Account Console</a>.</p>
      </div>
    </Step>

    <Step title="Copy your Account ID">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click your <strong>user avatar</strong> in the top-right corner. Your Account ID is shown under <strong>My account</strong> — click the copy icon next to it.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Creating a Service Principal</h2>

  <p>A service principal is a machine identity used for automated API access without tying credentials to a user account.</p>

  <Steps>
    <Step title="Navigate to Service Principals">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the left sidebar, click <strong>User management</strong>, then click the <strong>Service principals</strong> tab.</p>
      </div>
    </Step>

    <Step title="Add a Service Principal">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>Add service principal</strong>, enter a descriptive name in the <strong>New service principal display name</strong> field (e.g. "StackOne Integration"), and click <strong>Add service principal</strong>.</p>
      </div>
    </Step>

    <Step title="Assign Account Admin Role">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click the <strong>Roles</strong> tab and toggle on <strong>Account admin</strong>. This role is required for the service principal to manage users, groups, and service principals via the SCIM API.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Generating OAuth Credentials</h2>

  <p>Generate a client secret for the service principal to use with OAuth client credentials flow.</p>

  <Steps>
    <Step title="Open the Service Principal">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In <strong>User management > Service principals</strong>, click on the service principal you created.</p>
      </div>
    </Step>

    <Step title="Generate a Secret">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click the <strong>Credentials & secrets</strong> tab, then click <strong>Generate secret</strong>. Set the lifetime (up to 730 days) and click <strong>Generate</strong>.</p>
      </div>
    </Step>

    <Step title="Copy the Credentials">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Copy both values immediately — the secret is shown only once and cannot be retrieved later.</p>

        <ul>
          <li><strong>Client ID</strong> — paste into the <strong>Client ID</strong> field in StackOne</li>
          <li><strong>Client Secret</strong> — paste into the <strong>Client Secret</strong> field in StackOne</li>
        </ul>
      </div>
    </Step>

    <Step title="Configure scopes">
      <div data-guide-step data-guide-scopes="all-apis,scim,access-management,billing,networking,provisioning,unity-catalog" data-guide-display-scopes-list="all-apis,scim,access-management,billing,networking,provisioning,unity-catalog">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="all-apis,scim,access-management,billing,networking,provisioning,unity-catalog" 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>Add Group Member, Assign Metastore To Workspace, Create Budget, Create Credential Configuration, Create Custom App Integration, Create Group, Create IP Access List, Create Log Delivery Configuration, Create Metastore, Create Network Configuration, Create Or Update Workspace Permission Assignment, Create Service Principal, Create Service Principal Secret, Create User, Delete Budget, Delete Credential Configuration, Delete Custom App Integration, Delete Group, Delete IP Access List, Delete Metastore, Delete Metastore From Workspace, Delete Network Configuration, Delete Service Principal, Delete Service Principal Secret, Delete User, Delete Workspace Permission Assignment, Download Billable Usage, Get Budget, Get Credential Configuration, Get Custom App Integration, Get Group, Get IP Access List, Get Log Delivery Configuration, Get Metastore, Get Network Configuration, Get Service Principal, Get Storage Configuration, Get Unified Credentials, Get Unified Group, Get Unified Organization, Get Unified Role, Get Unified User, Get User, Get Workspace, Get Workspace Metastore, List Budgets, List Credential Configurations, List Custom App Integrations, List Groups, List IP Access Lists, List Log Delivery Configurations, List Metastore Workspace Assignments, List Metastores, List Network Configurations, List Service Principal Secrets, List Service Principals, List Storage Configurations, List Unified Groups, List Unified Organizations, List Unified Roles, List Unified Users, List Users, List Workspace Permission Assignments, List Workspaces, Remove Group Member, Update Budget, Update Custom App Integration, Update Group, Update Log Delivery Configuration, Update Metastore, Update Service Principal, Update User</span>
        </div>

        <p>The <strong>Scopes</strong> field defaults to `all-apis` if left empty. Use individual scopes separated by spaces to restrict access:</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="all-apis">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy all-apis" title="Copy scope" data-copy="all-apis">
                  <span className="connector-guide-scope-copy__label">all-apis</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="scim">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy scim" title="Copy scope" data-copy="scim">
                  <span className="connector-guide-scope-copy__label">scim</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="access-management">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy access-management" title="Copy scope" data-copy="access-management">
                  <span className="connector-guide-scope-copy__label">access-management</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="billing">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy billing" title="Copy scope" data-copy="billing">
                  <span className="connector-guide-scope-copy__label">billing</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="networking">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy networking" title="Copy scope" data-copy="networking">
                  <span className="connector-guide-scope-copy__label">networking</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="provisioning">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy provisioning" title="Copy scope" data-copy="provisioning">
                  <span className="connector-guide-scope-copy__label">provisioning</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="unity-catalog">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy unity-catalog" title="Copy scope" data-copy="unity-catalog">
                  <span className="connector-guide-scope-copy__label">unity-catalog</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>
  </Steps>
</section>

<div data-whitelabel-hide>
  <h2>Linking the Account from the Hub</h2>

  <Steps>
    <Step title="Navigate to the Hub">
      Use one of the three <a href="/guides/accounts-section#linking-accounts">Linking Account Methods</a> to access the Hub.
    </Step>

    <Step title="Fill out the fields">
      Fill out the following fields using details from your provider:

      <ul>
        <li><strong>Account ID</strong></li>
        <li><strong>Client ID</strong></li>
        <li><strong>Client Secret</strong></li>
        <li><strong>Scopes</strong> (Optional)</li>
      </ul>
    </Step>

    <Step title="Connect">
      <ul>
        <li>Click <strong>Connect</strong></li>
        <li>If applicable, the provider will redirect you to a sign-in or authorization page. Complete the provider's authorization flow.</li>
        <li>Once authorization is successful, you will see a confirmation popup</li>
      </ul>
    </Step>
  </Steps>

  <p>If the account linking is successful, you will see the newly linked account in your <a href="/guides/accounts-section">Accounts</a> page.</p>
</div>
