← ClaudeAtlas

fabric-tmdl-apilisted

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, LRO polling, required TMDL parts (definition.pbism, database.tmdl, model.tmdl, tables/*.tmdl), the `database` declaration requirement in database.tmdl, and Direct Lake partition configuration (EntityPartitionSource, named expression with AzureStorage.DataLake).
wardawgmalvicious/claude-config · ★ 1 · API & Backend · score 72
Install: claude install-skill wardawgmalvicious/claude-config
# 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 completion** — `createItemWithDefinition`, `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/<TableName>.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 ```tmdl model Model culture: en-US defaultPowerBIDataSourceVersion: powerBI_V3 discourageImplicitMeasures ``` `defaultPowerBIDataSourceVersion: powerBI_V3` is required for Import-mode models. With