You might add finally to that title depending on how much you follow the Power Apps Build Tools for Azure DevOps as it has seen some very minor releases since its initial release last September (2019). This long coming update, version 0.3.3, the beta tag in the name is gone, however it still carries PowerApps as one word… Alas the big update most everyone will be interested in is the fact that there is now support for “headless” or non-interactive account service connections and the SDK version issues are now defaulted to when adding the tools.
A non-interactive account is really an application user, and until now the build tools were completely dependent on a username and password. This was a big problem for organizations that forced the use of MFA (multi-factor authentication) as a pipeline there was no interactive nature to it. The service principal connection allows you to use a client id and secret to estiblish the connection instead and therefore not subject to things like MFA.
To do this in DevOps you will now notice when you navigate to Project Settings, Service Connections and select New service connection, you can now create a Power Platform connection.
The Power Platform connection will present you to collect a bunch of tenant and application user type of information like the tenant ID, application ID, and client secret.
Once created you can then select your Power Platform connection, when you add your tasks to your pipeline.
The YAML will add the properties authenticationType and PowerAppsSPN (service principal name).
- task: PowerAppsImportSolution@0 inputs: authenticationType: 'PowerAppsSPN' PowerAppsSPN: 'colin-cds-dev01' SolutionInputFile: 'asdf.zip' AsyncOperation: true MaxAsyncWaitTime: '240'
This is available in MOST of the build tasks for pipelines (not environment based ones) and you can of course keep using your username and password based connections as well. I would highly advise though you do use the service principal or application user approach as it is a non-interactive/headless type of work that is being executed.
The other highly desired update was the Power Apps Tool Installer task now has the easy button on it. No more having to update SDK versions manually or being stuck with old SDK versions unless you remove and re-add the task. A default checkbox is now there an set as a default, only if you uncheck it can you manually define the SDK versions. Hopefully they will more frequently update the tools to match with SDK releases as well.
If you do uncheck the box and expand the advanced, you will also notice they mention that Xrm Tooling CrmConnector Version is no longer required and they refer to the PowerApps Administration PowerShell! So there are likely some big changes under the hood to make this a more mature tool.
Some good updates to the build tools and hopefully this isn’t everything and we will continue to see more improvements in the future.
6 thoughts on “Power Apps Build Tools for Azure DevOps Gets Updated with Service Principal Connection and Default SDK Versions”
The SPN update is great but is presenting me issues when using on pipelines with solutions that contain canvas apps and flows. Maybe this is because the application user in CDS isn’t a “real” user in Office365 and therefore cant own canvas apps or Flows?
Can you post some of the error details of the issues you’re experiencing. Might be worth posting them on the prodev power apps forums as well.