<div align="center">
  <a target="_blank" href="https://dagster.io" style="background:none">
    <img alt="dagster logo" src="https://github.com/dagster-io/dagster-quickstart/assets/5807118/7010804c-05a6-4ef4-bfc8-d9c88d458906" width="auto" height="120px">
  </a>
</div>

# Dagster Setup

1. Clone the Suno Dagster repository:

   ```sh
   git clone https://github.com/suno-ai/suno-dagster
   cd suno-dagster
   ```

1. Set up your .env file:

   Reach out to (Rider, David, Jinhui) for a copy of their .env file. (If you are using only dagster-dbt, you can skip this step.)

1. Set up your Snowflake account:

   If you haven't set up your Snowflake account, follow this [link](https://docs.snowflake.com/en/user-guide/key-pair-auth) to set up your Snowflake key pairs. Double check that your account has the DBT_DEV_ROLE role in this [link](https://app.snowflake.com/ccntdmk/suno/#/account/users).

1. Install the required dependencies:

   Here we are using `-e` for ["editable mode"](https://pip.pypa.io/en/latest/topics/local-project-installs/#editable-installs), so that when Dagster code is modified, the changes automatically apply.

   ```sh
   brew install uv 
   uv venv --python 3.11
   uv sync
   ```

1. Execute the Vscode task setup_dev_env (or directly the script scripts/setup_dev_env.sh)

1. Run the project:

   ```sh
   uv run dagster dev
   ```

## Development

### Adding new Python dependencies

You can specify new Python dependencies in `pyproject.toml`.

### Working with Snowflake

For details on orchestrating Snowflake tables using Dagster, see the [Dagster-Snowflake integration guide](docs/DAGSTER_SNOWFLAKE_GUIDE.md).

### Working with dbt

For comprehensive dbt setup, configuration, and usage instructions, see the [Dagster-dbt Integration Guide](docs/DAGSTER_DBT_GUIDE.md).
