Fabric Configuration
Overview
Global config — workspaces, lakehouses, prefixes. Loaded once via ConfigManager; passed to every loader call.
What gets generated
| Stage | Component | Output |
|---|---|---|
| Runtime | EasyFabric Runtime (EFR) | easyfabric.data.initialize_config, easyfabric.data.ConfigManager.from_yaml_file |
Example YAML
Dataplatform/DP/Configuration/dp.acc.yaml
Environment: ACC
EnvironmentDescription: Production
ServiceConnection: SC_Demo_ACC
resourceGroupName: rg-fabric-demo
VsSolutionName: Fabric.sln
functionAppName: func-demo-ACC
apiconfigfile: Dataplatform/DP/Configuration/apiConfig.yaml
MetaFolder: "/lakehouse/default/Files"
TenantId: e0246fdb-58a0-4d47-870a-2705f2ec020b
ApplicationClientId: 0de4e0a2-0227-4206-896c-51ac9f03f654
ApplicationKeyvaultSecret: BIFabricDev-AppReg
ColumnNamesToLower: true
ColumnNamesAutoFix: true
RemoveNewLineFromScripts: false
BronzeConnectionPrefix: true
tempFolder: Temp
dataplatformFolder: Generator/Dataplatform/DP
databaseFolder: Objects
databaseOutputFolder: FabricBuilds/Databases
notebooksFolder: Notebooks
notebooksOutputFolder: FabricBuilds/Notebooks
RequestFolder: Requests
fabricProjectName: FabricBuilds
DimObjectPrefix: d
DimSurrogatekeyPrefix: SK_
FactObjectPrefix: f
TransformationObjectPrefix: t
workspace: FB-Demo-ACC
keyvault: kv-dev-6721
bronzefolder: ""
SchemaHistory: his
lakehouses:
- layer: Bronze
workspace: FB-Demo-ACC
lakehouse: Bronze
fileCleanupActive: true
maxRetentionHours: 8784
- layer: Silver
workspace: FB-Demo-ACC
lakehouse: Silver
- layer: Gold
workspace: FB-Demo-ACC
lakehouse: Gold
- layer: Meta
workspace: FB-Demo-ACC
lakehouse: Meta
models:
- model: DM
tabularName: DM
compatibilityLevel: 1700
addMembers: false
DatabaseSchema: dbo
workspace: FB-Demo-ACC
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
tabularSystemFolder: Technisch
measureTemplateFile: measuretemplates.yaml
formatStringFile: formatstrings.yaml
roleFile: roles.yaml
- model: DM-Sales
tabularName: DM Sales
compatibilityLevel: 1700
addMembers: false
DatabaseSchema: dbo
workspace: FB-Demo-ACC
DefaultPowerBIDataSourceVersion: powerBI_V3
loginType: spn
partitionDeployment: deploypartitions
roleDeployment: RetainRoles
lakehouse: Gold
BimFolder: DM-Sales
bimFile: Model.bim
sourceQueryCulture: en-US
ModelFolder: Models/DM
ModelFile: model.yaml
DerivedModelFile: derived-sales.yaml
datasourceType: fabric
datasourceName: DefaultDS
LakehouseSourceConnection: Gold
tabularSystemFolder: Technisch
measureTemplateFile: measuretemplates.yaml
formatStringFile: formatstrings.yaml
roleFile: roles.yaml
reports:
- groupname: Examples
filepath: Generator/Dataplatform/DP/Reports/Examples/reports.yaml
reportfolder: "Generator/Dataplatform/DP/Reports/Examples"
bronzetablesettings:
delta.enableChangeDataFeed: false
delta.autoOptimize.optimizeWrite: true
delta.autoOptimize.autoCompact: true
delta.logRetentionDuration: 720 hours
delta.deletedFileRetentionDuration: 720 hours
spark.sql.parquet.vorder.default: false
delta.stats.extended.collect: false
delta.stats.extended.inject: false
silvertablesettings:
delta.enableChangeDataFeed: true
delta.autoOptimize.optimizeWrite: true
delta.autoOptimize.autoCompact: true
delta.logRetentionDuration: 720 hours
delta.deletedFileRetentionDuration: 720 hours
spark.sql.parquet.vorder.default: true
delta.stats.extended.collect: true
delta.stats.extended.inject: true
goldtablesettings:
delta.enableChangeDataFeed: false
delta.autoOptimize.optimizeWrite: true
delta.autoOptimize.autoCompact: true
delta.logRetentionDuration: 1440 hours
delta.deletedFileRetentionDuration: 168 hours
spark.sql.parquet.vorder.default: true
delta.stats.extended.collect: true
delta.stats.extended.inject: true
blobtriggers:
- blobtrigger: stg
storageAccount: triggerstorageacc
backupStorageAccount: backupstorageacc
container: dropzone
filter: \.(xlsx)$
notebook: Trigger_Files
fabricfolder: dropzone
backups:
- backupname: BronzeHistory_Backup
enabled: true
storageaccount: backupstorageacc
container: bronzebackup
layer: bronze
schema: [his]
tablefolder: "Files/Objects"
exceptfolders: None
Schema reference
Required fields marked *. Linked types are collapsible — click to expand inline.
Fabric Configuration
The configuration needed to build the model
| Name | Type | Description |
|---|---|---|
| Lakehouses * | List<FabricLakehouse> | List of lakehouses used in the medallion layer |
Show optional fields (28)
| Name | Type | Description |
|---|---|---|
| BronzeConnectionPrefix | true/false | Use prefix from ConnectionPrefix for the bronze objects (default=true) |
| BronzeKeepSourceColumnNames | true/false | Use the source names even when overriden on bronze (default=false) |
| BronzeObjectPrefix | String | Prefix for bronze objects with this (default='') |
| BronzeTableSettings | FabricTableSettings | Table Settings for Bronze |
| ColumnNamesAutoFix | true/false | Auto fix column names that start with a digit or underscore by prefixing a 'z' (e.g. 2024abc -> z2024abc, _internal -> z_internal) (default=true) |
| ColumnNamesToLower | true/false | Generate all column names to lower (default=true) |
| DefaultEncodingHintKeyColumns | String | Default Encoding Hint for Key columns (Default=value) |
| DefaultEncodingHintRegularColumns | String | Default Encoding Hint for regular columns (Default=default) |
| DimBusinesskeyPrefix | String | Prefix of the businesskey column for the dimension (default='BK_') |
| DimObjectPrefix | String | Prefix used for dimensions in the dataplatform (default='D') |
| DimSurrogatekeyPrefix | String | Prefix used for dimensions surrogate keys in the dataplatform (default=SK_) |
| FactObjectPrefix | String | Prefix used for fact objects in the dataplatform (default='F') |
| GoldTableSettings | FabricTableSettings | Table Settings for Gold |
| HistoryTablePostfix | String | Postfix used for objects with history (default='') |
| IsBronzeStringTypes | true/false | Create fields in bronze layer (for the landing table) with datatype string. Can be overridden per connection (default=true) |
| ObjectPartitionColumn | String | Name of the partitioncolumn added to transformation and fact objects (default='SYSTEMPARTITION') |
| ObjectSourceTagColumn | String | Name of the system source tag column added to the Bronze, Silver and Gold objects. Can be used to add for example the batchid (default='SYSTEMSOURCETAG') |
| RemoveNewLineFromScripts | true/false | Remove newline from generated script. Convenient when using the result in Python in Fabric (default=false) |
| SilverConnectionPrefix | true/false | Use the connection prefix for object names on silver (default=true) |
| SilverConvertedColumn | true/false | Create a Silver column that holds the converted value from Bronze if an expression is set for Silver. Can be overridden on the attribute level. (default=true) |
| SilverConvertedPostfix | String | The postfix that is added to the converted column in the silver layer. (default='_convert') |
| SilverInitialColumn | true/false | Create a Silver column that holds the original value from Bronze if an expression is set for Silver. Can be overridden on the attribute level. (default=true) |
| SilverObjectPrefix | String | Prefix for silver objects with this (default='') |
| SilverPrimarykeySeparator | String | Separator used for the field SYSTEMPRIMARYKEY in the silver table (default=' |
| SilverTableSettings | FabricTableSettings | Table Settings for Silver |
| SurrogateKeyUnknownValue | String | Default value for surrogate key when no match is found, default also used for GUID fields. (default='-1') |
| TransformationBusinessKeysNotNull | true/false | Business keys in transformation objects mandatory aka NOT NULL (default=false) |
| TransformationObjectPrefix | String | Prefix used for transformation objects in the dataplatform (default='T') |
Fabric LakehouseA place where you store both "raw" data (like files) and "organized" data (like tables). It combines the best of a File Cabinet and a Database.
| Name | Type | Description |
|---|---|---|
| Lakehouse * | String | Name of the lakehouse for the given layer |
| Layer * | FabricMedallionLayer | Layer for the medallion architectureA way of organizing data into three stages: Bronze (raw), Silver (cleaned), and Gold (ready for reports).: Bronze, Silver, Gold |
| Workspace * | String | Fabric Workspace name (workspace has to exist and user needs access) |
Show optional fields (2)
| Name | Type | Description |
|---|---|---|
| DefaultSchema | String | Use this schema for this lakehouse (default=dbo or his for bronze history) |
| UseSchema | true/false | Use schema for this lakehouse (default=true) |
EasyFabric Runtime
data.initialize_config
def initialize_config(file_path: str = "Files/Configuration/config.yaml")
Load and cache the global ConfigManager from a YAMLA simple way to write configurations. It's basically a list that computers can read easily. file.
Uses double-checked locking so only the first call reads from disk; subsequent calls return the cached instance.
Arguments:
file_path- Path to the config.yaml file.
Returns:
The initialised ConfigManager singleton.
Raises:
FileNotFoundError- If the config file does not exist.
data.ConfigManager.from_yaml_file
@classmethod
def from_yaml_file(cls, file_path: str = "Files/Configuration/config.yaml")
Create a Model instance from a YAML file.
Related data classes
easyfabric.data.ConfigManager