diff --git a/core/dbt/context/base.py b/core/dbt/context/base.py index e969506f625..5ee266f8b6a 100644 --- a/core/dbt/context/base.py +++ b/core/dbt/context/base.py @@ -561,6 +561,20 @@ 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 '*****' + 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( + pattern, + msg, + ) + if m: + msg = re.sub(pattern, "*****", msg) + if info: fire_event(JinjaLogInfo(msg=msg, node_info=get_node_info())) else: