New version of Power Platform Build Tools and a Feature packed update of Power Platform CLI

We are happy to announce a new version of the Power Platform Build Tools (Azure DevOps tasks) and our monthly update to Power Platform CLI. Read on for significant new features coming this month, including:

  • Power Platform Build Tools: Now based on Power Platform CLI
  • New CLI command to assign user
  • New CLI command to automatically generate an App from an API definition
  • New CLI command to sync existing solution from an environment

Read on for more details and other new capabilities.

Power Platform Build Tools v2.0

Our new version of the Power Platform Build Tools is built on top of the Power Platform CLI, whereas the previous version was based on PowerShell. By aligning these tasks to be based on Power Platform CLI, we can now maintain the same delivery rate of new features as we do with GitHub actions and based on several internal tests with customers these tasks run at 20% to 25% faster than the older version.

We had several internal teams try out and use these pipelines. The ALM Accelerator for Power Platform, built by our Power CAT team, was an early adopter of this “re-platforming” effort.

As most of us know, the ALM Accelerator is a Power App, that has flows, Connection References, and exercises many of the components of the Power Platform. It’s also used to automate the ALM of the tools the Power CAT team build like the CoE Starter Kit and the Creator Kit.  The Power CAT team has a complex setup, with multiple environments, and pipelines comprised of 40+ yaml files. Each pipeline contains up to 30 tasks and even in this complex setup, we saw a significant impact on the pipeline performance with the new version of the Build Tools. The next monthly release of the ALM Accelerator will be upgraded to the v2.0 tasks, so all customers using the ALM Accelerator who upgrade to the next release will benefit from this.

Diagram

Description automatically generated

Figure 1: ALM Accelerator setup for deployment using Power Platform Build Tools v2.0

How do you know which version of the task you are using?

When creating your pipeline using the pipeline edit make sure to have the following selections in place to use PAC CLI version. Below is an example from my developer instance:

Graphical user interface, text, application, email

Description automatically generated Graphical user interface, text, application, email

Description automatically generated

Figure 2: Task version selection in Azure DevOps between Power Platform CLI version versus the PowerShell version

Once you select a version of the Power Platform Build Tools tasks you cannot mix and match, as the pipeline will not run, as in you cannot have the installer be a different version and the solution import use the PowerShell version.

If you do not want to use the Azure DevOps task editor to change the version, you can use the YAML editor in Azure DevOps and change the version number from 0 to 2

Text

Description automatically generated Text

Description automatically generated

Figure 3: Find and replace the version of the task to be used

To learn how to edit the yaml files in Azure DevOps, please follow the instructions here.

When using Power Platform Build Tools version 2, you will notice that it is also cross platform and can run on both windows and Linux runners in Azure DevOps.

Package Deploy task will not work Linux agents and will require windows runners

New capabilities in the July Refresh for the Power Platform CLI

We are happy to announce an abundance of new features with the July refresh of the Power platform CLI. From cross-platform support perspective, the Power Platform CLI now runs on .NET 6 and uses the generally available version of the Dataverse Service Client (1.0.9). That is just what is under the hood of the command line, but there is more …

Changes in the Admin sub command of Power Platform CLI

We have introduced a new sub command for pac admin, and it is:

  • Assign-user

The assign user capability is one of the most requested features, in the past when an environment was created via a pipeline or via the command line from a service principal account then the newly created environment would be owned by the service principal account. Now you can assign a user to the target environment, so that when solutions that have flows that a particular user owns need to be active, well now that is possible, they will be. The sequence of events would be as follows:

Graphical user interface, text, application

Description automatically generated

Figure 4: Sequence of events in Azure DevOps for assigning user

The command line equivalent looks like this

Text

Description automatically generated with low confidence

Figure 5: pac cli command line for assign user

Changes in the auth create command

In the last update we started down the path of single sign-on by providing something called the universal auth profile. You can still create admin and dataverse profiles, but those are deprecated now. With the universal auth profile, if your account has admin functions, you can create environments and run other administrative functions in addition to creating solutions etc. In the July update, we have now introduced creating a universal profile against a selected environment by providing –environment, we did this because when you created the universal single sign-on profile, it would create access to your default environment, now with the –environment flag you can change it.

Figure 6: when creating universal auth profile it defaults to the default environment

Figure 7: creating a universal profile against the selected environment

pac auth update

The new pac update command now provides the ability to change properties of your authentication profiles. Before you could create an auth profile and select different auth profiles. Now you can rename existing auth profiles including the environment to which the auth profile is associated with.

Figure 8: Update authentication property

New Command: pac canvas create

This is a new command developed from the Power Apps team and contributed to the Power Platform CLI. This new capability allows you to generate an App from an API definition. Pro developers who build Azure Functions or other web APIs can create a custom connector that points to the API, and then use the canvas create command to generate a functional app. The generated app can be used to interact with or validate the API. In fusion teams, a pro developer can run the command to generate the app and then hand it off to a low-code maker to make further customizations in Studio.

The generated app will feature a screen for GET and POST actions defined in the custom connector, control layout that is tailored to the input and output types defined in the actions, and auto-generated Power Fx code for interacting with the custom connector.

A computer screen capture

Description automatically generated with medium confidence

Figure 9: pac canvas create command

Updates in the org commands

Within the pac org commands we now support selecting a particular org and then support filtering with the list command.

Figure 11: The usual pac org list command

And now with the filter command

And instead of doing and pac auth update, you can now just do a pac org select and change the environment url for the current authentication profile

Figure 12: changing the org for the current auth profile

Updates in the solution command

pac solution sync (preview)

this new command (in-preview) is a handy one, especially if you use pac solution clone like me, has it ever happened that you had cloned a solution from your developer environment, and were working on a PowerFx regular expression and only to realize another team mate of yours changed a different screen in the maker studio while you were editing a regular expression, in the past you had to re-clone your solution and then make sure to reintroduce your changes. Now with pac solution sync you don’t have to do that anymore with sync you just get the delta, and you can continue building your own PowerFx regular expression.

We have also increased the timeout period to 1 hour for pac solution check, the user community demanded this, and we were incredibly happy to oblige.

You can also add a solution component to an unmanaged solution on disk with the command pac solution add-solution-component

Updates for packages and plugin development

The package command now supports the ability to add F&O packages for deployment with the parameter add-external-package
pac plugin push now provides the ability to push updates to an already registered plugin.

Updated Power Platform CLI documentation

Documentation for Power Platform CLI has also been updated with these new commands and parameters that are being offered. Please check out the new reference page and provide us with feedback.

Power Platform Conference in Orlando

One last thing, we have the first ever in-person user conference happening in September for Power Platform

Please register and if you are coming, we have several sessions happening for Code-first developers. Some sessions of interest are:

Looking forward to seeing you there.

So, even though we did not release the June refresh, we tried our best to make sure that we made up for it in July. As always, we are excited to bring these capabilities to you. If you have additional feedback, please reach out to us via the following forums [email protected] or The PowerUsers community. Raise the issue and bugs at the following location in GitHub https://aka.ms/powerplatform-vscode