Key ALM updates

This blog will cover several recent improvements for application and environment lifecycle management as well as a glimpse into our ALM roadmap. If you haven’t already, now is the time to adopt solutions and an ALM strategy!

Button triggered flow

Previously many painful solution and environment lifecycle limitations were present within canvas apps, flows and other solution components. Unlike components raised on (what’s now) Microsoft Dataverse, canvas apps and flows were later adopted into this ecosystem.  And it took a lot of engineering and  re-imagination to consolidate these architectures and build enterprise level support for the vast set of Dataverse ALM capabilities. While the engineering teams remain hard at work addressing a new set of ALM challenges, we’re excited to announce that all solution and environment lifecycle operations are now supported for canvas apps and flows along with many other ALM and automation improvements.

Recent ALM improvements for canvas apps

Note this is not an exhaustive list of every update and some of the below items may still be in transit to your region.

  • Canvas apps that trigger flows no longer require editing the app to re-establish the connection to flows after importing a solution.
    • Note: pre-existing apps will need to be upgraded to the latest Power Apps version to take advantage of the new behavior. This can be done in your source (development) environment by re-publishing the app.
  • Canvas apps are now layered in a consistent manner as other types of solution components while maintaining support for restoring previous app versions.
    • Solutions and patches installed in a lower layer will not overwrite higher layers.
    • View the solution layers for a canvas app to determine which solutions have made updates to the app, when, and properties that have changed.
    • Remove unmanaged customizations operations are now supported which will get the app back to a managed state.
  • Managed properties are now supported in canvas apps – meaning you’re able to control whether your apps can be customized by others.
    • For example, if your app is listed on App Source, you can set managed properties to prevent customers from editing your app(s) and component libraries. Or perhaps you need to prevent the app from being edited in test and production environments.
    • Note: this will currently block saving and publishing changes to the app when managed properties are applied. It does not block opening the editor. 
  • Canvas apps and flows support automated deployments via service principles.
    • Note: system administrators may not see all canvas apps and flows within an environment within the maker experiences. They must be shared before admins can see them. However, admins do have permission to share co-owner permissions with themselves and others – either programmatically or within the Power Platform Admin Center.
      • While not blocking, we’re currently working to address this discrepancy as it sometimes causes confusion or extra steps for admins with a Dataverse or Dynamics background. 

ALM improvements for model-driven apps

  • You can now de-activate model-driven apps. When de-activated, end users won’t see the app in the “My apps” list. This provides more control for admins and app developers. For example, a developer can ship in a disabled state and an admin can activate once ready.
  • Compare diffs between solutions layers with a rich diff viewer.
    • Currently supports model-driven apps, site map, system forms. Looks at merged diff in the database up through layers being compared as opposed to just what changed in the solution file.
  • Significant resiliency, reliability, and performance improvements across model-driven apps, site maps, commanding, and many other components has resulted in a dramatic reduction in detected ALM and runtime issues – despite rapidly growing usage.

Environment operations now supported for canvas apps and flows

Environment lifecycle operations are powerful tools admins use for managing critical workloads such as ensuring stability and recoverability of resources within the environment. Now canvas apps and flows can take advantage of these powerful capabilities. Note apps and flows outside solutions cannot participate in some of these operations. 

  • Recover a deleted environment along with the apps and flows within the environment.
  • Reset an environment to factory settings.
  • Create a copy of an environment. Note that connections are not copied to other environments and therefore you’ll need to re-establish any connections when playing apps in the copy version of the environment. 
  • Backup and restore an environment. Backups are automatically generated by the system and you may also create your own. If the need arises, you may restore the environment from one of these backups.

Solution API improvements

Have you worked with environment variables and connection references? Or maybe you’ve used the modern solution import experience? Those experiences are built on a new, powerful set of API’s and those are being made available for public consumption.

Note: Documentation is in the process of being published for some of these.

  1. The new solution staging API enables automation for validating the solution as well as returning required configuration for the environment variables and connection references within the solution file.
  2. Asynchronous support for solution export including GitHub actions.
  3. Environment variables have several new API’s that can handle complex operations within a single API call; therefore eliminating the need for multiple, complex API calls and orchestration. As an added improvement, environment variables are now packaged in a more source control friendly format within the solution file.
  4. Unmanaged to managed conversion. Unmanaged solution layers can now be converted to managed by importing a managed solution. This has historically been a problematic area; especially for customers using a single environment.

Up next (some items already rolling out)

  • Environment variables for data sources used in canvas apps and flows. Details to be announced in my next blog post.
  • Connection references will be generally available with several key improvements.
  • New build tasks for working with environment variables and connection references.
  • The solution interface is getting a major overhaul for a faster, more productive, and intuitive experience. Soon it will also support everything from the classic solution interface.
  • Ability to click a button to diagnose and auto-repair common ALM issues directly within an environment.
  • New environment lifecycle operations will be made available to admins within the Power Platform admin center.
  • New ALM accelerators coming to the COE toolkit.
  • ALM and multi-environment support for custom SharePoint forms and imbedded flows in SharePoint lists.
  • Enhancements for unpacking canvas apps in source control, offline editing, and being natively integrated into the Power Apps CLI and ALM automation tooling.
  • Command bar (a.k.a. commanding or ribbon for model-driven apps) will have a broad new set of low-code customization capabilities.

While I’d love to share everything we’re working on, some of the larger roadmap initiatives can’t be disclosed publicly yet. But we look forward to sharing these details in the near future.

Thank you and please let us know what feedback you have as our goal is to constantly improve.