Tabular Configuration
Tabular works with a couple of yamlA simple way to write configurations. It's basically a list that computers can read easily. files to generate the tabular model. To generate the correct model, it needs to understand the underlying datawarehouse/dataplatform. The underlying dataplatform has to supply the tables in a certain way (star-schema).
The following YAML files are available (* = mandatory):
- model.yaml*
- measure folder (multiple files with measures)
- measuretemplates.yaml
- roles.yaml
- formatstrings.yaml
The model configuration itself is not a standalone file: it is an entry in the models: list of the environment configuration (dp.<env>.yaml). A typical entry looks like this:
models:
- model: DM
tabularName: DM
compatibilityLevel: 1700
addMembers: false
DatabaseSchema: dbo
workspace: FB-Demo-PRD
DefaultPowerBIDataSourceVersion: powerBI_V3
loginType: spn
partitionDeployment: deploypartitions
roleDeployment: RetainRoles
lakehouse: Gold
BimFolder: DM
bimFile: Model.bim
sourceQueryCulture: en-US
ModelFolder: Models/DM
ModelFile: model.yaml
datasourceType: fabric
datasourceName: DefaultDS
LakehouseSourceConnection: Gold
datasourceConnection: DM-ACC
tabularSystemFolder: Technisch
measureTemplateFile: measuretemplates.yaml
formatStringFile: formatstrings.yaml
roleFile: roles.yaml
See Configuration config for the full list of settings.
Role deployment
roleDeployment decides what the tabular deploy does with the roles defined in roles.yaml versus the roles already present on the deployed model:
| Value | Roles | Members |
|---|---|---|
DeployRolesAndMembers (default) | From roles.yaml | From roles.yaml (requires addMembers: true, otherwise the roles are deployed without members) |
DeployRolesRetainMembers | From roles.yaml | Kept from the deployed model, per role with the same name |
RetainRoles | Kept from the deployed model; roles in roles.yaml are not deployed | Kept from the deployed model |
With RetainRoles a role that only exists in roles.yaml never reaches the workspace, and a model deployed for the first time has no roles at all. Use it only when roles and members are managed on the deployed model itself. A second entry in the same models: list can define a derived model by pointing DerivedModelFile at a derived YAML in the same ModelFolder.
The older DimkeyPrefix and DimPrefix settings are deprecated and will be removed in September 2026. Use DimSurrogatekeyPrefix and DimObjectPrefix instead.