chore: sync JSON schemas from dbt-fusion#13016
Merged
sriramr98 merged 1 commit intoMay 25, 2026
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #13016 +/- ##
==========================================
- Coverage 91.54% 91.50% -0.05%
==========================================
Files 206 206
Lines 26763 26763
==========================================
- Hits 24501 24490 -11
- Misses 2262 2273 +11
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
sriramr98
approved these changes
May 25, 2026
4 tasks
ash2shukla
added a commit
that referenced
this pull request
May 29, 2026
* Allow-list DBT_ENGINE_STATE_EMIT_REUSED_STATUS and DBT_ENGINE_STATE_OAUTH_CLIENT_ID (#13002) * Allow-list DBT_ENGINE_STATE_EMIT_REUSED_STATUS and DBT_ENGINE_STATE_OAUTH_CLIENT_ID Add both env vars to _ADDITIONAL_ENGINE_ENV_VARS so they pass the engine env var allow-list validation and don't trigger the environment-variable-namespace-deprecation warning. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Update issue reference in unreleased changes * Allow-list DBT_ENGINE_STATE_AUTH_URL, TOKEN_URL, and API_URL Add the three additional engine env vars to _ADDITIONAL_ENGINE_ENV_VARS so they pass allow-list validation and don't trigger the environment-variable-namespace-deprecation warning. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Update test_allow_list_is_correct to include new DBT_ENGINE_STATE_* vars The hard-coded allow list in TestKnownEngineEnvVarsExplicit must match _ALLOWED_ENV_VARS. Add the five new DBT_ENGINE_STATE_* vars introduced in this branch. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> (cherry picked from commit d9d985d) * Update test durations for pytest-split (#12974) Update test durations for pytest-split (cherry picked from commit 637a680) * chore: sync JSON schemas from dbt-fusion (#13016) (cherry picked from commit 6661970) * Defensively cap recursion limit while resolving `selector:` references (#13024) `SelectorSelectorMethod.search` relies on Python raising RecursionError so it can re-raise the more helpful DbtRecursionError ("Circular dependency detected in selector: ..."). This only works if Python's recursion-limit check (default 1000) trips before the OS thread stack overflows. On platforms with smaller default thread stacks -- notably Windows at ~1 MB vs ~8 MB on Linux/macOS -- the margin between the recursion limit and the OS stack can disappear once instrumentation (e.g. coverage) or stack-heavy plugins join the call chain. The OS overflows first, the worker process dies, and the user sees no helpful error. Lower the recursion limit locally (to 250, never raising the user's existing limit) for the duration of `search`, and restore in `finally`. This guarantees the catchable RecursionError fires first on every platform regardless of what else is on the stack. `set(method.search(...))` in `select_included` eagerly exhausts the generator, so the `finally` always runs before the caller resumes. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> (cherry picked from commit 2bb27ff) * ci: add workflow to fast-forward 1.latest from main (#13021) * ci: add workflow to fast-forward 1.latest from main Adds .github/workflows/sync-1-latest.yml which keeps the `1.latest` branch in sync with `main` via a fast-forward push on every push to `main` (and on manual dispatch). If `1.latest` has diverged and cannot be fast-forwarded, the workflow fails loudly instead of force-pushing, so the divergence can be resolved manually. Uses the standard FISHTOWN_BOT_PAT and "Github Build Bot" identity already used by other branch-pushing workflows in this repo (e.g. cut-release-branch.yml, update-test-durations.yml) so the push is allowed through branch protection on `1.latest` and triggers downstream CI there. Co-authored-by: Cursor <cursoragent@cursor.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> (cherry picked from commit 1662d71) * Bundle dbt-state as an install dependency of dbt-core (opt-in via --manage-state / DBT_ENGINE_MANAGE_STATE / manage_state) (#13014) * Bundle dbt-state as an opt-in dependency of dbt-core Add dbt-state to core/pyproject.toml so it is installed alongside dbt-core, and teach PluginManager to skip discovery of bundled-but-opt-in plugins unless their gate env var is set. The skip happens before importlib.import_module, so a disabled opt-in plugin pays zero import cost and runs zero side effects -- important because the plugin monkey-patches core classes and registers signal handlers at initialize() time. Why two module names: the package is mid-rename from `run-cache` (module `dbt_run_cache`) to `dbt-state` (module `dbt_state`). Both names are listed as first-class entries in OPT_IN_PLUGIN_MODULES gated by DBT_STATE_ENABLED so behavior is consistent regardless of which version a user has installed. Note: the `dbt-state` PyPI release must land before this dependency line can resolve; this change and the upstream rename must ship together. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Address review feedback on opt-in plugin gating - Rename DBT_STATE_ENABLED -> DBT_ENGINE_STATE_ENABLED to match the DBT_ENGINE_STATE_* convention established in #13002, and add it to _ADDITIONAL_ENGINE_ENV_VARS plus the hard-coded allow-list test. - Emit a discovery-time notice when an opt-in module is on the import path but the gate is off: INFO for the legacy `dbt_run_cache` (closes the silent-behavior-change gap reviewers flagged) and DEBUG for the new `dbt_state`. De-duplicated per process so PluginManager reconstruction doesn't spam the log. - Detect and resolve the dbt_state + dbt_run_cache conflict at gate-on time: prefer the canonical `dbt_state`, skip `dbt_run_cache`, emit a WARNING. Prevents non-deterministic double monkey-patching when both packages happen to be installed during the rename transition. - Wrap OPT_IN_PLUGIN_MODULES in MappingProxyType so it can't be silently mutated to flip activation for the rest of the process. - Tighten return-type annotation to set[str] and document the canonical truthy values explicitly. - Document scope (auto-discovery only; explicit imports still fire), cache contract (gate read at discovery time; tests toggling the env var must clear _MODULES_CACHE), and recommend plugin self-gating as defense-in-depth. - Delete the unused _get_dbt_modules helper. - Add end-to-end from_modules tests (gate on/off, plugin instantiated/not), conflict-resolution test, one-time-emission test, and MappingProxyType tampering test. Note for reviewers/maintainers: when patching dbt.plugins.manager attrs in tests, patch `logger` / `_notify_*` BEFORE patching importlib.import_module in the same with-block -- mock.patch's own target resolver calls import_module internally, so a mocked import_module silently breaks subsequent patches. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Update dbt-state dependency version range * Flip dbt-state gating from opt-in to opt-out + add project-flag path The plugin is now bundled (>=2.18) and loads by default. Users can opt out via either: - DBT_ENGINE_STATE_DISABLED env var (truthy = disable). Works pre-project-load. - state_plugin_disabled in the flags block of dbt_project.yml (equivalently in the config block of profiles.yml -- the existing read_project_flags loader handles both surfaces). PluginManager checks both signals at module-discovery time, before importlib.import_module is called, so opting out costs zero imports and runs zero side effects. The conflict-group dedup (dbt_state + dbt_run_cache both installed) continues to apply on the default path. Renames in this commit: - DBT_ENGINE_STATE_ENABLED -> DBT_ENGINE_STATE_DISABLED (env var) - OPT_IN_PLUGIN_MODULES -> OPT_OUT_PLUGIN_MODULES (now maps to an OptOutSignal namedtuple of env_var + flag_attr) - OPT_IN_PLUGIN_CONFLICT_GROUPS -> OPT_OUT_PLUGIN_CONFLICT_GROUPS - _env_gate_is_on -> _env_var_is_truthy - _notify_opt_in_* -> _notify_opt_out_* New ProjectFlags field state_plugin_disabled (default False) is included in project_only_flags so cli/flags.py setattrs it on the global Flags object as STATE_PLUGIN_DISABLED. _read_project_flag in manager.py lazy-imports dbt.flags to avoid hard import-time coupling. Tests cover both opt-out paths (env-var and project-flag) at unit level and end-to-end via from_modules. Adds TestProjectFlagsExposeStatePluginDisabled to assert the field is wired through project_only_flags -- if that mapping is removed, get_flags() never gets the attribute and the project-flag opt-out silently does nothing. Updates the test_requires.py hard-coded engine env var allow-list and adds a changelog entry. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Tidy docstring: empty string, not None, for env-var-only plugins Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Rename gate to manage_state, add --manage-state CLI flag Three coordinated changes: - Env var: DBT_ENGINE_STATE_DISABLED -> DBT_ENGINE_MANAGE_STATE - Project/profile flag: state_plugin_disabled -> manage_state - CLI flag (new): --manage-state / --no-manage-state Semantics flip from "disabled" to "managed": - Old: truthy signal -> plugin OFF, default OFF means plugin ON - New: manage_state True -> plugin ON, default True means plugin ON; set to False (any surface) to skip the plugin The CLI flag is registered via `_create_option_and_track_env_var` in params.py with envvar=DBT_MANAGE_STATE; the EngineEnvVar machinery auto-aliases that to DBT_ENGINE_MANAGE_STATE and Click reads either. Because the flag now has a CLI option, env_vars._ADDITIONAL_ENGINE_ENV_VARS no longer needs an explicit entry (params.KNOWN_ENV_VARS handles it). ProjectFlags moves `manage_state: Optional[bool] = None` to the regular section (out of project_only_flags) so cli/flags.py's params_assigned_from_default override path handles it -- same pattern as partial_parse and other CLI-backed flags. PluginManager renames: - OPT_OUT_PLUGIN_MODULES -> BUNDLED_PLUGIN_MODULES - OPT_OUT_PLUGIN_CONFLICT_GROUPS -> BUNDLED_PLUGIN_CONFLICT_GROUPS - OptOutSignal(env_var, flag_attr) -> ManageSignal(flag_attr, cli_flag) - _disabled_opt_out_modules -> _disabled_bundled_modules - _resolve_opt_out_conflicts -> _resolve_bundled_plugin_conflicts - _env_var_is_truthy -> dropped (Click handles env var) - _read_project_flag -> _plugin_is_managed (and inverted) - _opt_out_reason -> dropped (single signal source now) - _notify_opt_out_* -> _notify_bundled_plugin_* Discovery still happens at module-discovery time, before importlib.import_module is called, so a disabled bundled plugin pays zero import cost. Tests rewritten to cover the new semantics: _plugin_is_managed default behavior, default-True on flag-init exception, registry contents, read-only mapping, conflict resolution, end-to-end from_modules with manage_state True/False. New test asserts manage_state is NOT in project_only_flags (it's CLI-backed; if it were in both paths they could disagree). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Flip manage_state back to opt-in (default false) Just a default-value flip plus comment/help-text/log-level updates; the wiring stays the same since manage_state still resolves through `get_flags().MANAGE_STATE` from any of the three surfaces (CLI flag, env var, project/profile config). - cli/params.py: --manage-state default changes from True to False. Help text reframed to "opt in". - plugins/manager.py: `_plugin_is_managed` defaults to False when the flag attribute is missing, and returns False on exception (was True in both cases). Comments/docstrings updated to reflect opt-in framing. - The discovery-skipped notice goes from logger.info to logger.debug, since with opt-in the not-loaded state is the default case and shouldn't log INFO-level noise on every default invocation. - contracts/project.py: docstring on `manage_state` field updated. - pyproject.toml: dependency comment updated. - Test names/assertions flipped to match: default_true -> default_false, returns_true_on_exception -> returns_false_on_exception, loads_by_default -> loads_when_opted_in, skips_when_unmanaged -> skips_by_default, logs_info_when_unmanaged -> logs_debug_when_not_opted_in, instantiates_by_default -> instantiates_when_opted_in, does_not_instantiate_when_unmanaged -> does_not_instantiate_by_default. - Changelog body rephrased ("opt-in: PluginManager skips unless..."). Conflict-resolution path is unchanged -- if both dbt_state and dbt_run_cache are installed AND the user has opted in, the dedup still fires. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Restore process-wide cache of the pkgutil walk + reset between tests Two fixes from Copilot's review on PR 13014: 1. Re-introduce a process-wide cache for the pkgutil.iter_modules() walk. The previous code had `@functools.lru_cache(maxsize=None)` on the (admittedly unused) `_get_dbt_modules` helper; deleting it removed the cache benefit too. `pkgutil.iter_modules()` walks sys.path and is slow in environments with many site-packages; repeated PluginManager constructions (notably programmatic dbtRunner usage) shouldn't re-scan. Introduce `_walk_prefixed_module_names(prefix)` decorated with `functools.lru_cache(maxsize=4)`. Cached at module scope, called from `get_prefixed_modules`. Opt-in signals are still re-evaluated per call (so env-var/flag changes between calls take effect); only the slow filesystem walk is cached. 2. Reset module-level cache state between tests. The new from_modules tests didn't clear `_MODULES_CACHE`, so if `test_caching_enabled()` returns True, the first test populates it with its mocked module dict and subsequent tests short-circuit using the stale cache -- the gate never runs, and assertions pass for the wrong reason (or fail non-deterministically depending on order). Extend the existing autouse fixture (rename to `_reset_plugin_manager_process_state`) to clear three pieces of process-global state before AND after each test: - `_DISCOVERY_NOTICES_EMITTED` - `_MODULES_CACHE` - the new `_walk_prefixed_module_names` lru_cache New test `test_walk_prefixed_module_names_is_cached` pins the caching behavior directly: three calls hit `pkgutil.iter_modules` exactly once. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Register --manage-state with canonical DBT_ENGINE_ env var (no legacy alias) tests/unit/test_env_vars.py::test_engine_env_vars_with_old_names_has_not_increased counts engine env vars that were registered with the legacy DBT_ prefix (EngineEnvVar then auto-aliases them with a DBT_ENGINE_ name and sets old_name to the legacy form). The test is a guard against adding NEW engine env vars in the legacy form. I'd registered the new --manage-state option with envvar="DBT_MANAGE_STATE", which auto-aliased to DBT_ENGINE_MANAGE_STATE but counted as a legacy addition (incrementing the count from 65 to 66 and tripping the guard). Fix: register with envvar="DBT_ENGINE_MANAGE_STATE" directly. EngineEnvVar sees the canonical prefix and sets old_name=None, so the count stays at 65. The user-facing env var is unchanged (still DBT_ENGINE_MANAGE_STATE); we just lose the implicit DBT_MANAGE_STATE alias, which has no users. Also remove the stale "(or its non-engine-prefixed alias DBT_MANAGE_STATE)" note from the ManageSignal docstring in plugins/manager.py. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> (cherry picked from commit b6aae8c) * chore: sync JSON schemas from dbt-fusion (#13038) (cherry picked from commit 174a4fa) * Fix --manage-state being silently overridden by DBT_ENGINE_MANAGE_STATE=false in the plugin (#13039) * Add end-to-end tests pinning manage_state opt-in surfaces + precedence Follow-up to #13014. The manage_state flag has three opt-in surfaces (--manage-state CLI, DBT_ENGINE_MANAGE_STATE env var, manage_state in dbt_project.yml `flags:` or profiles.yml `config:`), but the existing unit tests mocked `_plugin_is_managed` / `get_flags()` directly. That left the actual Click parser, Flags constructor, and ProjectFlags merge path uncovered, so a refactor of that pipeline could silently break any of the three opt-in paths. New TestManageStateClickIntegration class with 8 cases, no mocks of the helper functions -- builds a minimal Click command with the real @p.manage_state decorator, invokes via CliRunner, constructs the real Flags(ctx, project_flags=...) object, then asserts on the actual _plugin_is_managed result: - Nothing set -> skipped - --manage-state alone -> enabled - --no-manage-state alone -> skipped - DBT_ENGINE_MANAGE_STATE=true alone -> enabled - ProjectFlags(manage_state=True) alone -> enabled - ProjectFlags(manage_state=False) alone -> skipped - --no-manage-state + project flag True -> skipped (CLI wins) - --no-manage-state + env var true -> skipped (CLI wins) Pins both the "each source enables on its own" contract and the precedence rule (explicit CLI beats env var beats project flag beats default). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Cover the symmetric CLI > env precedence case Missed in the previous round: --manage-state + DBT_ENGINE_MANAGE_STATE=false. Same Click rule as the existing --no-manage-state + env=true test, but in the other direction. Verified empirically that the CLI value sticks (_plugin_is_managed True), and pinned it with a test. Also renamed the existing test_cli_flag_overrides_env_var -> test_cli_no_flag_overrides_env_var_true so the pair is unambiguous when reading the test list. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Fix: propagate Click-resolved manage_state to the plugin's own env-var check The bundled dbt-state plugin reads DBT_ENGINE_MANAGE_STATE directly in its initialize() rather than going through `dbt.flags.get_flags()`. When a user passes `--manage-state` while DBT_ENGINE_MANAGE_STATE=false is set in the env, PluginManager correctly decides to load the plugin (Click resolves CLI > env, so flags.MANAGE_STATE=True), but the plugin then self-disables on import when its own env-var check reads "false". Reported empirically: export DBT_ENGINE_MANAGE_STATE=false dbt build --manage-state # -> "State adapter: dbt-state v2.21.1 ... is disabled" Fix: PluginManager normalizes os.environ[<env_var>] to "true" right before importing each bundled plugin module. Bridges the Click-resolved value to the plugin's own gating without requiring a dbt-state release. Restored `env_var` field on ManageSignal (carries the env-var name per-plugin) and populated for both dbt_state and dbt_run_cache. Also exposes the gap in the earlier integration tests: they asserted on _plugin_is_managed (PluginManager's view), which was always True for the CLI-override case, so the bug slipped through. New test test_cli_override_normalizes_env_var_for_plugin simulates a plugin that reads DBT_ENGINE_MANAGE_STATE directly in its initialize() (exactly what real dbt-state does) and asserts the plugin sees "true" after PluginManager runs. Verified the test fails without the manager.py fix and passes with it (stash + run + pop). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Reclassify changelog: Fixes (not Under the Hood) and update body This is a user-visible bug fix, not internal cleanup. Rename the changelog file accordingly and rewrite the body around the fix. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Address Copilot + CodeScene feedback Three fixes: 1. (Copilot) `_probe_manage_state` now defaults `project_flags` to an empty `ProjectFlags()` when not supplied, instead of None. With None, `Flags.__init__` falls through to `read_project_flags()` which reads the developer's actual `~/.dbt/profiles.yml` / `dbt_project.yml`. A local `config.manage_state: true` would silently break the "nothing set" cases. 2. (Copilot) `_probe_manage_state` captures `dbt.flags.get_flags()` before the Click invocation and restores it in a `finally`. The helper has to call `set_flags(flags)` for `_plugin_is_managed` to see the new value, but without the restore it leaks process-global state into later tests that read `get_flags()` -- producing ordering-dependent failures. 3. (CodeScene "Bumpy Road Ahead") `get_prefixed_modules` had two nested-conditional blocks. Extracted them into named helpers: - `_not_opted_in_bundled_modules(names)` returns the skip set - `_sync_bundled_plugin_env_vars(to_import)` does the os.environ normalization Helpers use the `continue` early-return pattern to keep their own nesting shallow. `get_prefixed_modules` is now linear (zero nested conditionals); the gate-check + env-var-sync semantics are unchanged. Verified all 35 tests still pass. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> (cherry picked from commit 733599f) * Implement dbt Login Command (#13020) * first pass for dbt login * add run-cache flow and post oauth login steps with manage_state flag * refactoring * fix the configured but not enabled case * cleaned up the flow * remove slop tests * add changelog * add login flow test and move OAUTH_CLIENT_ID to resolvers.py * fixed copilot comments * address write protection and remove unnecesary flags * fix naming for exceptions, move skip-browser-auth to flags * addressed comments * rename runcache to state * fix failing tests * align login logs * add dbt login status sub command * fix failing tests * add functional tests and align with fs impl (cherry picked from commit f0cbe97) * Add --use-v2-parser to delegate parsing to the fusion parser (#13029) * Add v2 parser & tests * Make parse_with_fusion more similar to pre-existing parse_manifest * Re-name v2-parser-command to v2-parser * Sort params alphabetically * Add changelog for v2 parser * Improve docstring Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Clean up unused get_adapter call * Fix tests in Windows * Fix parser command parsing on Windows * Update enrich_manifest_with_plugin_artifacts docstring * Default v2 parser to bundled dbt-core-experimental-parser Add dbt-core-experimental-parser as a dependency and resolve the engine binary from this Python install's scripts directory when V2_PARSER is a bare command name, so the wheel-pinned binary wins over whatever fs is on PATH. Users can still override via --v2-parser to point at an absolute path or alternate command. * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Unhide --use-v2-parser * Update core/dbt/cli/params.py Co-authored-by: Colin Rogers <111200756+colin-rogers-dbt@users.noreply.github.com> * Fix changelog * Cleanup mentions of `fs` * Fix parser unit tests * Update issue reference in Features YAML file --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Colin Rogers <111200756+colin-rogers-dbt@users.noreply.github.com> (cherry picked from commit 317b050) * chore: sync JSON schemas from dbt-fusion (#13051) (cherry picked from commit ea99acf) * add dbt login fixes for post login flow (#13056) * add dbt login fixes for post login flow * address copilot comments to add encoding tests (cherry picked from commit 63b2893) --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: FishtownBuildBot <77737458+FishtownBuildBot@users.noreply.github.com> Co-authored-by: fa-assistant <77991023+fa-assistant@users.noreply.github.com> Co-authored-by: Tauhid Anjum <tauhidanjum@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Ashish Shukla <ashish.shukla@dbtlabs.com> Co-authored-by: Diego Fernández Giraldo <aiguo.fernandez@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR syncs the JSON schemas from the dbt-fusion repository.
Files Updated
core/dbt/jsonschemas/project/latest.jsoncore/dbt/jsonschemas/resources/latest.jsonSource Information
ffdcee86de7296255de6161ae57973bab0e3cae4