AgentStack
SKILL verified MIT Self-run

Fabric Tmdl Api

skill-wardawgmalvicious-claude-config-fabric-tmdl-api · by wardawgmalvicious

Use for the Fabric Semantic Model Definition API — createItemWithDefinition / getDefinition / updateDefinition. Covers the two-audience rule (Fabric API for definitions, Power BI API for refresh/data sources/permissions), why updateDefinition MUST include ALL parts (modified and unmodified) or they're deleted, why you NEVER include .platform in definition payloads, base64 encoding requirement, LR…

No reviews yet
0 installs
0 views
view→install

Install

$ agentstack add skill-wardawgmalvicious-claude-config-fabric-tmdl-api

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Fabric Tmdl Api? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Semantic Model Definition API rules

  • Two audiences: Fabric API (api.fabric.microsoft.com) for CRUD on definitions; Power BI API (analysis.windows.net/powerbi/api) for refresh, data sources, permissions
  • updateDefinition must include ALL parts — modified AND unmodified. The API replaces the entire definition; omitting parts deletes them.
  • Never include .platform in updateDefinition payloads — it is Git integration metadata and causes errors
  • Base64-encode all TMDL content in definition payloads
  • getDefinition is a POST (not GET) — requires --body '{}'
  • Poll LRO to completioncreateItemWithDefinition, getDefinition, and updateDefinition return 202

Required TMDL Parts

| Part Path | Content | |---|---| | definition.pbism | Semantic model connection settings (JSON) | | definition/database.tmdl | database declaration + compatibilityLevel: 1702 | | definition/model.tmdl | Model properties + ref declarations for tables/roles/etc. | | definition/tables/.tmdl | Per-table: measures, columns, partitions |

Critical: database.tmdl MUST start with database object declaration, not bare properties. Bare compatibilityLevel: causes InvalidLineType: Property! errors.

model.tmdl Required Properties

model Model
 culture: en-US
 defaultPowerBIDataSourceVersion: powerBI_V3
 discourageImplicitMeasures

defaultPowerBIDataSourceVersion: powerBI_V3 is required for Import-mode models. Without it: Import from JSON supported for V3 models only.

Direct Lake Configuration

  • ALL partitions must use EntityPartitionSource — no M/Power Query
  • A named expression pointing to the Lakehouse/Warehouse must be defined before tables:

``tmdl expression DL_Lakehouse = let Source = AzureStorage.DataLake("https://onelake.dfs.fabric.microsoft.com//", [HierarchicalNavigation=true]) in Source ``

  • Each table partition references the expression:

``tmdl partition Sales = entity mode: directLake source entityName: Sales schemaName: dbo expressionSource: DL_Lakehouse ``

  • dataType: binary columns are NOT supported in Direct Lake
  • Columns map directly via sourceColumn — no transforms
  • Calculated columns / tables (April 2026 preview): Direct Lake on OneLake now supports unmaterialized calculated columns (and calculated tables that reference them). Direct Lake on SQL still does not. User-context-aware DAX (USERCULTURE, USERPRINCIPALNAME, CUSTOMDATA, etc.) requires expressionContext: userContext on the column. See fabric-tmdl REFERENCE for the storage-mode × Expression-Context support matrix.

Reference

See also

  • fabric-rest-api skill — LRO polling pattern, runtime item ID vs logicalId
  • fabric-auth skill — Fabric vs Power BI audience selection
  • fabric-cli skill — fab export / fab import wrap these APIs

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.