dbt-labs/dbt-core

Consolidate mechanism for reading environment variables

MichelleArk opened this issue · 0 comments

We currently have about 4 ways to read environment variables:

  1. click
  2. invocation context
    • provides a level of isolation between dbt command invocations (e.g. in dbt Runner)
    • isolated test environments
    • (to confirm specifics) only reads DBT_SECRET and DBT_-prefixed environment variables.
  3. via os builtin package

Let's explore a standard recommended way for doing this, even if we may not be able to get around using click for parsing CLI options. Most likely we should just move away from (3) and to (2), and keep (1).

A note... we could also explore using pydantic for this use case, but unclear what the benefits would be over (2).