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

# Databricks OAuth 2.0 (U2M - User to Machine) connector profile – StackOne setup guide

> Set up the OAuth 2.0 (U2M - User to Machine) connector profile for Databricks in StackOne. One-time admin setup required before your users can link Databricks accounts via Hub.

<Warning>You must have Databricks account admin privileges to create app connections.</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 an App Connection</h2>

  <p>Register a custom OAuth app connection to allow StackOne to authenticate on behalf of your users.</p>

  <Steps>
    <Step title="Navigate to App Connections">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the left sidebar, click <strong>Settings</strong>, then click the <strong>App connections</strong> tab.</p>
      </div>
    </Step>

    <Step title="Add a New Connection">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>Add connection</strong> and fill in the following details:</p>

        <ul>
          <li><strong>Application name</strong>: Enter a descriptive name (e.g. "StackOne Integration")</li>
          <li><strong>Redirect URLs</strong>: Enter `https://api.stackone.com/connect/oauth2/databricks/callback`</li>
          <li><strong>Access scopes</strong>: Select <strong>All APIs</strong> — this is required for StackOne to access the SCIM provisioning APIs</li>
          <li><strong>Generate a client secret</strong>: Check this box to generate a secret for server-side authentication</li>
          <li><strong>Access Token TTL</strong>: Leave as default (60 minutes).</li>
          <li><strong>Refresh Token TTL</strong>: Set to the maximum value of <strong>129,600 minutes (90 days)</strong> to avoid the account going into an errored state when the refresh token expires. After 90 days, you will need to re-authenticate by editing the account in StackOne.</li>
        </ul>
      </div>
    </Step>

    <Step title="Copy the Credentials">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>After clicking <strong>Add</strong>, a <strong>Connection created</strong> dialog appears with a warning: "Make sure to copy the secret now. You won't be able to see it again." Copy both values using the copy icons and click <strong>Done</strong>.</p>

        <ul>
          <li><strong>Client ID</strong> — click the copy icon and paste into the <strong>Client ID</strong> field in StackOne</li>
          <li><strong>Client Secret</strong> — click the copy icon and paste into the <strong>Client Secret</strong> field in StackOne</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Understanding Scopes</h2>

  <p>Scopes control which Databricks APIs the OAuth connection can access. The scope is configured during the app connection setup (Access scopes) and also sent in the OAuth authorization request.</p>

  <Steps>
    <Step title="Configure scopes">
      <div data-guide-step data-guide-scopes="all-apis,offline_access,scim,access-management,billing,provisioning,unity-catalog" data-guide-display-scopes-list="all-apis,offline_access,scim,access-management,billing,provisioning,unity-catalog">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="all-apis,offline_access,scim,access-management,billing,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 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 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 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 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 offline_access` if left empty. The `offline_access` scope is required to receive a refresh token for long-lived sessions. 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="offline_access">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy offline_access" title="Copy scope" data-copy="offline_access">
                  <span className="connector-guide-scope-copy__label">offline\_access</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="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>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Databricks</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>Databricks</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0 (U2M - User to Machine)</strong></li>

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

        <ul style={{ marginLeft: '20px' }}>
          <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>
      </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>Databricks</strong>.
