Reuse components and speedup time to market with Catalog in Power Platform
- 9 minutes read - 1783 wordsIn today’s blog post, I will showcase how you can leverage Catalog in Power Platform to share solutions and reuse components across your organization. This is especially relevant if your organization is trying to leverage the replication operating model, where you have a template of solutions that you try to reuse across multiple implementations.
1. Catalog in Power Platform
The Catalog in Power Platform is a set of solutions and packages that you can pick up off the shelf and install in any environment. This lets you spin up new environments faster and reuse components that were built in your organization.
1.1 The interesting parts from an ALM perspective
Catalog in Power Platform lets us use the environment-centric ALM approach while also leveraging some of the source code-centric advantages that Benedikt talks about.
Meaning if all your configuration is available as a Catalog package (or solution) you can easily spin up new environments from Catalog (and even import some data into them while you are at it). Before Catalog the common way to move solutions in an environment-centric ALM approach was Dev to Test to Prod.
Before the introduction of Catalog in Power Platform you would normally push solutions from Dev to Test to Prod in an environment-centric ALM approach. Reference: https://benediktbergmann.eu/2024/03/26/environment-vs-source-code-centric-alm-approach/
With the Catalog now available, the environment-centric ALM approach can be more like the source-centric approach. Instead of publishing solutions to a source code repository, we are publishing them to the Catalog. This would mean that after a component is developed and about to be moved to Test, it should also be published to the Catalog for future reuse purposes. The only real drawback in comparison to a truly solution-centric approach is that you would not be able to spin up a new environment with an older solution version. In Catalog you can only have one (the latest) version of a specific solution, you can’t install older versions.
The environment-centric approach uses the Catalog, once a solution is published in the Catalog it can be consumed by any environment in your tenant.
It is not an either one or the other option though, Catalogs also work great with Source code-centric ALM. Where you actually could leverage the ALM pipelines to produce Packages or Solutions and immediately publish them to your Catalog with the Pac CLI. Thus this could simplify your ALM pipeline, having it create and publish solutions and packages to Catalog and then easily install and consume in your environments as needed. More on this in future blog posts.
Leverage ALM pipelines to create and publish solutions to Catalog.
1.2 The different pieces involved in a Catalog
A Catalog is a library of solutions and packages (Package consists of multiple solutions + data). From what I have been able to tell, you can only create one Catalog per Environment. You can publish solutions to the Catalog as either managed (Managed item) or unmanaged (Template).
Relationship between environment, Catalog and solutions/packages.
1.2.1 Package
A package contains the following:
- One or a set of solutions
- Files with data from Configuration Migration tool.
- Custom code.
- HTML content specific to the package.
1.2.1 Solution
A solution is a container that can contain the following elements for reuse:
- Table and its subcomponents like forms, saved queries, relationships, table maps.
- Environment variables.
- Canvas apps.
- Modern workflows.
- Security roles.
- AiModel and its subcomponents like AiConfig.
- Web resources.
- Power Apps component framework components. This includes modern solution-aware components created using the Power Apps component framework. For example custom API, AiPlugin, and AIPlugin operation.
2. How organizations can leverage the Catalog
The fact that the Catalog can promote and encourage the reuse of Dataverse components is clear to us by now. Furthermore, this feature can help large enterprises realize and roll out their operating model, no matter which model they leverage. In particular, organizations leveraging the Replication model will benefit from the Catalog.
2.1 The Replication Operating Model
The replication operating model is a model that focuses on developing a successful template for processes, systems, or practices. This is usually possible when you know that the business processes are very similar across business units, countries, or regions. Once you have the template ready it is all just a matter of rolling it out and making some final local adaptions. Read more about operating models here.
Your organization’s business processes decide what operating model you should leverage. Image reference: https://eafoundationsii.wordpress.com/2017/05/31/blog-3-define-you-operating-model-core-diagrams/
2.1 My Fictive scenario for Catalog
I have created a fictive scenario where I have one dataverse environment used by central IT for development (Catalog is hosted here) and two additional environments where my template solution will be rolled out (Sweden and Germany respectively).
In our example, I have created a solution called “MyGenericSoluton” containing a new Table called Account Balance Event. This will capture different transactions related to a customer such as deposits or withdrawals, and the amount.
A simple customization for demonstrative purposes.
This is a solution that I wish to reuse and implement across different countries. As such I have decided to manage this with help from Catalog in Power Platform.
In order to set this up I have created my Central IT environment as a managed environment (this is mandatory if you wish to host the Catalog on it, subsequent environments do not need to be managed) where I will develop my solutions and publish them to my Catalog. Once published to the Catalog I can easily govern the solution and install the template solution onto the different country-specific environments.
An illustration of how organizations can publish items to the Catalog and then consume them in different country-specific environments. This will let you keep and maintain a common template solution.
Below you see the corresponding environments in the Power Platform Admin center.
The Catalog resides in the “Template environment” in my implementation, a better strategy is probably to have the Catalog in the dev or test environment.
3 Implementation Outline
We are going to take the following steps to set all of this up in an environment-centric ALM:
- Install the Catalog
- Publish a solution or package to the Catalog
- Approve the solution or package
- Consume solutions and packages from the Catalog
Want to do updates to one of the existing solutions in Catalog? Repeat steps 2-4.
3.1 Install the Catalog
The first thing you need to do is to set all of this up by going to admin.powerplatform.com and creating a Catalog. This is done by going to Resources, the Catalogs, and finally hitting the “+ New Catalog”-button. For complete details visit: Administer the catalog - Power Platform | Microsoft Learn.
When creating the Catalog you will be able to select the environment where you want to install the Catalog and the corresponding model-driven app for managing the Catalog (Power Platform Catalog Manager). You will also get the option to select Entra groups that will decide who should be able to have any of the following permissions:
- Catalog Administrators
- Catalog approvers - the ones that will approve or reject solutions published in the Catalog
- Catalog Submitters - who should be able to publish items to Catalog
- Catalog Consumers - being able to consume solutions from Catalog
3.2 Publish a solution or package to the Catalog
Go to the environment where you have installed the Catalog in make.powerapps.com. Under solutions create a new solution or pick an existing that you wish to publish to the Catalog. See the image below.
Publishing a solution to the Catalog is easy.
Pick the Catalog you want to publish the solution to and decide if it should be a Managed Item (managed solution) or Template (unmanaged solution).
First time publishing a solution you get to decide if it should be a Managed Item (managed solution) or Template (unmanaged solution).
If you are publishing a solution that you already published before but where you have incremented the version number, this is how the publish solution dialog will look like.
I updated an existing solution and published it, then it looks like this.
If your solution is only one specific type of component such as app, flow, pcf, then pick that. Otherwise, pick the category “Unspecified”. When ready click the next button and review your information before hitting Submit.
Make a final review before submitting the solution to the Catalog.
Once your solution has been submitted a green notification will appear. Now we just need to wait for the approvers to approve our solution to the Catalog.
Green notification will let you know when the solution has been submitted and is awaiting approval.
3.3 Approve the solution or package
The submitted solution will be visible to the approvers in the Power Platform Catalog Manager application. In the dashboard, all new Approval requests will be visible to the approvers.
The dashboard will show all pending Approval Requests.
Opening up the pending record the approvers can see Approval Request information and what assets are included in the request. Depending on if the request should be approved or rejected pick one of the options in the ribbon. Once approved, the solution will be available in the Catalog for consumption.
Approve or decline the Approval Request.
3.4 Consume solutions and packages from the Catalog
To consume the solution go to make.powerapps.com and pick the environment where you want to install the solution, in my example, I picked the German environment. Press Catalog in the left pane and select the solution that you wish to install or update.
Install the solution to your environment easy.
I had already installed this solution before, but now it was updated with a newer version number.
Once you press the button the solution will be installed in your environment. See image below.
My updated managed item solution was installed to the environment.
4. Summary
Using the Catalog is a great way to promote the reuse of components amongst makers. Furthermore, it sets the stage and helps makers think about scalability and reuse from the get-go of building a solution. Having an organizational common component library (Catalog) makes it convenient to consume items from other makers.
Using an environment-centric ALM approach is one of the most common and easy setups and has now become a more viable option than before. By bringing some of the benefits from the source-centric approach you can can now quickly store and govern solutions that you wish to reuse in the Catalog. This is improving the time to market of implementations e.g. when you introduce the solution to a new country.
Finally, if you are an organization wanting to leverage the replication model and promote scalability across business units or countries, having a centrally managed Catalog will help you distribute the core template and its updates all across.