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

# Update dbt configuration

> <Note>
  **Connection Admin** permissions are required to use this endpoint.
</Note>

Update the dbt configuration for the specified connection.




## OpenAPI

````yaml /api/openapi.yaml put /v1/connections/{connectionId}/dbt
openapi: 3.1.0
info:
  title: Omni API
  description: >
    The Omni REST API provides programmatic access to your Omni instance for
    managing users, documents, queries, schedules, and more.  
  version: 1.0.0
  contact:
    name: Omni Support
    url: https://docs.omni.co
servers:
  - url: https://{instance}.omniapp.co/api
    description: Production
    variables:
      instance:
        default: blobsrus
        description: Your production Omni instance subdomain
  - url: https://{instance}.playground.exploreomni.dev/api
    description: Playground
    variables:
      instance:
        default: blobsrus
        description: Your playground Omni instance subdomain
security:
  - bearerAuth: []
  - orgApiKey: []
tags:
  - name: Who Am I
    description: Inspect your own user permissions
  - name: AI
    description: AI-powered query generation
  - name: AI Credit Controls
    description: Manage organization-level AI credit usage
  - name: AI Credit Usage
    description: Monitor AI credit usage
  - name: AI Evals
    description: >-
      Manage prompt sets and runs used to score AI quality against curated
      prompt suites.
  - name: AI Model Suggestions
    description: Manage AI-generated suggestions for shared models
  - name: AI Routines
    description: >-
      Manage Routines, which are scheduled, recurring AI-powered tasks that run
      automatically on your data
  - name: Documents v2
    description: >
      A draft-based workflow for creating and editing documents: create a
      document, patch a draft, then publish. Replaces the one-shot `PUT`/`PATCH`
      v1 document write endpoints.
  - name: Documents
    description: Create, retrieve, and manage documents
  - name: API Tokens
    description: >-
      Manage API tokens (Organization keys, Personal Access Tokens, MCP OAuth
      grants)
  - name: Connections
    description: Manage database connections
  - name: Connection environments
    description: Manage connection environments database connections
  - name: Content
    description: Unified content retrieval (documents and folders)
  - name: Content migration
    description: Export and import dashboards
  - name: Content validator
    description: Validate content against models and perform find/replace operations
  - name: Dashboard downloads
    description: Download dashboards and tiles as PDF, PNG, XLSX, CSV, or JSON files
  - name: Dashboard filters and controls
    description: Read and update dashboard filter and control default values
  - name: dbt
    description: Manage dbt configuration for connections
  - name: Document favorites
    description: Favorite and unfavorite documents
  - name: Document labels
    description: Apply and manage labels on documents
  - name: Document permissions
    description: Manage document-level access
  - name: Labels
    description: |
      Manage labels in the organization
  - name: Folders
    description: Create and organize content folders
  - name: Folder labels
    description: Apply and manage labels on folders
  - name: Folder permissions
    description: Manage folder-level access
  - name: Jobs
    description: Check status of asynchronous jobs
  - name: Models
    description: Create and manage data models
  - name: Model branches
    description: Manage model branches and merge changes
  - name: Model git configuration
    description: Manage git configuration for shared models
  - name: Queries
    description: Execute workbook queries
  - name: Schedules
    description: Create and manage scheduled tasks
  - name: Schedule recipients
    description: Manage schedule recipients
  - name: Schema refresh schedules
    description: Manage automated schema refresh schedules for connections
  - name: Topics
    description: Retrieve topic information from models
  - name: Uploads
    description: Manage file uploads
  - name: Users
    description: Manage users
  - name: User attributes
    description: Manage user attribute definitions
  - name: User groups
    description: Manage user groups
  - name: User model roles
    description: Manage model and connection role assignments for users
  - name: User group model roles
    description: Manage model and connection role assignments for user groups
  - name: Uploads
    description: Manage CSV and spreadsheet uploads
paths:
  /v1/connections/{connectionId}/dbt:
    put:
      tags:
        - dbt
      summary: Update dbt configuration
      description: |
        <Note>
          **Connection Admin** permissions are required to use this endpoint.
        </Note>

        Update the dbt configuration for the specified connection.
      operationId: updateDbtConfiguration
      parameters:
        - name: connectionId
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: ID of the connection where dbt is configured
            example: 550e8400-e29b-41d4-a716-446655440000
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - autogenRelationships
                - branch
                - enableVirtualSchemas
                - sshUrl
              properties:
                authMethod:
                  type: string
                  enum:
                    - ssh
                    - https_token
                    - github_app
                  description: >
                    The authentication method to use for git operations:


                    - `ssh` - Deploy key

                    - `https_token` - Deploy token/PAT

                    - `github_app` - GitHub App installation (github.com only)


                    When omitted, the existing auth method is retained.
                    Field/method compatibility is validated against the
                    effective auth method (the request's `authMethod`, or the
                    connected repo's if omitted).
                  example: ssh
                autogenRelationships:
                  type: boolean
                  description: Automatically generate relationships from dbt
                  example: true
                branch:
                  type: string
                  minLength: 1
                  description: Git branch name
                  example: main
                committerEmail:
                  type: string
                  description: >
                    **Required when `authMethod: github_app` and commit signing
                    is enabled**. Email address used for commit signing. Must
                    match the email the signing key is registered against in
                    GitHub. When blank on an update, preserves the existing
                    committer email rather than clearing it.
                  example: bot@example.com
                committerName:
                  type: string
                  description: >
                    **Required when `authMethod: github_app` and commit signing
                    is enabled**. Name used for commit signing. When blank on an
                    update, preserves the existing committer name rather than
                    clearing it.
                  example: Omni Bot
                dbtVersion:
                  type:
                    - string
                    - 'null'
                  enum:
                    - Auto
                    - '1.10'
                    - '1.11'
                  description: dbt version to use
                  example: '1.11'
                enableSemanticLayer:
                  type: boolean
                  default: false
                  description: >-
                    Enable [dbt semantic layer
                    integration](/integrations/dbt/semantic-layer)
                  example: false
                enableVirtualSchemas:
                  type: boolean
                  description: Enable virtual schemas from dbt
                  example: false
                githubAppInstallationId:
                  type: string
                  pattern: ^[0-9]+$
                  description: >
                    **Required when `authMethod: github_app`**. GitHub App
                    installation ID (numeric). Updates without an installation
                    ID keep the existing repo config for metadata-only saves,
                    but changing the URL or switching auth methods without one
                    is rejected.
                  example: '12345678'
                projectRootPath:
                  anyOf:
                    - type: string
                      pattern: ^(?!\/)(?!.*\.\.)[\w ./-]+$
                    - type: string
                      enum:
                        - ''
                    - type: 'null'
                  default: null
                  description: Path to dbt project root within repository
                  example: dbt_project
                rotateKeys:
                  type: boolean
                  default: false
                  description: >
                    Rotate SSH deploy keys. Only applicable when `authMethod:
                    ssh`.
                  example: false
                sshUrl:
                  type: string
                  minLength: 1
                  description: >
                    Git repository URL. Varies depending on the `authMethod`:


                    - `ssh` - A string starting with `git@...`

                    - `https_token` - A string starting with `https://...`

                    - `github_app` - A string starting with
                    `https://github.com/...`
                  example: git@github.com:org/repo.git
                token:
                  type: string
                  maxLength: 1000
                  pattern: ^[a-zA-Z0-9_\-.]+$
                  description: >
                    **Required when `authMethod: https_token`**. HTTPS token for
                    authentication (deploy token, PAT, etc.). Write-only; never
                    returned in GET responses.
      responses:
        '200':
          description: dbt configuration updated successfully
          content:
            application/json:
              schema:
                type: object
                required:
                  - autogenRelationships
                  - branch
                  - dbtVersion
                  - enableSemanticLayer
                  - enableVirtualSchemas
                  - projectRootPath
                  - sshUrl
                  - supportsDbt
                properties:
                  authMethod:
                    type: string
                    enum:
                      - ssh
                      - https_token
                      - github_app
                    description: |
                      The authentication method used for git operations:

                      - `ssh` - Deploy key
                      - `https_token` - Deploy token/PAT
                      - `github_app` - GitHub App installation
                    example: ssh
                  autogenRelationships:
                    type: boolean
                    description: Whether relationships are auto-generated from dbt
                    example: true
                  branch:
                    type: string
                    description: Git branch name
                    example: main
                  committerEmail:
                    type:
                      - string
                      - null
                    description: >-
                      Email address used for commit signing. Only returned when
                      a commit signer is configured for GitHub App auth.
                    example: bot@example.com
                  committerName:
                    type:
                      - string
                      - null
                    description: >-
                      Name used for commit signing. Only returned when a commit
                      signer is configured for GitHub App auth.
                    example: Omni Bot
                  commitSigningPublicKey:
                    type:
                      - string
                      - null
                    description: >-
                      SSH public key used to sign commits. Only returned when a
                      commit signer is configured for GitHub App auth.
                    example: ssh-ed25519 AAAA...
                  dbtVersion:
                    type: string
                    description: dbt version being used
                    example: Auto
                  enableSemanticLayer:
                    type: boolean
                    description: >-
                      Whether the [dbt semantic layer
                      integration](/integrations/dbt/semantic-layer) is enabled
                    example: false
                  enableVirtualSchemas:
                    type: boolean
                    description: Whether virtual schemas are enabled
                    example: false
                  githubAppInstallationId:
                    type:
                      - string
                      - null
                    description: >-
                      GitHub App installation ID. Only returned when
                      `authMethod` is `github_app`.
                    example: '12345678'
                  projectRootPath:
                    type:
                      - string
                      - 'null'
                    description: Path to dbt project root
                    example: dbt_project
                  sshUrl:
                    type: string
                    description: Git repository URL
                    example: git@github.com:org/repo.git
                  supportsDbt:
                    type: boolean
                    description: Whether the connection dialect supports dbt
                    example: true
        '400':
          description: Invalid request body or validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Permission denied - connection admin role required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Connection not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: HTTP response code for the error
          example: <response_code>
        message:
          type: string
          description: Detailed error description
          example: <error_reason>
  responses:
    TooManyRequests:
      description: Too Many Requests - Rate limit exceeded (60 requests/minute)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Can be either an [Organization API
        Key](/api/authentication#organization-api-keys) or [Personal Access
        Token (PAT)](/api/authentication#token-types).


        Include in the `Authorization` header as: `Bearer YOUR_TOKEN`
    orgApiKey:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Requires an [Organization API
        Key](/api/authentication#organization-api-keys). Personal Access Tokens
        (PATs) are not supported for this endpoint.


        Include in the `Authorization` header as: `Bearer ORGANIZATION_API_KEY`

````