Skip to main content

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
TypeDescription
CustomerUIDGUIDThe Customer UID to use for the metadata connection
VersionStringThe Version Name to use for the metadata connection
ServerStringThe Server Name to use for the metadata connection
DatabaseStringThe Database Name of the metadata database
UseWindowsAuthenticationBooleanLegacy for backward compatibility should the metadata connection use Windows Authentication
AuthenticationStringSQL Server authentication method to connect to metadata database.
ProviderStringConnection Provider to use
UserIdStringSQL Authentication User Id
PasswordStringSQL Authentication Password
IsUserConnectionModeBooleanShould User Connection Mode be used
IsUserModeBooleanShould User Mode be used
IsQuickParseBooleanShould 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

  1. 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.
  2. 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.
  3. Force Quick Parse mode. During development, you want to skip full metadata validation. Set IsQuickParse = true to speed up the build cycle.
  4. 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.settings file. Only use this extension point if you need programmatic override of the default settings

Implementation Steps

  1. In BimlFlex, open the Extension Points editor.
  2. Create a new extension point file. Select GlobalSettings as the type.
  3. Override the desired CustomOutput properties with your values.
  4. 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 = true in 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 set IsQuickParse = false for 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.
  • ProjectParameter — Parameterise runtime values (server names, credentials) in the generated SSIS project
  • ConnectionExpression — Parameterise connection strings at runtime (distinct from the build-time metadata connection configured here)