Skip to content

Commit

Permalink
move around constand values to avoid circular imports
Browse files Browse the repository at this point in the history
  • Loading branch information
emmyoop committed Apr 23, 2024
1 parent 83021fc commit 050535f
Show file tree
Hide file tree
Showing 10 changed files with 19 additions and 20 deletions.
2 changes: 1 addition & 1 deletion core/dbt/artifacts/schemas/run/v5/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from datetime import datetime


from dbt.constants import SECRET_ENV_PREFIX
from dbt.artifacts.resources import CompiledResource
from dbt.artifacts.schemas.base import (
BaseArtifactMetadata,
Expand All @@ -21,6 +20,7 @@
ExecutionResult,
)
from dbt_common.clients.system import write_json
from dbt_common.constants import SECRET_ENV_PREFIX
from dbt.exceptions import scrub_secrets


Expand Down
5 changes: 3 additions & 2 deletions core/dbt/config/renderer.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@

from dbt.clients.jinja import get_rendered
from dbt_common.clients.jinja import catch_jinja
from dbt.constants import SECRET_ENV_PREFIX, DEPENDENCIES_FILE_NAME
from dbt.constants import DEPENDENCIES_FILE_NAME, SECRET_PLACEHOLDER
from dbt.context.target import TargetContext
from dbt.context.secret import SecretContext, SECRET_PLACEHOLDER
from dbt.context.secret import SecretContext
from dbt.context.base import BaseContext
from dbt.adapters.contracts.connection import HasCredentials
from dbt.exceptions import DbtProjectError
from dbt_common.constants import SECRET_ENV_PREFIX
from dbt_common.context import get_invocation_context
from dbt_common.exceptions import CompilationError, RecursionError
from dbt_common.utils import deep_map_render
Expand Down
4 changes: 2 additions & 2 deletions core/dbt/constants.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# TODO: remove SECRET_ENV_PREFIX and import from dbt_common
SECRET_ENV_PREFIX = "DBT_ENV_SECRET_"
DEFAULT_ENV_PLACEHOLDER = "DBT_DEFAULT_PLACEHOLDER"

SECRET_PLACEHOLDER = "$$$DBT_SECRET_START$$${}$$$DBT_SECRET_END$$$"

MAXIMUM_SEED_SIZE = 1 * 1024 * 1024
MAXIMUM_SEED_SIZE_NAME = "1MB"

Expand Down
9 changes: 4 additions & 5 deletions core/dbt/context/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from dbt import utils
from dbt.clients.jinja import get_rendered
from dbt.clients.yaml_helper import yaml, safe_load, SafeLoader, Loader, Dumper # noqa: F401
from dbt.constants import SECRET_ENV_PREFIX, DEFAULT_ENV_PLACEHOLDER
from dbt.constants import DEFAULT_ENV_PLACEHOLDER, SECRET_PLACEHOLDER
from dbt.contracts.graph.nodes import Resource
from dbt.exceptions import (
SecretEnvVarLocationError,
Expand All @@ -21,6 +21,7 @@
ZipStrictWrongTypeError,
)
from dbt_common.context import get_invocation_context
from dbt_common.constants import SECRET_ENV_PREFIX
from dbt_common.exceptions.macros import MacroReturn
from dbt_common.events.functions import fire_event, get_invocation_id
from dbt.events.types import JinjaLogInfo, JinjaLogDebug
Expand Down Expand Up @@ -561,12 +562,10 @@ def log(msg: str, info: bool = False) -> str:
{{ log("Running some_macro: " ~ arg1 ~ ", " ~ arg2) }}
{% endmacro %}"
"""
# Now, detect instances of the placeholder value ($$$DBT_SECRET_START...DBT_SECRET_END$$$)
# and replace them with the standard mask '*****'
# Detect instances of the placeholder value ($$$DBT_SECRET_START...DBT_SECRET_END$$$)
# and replace it with the standard mask '*****'
if "DBT_SECRET_START" in str(msg):
search_group = f"({SECRET_ENV_PREFIX}(.*))"
from dbt.context.secret import SECRET_PLACEHOLDER

pattern = SECRET_PLACEHOLDER.format(search_group).replace("$", r"\$")
m = re.search(

Check warning on line 570 in core/dbt/context/base.py

View check run for this annotation

Codecov / codecov/patch

core/dbt/context/base.py#L568-L570

Added lines #L568 - L570 were not covered by tests
pattern,
Expand Down
3 changes: 2 additions & 1 deletion core/dbt/context/configured.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

from dbt_common.context import get_invocation_context

from dbt.constants import SECRET_ENV_PREFIX, DEFAULT_ENV_PLACEHOLDER
from dbt.constants import DEFAULT_ENV_PLACEHOLDER
from dbt_common.constants import SECRET_ENV_PREFIX
from dbt.adapters.contracts.connection import AdapterRequiredConfig
from dbt.node_types import NodeType
from dbt.utils import MultiDict
Expand Down
3 changes: 2 additions & 1 deletion core/dbt/context/providers.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
from dbt.adapters.factory import get_adapter, get_adapter_package_names, get_adapter_type_names
from dbt.clients.jinja import get_rendered, MacroGenerator, MacroStack, UnitTestMacroGenerator
from dbt.config import RuntimeConfig, Project
from dbt.constants import SECRET_ENV_PREFIX, DEFAULT_ENV_PLACEHOLDER
from dbt.constants import DEFAULT_ENV_PLACEHOLDER
from dbt_common.constants import SECRET_ENV_PREFIX
from dbt.context.base import contextmember, contextproperty, Var
from dbt.context.configured import FQNLookup
from dbt.context.context_config import ContextConfig
Expand Down
6 changes: 2 additions & 4 deletions core/dbt/context/secret.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
from typing import Any, Dict, Optional

from dbt_common.constants import SECRET_ENV_PREFIX
from dbt_common.context import get_invocation_context

from .base import BaseContext, contextmember

from dbt.constants import SECRET_ENV_PREFIX, DEFAULT_ENV_PLACEHOLDER
from dbt.constants import DEFAULT_ENV_PLACEHOLDER, SECRET_PLACEHOLDER
from dbt.exceptions import EnvVarMissingError


SECRET_PLACEHOLDER = "$$$DBT_SECRET_START$$${}$$$DBT_SECRET_END$$$"


class SecretContext(BaseContext):
"""This context is used in profiles.yml + packages.yml. It can render secret
env vars that aren't usable elsewhere"""
Expand Down
3 changes: 1 addition & 2 deletions core/dbt/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@

from dbt_common.dataclass_schema import ValidationError

from dbt.constants import SECRET_ENV_PREFIX

from dbt_common.constants import SECRET_ENV_PREFIX

if TYPE_CHECKING:
import agate
Expand Down
2 changes: 1 addition & 1 deletion core/dbt/parser/manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@
MANIFEST_FILE_NAME,
PARTIAL_PARSE_FILE_NAME,
SEMANTIC_MANIFEST_FILE_NAME,
SECRET_ENV_PREFIX,
)
from dbt_common.constants import SECRET_ENV_PREFIX
from dbt_common.helper_types import PathSet
from dbt_common.events.functions import fire_event, get_invocation_id, warn_or_error
from dbt_common.events.types import (
Expand Down
2 changes: 1 addition & 1 deletion tests/functional/dependencies/test_dependency_secrets.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def packages(self):

def test_allow_secrets(self, project):
_, log_output = run_dbt_and_capture(["deps"])
# this will not be written to logs or lock file
# this will not be written to logs
assert not ("super secret" in log_output)
assert "*****" in log_output
assert not ("DBT_ENV_SECRET_FOR_LOGGING" in log_output)

0 comments on commit 050535f

Please sign in to comment.