Skip to content

1.0.0-rc.3 (TMDL Preview-1)

Compare
Choose a tag to compare
@mthierba mthierba released this 11 Apr 17:06
· 39 commits to main since this release
8cc0fad

#262 TMDL Serialization Support

This release adds support for the newly announced Tabular Model Definition Language (TMDL).

  • New model serialization modes: Tmdl (default), Legacy (PbixProj)
  • New (optional) environment variable: PBITOOLS_DefaultModelSerialization

New CLI action: extract-pbidesktop

  • Extracts binaries from a PBIDesktopSetup.exe|.msi installer bundle (silent/x-copy install). (Implemented using an embedded tool: wix-extract.exe)
  • Arguments:
    • <installerPath> - The path to an existing PBIDesktopSetup.exe|PBIDesktopSetup.msi file.
    • <targetFolder> - The destination folder. '-overwrite' must be specified if folder is not empty.
    • <overwrite> - Overwrite any contents in the destination folder. Default: false

#195 Deployments - Setting dataset credentials

  • Added support for Anonymous and OAuth2 (cloud) credentials
  • Case-insensitive matching of data sources
  • Manifest Schema Changes
    • manifest.credentials[].updateMode: { NotSpecified, Always, Never, BeforeRefresh }
    • manifest.credentials[].type: { Basic, Anonymous, OAuth2 }
    • manifest.credentials[].authority
    • manifest.credentials[].validateAuthority
    • manifest.credentials[].tenantId
    • manifest.credentials[].clientId
    • manifest.credentials[].clientSecret
    • manifest.credentials[].scopes
    • manifest.credentials[].useDeploymentToken

Example: OAuth2 credentials for another PBI dataset

      "credentials": [
        {
          "match": {
            "datasourceType": "AnalysisServices",
            "connectionDetails": {
              "server": "powerbi://api.powerbi.com/v1.0/myorg/WORKSPACE",
              "database": "DATASET_NAME"
            }
          },
          "type": "OAuth2",
          "updateMode": "BeforeRefresh",
          "tenantId": "your-tenant.com",
          "clientId": "c2e24fe7-4785-4776-9040-eb19c16ed700",
          "clientSecret": "%CLIENT_SECRET%",
          "scopes": [
            "https://analysis.windows.net/powerbi/api/.default"
          ]
        }
      ]

Example: Use deployment token to access another PBI dataset during refresh

This will only work for other Power BI resources (because of OAuth scope). Ensure that the service principal used for the deployment has sufficient access to the referenced dataset.

      "credentials": [
        {
          "match": {
            "datasourceType": "AnalysisServices",
            "connectionDetails": {
              "server": "powerbi://api.powerbi.com/v1.0/myorg/WORKSPACE",
              "database": "DATASET_NAME"
            }
          },
          "type": "OAuth2",
          "updateMode": "BeforeRefresh",
          "useDeploymentToken": true
        }
      ]

Other Changes

  • Change to 'launch-pbi' CLI action: <pbixPath> argument is now optional. If not specified, a new PBIDesktop instance is started without opening an existing file.
  • New build target: "BuildTools" - Builds all csproj inside ./tools and bundles each tool output as a .zip archive in ./.build/out/*.zip