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

# Databricks

> Properties required to create and update Databricks connections

Properties for Databricks connections are specified in the `properties` object when creating or updating a connection. All properties are nested within the connection request body.

## Properties

Review the required connection properties for the authentication method you are using.

<Tabs>
  <Tab title="PAT">
    <ParamField body="authType" type="string" required>
      Authentication method for your Databricks connection. Must be `pat` for Personal Access Token authentication.
    </ParamField>

    <ParamField body="jdbcUrl" type="string" required>
      JDBC connection URL for the Databricks SQL warehouse.

      Format: `jdbc:databricks://{workspace - url}:{port}/{database};transportMode=http;ssl=1;AuthMech=3;httpPath={http - path};`
    </ParamField>

    <ParamField body="catalog" type="string" required>
      Unity Catalog catalog name for the default write location.
    </ParamField>

    <ParamField body="schema" type="string" required>
      Schema name within the catalog for the default write location.
    </ParamField>

    <ParamField body="token" type="object" required>
      Reference to a Prophecy secret containing your Databricks Personal Access Token.

      * When using the [create connection API](/api-reference/connections/add-connection-to-fabric), the secret must be stored in Prophecy before creating the connection.
      * When using the [create fabric API](/api-reference/fabrics/create-a-new-fabric), replace this whole object with the string `{{SECRET}}`, which references the secret being created in parallel to the connection.

      <Expandable title="token properties">
        <ParamField body="token.kind" type="string" required>
          Secret kind. Must be `prophecy`.
        </ParamField>

        <ParamField body="token.subKind" type="string" required>
          Secret sub-type. Must be `text` for Personal Access Tokens.
        </ParamField>

        <ParamField body="token.type" type="string" required>
          Type of reference. Must be `secret`.
        </ParamField>

        <ParamField body="token.properties" type="object" required>
          Properties identifying the secret by ID and name.
        </ParamField>

        <ParamField body="token.properties.id" type="string" required>
          The ID of the secret stored in Prophecy. Find the ID using the [List secrets per fabric
          API](/api-reference/secrets/list-secrets-per-fabric).
        </ParamField>

        <ParamField body="token.properties.name" type="string" required>
          The name of the secret stored in Prophecy.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="kgConfig" type="object">
      Knowledge graph configuration settings for the connection. See the [Knowledge graph
      indexer](/api-reference/connections/properties/kgconfig) properties for more information.
    </ParamField>
  </Tab>

  <Tab title="U2M">
    <ParamField body="authType" type="string" required>
      Authentication method for your Databricks connection. Must be `oauth` for OAuth authentication.
    </ParamField>

    <ParamField body="jdbcUrl" type="string" required>
      JDBC connection URL for the Databricks SQL warehouse.

      Format: `jdbc:databricks://{workspace - url}:{port}/{database};transportMode=http;ssl=1;AuthMech=3;httpPath={http - path};`
    </ParamField>

    <ParamField body="catalog" type="string" required>
      Unity Catalog catalog name for the default write location.
    </ParamField>

    <ParamField body="schema" type="string" required>
      Schema name within the catalog for the default write location.
    </ParamField>

    <ParamField body="provider" type="string" required>
      Provider name. Must be `databricks`.
    </ParamField>

    <ParamField body="oAuthType" type="string" required>
      OAuth authentication type. Must be `u2m` for user-to-machine authentication.
    </ParamField>

    <ParamField body="oAuthAppRegistrationID" type="string" required>
      OAuth app registration ID [configured in Prophecy](/data-analysis/administration/management/cluster-admin-settings/oauth-setup) for Databricks.
    </ParamField>

    <ParamField body="kgConfig" type="object">
      Knowledge graph configuration settings for the connection. See the [Knowledge graph
      indexer](/api-reference/connections/properties/kgconfig) properties for more information.
    </ParamField>
  </Tab>

  <Tab title="M2M">
    <ParamField body="authType" type="string" required>
      Authentication method for your Databricks connection. Must be `oauth` for OAuth authentication.
    </ParamField>

    <ParamField body="jdbcUrl" type="string" required>
      JDBC connection URL for the Databricks SQL warehouse.

      Format: `jdbc:databricks://{workspace - url}:{port}/{database};transportMode=http;ssl=1;AuthMech=3;httpPath={http - path};`
    </ParamField>

    <ParamField body="catalog" type="string" required>
      Unity Catalog catalog name for the default write location.
    </ParamField>

    <ParamField body="schema" type="string" required>
      Schema name within the catalog for the default write location.
    </ParamField>

    <ParamField body="provider" type="string" required>
      Provider name. Must be `databricks`.
    </ParamField>

    <ParamField body="oAuthType" type="string" required>
      OAuth authentication type. Must be `m2m` for machine-to-machine authentication.
    </ParamField>

    <ParamField body="clientId" type="string" required>
      Your OAuth client ID.
    </ParamField>

    <ParamField body="clientSecret" type="object" required>
      Reference to a Prophecy secret containing the OAuth client secret.

      * When using the [create connection API](/api-reference/connections/add-connection-to-fabric), the secret must be stored in Prophecy before creating the connection.
      * When using the [create fabric API](/api-reference/fabrics/create-a-new-fabric), replace this whole object with the string `{{SECRET}}`, which references the secret being created in parallel to the connection.

      <Expandable title="clientSecret properties">
        <ParamField body="clientSecret.kind" type="string" required>
          Secret kind. Must be `prophecy`.
        </ParamField>

        <ParamField body="clientSecret.subKind" type="string" required>
          Secret sub-type. Must be `text` for client secrets.
        </ParamField>

        <ParamField body="clientSecret.type" type="string" required>
          Type of reference. Must be `secret`.
        </ParamField>

        <ParamField body="clientSecret.properties" type="object" required>
          Properties identifying the secret by ID and name.
        </ParamField>

        <ParamField body="clientSecret.properties.id" type="string" required>
          The ID of the secret stored in Prophecy. Find the ID using the [List secrets per fabric
          API](/api-reference/secrets/list-secrets-per-fabric).
        </ParamField>

        <ParamField body="clientSecret.properties.name" type="string" required>
          The name of the secret stored in Prophecy.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="kgConfig" type="object">
      Knowledge graph configuration settings for the connection. See the [Knowledge graph
      indexer](/api-reference/connections/properties/kgconfig) properties for more information.
    </ParamField>
  </Tab>
</Tabs>
