Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,9 @@
"vscode": {
"extensions": [
"Anthropic.claude-code",
"innoverio.vscode-dbt-power-user",
"trunk.io",
"ms-python.python",
"redhat.vscode-yaml"
"TEAMSchools.dbt-core-tools",
"trunk.io"
]
}
}
Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/scripts/postCreate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ uv run dbt deps --project-dir=src/dbt/kipppaterson &
uv run dbt deps --project-dir=src/dbt/kipptaf &
wait

# generate prod manifests for Power User --defer
# generate prod manifests for dbt --defer
for project in kipptaf kippnewark kippcamden kippmiami kipppaterson; do
uv run dbt parse --target prod \
--project-dir "src/dbt/${project}" \
Expand Down
2 changes: 1 addition & 1 deletion .vscode/scripts/post-merge.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# Generate prod manifests for Power User --defer
# Generate prod manifests for dbt --defer
# Runs in parallel — dbt parse is CPU-only (no DB access)

toplevel="$(git rev-parse --show-toplevel)" || {
Expand Down
54 changes: 7 additions & 47 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
{
"dbt.enableNewLineagePanel": true,
"dbt.allowListFolders": ["src/dbt"],
"dbt.installDepsOnProjectInitialization": false,
"diffEditor.experimental.showMoves": true,
"diffEditor.ignoreTrimWhitespace": false,
"editor.defaultFormatter": "trunk.io",
Expand Down Expand Up @@ -29,7 +26,6 @@
"trunk.trunkPath": "./trunk",
"files.associations": {
"*.env": "shellscript",
"*.sql": "jinja-sql",
"*.toml": "toml"
},
"files.exclude": {
Expand Down Expand Up @@ -67,53 +63,17 @@
"tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji scalar",
"tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg scalar"
],
"yaml.schemas": {
"https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/dbt_project-latest.json": "src/dbt/**/dbt_project.yml",
"https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/selectors-latest.json": "src/dbt/**/selectors.yml",
"https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/packages-latest.json": "src/dbt/**/packages.yml",
"https://raw.githubusercontent.com/dbt-labs/dbt-jsonschema/main/schemas/latest/dbt_yml_files-latest.json": [
"src/dbt/**/*.yml",
"!src/dbt/**/dbt_project.yml",
"!src/dbt/**/selectors.yml",
"!src/dbt/**/packages.yml"
]
},
"[python]": {
"editor.defaultFormatter": "trunk.io"
},
"claudeCode.preferredLocation": "sidebar",
"terminal.integrated.profiles.linux": {
"Claude Code": {
"path": "claude",
"icon": "sparkle"
}
},
"python.analysis.typeCheckingMode": "off",
"dbt.deferConfigPerProject": {
"src/dbt/kipptaf": {
"deferToProduction": false,
"manifestPathForDeferral": "src/dbt/kipptaf/target/prod/manifest.json",
"favorState": false
},
"src/dbt/kippnewark": {
"deferToProduction": false,
"manifestPathForDeferral": "src/dbt/kippnewark/target/prod/manifest.json",
"favorState": false
},
"src/dbt/kippcamden": {
"deferToProduction": false,
"manifestPathForDeferral": "src/dbt/kippcamden/target/prod/manifest.json",
"favorState": false
},
"src/dbt/kippmiami": {
"deferToProduction": false,
"manifestPathForDeferral": "src/dbt/kippmiami/target/prod/manifest.json",
"favorState": false
},
"src/dbt/kipppaterson": {
"deferToProduction": false,
"manifestPathForDeferral": "src/dbt/kipppaterson/target/prod/manifest.json",
"favorState": false
}
"dbtCoreTools.profilesDir": ".dbt",
"dbtCoreTools.deferManifestPath": {
"kipptaf": "src/dbt/kipptaf/target/prod",
"kippnewark": "src/dbt/kippnewark/target/prod",
"kippcamden": "src/dbt/kippcamden/target/prod",
"kippmiami": "src/dbt/kippmiami/target/prod",
"kipppaterson": "src/dbt/kipppaterson/target/prod"
}
}
20 changes: 3 additions & 17 deletions docs/guides/codespaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,6 @@ skips anything already configured.
configured in `devcontainer.json`; dismiss any extension install prompts VS Code
shows.

**Wait for dbt Power User to finish parsing** — the extension parses all
projects in the background, which pegs CPU and makes the extension unresponsive
until complete. Use `htop` to monitor; wait for CPU to settle before using the
extension. This is also the most common cause of "extension not responding"
errors.

**Reload the window** once background processes finish (++ctrl+shift+p++ →
**Developer: Reload Window**) for a clean editor state.

Expand Down Expand Up @@ -215,14 +209,6 @@ To grant a new developer access: add them to
not supported on all Codespaces hosts.
- **`--cap-add` stripped**: Codespaces silently strips `--cap-add` from
`runArgs` — namespace-based sandboxing (bwrap, unshare) will not work.
- **dbt Power User extension**: activates on
`workspaceContains:**/dbt_project.yml` and auto-runs `dbt deps` (controlled by
`dbt.installDepsOnProjectInitialization`, default `true`) and `dbt parse` (not
configurable) on startup. Risk: extension may activate before `uv sync`
installs dbt-core. If `dbt deps` runs in `postCreate.sh`, set
`dbt.installDepsOnProjectInitialization` to `false` to avoid duplicate work.
- **dbt Power User project scanning**: `dbt.allowListFolders` restricts which
paths the extension scans for `dbt_project.yml` — uses `startsWith` matching.
The extension also has a built-in `notInDBtPackages` filter. Manifest is read
from `target/` via Python bridge, not VS Code file watcher, so
`files.watcherExclude` on `target/` doesn't break it.
- **dbt Core Tools extension**: activates on
`workspaceContains:**/dbt_project.yml` and parses projects on startup. Risk:
extension may activate before `uv sync` installs dbt-core.
25 changes: 5 additions & 20 deletions docs/guides/dbt-development.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,31 +7,16 @@ kippmiami, kipppaterson):

| Target | Purpose |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `defer` | Default. Sources in `zz_<user>_*`, cross-regional sources read from prod. Power User `--defer` resolves unchanged models to prod manifest. |
| `defer` | Default. Sources in `zz_<user>_*`, cross-regional sources read from prod. CLI `--defer` resolves unchanged models to prod manifest. |
| `dev` | Full isolation. Cross-regional sources also in personal namespace. Use when developing regional models and testing end-to-end through kipptaf. |
| `staging` | CI-equivalent builds. Sources in `zz_stg_*`. Used by dbt Cloud CI. |
| `prod` | Production. Default target in shipped profiles (Dagster). Developers use `defer` (default in `.dbt/profiles.yml`). |

## Power User `--defer`
## Defer to production

Power User's `deferToProduction` setting is currently disabled
(`deferToProduction: false` in `.vscode/settings.json`) due to an
incompatibility between Power User v0.60.1 and dbt 1.11.7 (`merge_from_artifact`
crash). Re-enable when Power User is updated.

For CLI defer, use:

```bash
uv run dbt build \
--select <model> \
--project-dir src/dbt/<project> \
--profiles-dir .dbt \
--defer --state /workspaces/teamster/src/dbt/<project>/target/prod \
--favor-state
```

Prod manifests are generated by the `post-merge` git hook (runs on every
`git pull`/merge to main).
The dbt Core Tools extension handles `--defer` automatically — unchanged models
resolve to the prod manifest. Prod manifests are generated by the `post-merge`
git hook (runs on every `git pull`/merge to main).

## Staging external sources

Expand Down
8 changes: 4 additions & 4 deletions docs/guides/google-sheets.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,10 @@

### Verifying changes against production

Power User's `--defer` mode automatically resolves unchanged upstream models to
production. Build your modified staging model and downstream consumers will
reference prod data for anything you haven't changed. See the
[dbt Development guide](dbt-development.md#power-user-defer) for details.
The dbt Core Tools extension's `--defer` mode automatically resolves unchanged
upstream models to production. Build your modified staging model and downstream
consumers will reference prod data for anything you haven't changed. See the
[dbt Development guide](dbt-development.md#defer-to-production) for details.

## Updating a Google Sheets source

Expand Down
20 changes: 0 additions & 20 deletions docs/troubleshooting/dbt.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,26 +77,6 @@ Always prefix dbt commands with `uv run` and pass `--project-dir`:
uv run dbt build --select {model} --project-dir=src/dbt/kipptaf
```

## dbt Power User extension

**"dbt installation or Python environment is not properly configured"** — if
`deferToProduction` is `true` in `.vscode/settings.json`, Power User v0.60.1
crashes with dbt 1.11.7 during manifest merge. Set `deferToProduction: false` in
`dbt.deferConfigPerProject` and use CLI `--defer` instead.

**"No dbt project found"** — the extension needs the project directory set
explicitly. Open the VS Code command palette and run
`dbt Power User: Select dbt project`. Choose the project directory under
`src/dbt/`.

**Lineage panel is blank** — the manifest may be stale. Run
`uv run dbt parse --project-dir=src/dbt/{project}` to regenerate it, then reload
the lineage panel.

**Extension not activating** — confirm `innoverio.vscode-dbt-power-user` is
installed. In the devcontainer it is installed automatically; outside the
devcontainer you must install it manually.

---

**See also:** [dbt Conventions](../reference/dbt-conventions.md) ·
Expand Down
4 changes: 0 additions & 4 deletions docs/troubleshooting/vscode.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,6 @@ Or rebuild the container from scratch: open the command palette and run **Dev
Containers: Rebuild Container**. Note that a full rebuild re-runs `dbt deps` and
`dbt parse` for all 15 projects, which takes several minutes.

## dbt Power User

See [Troubleshooting dbt → dbt Power User](dbt.md#dbt-power-user-extension).

---

**See also:** [Guides](../guides/index.md) · [Troubleshooting dbt](dbt.md) ·
Expand Down
Loading