Global Extension Points
The Global category has the following available Extension Points defined.
BimlFlex Global Settings
Internal Global Extension Point that control environment settings. This has been superseded by built-in BimlStudio features.
Outputs
Name | Type | Description |
|---|---|---|
| CustomerUID | GUID | The Customer UID to use for the metadata connection |
| Version | String | The Version Name to use for the metadata connection |
| Server | String | The Server Name to use for the metadata connection |
| Database | String | The Database Name of the metadata database |
| UseWindowsAuthentication | Boolean | Legacy for backward compatibility should the metadata connection use Windows Authentication |
| Authentication | String | SQL Server authentication method to connect to metadata database. |
| Provider | String | Connection Provider to use |
| UserId | String | SQL Authentication User Id |
| Password | String | SQL Authentication Password |
| IsUserConnectionMode | Boolean | Should User Connection Mode be used |
| IsUserMode | Boolean | Should User Mode be used |
| IsQuickParse | Boolean | Should Quick Parse be used |
Template
<#@ extension bundle="BimlFlex.bimlb" extensionpoint="GlobalSettings" #>
<#
CustomOutput.CustomerUID = GetBundleSetting("BimlFlex.bimlb", null, "CustomerUID");
CustomOutput.Version = GetBundleSetting("BimlFlex.bimlb", null, "Version");
CustomOutput.Server = GetBundleSetting("BimlFlex.bimlb", null, "Server");
CustomOutput.Database= GetBundleSetting("BimlFlex.bimlb", null, "Database");
CustomOutput.Authentication = GetBundleSetting("BimlFlex.bimlb", null, "Authentication");
CustomOutput.Provider = GetBundleSetting("BimlFlex.bimlb", null, "Provider");
CustomOutput.UserId = GetBundleSetting("BimlFlex.bimlb", null, "UserId");
CustomOutput.Password = GetBundleSetting("BimlFlex.bimlb", null, "Password");
CustomOutput.IsUserConnectionMode = GetBundleSetting("BimlFlex.bimlb", null, "IsUserConnectionMode");
CustomOutput.IsUserMode = GetBundleSetting("BimlFlex.bimlb", null, "IsUserMode");
CustomOutput.IsQuickParse = GetBundleSetting("BimlFlex.bimlb", null, "IsQuickParse");
#>
What It Does
Controls the BimlFlex metadata connection settings used during the build process. This extension point configures which metadata database BimlFlex connects to, which customer and version to load, and which authentication method to use. It is the foundational hook that initialises the entire BimlFlex build environment before any packages, pipelines, or scripts are generated.
Where It Fires
This is the first extension point evaluated during a BimlFlex build. It fires during the initialisation phase in BimlStudio/BimlFlex, before any connections, objects, or packages are processed. The output values are used by all subsequent BimlScript files to connect to the metadata database and retrieve configuration.
When to Use It
- Override the metadata connection for a CI/CD build server. Your build server cannot use the BimlStudio UI settings. Use GlobalSettings to point the build at the correct metadata database server, customer UID, and version for the automated build environment.
- Switch between metadata versions. You maintain multiple metadata versions (e.g.,
v1.0,v2.0) in the same database. Use GlobalSettings to select which version the build should use. - Force Quick Parse mode. During development, you want to skip full metadata validation. Set
IsQuickParse = trueto speed up the build cycle. - Use this instead of BimlStudio UI settings when you need programmatic control over the metadata connection — for example, in automated builds where UI interaction is not possible.
Prerequisites
- Object types: Global — applies to the entire BimlFlex project, not specific objects
- Deployment target: All (SSIS, ADF, Databricks, Fabric) — this controls build-time behaviour, not runtime
- Required metadata: A BimlFlex metadata database must be accessible at the configured server/database
- Note: This extension point has been largely superseded by built-in BimlStudio features. Most users configure these settings through the BimlStudio UI or
BimlFlex.bimlb.settingsfile. Only use this extension point if you need programmatic override of the default settings
Implementation Steps
- In BimlFlex, open the Extension Points editor.
- Create a new extension point file. Select GlobalSettings as the type.
- Override the desired
CustomOutputproperties with your values. - Properties not set will fall back to the values in
BimlFlex.bimlb.settings.
<#@ extension bundle="BimlFlex.bimlb" extensionpoint="GlobalSettings" #>
<#
CustomOutput.CustomerUID = GetBundleSetting("BimlFlex.bimlb", null, "CustomerUID");
CustomOutput.Version = "v2.0";
CustomOutput.Server = "build-server.database.windows.net";
CustomOutput.Database = "BimlFlex_Metadata";
CustomOutput.Authentication = "SQL Server Authentication";
CustomOutput.Provider = "SQLNCLI11";
CustomOutput.UserId = "svc_build";
CustomOutput.Password = "BuildP@ssw0rd!";
CustomOutput.IsQuickParse = false;
#>
Example
Before (default — settings from BimlFlex.bimlb.settings):
Server: localhost
Database: BimlFlex
Version: (from UI)
Authentication: Windows Authentication
After (GlobalSettings override for CI/CD):
Server: build-server.database.windows.net
Database: BimlFlex_Metadata
Version: v2.0
Authentication: SQL Server Authentication
Common Mistakes
- Mistake: Overriding GlobalSettings without testing the metadata connection first. Symptom: Build fails immediately with "Cannot connect to metadata database." Fix: Verify the server, database, and credentials are accessible from the build environment before applying the override.
- Mistake: Setting
IsQuickParse = truein a production build. Symptom: Generated packages may be incomplete — Quick Parse skips full metadata validation and some extension point evaluation. Fix: Only use Quick Parse during development. Always setIsQuickParse = falsefor production builds. - Mistake: Hard-coding credentials in the extension point file. Symptom: Credentials are stored in source control. Fix: Use environment variables or
GetBundleSetting()to read credentials from the BimlFlex settings file rather than hard-coding them.
Related Extension Points
ProjectParameter— Parameterise runtime values (server names, credentials) in the generated SSIS projectConnectionExpression— Parameterise connection strings at runtime (distinct from the build-time metadata connection configured here)