Skip to content

Simplify sample structure and document extending and deploying your own solution - #19

Merged
fakayser merged 7 commits into
mainfrom
feature/sample-extension-deployment
Nov 5, 2026
Merged

fakayser merged 7 commits into
mainfrom
feature/sample-extension-deployment

Conversation

@fakayser

@fakayser fakayser commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

The sample can now be extended locally and taken into an operator-owned Databricks/Power BI environment without mixing authored assets with disposable generation output.

Changes

  • Lowercase base, model, generate, plugins; move five runtime notebooks to root utils; give the three targets independent output/databricks, output/powerbi, output/docs folders. Power BI writes TMDL directly into its target output. Case-only moves used temporary Git names; model contents and saved mappings are unchanged.
  • Remove the empty Diagram placeholder, redirect-only CLAUDE.md, Hello World main.py and unused trivvy.yaml. Merge the effective Ruff configuration into pyproject.toml; retain pyproject/lock, tests and VS Code, with public editor schemas matching the pinned CLI dependency.
  • Keep the neutral Databricks bundle under deployment/databricks. Sync only generated Databricks assets and authored utilities, including ignored output explicitly. Require existing compatible compute and operator catalog/owner values; use the current user, isolated dev path and paused schedules. Remove fixed service-principal permissions, fix notebook paths and the job/notebook environment parameter mismatch, and quote personal user names in logging ownership SQL.
  • Add a general complete-copy/extend/validate/generate workflow using direct CLI commands, plus own-deployment guides: Databricks prerequisites, auth/validate/deploy/create/ordered loads; Power BI Desktop/PBIP integration, own parameters, manual publishing and regeneration preserving authored reports/parameters. Correct old release claims and the nonexistent integration runner.
  • Check bundle assets against configured sync paths and resource includes, without requiring specific directory names. Git-style filters use pinned pathspec instead of a restricted handwritten matcher; additional resource files, recursive YAML includes and normal glob/negation patterns are covered. Explicit includes override ignored files without turning the include list into an allowlist for all files. The offline check covers the base bundle; target-specific validation remains the Databricks CLI's responsibility.
  • Fix the generated DateID TMDL type (integer -> int64), found by Microsoft's actual TMDL deserializer while validating the documented Desktop route. Public APIs and schemas do not change.

Structure, deployment implementation and editorial changes are separate commits. No passwords, tokens or client secrets are added; source examples remain neutral endpoints and secret references. No new task report files are introduced.

Validation

  • Windows: frozen public dependency setup; all 24 unittest fixtures/workflows pass (the existing 14, a temporary-copy end-to-end workflow and nine configurable-bundle regression cases).
  • All three targets validate and generate. Target-clean checks preserve every other target's bytes, authored utilities and bundle configuration. An internal Consumer extension fixture changes Docs/TMDL while preserving Databricks artifacts byte-for-byte. No specific field exercise is prescribed in user documentation.
  • Actual bundle configuration: every generated resource include, declared variable, sync selection and transitive %run asset checked. Merged YAML also passes the installed Databricks CLI v1.12.1 JSON schema offline, using Unicode-aware regex validation. No workspace bundle validate, deploy or run was executed.
  • Microsoft Power BI Desktop's installed TMDL serializer loads all four tables. A temporary PBIP containing the generated model opens in Power BI Desktop; accessibility confirms four tables and Sales Order-to-Customer/Date relationships. No refresh or publication. Desktop's expected pending-relationship refresh banner remains; no live acceptance is claimed.
  • Node 24: five documentation checker tests and all 22 Markdown files pass. Public source placeholder check passes. Effective Ruff settings before/after consolidation are identical except configuration-file location; the new checker and workflow test pass Ruff.
  • Inspected current references across the ten repositories: no active cross-repository main links require path corrections. Historical commit/capture links remain unchanged.
  • Linux: the public-dependency PR workflow passed frozen setup, all 24 tests, documentation checks and generation of all three targets. All current PR checks, including CodeQL, are green.
  • All five pinned public editor-schema URLs return HTTP 200. Verified all 36 base/model Git blobs are unchanged apart from the lowercase directory names.

Cloud execution remains an operator acceptance step. Please review and merge manually.

@fakayser
fakayser merged commit a68b91f into main Nov 5, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant