Fusion Diaries: Snowflake UDF fetching, access
enforcement, upcoming arguments
key for generic tests (2025-07-22)
#452
Replies: 1 comment
-
Adding some extra context from @venkaa28 now that the
This is behind a behaviour change flag in dbt Core:
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hot off the presses, it's your weekly Fusion update.
Check below for bugfixes, upcoming changes to
unsafe
static analysis and generic test definitions, and a meme that proves that comedy is justtragedybugs plustimebetter file lock management.🆕 What’s been released this week
dbt Fusion engine releases
Run
dbt system update
to get the latest and greatest, including:2.0.0-beta.40: detect unit test fixtures in subdirectories, fix issue where sources would be incorrectly marked as
state:modified
2.0.0-beta.41: support
updates_on: any
in state-aware orchestration, allowenv_var()
to accept named arguments inprofiles.yml
indent
Jinja argument names andmodules.datetime.timedelta()
positional argument order2.0.0-beta.42: support some
--no
-prefixed command line flags, support compiling Snowflakearray_agg
with windowing and ordering2.0.0-beta.43: Support overriding
DBT_PACKAGE_HUB_URL
env var, fixed issue where unit tests could block a run from completing2.0.0-beta.44: fetch existing Snowflake UDFs so they can be used in static analysis (set
DBT_ENGINE_EXPERIMENTAL_LIST_UDFS=1
), warn when a view used as a source doesn’t haveloaded_at_field
orloaded_at_query
(it will always be considered fresh)ceil
andfloor
methods for theround
Jinja filterthread_id
s inrun_results.json
timestamp_ntz
enabled
to sources when defined indbt_project.yml
2.0.0-beta.45: enforce
access
model governance rules, prevent excessive Snowflake externalauth browser popupsas_text
filter on a Relationpartition_by
config, and fix a relatedundeclared variable
error{% for x in my_list[::-1] -%}
syntax (but come on, just use{% for x in my_list | reverse %}
please!)VS Code extension + LSP
🚧 Coming up soon
Caching introspective query results for faster rendering
Projects with many introspective queries (including our internal analytics project!) see unpleasantly long compile times, due to the overhead of repeatedly fetching the results. We’re gonna cache ‘em!
Introspection will no longer disable static analysis
In an earlier Fusion Diary, we linked out to this Discourse discussion about static analysis and introspective queries. Based on this and feedback we’ve heard on calls with beta users, we’ve agreed that the old system was too strict and we’re changing it.
Previously, having an introspective query in your project would implicitly set
static_analysis: off
for that model and its children, and we required you to opt back into static analysis by settingstatic_analysis: unsafe
. The dbt Fusion engine will soon step down to unsafe static analysis automatically as needed.Check out a preview of the docs for more details.
Generic tests’ arguments are becoming strongly-typed
This is a big one - today, custom generic tests can be free-form YAML, which makes it impossible to statically validate configs and keyword arguments. This is the same sort of problem as plusless configs in
dbt_project.yml
or unknown config names inwhatever.yml
. In fact, you can think of this change as in the same way as moving user-defined configs to themeta
dictionary.By removing this ambiguity, we’ll be able to consistently render Jinja at the right time, solving issues like dbt-fusion#191 and dbt-fusion#250.
Here’s a before and after (expand to see code)
Of course, dbt-autofix has your back on these, and we’re updating dbt Core to support the same syntax. None of this is live today, just a heads up.
🤔 Looking for feedback
@graciegoheen just dropped the GitHub discussion for native UDF definitions in the dbt authoring layer. This is different to the discovery of existing UDFs described above - this will enable dbt Core and the dbt Fusion engine to directly manage your UDFs.
There's a lot of open questions over there, so make sure you give it a read and share your thoughts.
🐉 Here be dragons
Occasionally, the VS Code extension get stuck in a bad state when it’s auto-updated. For now, restarting your IDE should wake it back up. Tracking in #420
🏁 Made it to the meme
We’re pretty confident that we’ve got them all now! But seriously: if you keep seeing multiple auth prompts on Snowflake, please let us know.
Beta Was this translation helpful? Give feedback.
All reactions