|
62 | 62 | ### 1. dbt Integration Support
|
63 | 63 |
|
64 | 64 | **Multiple Integration Types**:
|
65 |
| -- **dbt Core**: Direct Python integration |
66 |
| -- **dbt Cloud**: API-based integration |
67 |
| -- **dbt Fusion**: Command-line integration |
68 |
| -- **Core Command**: CLI wrapper integration |
| 65 | +- **dbt Core**: Direct Python integration via Python bridge |
| 66 | +- **dbt Cloud**: API-based integration with dbt Cloud services |
| 67 | +- **dbt Fusion**: Command-line integration with dbt-fusion CLI |
| 68 | +- **Core Command**: CLI wrapper integration for dbt core |
69 | 69 |
|
70 | 70 | **Key Integration Files**:
|
71 |
| -- `src/dbt_client/dbtCoreIntegration.ts` |
72 |
| -- `src/dbt_client/dbtCloudIntegration.ts` |
73 |
| -- `dbt_core_integration.py` (Python bridge) |
| 71 | +- `src/dbt_client/dbtCoreIntegration.ts` - dbt Core Python integration |
| 72 | +- `src/dbt_client/dbtCloudIntegration.ts` - dbt Cloud API integration |
| 73 | +- `src/dbt_client/dbtFusionCommandIntegration.ts` - dbt Fusion CLI integration |
| 74 | +- `dbt_core_integration.py` - Python bridge for Core integration |
74 | 75 |
|
75 | 76 | ### 2. Language Server Features
|
76 | 77 |
|
@@ -268,4 +269,304 @@ Uses VSCode's webview messaging system with typed message contracts. State is sy
|
268 | 269 | ### 4. Python Bridge Pattern
|
269 | 270 | For dbt operations requiring Python, use the established bridge pattern with JSON serialization and error handling.
|
270 | 271 |
|
271 |
| -This architecture enables the extension to provide comprehensive dbt development support while maintaining modularity and extensibility for future enhancements. |
| 272 | +This architecture enables the extension to provide comprehensive dbt development support while maintaining modularity and extensibility for future enhancements. |
| 273 | + |
| 274 | +--- |
| 275 | + |
| 276 | +# User Guide |
| 277 | + |
| 278 | +## Core Features Overview |
| 279 | + |
| 280 | +The dbt Power User extension accelerates dbt and SQL development by 3x through three key phases: |
| 281 | + |
| 282 | +### 🔧 DEVELOP |
| 283 | +- **SQL Visualizer**: Visual query builder and analyzer |
| 284 | +- **Query Explanation**: AI-powered SQL query explanation |
| 285 | +- **Auto-generation**: Generate dbt models from sources or raw SQL |
| 286 | +- **Auto-completion**: IntelliSense for dbt models, macros, sources, and doc blocks |
| 287 | +- **Click to Run**: Execute models directly from editor |
| 288 | +- **Query Translation**: Translate SQL between different dialects |
| 289 | +- **Compiled SQL Preview**: View compiled dbt code before execution |
| 290 | + |
| 291 | +### 🧪 TEST |
| 292 | +- **Query Results Preview**: Execute and analyze query results with export capabilities |
| 293 | +- **Test Generation**: AI-powered test generation for dbt models |
| 294 | +- **Column Lineage**: Detailed data lineage with code visibility |
| 295 | +- **Defer to Production**: Run models without rebuilding dependencies |
| 296 | +- **SQL Validation**: Validate SQL without execution |
| 297 | +- **Model Lineage**: Visual representation of model dependencies |
| 298 | + |
| 299 | +### 🤝 COLLABORATE |
| 300 | +- **Documentation Generation**: AI-powered documentation creation |
| 301 | +- **Code Collaboration**: Discussion threads on code and documentation |
| 302 | +- **Project Governance**: Automated checks for code quality and standards |
| 303 | +- **SaaS UI Integration**: Web-based interface for dbt docs and lineage |
| 304 | +- **Query History & Bookmarks**: Track and share query executions |
| 305 | +- **Export Workflows**: Share lineage and documentation externally |
| 306 | + |
| 307 | +## DataMates AI Integration |
| 308 | + |
| 309 | +The extension includes **AI Teammates** through the DataMates Platform: |
| 310 | +- **Coaching**: Personalize AI teammates for specific requirements |
| 311 | +- **Query Assistance**: AI-powered query explanation and optimization |
| 312 | +- **Documentation**: Automated documentation generation |
| 313 | +- **Test Suggestions**: Smart test recommendations |
| 314 | +- **SQL Translation**: Cross-dialect SQL conversion |
| 315 | + |
| 316 | +## Feature Availability |
| 317 | + |
| 318 | +**Free Extension Features**: |
| 319 | +- SQL Visualizer, Model-level lineage, Auto-generation from sources |
| 320 | +- Auto-completion, Click to Run, Compiled SQL preview |
| 321 | +- Query results preview, Defer to production, SQL validation |
| 322 | + |
| 323 | +**With Altimate AI Key** (free signup at [app.myaltimate.com](https://app.myaltimate.com)): |
| 324 | +- Column-level lineage, Query explanation AI, Query translation AI |
| 325 | +- Auto-generation from SQL, Test generation AI, Documentation generation AI |
| 326 | +- Code/documentation collaboration, Lineage export, SaaS UI |
| 327 | +- Project governance, Query history & bookmarks |
| 328 | + |
| 329 | +--- |
| 330 | + |
| 331 | +# Installation and Setup |
| 332 | + |
| 333 | +## Installation Methods |
| 334 | + |
| 335 | +### Native Installation |
| 336 | +Install directly from [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=innoverio.vscode-dbt-power-user) or via VS Code: |
| 337 | +1. Open VS Code Extensions panel (`Ctrl+Shift+X`) |
| 338 | +2. Search for "dbt Power User" |
| 339 | +3. Click Install |
| 340 | +4. Reload VS Code if prompted |
| 341 | + |
| 342 | +### Dev Container Installation |
| 343 | +Add to your `.devcontainer/devcontainer.json`: |
| 344 | +```json |
| 345 | +{ |
| 346 | + "customizations": { |
| 347 | + "vscode": { |
| 348 | + "files.associations": { |
| 349 | + "*.yaml": "jinja-yaml", |
| 350 | + "*.yml": "jinja-yaml", |
| 351 | + "*.sql": "jinja-sql", |
| 352 | + "*.md": "jinja-md" |
| 353 | + }, |
| 354 | + "extensions": [ |
| 355 | + "innoverio.vscode-dbt-power-user" |
| 356 | + ] |
| 357 | + } |
| 358 | + } |
| 359 | +} |
| 360 | +``` |
| 361 | + |
| 362 | +### Cursor IDE Support |
| 363 | +The extension is also available for [Cursor IDE](https://www.cursor.com/how-to-install-extension). Install the same way as VS Code. |
| 364 | + |
| 365 | +## Required Configuration |
| 366 | + |
| 367 | +### 1. dbt Integration Setup |
| 368 | +Configure how the extension connects to dbt: |
| 369 | +- **dbt Core**: For local dbt installations with Python bridge (default) |
| 370 | +- **dbt Cloud**: For dbt Cloud API integration |
| 371 | +- **dbt Fusion**: For dbt-fusion CLI integration |
| 372 | +- **dbt Core Command**: For CLI-based dbt core integration |
| 373 | + |
| 374 | +Set via `dbt.dbtIntegration` setting. |
| 375 | + |
| 376 | +#### dbt Fusion Integration |
| 377 | +dbt Fusion is a command-line interface that provides enhanced dbt functionality. When using fusion integration: |
| 378 | +- Requires dbt-fusion CLI to be installed in your environment |
| 379 | +- Extension automatically detects fusion installation via `dbt --version` output |
| 380 | +- Provides full feature support including query execution, compilation, and catalog operations |
| 381 | +- Uses JSON log format for structured command output parsing |
| 382 | + |
| 383 | +### 2. Python Environment |
| 384 | +Ensure Python and dbt are properly installed and accessible. The extension will auto-detect your Python environment through the VS Code Python extension. |
| 385 | + |
| 386 | +### 3. Optional: Altimate AI Key |
| 387 | +For advanced AI features, get a free API key: |
| 388 | +1. Sign up at [app.myaltimate.com/register](https://app.myaltimate.com/register) |
| 389 | +2. Add API key to `dbt.altimateAiKey` setting |
| 390 | +3. Set instance name in `dbt.altimateInstanceName` setting |
| 391 | + |
| 392 | +## Project Setup |
| 393 | +1. Open your dbt project folder in VS Code |
| 394 | +2. Run the setup wizard: Select "dbt" in bottom status bar → "Setup Extension" |
| 395 | +3. The extension will auto-install dbt dependencies if enabled |
| 396 | +4. Verify setup via Command Palette → "dbt Power User: Diagnostics" |
| 397 | + |
| 398 | +--- |
| 399 | + |
| 400 | +# Troubleshooting for Developers |
| 401 | + |
| 402 | +## Quick Diagnostics |
| 403 | + |
| 404 | +### 1. Setup Wizard |
| 405 | +Use the built-in setup wizard for automated issue detection: |
| 406 | +- Click "dbt" or "dbt is not installed" in bottom status bar |
| 407 | +- Select "Setup Extension" |
| 408 | +- Follow guided setup process |
| 409 | + |
| 410 | +### 2. Diagnostics Command |
| 411 | +Run comprehensive system diagnostics: |
| 412 | +- Open Command Palette (`Cmd+Shift+P` / `Ctrl+Shift+P`) |
| 413 | +- Type "diagnostics" → Select "dbt Power User: Diagnostics" |
| 414 | +- Review output for environment issues, Python/dbt installation status, and connection problems |
| 415 | + |
| 416 | +### 3. Problems Panel |
| 417 | +Check VS Code Problems panel for dbt project issues: |
| 418 | +- View → Problems (or `Ctrl+Shift+M`) |
| 419 | +- Look for dbt-related validation errors |
| 420 | + |
| 421 | +## Debug Logging |
| 422 | + |
| 423 | +Enable detailed logging for troubleshooting: |
| 424 | +1. Command Palette → "Set Log Level" → "Debug" |
| 425 | +2. View logs: Output panel → "Log" dropdown → "dbt" |
| 426 | +3. Reproduce the issue to capture debug information |
| 427 | + |
| 428 | +## Developer Tools |
| 429 | +For advanced debugging: |
| 430 | +- Help → Toggle Developer Tools |
| 431 | +- Check console for JavaScript errors and detailed logs |
| 432 | + |
| 433 | +## Common Issues |
| 434 | + |
| 435 | +**Extension not recognizing dbt project**: |
| 436 | +- Verify `dbt_project.yml` exists in workspace root |
| 437 | +- Check Python environment has dbt installed |
| 438 | +- Run diagnostics command for detailed analysis |
| 439 | + |
| 440 | +**Python/dbt not found**: |
| 441 | +- Configure Python interpreter via VS Code Python extension |
| 442 | +- Verify dbt is installed in selected Python environment |
| 443 | +- Set `dbt.dbtPythonPathOverride` if using custom Python path |
| 444 | + |
| 445 | +**Connection issues**: |
| 446 | +- Verify database connection in dbt profiles |
| 447 | +- Check firewall/network settings |
| 448 | +- Review connection details in diagnostics output |
| 449 | + |
| 450 | +## Getting Help |
| 451 | +- Join [#tools-dbt-power-user](https://getdbt.slack.com/archives/C05KPDGRMDW) in dbt Community Slack |
| 452 | +- Contact support at [altimate.ai/support](https://www.altimate.ai/support) |
| 453 | +- Use in-extension feedback widgets for feature-specific issues |
| 454 | + |
| 455 | +--- |
| 456 | + |
| 457 | +# Core Development Features |
| 458 | + |
| 459 | +## Auto-completion and Navigation |
| 460 | + |
| 461 | +### Model Auto-completion |
| 462 | +- **Smart IntelliSense**: Auto-complete model names with `ref()` function |
| 463 | +- **Go-to-Definition**: Navigate directly to model files |
| 464 | +- **Hover Information**: View model details on hover |
| 465 | + |
| 466 | +### Macro Support |
| 467 | +- **Macro Auto-completion**: IntelliSense for custom and built-in macros |
| 468 | +- **Parameter Hints**: Auto-complete macro parameters |
| 469 | +- **Definition Navigation**: Jump to macro definitions |
| 470 | + |
| 471 | +### Source Integration |
| 472 | +- **Source Auto-completion**: IntelliSense for configured sources |
| 473 | +- **Column Awareness**: Auto-complete source column names |
| 474 | +- **Schema Navigation**: Navigate to source definitions |
| 475 | + |
| 476 | +### Documentation Blocks |
| 477 | +- **Doc Block Auto-completion**: IntelliSense for documentation references |
| 478 | +- **Definition Linking**: Navigate to doc block definitions |
| 479 | + |
| 480 | +## Query Development |
| 481 | + |
| 482 | +### SQL Compilation and Preview |
| 483 | +- **Compiled Code View**: See final SQL before execution |
| 484 | +- **Template Resolution**: Preview Jinja templating results |
| 485 | +- **Syntax Highlighting**: Enhanced SQL syntax highlighting for dbt files |
| 486 | + |
| 487 | +### Query Execution |
| 488 | +- **Preview Results**: Execute queries with `Cmd+Enter` / `Ctrl+Enter` |
| 489 | +- **Result Analysis**: Export results as CSV, copy as JSON |
| 490 | +- **Query History**: Track executed queries |
| 491 | +- **Configurable Limits**: Set row limits for query previews (default: 500 rows) |
| 492 | + |
| 493 | +### SQL Formatting |
| 494 | +- **Auto-formatting**: Integration with sqlfmt |
| 495 | +- **Custom Parameters**: Configure formatting rules |
| 496 | +- **Batch Processing**: Format multiple files |
| 497 | + |
| 498 | +## AI-Powered Development |
| 499 | + |
| 500 | +### Query Explanation |
| 501 | +- **Natural Language**: Get plain English explanations of complex SQL |
| 502 | +- **Step-by-step Analysis**: Breakdown of query logic |
| 503 | +- **Performance Insights**: Query optimization suggestions |
| 504 | + |
| 505 | +### Code Generation |
| 506 | +- **Model from Source**: Generate base models from source tables |
| 507 | +- **Model from SQL**: Convert raw SQL to dbt models |
| 508 | +- **Test Generation**: AI-powered test suggestions |
| 509 | +- **Documentation Generation**: Auto-generate model documentation |
| 510 | + |
| 511 | +### Query Translation |
| 512 | +- **Cross-dialect Support**: Translate SQL between database dialects |
| 513 | +- **Syntax Adaptation**: Handle dialect-specific functions and syntax |
| 514 | + |
| 515 | +## Documentation |
| 516 | + |
| 517 | +This is a MkDocs-based documentation site for the dbt Power User VSCode Extension by Altimate AI. The site uses the Material theme and is organized around user workflows: Develop, Test, and Collaborate. |
| 518 | + |
| 519 | +### Development Commands |
| 520 | + |
| 521 | +- **Install dependencies**: `pip install --requirement documentation/requirements.txt` |
| 522 | +- **Start development server**: `cd documentation; mkdocs serve` (serves at http://127.0.0.1:8000) |
| 523 | +- **Build site**: `cd documentation; mkdocs build` |
| 524 | +- **Deploy to GitHub Pages**: `cd documentation; mkdocs gh-deploy` |
| 525 | + |
| 526 | +### Architecture |
| 527 | + |
| 528 | +#### Content Organization |
| 529 | +- `documentation/docs/` contains all documentation content in Markdown format |
| 530 | +- Content is organized by feature areas: `setup/`, `develop/`, `test/`, `document/`, `govern/`, `discover/`, `teammates/`, `datamates/`, `arch/` |
| 531 | +- Images and assets are stored within feature-specific directories |
| 532 | +- `documentation/mkdocs.yml` contains all site configuration |
| 533 | + |
| 534 | +#### Key Configuration Files |
| 535 | +- `documentation/mkdocs.yml`: Main site configuration including navigation, theme settings, and plugins |
| 536 | +- `documentation/requirements.txt`: Python dependencies for MkDocs and plugins |
| 537 | +- `documentation/docs/overrides/`: Custom theme overrides (currently empty) |
| 538 | +- `documentation/docs/javascripts/`: Custom JavaScript for enhanced functionality |
| 539 | + |
| 540 | +#### Theme Configuration |
| 541 | +The site uses Material theme with: |
| 542 | +- Custom Altimate AI branding and colors |
| 543 | +- Google Analytics integration (G-LXRSS3VK5N) |
| 544 | +- Git revision date tracking via plugin |
| 545 | +- Built-in feedback system |
| 546 | +- Dark/light mode support |
| 547 | + |
| 548 | +#### Navigation Structure |
| 549 | +Navigation follows a three-phase user journey: |
| 550 | +1. **Setup**: Installation and configuration |
| 551 | +2. **Develop**: Core development features |
| 552 | +3. **Test**: Testing and validation tools |
| 553 | +4. **Additional**: Documentation, collaboration, discovery, and AI features |
| 554 | + |
| 555 | +### Working with Content |
| 556 | + |
| 557 | +#### Adding New Pages |
| 558 | +1. Create `.md` files in the appropriate `docs/` subdirectory |
| 559 | +2. Update the `nav` section in `mkdocs.yml` to include the new page |
| 560 | +3. Follow existing naming conventions for consistency |
| 561 | + |
| 562 | +#### Images and Assets |
| 563 | +- Store images in the same directory as the referencing markdown file |
| 564 | +- Use relative paths for image references |
| 565 | +- Common assets go in `docs/assets/` |
| 566 | + |
| 567 | +#### Internal Links |
| 568 | +Use relative markdown links to reference other pages. The site has extensive cross-referencing between related features. |
| 569 | + |
| 570 | +### Testing Changes |
| 571 | + |
| 572 | +Always test locally with `mkdocs serve` before deploying. The development server provides live reload for content changes. |
0 commit comments