dbt-cloud-cli


Namedbt-cloud-cli JSON
Version 0.8.2 PyPI version JSON
download
home_pagehttps://github.com/data-mie/dbt-cloud-cli
Summarydbt Cloud command line interface (CLI)
upload_time2023-09-07 09:30:11
maintainer
docs_urlNone
authorSimo Tumelius
requires_python>=3.6
licenseApache Software License
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![CircleCI](https://circleci.com/gh/data-mie/dbt-cloud-cli/tree/main.svg?style=svg)](https://circleci.com/gh/data-mie/dbt-cloud-cli/tree/main)

# dbt-cloud-cli

`dbt-cloud-cli` is a command line interface for [dbt Cloud API](https://docs.getdbt.com/dbt-cloud/api-v2). It abstracts the REST API calls in an easy-to-use interface that can be incorporated into automated and manual (ad-hoc) workloads. Here are some example use cases for `dbt-cloud-cli`:

1. Triggering a dbt Cloud job to run in a CI/CD pipeline: Use [dbt-cloud job run](#dbt-cloud-job-run) in a CI/CD workflow (e.g., Github Actions) to trigger a dbt Cloud job that runs and tests the changes in a commit branch
2. Setting up dbt Cloud jobs: Use [dbt-cloud job create](#dbt-cloud-job-create) to create standardized jobs between dbt Cloud projects. You can also use [dbt-cloud job export](#dbt-cloud-job-export) to export an existing job from one dbt Cloud project and then [dbt-cloud job import](#dbt-cloud-job-import) to import it to another.
3. Downloading run artifacts: Use [dbt-cloud run get-artifact](#dbt-cloud-run-get-artifact) to download run artifacts (e.g., `catalog.json`) from dbt Cloud.
4. Retrieving metadata: Use [dbt-cloud metadata query](#dbt-cloud-metadata-query) to retrieve metadata (e.g., model execution times, test results) from a dbt Cloud project.

## Installation

`dbt-cloud-cli` has been tested with the following Python versions:

* ✅ Python 3.6
* ✅ Python 3.7
* ✅ Python 3.8
* ✅ Python 3.9
* ✅ Python 3.10

Installation from PyPI:

```bash
pip install dbt-cloud-cli
```

Running in Docker:

```bash
docker run datamie/dbt-cloud-cli:latest
```

## Environment variables

The following environment variables are used as argument defaults:

* `DBT_CLOUD_HOST` (`--dbt-cloud-host`): dbt Cloud host (`cloud.getdbt.com` (multi-tenant instance) by default if the environment variable is not set)
* `DBT_CLOUD_API_TOKEN` (`--api-token`): API authentication key
* `DBT_CLOUD_ACCOUNT_ID` (`--account-id`): Numeric ID of the dbt Cloud account
* `DBT_CLOUD_JOB_ID` (`--job-id`): Numeric ID of a dbt Cloud job

# Commands

For more information on a command, run `dbt-cloud <command> --help`. For more information on the API endpoints, see [dbt Cloud API V3 docs](https://docs.getdbt.com/dbt-cloud/api-v3) and [dbt Cloud Metadata API docs](https://docs.getdbt.com/docs/dbt-cloud/dbt-cloud-api/metadata/metadata-overview).


| Group        | Command                                               | Implemented | API endpoint                                        |
| ------------ | ----------------------------------------------------- | -------------------------------------------------- | ----------- | 
| Account      | [dbt-cloud account get](#dbt-cloud-account-get)       | ✅           | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/`                   | 
| Account      | [dbt-cloud account list](#dbt-cloud-account-list)     | ✅           | GET `https://{dbt_cloud_host}/api/v3/accounts/`                                | 
| Audit log    | [dbt-cloud audit-log get](#dbt-cloud-audit-log-get)   | ✅           | GET `https://{dbt_cloud_host}/api/v3/audit-logs/`                              | 
| Project      | [dbt-cloud project create](#dbt-cloud-project-create) | ✅           | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/`         | 
| Project      | [dbt-cloud project delete](#dbt-cloud-project-delete) | ✅           | DELETE `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{id}/`  |
| Project      | [dbt-cloud project get](#dbt-cloud-project-get)       | ✅           | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{id}/`     | 
| Project      | [dbt-cloud project list](#dbt-cloud-project-list)     | ✅           | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/`          |  
| Project      | [dbt-cloud project update](#dbt-cloud-project-update) | ✅           | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{id}/`     | 
| Environment  | [dbt-cloud environment create](#dbt-cloud-environment-create) | ✅          | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/environments/` | 
| Environment  | [dbt-cloud environment delete](#dbt-cloud-environment-delete) | ✅ | DELETE `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/environments/{id}/` |  
| Environment  | [dbt-cloud environment get](#dbt-cloud-environment-get) | ✅ | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/environments/{id}/` |  
| Environment  | [dbt-cloud environment list](#dbt-cloud-environment-list) | ✅ | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/environments/` |  
| Environment  | [dbt-cloud environment update](#dbt-cloud-environment-update) | ❌ | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/environments/{id}/` |  
| Connection  | [dbt-cloud connection create](#dbt-cloud-connection-create) | ✅ | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{project_id}/connections/` | 
| Connection  | [dbt-cloud connection delete](#dbt-cloud-connection-delete) | ✅ | DELETE `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{project_id}/connections/{id}/` | 
| Connection  | [dbt-cloud connection get](#dbt-cloud-connection-get) | ✅ | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{project_id}/connections/{id}/` | 
| Connection  | [dbt-cloud connection list](#dbt-cloud-connection-list) | ✅ | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{project_id}/connections/` | 
| Connection  | [dbt-cloud connection update](#dbt-cloud-connection-update) | ❌ | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{project_id}/connections/{id}/` | 
| Repository  | [dbt-cloud repository create](#dbt-cloud-repository-create) | ❌ | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/repositories/` | 
| Repository  | [dbt-cloud repository delete](#dbt-cloud-repository-delete) | ❌ | DELETE `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/repositories/{id}/` | 
| Repository  | [dbt-cloud repository get](#dbt-cloud-repository-get) | ❌ | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/repositories/{id}/` | 
| Repository  | [dbt-cloud repository list](#dbt-cloud-repository-list) | ❌ | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/repositories/` | 
| Job          | [dbt-cloud job create](#dbt-cloud-job-create)         | ✅          | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/                              `                      |  
| Job          | [dbt-cloud job delete](#dbt-cloud-job-delete)         | ✅          | DELETE `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/{id}/`                                                    | 
| Job          | [dbt-cloud job delete-all](#dbt-cloud-job-delete-all) |  ✅          | Uses a composition of one or more endpoints                                                 | 
| Job          | [dbt-cloud job get](#dbt-cloud-job-get)               | ✅          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/{id}/`                                                    | 
| Job          | [dbt-cloud job list](#dbt-cloud-job-list)             | ✅          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/`                                                    |  
| Job          | [dbt-cloud job run](#dbt-cloud-job-run)               | ✅          | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/{job_id}/run/`                                                    |  
| Job          | [dbt-cloud job update](#dbt-cloud-job-update)         | ❌          | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/{id}/`        | 
| Job          | [dbt-cloud job get-artifact](#dbt-cloud-job-get-artifact) | ❌      | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/{job_id}/artifacts/{remainder}`                                                    | 
| Job          | [dbt-cloud job export](#dbt-cloud-job-export)         | ✅          | Uses a composition of one or more endpoints         | 
| Job          | [dbt-cloud job import](#dbt-cloud-job-import)         | ✅          | Uses a composition of one or more endpoints         | 
| Run          | [dbt-cloud run get](#dbt-cloud-run-get)               | ✅          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/runs/{id}/`         |  
| Run          | [dbt-cloud run list](#dbt-cloud-run-list)             | ✅          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/runs/`              | 
| Run          | [dbt-cloud run cancel](#dbt-cloud-run-cancel)         | ✅          | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/runs/{run_id}/cancel/`                                                    |  
| Run          | [dbt-cloud run cancel-all](#dbt-cloud-run-cancel-all) | ✅          | Uses a composition of one or more endpoints         |  
| Run          | [dbt-cloud run list-artifacts](#dbt-cloud-run-list-artifacts) | ✅          |  GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/runs/{run_id}/artifacts/`                                                | 
| Run          | [dbt-cloud run get-artifact](#dbt-cloud-run-get-artifact) | ✅          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/runs/{run_id}/artifacts/{remainder}`                                                | 
| Run          | [dbt-cloud run get-step](#dbt-cloud-run-get-step)     | ❌          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/steps/{id}/`       | 
| User         | [dbt-cloud user get](#dbt-cloud-user-get)             | ❌          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/users/{id}/`       | 
| User         | [dbt-cloud user list](#dbt-cloud-user-list)           | ❌          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/users/`            | 
| User         | [dbt-cloud user update](#dbt-cloud-user-update)       | ❌          | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/users/{id}/`      | 
| Metadata     | [dbt-cloud metadata query](#dbt-cloud-metadata-query) | ✅          | POST `https://{dbt_cloud_host}/graphql/`                                      | 



## dbt-cloud account get
This command retrieves dbt Cloud account information.

### Usage
```bash
dbt-cloud account get --account-id 123456
```

[Click to view sample response](tests/data/account_get_response.json)

## dbt-cloud account list
This command retrieves all available dbt Cloud accounts.

### Usage
```bash
dbt-cloud account list
```
[Click to view sample response](tests/data/account_list_response.json)

## dbt-cloud audit-log get

❗ **Available for Enterprise accounts only.**

This command retrieves audit logs for the dbt Cloud account.

### Usage
```bash
dbt-cloud audit-log get --logged-at-start 2022-05-01 --logged-at-end 2022-05-07 --limit 1
```
[Click to view sample response](tests/data/audit_log_get_response.json)

## dbt-cloud project create
This command creates a new dbt Cloud project in a given account.

### Usage
```bash
dbt-cloud project create --name "My project"
```

[Click to view sample response](tests/data/project_create_response.json)

## dbt-cloud project delete
This command deletes a dbt Cloud project in a given account.

### Usage
```bash
dbt-cloud project delete --project-id 273731
```

[Click to view sample response](tests/data/project_delete_response.json)

## dbt-cloud project get
This command retrieves dbt Cloud project information.

### Usage
```bash
dbt-cloud project get --project-id 123457
```

[Click to view sample response](tests/data/project_get_response.json)


## dbt-cloud project list
This command returns a list of projects in the account.

### Usage
```bash
dbt-cloud project list
```

[Click to view sample response](tests/data/project_list_response.json)


## dbt-cloud project update
This command updates a project in a given account.

### Usage
```bash
dbt-cloud project update --project-id 273745 --name "My project renamed"
```

[Click to view sample response](tests/data/project_update_response.json)

## dbt-cloud environment create
This command a new dbt Cloud environment in a given project.

### Usage
```bash
dbt-cloud environment create --account-id 123456 --project-id 123457 --name "My environment" --dbt-version "1.5.0-latest"
```

[Click to view sample response](tests/data/environment_create_response.json)

## dbt-cloud environment delete
This command deletes a dbt Cloud environment in a given project.

### Usage
```bash
dbt-cloud environment delete --account-id 123456 --project-id 123457 --environment-id 40480
```

[Click to view sample response](tests/data/environment_delete_response.json)


## dbt-cloud environment list
This command retrieves environments in a given project.

### Usage
```bash
dbt-cloud environment list --account-id 123456 --project-id 123457 --limit 1
```

[Click to view sample response](tests/data/environment_list_response.json)

## dbt-cloud environment get
This command retrieves information about an environment in a given project.

### Usage
```bash
dbt-cloud environment get --account-id 123456 --project-id 123457 --environment-id 67890
```

[Click to view sample response](tests/data/environment_get_response.json)


## dbt-cloud connection create
This command creates a new database connection in a given project. Supported connection types:

* `snowflake`: Connection to a Snowflake database. Has inout validation for connection parameters.
* `bigquery`: Connection to a Google BigQuery database. No input validation.
* `postgres`: Connection to a PostgreSQL database. No input validation.
* `redshift`: Connection to an Amazon Redshift database. No input validation.
* `adapter`: Connection to a database using a custom dbt Cloud adapter. No input validation.


### Usage
```bash
dbt-cloud connection create --account-id 54321 --project-id 123467 --name Snowflake --type snowflake --account snowflake_account --database analytics --warehouse transforming --role transformer --allow-sso False --client-session-keep-alive False
```

[Click to view sample response](tests/data/connection_create_response.json)


## dbt-cloud connection delete
This command deletes a database connection in a given project.

### Usage
```bash
dbt-cloud connection delete --account-id 54321 --project-id 123467 --connection-id 56901
```

[Click to view sample response](tests/data/connection_delete_response.json)

## dbt-cloud connection list
This command retrievies details of dbt Cloud database connections in a given project.

### Usage
```bash
dbt-cloud connection list --account-id 54321 --project-id 123467 --limit 1
```

[Click to view sample response](tests/data/connection_list_response.json)

## dbt-cloud connection get
This command retrievies the details of a dbt Cloud database connection.

### Usage
```bash
dbt-cloud connection get --account-id 54321 --project-id 123467 --connection-id 56901
```

[Click to view sample response](tests/data/connection_get_response.json)

## dbt-cloud job run
This command triggers a dbt Cloud job run and returns a run status JSON response.

### Usage
```bash
>> dbt-cloud job run --job-id 43167 --cause "My first run!" --steps-override '["dbt seed", "dbt run"]' --wait
Job 43167 run 34929305: QUEUED ...
Job 43167 run 34929305: QUEUED ...
Job 43167 run 34929305: QUEUED ...
Job 43167 run 34929305: STARTING ...
Job 43167 run 34929305: RUNNING ...
Job 43167 run 34929305: SUCCESS ...
```

[Click to view sample response](tests/data/job_run_response.json)


## dbt-cloud job get
This command returns the details of a dbt Cloud job.

### Usage
```bash
dbt-cloud job get --job-id 43167
```

[Click to view sample response](tests/data/job_get_response.json)


## dbt-cloud job list
This command returns a list of jobs in the account.

### Usage
```bash
dbt-cloud job list --account-id 123456 --project-id 123457 --limit 2
```

[Click to view sample response](tests/data/job_list_response.json)

## dbt-cloud job create

This command creates a job in a dbt Cloud project.

### Usage
```bash
dbt-cloud job create --project-id 12345 --environment-id 49819 --name "Create job" --execute-steps '["dbt seed", "dbt run"]'
```

[Click to view sample response](tests/data/job_create_response.json)

## dbt-cloud job delete

This command deletes a job in a dbt Cloud project.

### Usage
```bash
dbt-cloud job delete --job-id 48474
```

[Click to view sample response](tests/data/job_delete_response.json)


## dbt-cloud job delete-all

💡 **This is a composition of one or more base commands.**

This command fetches all jobs on the account, deletes them one-by-one after user confirmation via prompt and prints out the job delete responses.

### Usage
```bash
>> dbt-cloud job delete-all --keep-jobs "[43167, 49663]"
Jobs to delete: [54658, 54659]
Delete job 54658? [y/N]: yes
Job 54658 was deleted.
Delete job 54659? [y/N]: yes
Job 54659 was deleted.
```

## dbt-cloud job export

💡 **This is a composition of one or more base commands.**

This command exports a dbt Cloud job as JSON to a file and can be used in conjunction with [dbt-cloud job import](#dbt-cloud-job-import) to copy jobs between dbt Cloud projects.

### Usage
```bash
dbt-cloud job export > job.json
```

## dbt-cloud job import

💡 **This is a composition of one or more base commands.**

This command imports a dbt Cloud job from exported JSON. You can use JSON manipulation tools (e.g., [jq](https://stedolan.github.io/jq/)) to modify the job definition before importing it.

### Usage
```bash
dbt-cloud job export > job.json
cat job.json | jq '.environment_id = 49819 | .name = "Imported job"' | dbt-cloud job import
```

## dbt-cloud run get
This command returns the details of a dbt Cloud run.

### Usage
```bash
dbt-cloud run get --run-id 36053848
```

[Click to view sample response](tests/data/run_get_response.json)

## dbt-cloud run list
This command returns a list of runs in the account.

### Usage
```bash
dbt-cloud run list --limit 2
```

[Click to view sample response](tests/data/run_list_response.json)

## dbt-cloud run cancel
This command cancels a dbt Cloud run. A run can be 'cancelled' irregardless of it's previous status. This means that you can send a request to cancel a previously successful / errored run (and nothing happens practically) and the response status would be similar to cancelling a currently queued or running run.

### Usage
```bash
dbt-cloud run cancel --run-id 36053848
```

[Click to view sample response](tests/data/run_cancel_response.json)

## dbt-cloud run cancel-all

💡 **This is a composition of one or more base commands.**

This command fetches all runs on the account, cancels them one-by-one after user confirmation via prompt and prints out the run cancellation responses. 

You should typically use this with a `--status` arg of either `Running` or `Queued` as cancellations can be requested against all runs. Without this, you will effectively be trying to cancel all runs that had ever been scheduled in the project irregardless of its' current status (which could take a long time if your project has had a lot of previous runs).

### Usage
```bash
>> dbt-cloud run cancel-all --status Running
Runs to cancel: [36053848]
Cancel run 36053848? [y/N]: yes
Run 36053848 has been cancelled.
```

## dbt-cloud run list-artifacts
This command fetches a list of artifact files generated for a completed run.

### Usage
```bash
dbt-cloud run list-artifacts --run-id 36053848
```

[Click to view sample response](tests/data/run_list_artifacts_response.json)

## dbt-cloud run get-artifact
This command fetches an artifact file from a completed run. Once a run has completed, you can use this command to download the manifest.json, run_results.json or catalog.json files from dbt Cloud. These artifacts contain information about the models in your dbt project, timing information around their execution, and a status message indicating the result of the model build.

### Usage
```bash
dbt-cloud run get-artifact --run-id 36053848 --path manifest.json > manifest.json
```

## dbt-cloud metadata query
This command queries the dbt Cloud Metadata API using GraphQL.

### Usage
```bash
dbt-cloud metadata query -f query.graphql
```

[Click to view sample query](tests/data/metadata_query.graphql)


An alternative way of using the command without saving the GraphQL query to a file is to pipe it to `dbt-cloud metadata query`.
```bash
>> echo '{
  model(jobId: 49663, uniqueId: "model.jaffle_shop.customers") {
    parentsModels {
      runId
      uniqueId
      executionTime
    }
    parentsSources {
      runId
      uniqueId
      state
    }
  }
}' | dbt-cloud metadata query
```

</details>

# Demo utilities

The utilities listed here are for demonstration purposes only and are subject to change. In order to use the demo utilities you need to install the `dbt-cloud-cli` with extra `demo` dependencies:

```bash
pip install dbt-cloud-cli[demo]
```

## dbt-cloud demo data-catalog

An interactive CLI application for exploring `catalog.json` artifacts.

<details>
  <summary><b>Usage</b></summary>

```bash
>> latest_run_id=$(dbt-cloud run list --job-id $DBT_CLOUD_JOB_ID --limit 1 | jq .data[0].id -r)
>> dbt-cloud run get-artifact --run-id $latest_run_id --path catalog.json -f catalog.json
>> dbt-cloud demo data-catalog -f catalog.json



  #####           ##              ###           ##           ##               
  ##  ##          ##             ## ##          ##           ##               
 ##   ##   ###  #####   ###     ##  ##   ###  #####   ###   ##    ###    #### 
 ##   ##  #  ##  ##    #  ##    ##      #  ##  ##    #  ##  ##   ## ##  ## ## 
 ##  ##    ####  ##     ####   ##        ####  ##     ####  ##  ##  ##  #  ## 
##   ##  ## ##  ##    ## ##    ##   #  ## ##  ##    ## ##  ##   ##  ## ##  #  
##  ##   ## ##  ##    ## ##    ##  ##  ## ##  ##    ## ##  ##   ## ##  ## ##  
#####     ## ##  ##    ## ##    ####    ## ##  ##    ## ## ##    ###    ####  
                                                                         ##   
                                                                       ###    

[?] Select node type to explore: source
 > source
   node
```
</details>

## Acknowledgements

Thanks to [Sean McIntyre](https://github.com/boxysean) for his initial work on triggering a dbt Cloud job using Python as proposed in [this post on dbt Discourse](https://discourse.getdbt.com/t/triggering-a-dbt-cloud-job-in-your-automated-workflow-with-python/2573). Thank you for sharing your work with the community!



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/data-mie/dbt-cloud-cli",
    "name": "dbt-cloud-cli",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Simo Tumelius",
    "author_email": "simo@datamie.fi",
    "download_url": "https://files.pythonhosted.org/packages/9b/2b/39410339227d1a883babecb4273fd42aca14ff270a5bf37a918269d00e9f/dbt-cloud-cli-0.8.2.tar.gz",
    "platform": null,
    "description": "[![CircleCI](https://circleci.com/gh/data-mie/dbt-cloud-cli/tree/main.svg?style=svg)](https://circleci.com/gh/data-mie/dbt-cloud-cli/tree/main)\n\n# dbt-cloud-cli\n\n`dbt-cloud-cli` is a command line interface for [dbt Cloud API](https://docs.getdbt.com/dbt-cloud/api-v2). It abstracts the REST API calls in an easy-to-use interface that can be incorporated into automated and manual (ad-hoc) workloads. Here are some example use cases for `dbt-cloud-cli`:\n\n1. Triggering a dbt Cloud job to run in a CI/CD pipeline: Use [dbt-cloud job run](#dbt-cloud-job-run) in a CI/CD workflow (e.g., Github Actions) to trigger a dbt Cloud job that runs and tests the changes in a commit branch\n2. Setting up dbt Cloud jobs: Use [dbt-cloud job create](#dbt-cloud-job-create) to create standardized jobs between dbt Cloud projects. You can also use [dbt-cloud job export](#dbt-cloud-job-export) to export an existing job from one dbt Cloud project and then [dbt-cloud job import](#dbt-cloud-job-import) to import it to another.\n3. Downloading run artifacts: Use [dbt-cloud run get-artifact](#dbt-cloud-run-get-artifact) to download run artifacts (e.g., `catalog.json`) from dbt Cloud.\n4. Retrieving metadata: Use [dbt-cloud metadata query](#dbt-cloud-metadata-query) to retrieve metadata (e.g., model execution times, test results) from a dbt Cloud project.\n\n## Installation\n\n`dbt-cloud-cli` has been tested with the following Python versions:\n\n* \u2705 Python 3.6\n* \u2705 Python 3.7\n* \u2705 Python 3.8\n* \u2705 Python 3.9\n* \u2705 Python 3.10\n\nInstallation from PyPI:\n\n```bash\npip install dbt-cloud-cli\n```\n\nRunning in Docker:\n\n```bash\ndocker run datamie/dbt-cloud-cli:latest\n```\n\n## Environment variables\n\nThe following environment variables are used as argument defaults:\n\n* `DBT_CLOUD_HOST` (`--dbt-cloud-host`): dbt Cloud host (`cloud.getdbt.com` (multi-tenant instance) by default if the environment variable is not set)\n* `DBT_CLOUD_API_TOKEN` (`--api-token`): API authentication key\n* `DBT_CLOUD_ACCOUNT_ID` (`--account-id`): Numeric ID of the dbt Cloud account\n* `DBT_CLOUD_JOB_ID` (`--job-id`): Numeric ID of a dbt Cloud job\n\n# Commands\n\nFor more information on a command, run `dbt-cloud <command> --help`. For more information on the API endpoints, see [dbt Cloud API V3 docs](https://docs.getdbt.com/dbt-cloud/api-v3) and [dbt Cloud Metadata API docs](https://docs.getdbt.com/docs/dbt-cloud/dbt-cloud-api/metadata/metadata-overview).\n\n\n| Group        | Command                                               | Implemented | API endpoint                                        |\n| ------------ | ----------------------------------------------------- | -------------------------------------------------- | ----------- | \n| Account      | [dbt-cloud account get](#dbt-cloud-account-get)       | \u2705           | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/`                   | \n| Account      | [dbt-cloud account list](#dbt-cloud-account-list)     | \u2705           | GET `https://{dbt_cloud_host}/api/v3/accounts/`                                | \n| Audit log    | [dbt-cloud audit-log get](#dbt-cloud-audit-log-get)   | \u2705           | GET `https://{dbt_cloud_host}/api/v3/audit-logs/`                              | \n| Project      | [dbt-cloud project create](#dbt-cloud-project-create) | \u2705           | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/`         | \n| Project      | [dbt-cloud project delete](#dbt-cloud-project-delete) | \u2705           | DELETE `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{id}/`  |\n| Project      | [dbt-cloud project get](#dbt-cloud-project-get)       | \u2705           | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{id}/`     | \n| Project      | [dbt-cloud project list](#dbt-cloud-project-list)     | \u2705           | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/`          |  \n| Project      | [dbt-cloud project update](#dbt-cloud-project-update) | \u2705           | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{id}/`     | \n| Environment  | [dbt-cloud environment create](#dbt-cloud-environment-create) | \u2705          | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/environments/` | \n| Environment  | [dbt-cloud environment delete](#dbt-cloud-environment-delete) | \u2705 | DELETE `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/environments/{id}/` |  \n| Environment  | [dbt-cloud environment get](#dbt-cloud-environment-get) | \u2705 | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/environments/{id}/` |  \n| Environment  | [dbt-cloud environment list](#dbt-cloud-environment-list) | \u2705 | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/environments/` |  \n| Environment  | [dbt-cloud environment update](#dbt-cloud-environment-update) | \u274c | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/environments/{id}/` |  \n| Connection  | [dbt-cloud connection create](#dbt-cloud-connection-create) | \u2705 | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{project_id}/connections/` | \n| Connection  | [dbt-cloud connection delete](#dbt-cloud-connection-delete) | \u2705 | DELETE `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{project_id}/connections/{id}/` | \n| Connection  | [dbt-cloud connection get](#dbt-cloud-connection-get) | \u2705 | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{project_id}/connections/{id}/` | \n| Connection  | [dbt-cloud connection list](#dbt-cloud-connection-list) | \u2705 | GET `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{project_id}/connections/` | \n| Connection  | [dbt-cloud connection update](#dbt-cloud-connection-update) | \u274c | POST `https://{dbt_cloud_host}/api/v3/accounts/{account_id}/projects/{project_id}/connections/{id}/` | \n| Repository  | [dbt-cloud repository create](#dbt-cloud-repository-create) | \u274c | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/repositories/` | \n| Repository  | [dbt-cloud repository delete](#dbt-cloud-repository-delete) | \u274c | DELETE `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/repositories/{id}/` | \n| Repository  | [dbt-cloud repository get](#dbt-cloud-repository-get) | \u274c | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/repositories/{id}/` | \n| Repository  | [dbt-cloud repository list](#dbt-cloud-repository-list) | \u274c | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/repositories/` | \n| Job          | [dbt-cloud job create](#dbt-cloud-job-create)         | \u2705          | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/                              `                      |  \n| Job          | [dbt-cloud job delete](#dbt-cloud-job-delete)         | \u2705          | DELETE `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/{id}/`                                                    | \n| Job          | [dbt-cloud job delete-all](#dbt-cloud-job-delete-all) |  \u2705          | Uses a composition of one or more endpoints                                                 | \n| Job          | [dbt-cloud job get](#dbt-cloud-job-get)               | \u2705          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/{id}/`                                                    | \n| Job          | [dbt-cloud job list](#dbt-cloud-job-list)             | \u2705          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/`                                                    |  \n| Job          | [dbt-cloud job run](#dbt-cloud-job-run)               | \u2705          | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/{job_id}/run/`                                                    |  \n| Job          | [dbt-cloud job update](#dbt-cloud-job-update)         | \u274c          | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/{id}/`        | \n| Job          | [dbt-cloud job get-artifact](#dbt-cloud-job-get-artifact) | \u274c      | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/jobs/{job_id}/artifacts/{remainder}`                                                    | \n| Job          | [dbt-cloud job export](#dbt-cloud-job-export)         | \u2705          | Uses a composition of one or more endpoints         | \n| Job          | [dbt-cloud job import](#dbt-cloud-job-import)         | \u2705          | Uses a composition of one or more endpoints         | \n| Run          | [dbt-cloud run get](#dbt-cloud-run-get)               | \u2705          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/runs/{id}/`         |  \n| Run          | [dbt-cloud run list](#dbt-cloud-run-list)             | \u2705          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/runs/`              | \n| Run          | [dbt-cloud run cancel](#dbt-cloud-run-cancel)         | \u2705          | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/runs/{run_id}/cancel/`                                                    |  \n| Run          | [dbt-cloud run cancel-all](#dbt-cloud-run-cancel-all) | \u2705          | Uses a composition of one or more endpoints         |  \n| Run          | [dbt-cloud run list-artifacts](#dbt-cloud-run-list-artifacts) | \u2705          |  GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/runs/{run_id}/artifacts/`                                                | \n| Run          | [dbt-cloud run get-artifact](#dbt-cloud-run-get-artifact) | \u2705          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/runs/{run_id}/artifacts/{remainder}`                                                | \n| Run          | [dbt-cloud run get-step](#dbt-cloud-run-get-step)     | \u274c          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/steps/{id}/`       | \n| User         | [dbt-cloud user get](#dbt-cloud-user-get)             | \u274c          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/users/{id}/`       | \n| User         | [dbt-cloud user list](#dbt-cloud-user-list)           | \u274c          | GET `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/users/`            | \n| User         | [dbt-cloud user update](#dbt-cloud-user-update)       | \u274c          | POST `https://{dbt_cloud_host}/api/v2/accounts/{account_id}/users/{id}/`      | \n| Metadata     | [dbt-cloud metadata query](#dbt-cloud-metadata-query) | \u2705          | POST `https://{dbt_cloud_host}/graphql/`                                      | \n\n\n\n## dbt-cloud account get\nThis command retrieves dbt Cloud account information.\n\n### Usage\n```bash\ndbt-cloud account get --account-id 123456\n```\n\n[Click to view sample response](tests/data/account_get_response.json)\n\n## dbt-cloud account list\nThis command retrieves all available dbt Cloud accounts.\n\n### Usage\n```bash\ndbt-cloud account list\n```\n[Click to view sample response](tests/data/account_list_response.json)\n\n## dbt-cloud audit-log get\n\n\u2757 **Available for Enterprise accounts only.**\n\nThis command retrieves audit logs for the dbt Cloud account.\n\n### Usage\n```bash\ndbt-cloud audit-log get --logged-at-start 2022-05-01 --logged-at-end 2022-05-07 --limit 1\n```\n[Click to view sample response](tests/data/audit_log_get_response.json)\n\n## dbt-cloud project create\nThis command creates a new dbt Cloud project in a given account.\n\n### Usage\n```bash\ndbt-cloud project create --name \"My project\"\n```\n\n[Click to view sample response](tests/data/project_create_response.json)\n\n## dbt-cloud project delete\nThis command deletes a dbt Cloud project in a given account.\n\n### Usage\n```bash\ndbt-cloud project delete --project-id 273731\n```\n\n[Click to view sample response](tests/data/project_delete_response.json)\n\n## dbt-cloud project get\nThis command retrieves dbt Cloud project information.\n\n### Usage\n```bash\ndbt-cloud project get --project-id 123457\n```\n\n[Click to view sample response](tests/data/project_get_response.json)\n\n\n## dbt-cloud project list\nThis command returns a list of projects in the account.\n\n### Usage\n```bash\ndbt-cloud project list\n```\n\n[Click to view sample response](tests/data/project_list_response.json)\n\n\n## dbt-cloud project update\nThis command updates a project in a given account.\n\n### Usage\n```bash\ndbt-cloud project update --project-id 273745 --name \"My project renamed\"\n```\n\n[Click to view sample response](tests/data/project_update_response.json)\n\n## dbt-cloud environment create\nThis command a new dbt Cloud environment in a given project.\n\n### Usage\n```bash\ndbt-cloud environment create --account-id 123456 --project-id 123457 --name \"My environment\" --dbt-version \"1.5.0-latest\"\n```\n\n[Click to view sample response](tests/data/environment_create_response.json)\n\n## dbt-cloud environment delete\nThis command deletes a dbt Cloud environment in a given project.\n\n### Usage\n```bash\ndbt-cloud environment delete --account-id 123456 --project-id 123457 --environment-id 40480\n```\n\n[Click to view sample response](tests/data/environment_delete_response.json)\n\n\n## dbt-cloud environment list\nThis command retrieves environments in a given project.\n\n### Usage\n```bash\ndbt-cloud environment list --account-id 123456 --project-id 123457 --limit 1\n```\n\n[Click to view sample response](tests/data/environment_list_response.json)\n\n## dbt-cloud environment get\nThis command retrieves information about an environment in a given project.\n\n### Usage\n```bash\ndbt-cloud environment get --account-id 123456 --project-id 123457 --environment-id 67890\n```\n\n[Click to view sample response](tests/data/environment_get_response.json)\n\n\n## dbt-cloud connection create\nThis command creates a new database connection in a given project. Supported connection types:\n\n* `snowflake`: Connection to a Snowflake database. Has inout validation for connection parameters.\n* `bigquery`: Connection to a Google BigQuery database. No input validation.\n* `postgres`: Connection to a PostgreSQL database. No input validation.\n* `redshift`: Connection to an Amazon Redshift database. No input validation.\n* `adapter`: Connection to a database using a custom dbt Cloud adapter. No input validation.\n\n\n### Usage\n```bash\ndbt-cloud connection create --account-id 54321 --project-id 123467 --name Snowflake --type snowflake --account snowflake_account --database analytics --warehouse transforming --role transformer --allow-sso False --client-session-keep-alive False\n```\n\n[Click to view sample response](tests/data/connection_create_response.json)\n\n\n## dbt-cloud connection delete\nThis command deletes a database connection in a given project.\n\n### Usage\n```bash\ndbt-cloud connection delete --account-id 54321 --project-id 123467 --connection-id 56901\n```\n\n[Click to view sample response](tests/data/connection_delete_response.json)\n\n## dbt-cloud connection list\nThis command retrievies details of dbt Cloud database connections in a given project.\n\n### Usage\n```bash\ndbt-cloud connection list --account-id 54321 --project-id 123467 --limit 1\n```\n\n[Click to view sample response](tests/data/connection_list_response.json)\n\n## dbt-cloud connection get\nThis command retrievies the details of a dbt Cloud database connection.\n\n### Usage\n```bash\ndbt-cloud connection get --account-id 54321 --project-id 123467 --connection-id 56901\n```\n\n[Click to view sample response](tests/data/connection_get_response.json)\n\n## dbt-cloud job run\nThis command triggers a dbt Cloud job run and returns a run status JSON response.\n\n### Usage\n```bash\n>> dbt-cloud job run --job-id 43167 --cause \"My first run!\" --steps-override '[\"dbt seed\", \"dbt run\"]' --wait\nJob 43167 run 34929305: QUEUED ...\nJob 43167 run 34929305: QUEUED ...\nJob 43167 run 34929305: QUEUED ...\nJob 43167 run 34929305: STARTING ...\nJob 43167 run 34929305: RUNNING ...\nJob 43167 run 34929305: SUCCESS ...\n```\n\n[Click to view sample response](tests/data/job_run_response.json)\n\n\n## dbt-cloud job get\nThis command returns the details of a dbt Cloud job.\n\n### Usage\n```bash\ndbt-cloud job get --job-id 43167\n```\n\n[Click to view sample response](tests/data/job_get_response.json)\n\n\n## dbt-cloud job list\nThis command returns a list of jobs in the account.\n\n### Usage\n```bash\ndbt-cloud job list --account-id 123456 --project-id 123457 --limit 2\n```\n\n[Click to view sample response](tests/data/job_list_response.json)\n\n## dbt-cloud job create\n\nThis command creates a job in a dbt Cloud project.\n\n### Usage\n```bash\ndbt-cloud job create --project-id 12345 --environment-id 49819 --name \"Create job\" --execute-steps '[\"dbt seed\", \"dbt run\"]'\n```\n\n[Click to view sample response](tests/data/job_create_response.json)\n\n## dbt-cloud job delete\n\nThis command deletes a job in a dbt Cloud project.\n\n### Usage\n```bash\ndbt-cloud job delete --job-id 48474\n```\n\n[Click to view sample response](tests/data/job_delete_response.json)\n\n\n## dbt-cloud job delete-all\n\n\ud83d\udca1 **This is a composition of one or more base commands.**\n\nThis command fetches all jobs on the account, deletes them one-by-one after user confirmation via prompt and prints out the job delete responses.\n\n### Usage\n```bash\n>> dbt-cloud job delete-all --keep-jobs \"[43167, 49663]\"\nJobs to delete: [54658, 54659]\nDelete job 54658? [y/N]: yes\nJob 54658 was deleted.\nDelete job 54659? [y/N]: yes\nJob 54659 was deleted.\n```\n\n## dbt-cloud job export\n\n\ud83d\udca1 **This is a composition of one or more base commands.**\n\nThis command exports a dbt Cloud job as JSON to a file and can be used in conjunction with [dbt-cloud job import](#dbt-cloud-job-import) to copy jobs between dbt Cloud projects.\n\n### Usage\n```bash\ndbt-cloud job export > job.json\n```\n\n## dbt-cloud job import\n\n\ud83d\udca1 **This is a composition of one or more base commands.**\n\nThis command imports a dbt Cloud job from exported JSON. You can use JSON manipulation tools (e.g., [jq](https://stedolan.github.io/jq/)) to modify the job definition before importing it.\n\n### Usage\n```bash\ndbt-cloud job export > job.json\ncat job.json | jq '.environment_id = 49819 | .name = \"Imported job\"' | dbt-cloud job import\n```\n\n## dbt-cloud run get\nThis command returns the details of a dbt Cloud run.\n\n### Usage\n```bash\ndbt-cloud run get --run-id 36053848\n```\n\n[Click to view sample response](tests/data/run_get_response.json)\n\n## dbt-cloud run list\nThis command returns a list of runs in the account.\n\n### Usage\n```bash\ndbt-cloud run list --limit 2\n```\n\n[Click to view sample response](tests/data/run_list_response.json)\n\n## dbt-cloud run cancel\nThis command cancels a dbt Cloud run. A run can be 'cancelled' irregardless of it's previous status. This means that you can send a request to cancel a previously successful / errored run (and nothing happens practically) and the response status would be similar to cancelling a currently queued or running run.\n\n### Usage\n```bash\ndbt-cloud run cancel --run-id 36053848\n```\n\n[Click to view sample response](tests/data/run_cancel_response.json)\n\n## dbt-cloud run cancel-all\n\n\ud83d\udca1 **This is a composition of one or more base commands.**\n\nThis command fetches all runs on the account, cancels them one-by-one after user confirmation via prompt and prints out the run cancellation responses. \n\nYou should typically use this with a `--status` arg of either `Running` or `Queued` as cancellations can be requested against all runs. Without this, you will effectively be trying to cancel all runs that had ever been scheduled in the project irregardless of its' current status (which could take a long time if your project has had a lot of previous runs).\n\n### Usage\n```bash\n>> dbt-cloud run cancel-all --status Running\nRuns to cancel: [36053848]\nCancel run 36053848? [y/N]: yes\nRun 36053848 has been cancelled.\n```\n\n## dbt-cloud run list-artifacts\nThis command fetches a list of artifact files generated for a completed run.\n\n### Usage\n```bash\ndbt-cloud run list-artifacts --run-id 36053848\n```\n\n[Click to view sample response](tests/data/run_list_artifacts_response.json)\n\n## dbt-cloud run get-artifact\nThis command fetches an artifact file from a completed run. Once a run has completed, you can use this command to download the manifest.json, run_results.json or catalog.json files from dbt Cloud. These artifacts contain information about the models in your dbt project, timing information around their execution, and a status message indicating the result of the model build.\n\n### Usage\n```bash\ndbt-cloud run get-artifact --run-id 36053848 --path manifest.json > manifest.json\n```\n\n## dbt-cloud metadata query\nThis command queries the dbt Cloud Metadata API using GraphQL.\n\n### Usage\n```bash\ndbt-cloud metadata query -f query.graphql\n```\n\n[Click to view sample query](tests/data/metadata_query.graphql)\n\n\nAn alternative way of using the command without saving the GraphQL query to a file is to pipe it to `dbt-cloud metadata query`.\n```bash\n>> echo '{\n  model(jobId: 49663, uniqueId: \"model.jaffle_shop.customers\") {\n    parentsModels {\n      runId\n      uniqueId\n      executionTime\n    }\n    parentsSources {\n      runId\n      uniqueId\n      state\n    }\n  }\n}' | dbt-cloud metadata query\n```\n\n</details>\n\n# Demo utilities\n\nThe utilities listed here are for demonstration purposes only and are subject to change. In order to use the demo utilities you need to install the `dbt-cloud-cli` with extra `demo` dependencies:\n\n```bash\npip install dbt-cloud-cli[demo]\n```\n\n## dbt-cloud demo data-catalog\n\nAn interactive CLI application for exploring `catalog.json` artifacts.\n\n<details>\n  <summary><b>Usage</b></summary>\n\n```bash\n>> latest_run_id=$(dbt-cloud run list --job-id $DBT_CLOUD_JOB_ID --limit 1 | jq .data[0].id -r)\n>> dbt-cloud run get-artifact --run-id $latest_run_id --path catalog.json -f catalog.json\n>> dbt-cloud demo data-catalog -f catalog.json\n\n\n\n  #####           ##              ###           ##           ##               \n  ##  ##          ##             ## ##          ##           ##               \n ##   ##   ###  #####   ###     ##  ##   ###  #####   ###   ##    ###    #### \n ##   ##  #  ##  ##    #  ##    ##      #  ##  ##    #  ##  ##   ## ##  ## ## \n ##  ##    ####  ##     ####   ##        ####  ##     ####  ##  ##  ##  #  ## \n##   ##  ## ##  ##    ## ##    ##   #  ## ##  ##    ## ##  ##   ##  ## ##  #  \n##  ##   ## ##  ##    ## ##    ##  ##  ## ##  ##    ## ##  ##   ## ##  ## ##  \n#####     ## ##  ##    ## ##    ####    ## ##  ##    ## ## ##    ###    ####  \n                                                                         ##   \n                                                                       ###    \n\n[?] Select node type to explore: source\n > source\n   node\n```\n</details>\n\n## Acknowledgements\n\nThanks to [Sean McIntyre](https://github.com/boxysean) for his initial work on triggering a dbt Cloud job using Python as proposed in [this post on dbt Discourse](https://discourse.getdbt.com/t/triggering-a-dbt-cloud-job-in-your-automated-workflow-with-python/2573). Thank you for sharing your work with the community!\n\n\n",
    "bugtrack_url": null,
    "license": "Apache Software License",
    "summary": "dbt Cloud command line interface (CLI)",
    "version": "0.8.2",
    "project_urls": {
        "Homepage": "https://github.com/data-mie/dbt-cloud-cli"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0b0129eb249ad7845b28863c4bf387203b76a3a14baa8c0036319cadd946e13a",
                "md5": "c466f07e84ae8b4fa7a63d51e2cb7671",
                "sha256": "96ed4b1a5a4f27efb634722b3fdc42dadc3414fe407b439c1af80240cb5d7431"
            },
            "downloads": -1,
            "filename": "dbt_cloud_cli-0.8.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c466f07e84ae8b4fa7a63d51e2cb7671",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 38625,
            "upload_time": "2023-09-07T09:30:10",
            "upload_time_iso_8601": "2023-09-07T09:30:10.603742Z",
            "url": "https://files.pythonhosted.org/packages/0b/01/29eb249ad7845b28863c4bf387203b76a3a14baa8c0036319cadd946e13a/dbt_cloud_cli-0.8.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9b2b39410339227d1a883babecb4273fd42aca14ff270a5bf37a918269d00e9f",
                "md5": "b440aa9a9097f3e5ae3970a410c5ca00",
                "sha256": "6cd96d763a81e5034ad5233c20d498219acdf39227ce06dbd7899783aa87669d"
            },
            "downloads": -1,
            "filename": "dbt-cloud-cli-0.8.2.tar.gz",
            "has_sig": false,
            "md5_digest": "b440aa9a9097f3e5ae3970a410c5ca00",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 31741,
            "upload_time": "2023-09-07T09:30:11",
            "upload_time_iso_8601": "2023-09-07T09:30:11.859296Z",
            "url": "https://files.pythonhosted.org/packages/9b/2b/39410339227d1a883babecb4273fd42aca14ff270a5bf37a918269d00e9f/dbt-cloud-cli-0.8.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-07 09:30:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "data-mie",
    "github_project": "dbt-cloud-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "circle": true,
    "tox": true,
    "lcname": "dbt-cloud-cli"
}
        
Elapsed time: 0.25797s