Overview
A dbt project usually depends on packages declared in packages.yml or dependencies.yml. The Execute dbt Project flow manages those dependencies for you, with tenant-aware caching, lock-file support, and configurable policies, so repeated executions do not re-download packages and offline environments can run from cache.
Dependency modes
The flow's Dependencies parameter has two values:
- Auto (default) — restore or install packages when packages.yml or dependencies.yml exists in the project.
- Never — skip dependency resolution entirely.
Lock and network policies
Two account-level settings control how strictly dependencies are resolved (Settings, dbt section; tenant settings override global):
- Package Lock Policy — WARN (default) logs a warning when package-lock.yml is missing or stale; REQUIRE fails the execution instead. Use REQUIRE for reproducible production builds.
- Package Network Policy — ALLOW (default) permits downloading missing packages; CACHE_ONLY restricts installation to the local package cache and fails when a package is not cached. Use CACHE_ONLY for locked-down environments.
The package cache
Installed dependencies are published to a shared, account-scoped cache:
- Cache entries are addressed by SHA-256 of the dependency identity. The cache key includes the package definitions, the lock file, the dbt version, the project source, the installation path, and the variables that affect resolution.
- Publication is atomic, and concurrent executions can populate the cache safely.
- A custom static packages-install-path configured in the project is supported and validated against path-containment rules.
- Quota and retention are enforced automatically by maintenance cleanup.
Limits and defaults
| Setting | Default |
|---|---|
| Package Cache Root (dbt.package.cache.root) | {app.data}/dbt_cache/packages |
| Package Cache Quota per Account | 5 GiB |
| Package Cache Retention | 30 days |
| Dependency Installation Timeout | 10 minutes |
| Maximum materialized project size | 1 GiB |
| Maximum project files | 100,000 |
| Git Operation Timeout | 5 minutes |
Root and tenant accounts have independent application-data roots and quotas. On an Integration Agent, the cache lives on the agent under the dbt Package Cache Root agent parameter; the host policies (quota, retention, timeout, lock and network policy) still apply — see Run dbt and Git flows on the Integration Agent.
Provenance
Each execution records its dependency mode, lock status, and cache identity. The values are visible in the dbt Results tab of the execution dashboard, so you can always tell which package set a run used.