{"id":116,"date":"2023-05-10T08:00:11","date_gmt":"2023-05-10T15:00:11","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/powerplatform\/?p=116"},"modified":"2024-02-27T08:46:02","modified_gmt":"2024-02-27T16:46:02","slug":"streamline-your-solution-development-with-the-power-platform-cli-create-a-solution-from-scratch","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powerplatform\/streamline-your-solution-development-with-the-power-platform-cli-create-a-solution-from-scratch\/","title":{"rendered":"Streamline your solution development with the Power Platform CLI: Create a solution from scratch"},"content":{"rendered":"<p>In this blog, you will learn more about using the Power Platform CLI together with Power Platform Solutions. In the <a href=\"\/powerplatform\/getting-started-with-the-power-platform-cli\/\">previous post<\/a>, I focused on installing the Power Platform CLI, creating the auth profile and switching environments. In this blog, the solution command group is the superstar!<\/p>\n<blockquote>\n<p>This blog is part of a multi-part series on the Power Platform CLI.<\/p>\n<p>Previously, the following blogs appeared in this series:<\/p>\n<ul>\n<li><a href=\"\/powerplatform\/getting-started-with-the-power-platform-cli\/\">Part 1 &#8211; Getting Started with the Power Platform CLI<\/a><\/li>\n<li>Part 2 &#8211; Streamline your solution development with the Power Platform CLI: Create a solution from scratch (This blog)<\/li>\n<li><a href=\"\/powerplatform\/getting-started-with-power-platform-cli-and-power-pages\/\">Part 3 &#8211; Getting Started with Power Platform CLI and Power Pages<\/a><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/powerplatform\/create-multilingual-copilots-with-the-power-platform-cli-and-microsoft-copilot-studio\/\">Part 4 &#8211; Create multilingual copilots with the Power Platform CLI and Microsoft Copilot Studio\n  <\/a><\/li>\n<\/ul>\n<\/blockquote>\n<h2>\ud83d\udce6 Solution command group<\/h2>\n<p>As you expect by now, the solution command group enables you to work with Power Platform solutions. The solution command group has a lot of commands, so it&#8217;s too much to talk about all of them in this blog. Instead, I will focus on my favorite ones that will get you started.<\/p>\n<p>To see all commands in the solution command group, run the following command:<\/p>\n<p><code>pac solution help<\/code><\/p>\n<p>This will output the following result:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-1.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-1-1024x419.png\" alt=\"Overview of all the commands in the Power Platform CLI solutions command group\" width=\"640\" height=\"262\" class=\"alignnone size-large wp-image-117\" srcset=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-1-1024x419.png 1024w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-1-300x123.png 300w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-1-768x314.png 768w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-1-1536x628.png 1536w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-1-2048x837.png 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>If you have experience with <a href=\"https:\/\/aka.ms\/pp\/alm\">Application Lifecycle Management (ALM)<\/a> in the Power Platform, these commands might look familiar! A lot of them are available as both <a href=\"https:\/\/aka.ms\/pp\/alm\/devops\">Azure DevOps<\/a> taks and <a href=\"https:\/\/aka.ms\/pp\/alm\/github\">GitHub Actions<\/a>.<\/p>\n<h2>\ud83d\udc69\ud83c\udffe\u200d\ud83d\udcbb Developer scenarios<\/h2>\n<p>Like I explained in the <a href=\"\/powerplatform\/getting-started-with-the-power-platform-cli\/\">earlier blog<\/a>, in the Power Platform environments are important. Not too long ago, Microsoft <a href=\"https:\/\/powerapps.microsoft.com\/blog\/making-it-easier-to-work-with-dataverse\/\">announced<\/a> that you can have up to three developer environments for free! This helps a lot in this story, since you might work on multiple environments, or you might want to try out how and if your solution moves easily from environment A to environment B. In this blog series, I will describe a bunch of developer scenarios, and in this blog, I will start with creating a solution from scratch.<\/p>\n<h3>\u2795 Creating a solution from scratch<\/h3>\n<p>This is the easiest scenario. In this case, you can create a solution by using the <code>pac solution init<\/code> command.<\/p>\n<p>How? Let&#8217;s run the help command for that.<\/p>\n<h4>\ud83c\udd95 Initialize a solution<\/h4>\n<p><code>pac solution init help<\/code> will show you all that you need to know.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-2.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-2-1024x245.png\" alt=\"Output of the pac solution init help command. Shows the required arguments (publisher-name &#038; publisher-prefix) and optional ones (outputDirectory).\" width=\"640\" height=\"153\" class=\"alignnone size-large wp-image-118\" srcset=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-2-1024x245.png 1024w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-2-300x72.png 300w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-2-768x184.png 768w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-2-1536x368.png 1536w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-2-2048x491.png 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>This shows that there are two required arguments:<\/p>\n<ul>\n<li>Publisher Name (&#8211;publisher-name or alias -pn)<\/li>\n<li>Publisher Prefix (&#8211;publisher-prefix or alias -pp)<\/li>\n<\/ul>\n<p>And one optional one:<\/p>\n<ul>\n<li>Output Directory (&#8211;outputDirectory or alias -o)<\/li>\n<\/ul>\n<p>Let&#8217;s initialize our first solution by running the below command:<\/p>\n<p><code>pac solution init --publisher-name Microsoft --publisher-prefix msft<\/code><\/p>\n<p>When you open the directory in Visual Studio Code, you will see the <code>Solution.xml<\/code> file, in the <code>src\/Other<\/code> folder. Open that, and let&#8217;s explore what&#8217;s in there!<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-3.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-3-1024x245.png\" alt=\"Screenshot of a Visual Studio Code with the solution.xml opened. In the file you can see various solution properties like the unique name, version, solution package type, localized names, and publisher details.\" width=\"640\" height=\"153\" class=\"alignnone size-large wp-image-119\" srcset=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-3-1024x245.png 1024w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-3-300x72.png 300w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-3-768x184.png 768w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-3-1536x368.png 1536w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-3-2048x491.png 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>The first thing that I see is that the solution unique name is <code>SolutionDemo<\/code>, which is the directory I ran the <code>pac solution init<\/code> command in. That name gets duplicated in the <code>LocalizedName<\/code> property as well. The version (<code>1.0<\/code>) and Managed (value is <code>2<\/code> now, which stands for solution package type both) properties Also, I see the publisher&#8217;s name <code>Microsoft<\/code> as the unique name of the publisher. Below that we also see the prefix <code>msft<\/code>.<\/p>\n<p>Just a heads up: when using the output directory argument, the solution name will be that name. So, it could be handy to use this option instead.<\/p>\n<h4>\u2699\ufe0f Build the solution<\/h4>\n<p>Now, we only have our solution, but there&#8217;s nothing added to the solution. The solution also doesn&#8217;t exist in a Power Platform environment as well. So, let&#8217;s first see if we can build the solution and import it into a Power Platform environment.<\/p>\n<p>First, we need to run <code>dotnet build<\/code>. This builds the project and creates a zip file which we can use for import.<\/p>\n<h4>\ud83c\udd95 Git init and git commit<\/h4>\n<p>Now is a suitable time to run the <code>git init<\/code> command to initialize a git repo in your solution folder. This will be useful, because you can then do a <code>git commit<\/code> for a first init commit. Later, this will be helpful because we can then see the differences between what we committed now and what we have later after we added some things to the solution in the maker portal.<\/p>\n<h4>\u2b06\ufe0f Import the solution<\/h4>\n<p>Importing a solution can be done by running the <code>pac solution import<\/code> command. Run <code>pac solution import help<\/code> to get all the details about the command:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-4.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-4-1024x292.png\" alt=\"Output of the pac solution import help command.\" width=\"640\" height=\"183\" class=\"alignnone size-large wp-image-120\" srcset=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-4-1024x292.png 1024w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-4-300x85.png 300w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-4-768x219.png 768w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-4-1536x438.png 1536w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-4-2048x583.png 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>You can use the optional arguments for various scenarios. An example is adding the <code>--publish-changes<\/code> argument to publish the changes after a successful import. But for now, let&#8217;s use the standard command to import the solution.<\/p>\n<p><code>pac solution import<\/code><\/p>\n<p>This will import the solution in the currently active environment. If all went well, you should be able to see your solution in the environment:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-5.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-5-1024x521.png\" alt=\"Solution overview.\" width=\"640\" height=\"326\" class=\"alignnone size-large wp-image-121\" srcset=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-5-1024x521.png 1024w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-5-300x153.png 300w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-5-768x390.png 768w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-5-1536x781.png 1536w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-5-2048x1041.png 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>The solution is empty because there is nothing added to the solution yet. Select &#8220;Objects&#8221; in the left navigation and let&#8217;s add something to the solution:<\/p>\n<ul>\n<li>Add a canvas app (New > App > Canvas App, App name: <code>Test App<\/code> &amp; click create) \n<ul>\n<li>Add a button to the app, save the app &amp; go back to the solution.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Although this is not a functional app, it will show you what this does to the solution folder when we&#8217;re done with our next step.<\/p>\n<h4>\ud83d\udd04 Sync the solution<\/h4>\n<p>Because we already have a solution locally, we can make use of <code>pac solution sync<\/code>. We are going to synchronise the solution in two different ways now:<\/p>\n<p>First, we will use the standard sync command with no arguments.<\/p>\n<p><code>pac solution sync<\/code><\/p>\n<p>The above command synchronises the solution from the Power Platform environment back to the local folder.<\/p>\n<p>After the sync is completed, we can see that five files are changed. This is because the canvas app has been added to the solution.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-6.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-6-1024x529.png\" alt=\"View of the five files that have been changed by the pac solution sync command.\" width=\"640\" height=\"331\" class=\"alignnone size-large wp-image-122\" srcset=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-6-1024x529.png 1024w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-6-300x155.png 300w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-6-768x397.png 768w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-6-1536x794.png 1536w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-6.png 1896w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Because the solution sync by default doesn&#8217;t unpack canvas apps yet, we can&#8217;t see what&#8217;s in the canvas app. But the <code>pac solution sync<\/code> commands has some tricks up its sleeve:<\/p>\n<p>Let&#8217;s run the following command and see what happens.<\/p>\n<p><code>pac solution sync --processCanvasApps<\/code><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7-1016x1024.png\" alt=\"View of the eighteen files that have been changed by the pac solution sync command with the process canvas apps argument.\" width=\"640\" height=\"645\" class=\"alignnone size-large wp-image-123\" srcset=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7-1016x1024.png 1016w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7-298x300.png 298w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7-150x150.png 150w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7-768x774.png 768w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7-1525x1536.png 1525w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7-24x24.png 24w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7-48x48.png 48w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7-96x96.png 96w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-7.png 1894w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>There are eighteen changes now in the solution. This is because the above command also unpacked the canvas app that is in our solution. We can now for instance see the <code>Screen1.fx.yaml<\/code> file, which is a representation of the screen with the button we added in the maker portal.<\/p>\n<p>When you open that file, you can see that we added a button here:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-8.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-8-1024x563.png\" alt=\"A diff screen where the changes are visible between the initial commit and the current version on our local machine. On the left you can see a red part (it didn't exist before) and on the right you can see a definition of a screen with a button in green.\" width=\"640\" height=\"352\" class=\"alignnone size-large wp-image-124\" srcset=\"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-8-1024x563.png 1024w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-8-300x165.png 300w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-8-768x422.png 768w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-8-1536x844.png 1536w, https:\/\/devblogs.microsoft.com\/powerplatform\/wp-content\/uploads\/sites\/79\/2023\/05\/pac-solution-8-2048x1125.png 2048w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Commit these changes and keep on working on your solution. If you run <code>pac solution sync<\/code> after each set of changes, and you commit these changes, you&#8217;ll build up a history of changes. That&#8217;s really helpful when others might take over the project later! They can then see exactly which changes you made for a certain requirement.<\/p>\n<h2>\ud83c\udf81 Wrap up<\/h2>\n<p>This was a tour around some of the solution commands. In the future, I will also write a blog post on how to work with solutions that are already in source control, like for instance in a GitHub repository.<\/p>\n<p>For now, this is the first step into the solution command group. If you want to see more commands, look at the video below!<\/p>\n<h2>\ud83d\udcfa Power Platform CLI Solutions<\/h2>\n<p>A while back, I had a great chat with David Jenni to talk about the solution command group for the Power Platform CLI. Check it out to see it live in action!<\/p>\n<p><iframe title=\"Power Platform CLI Exposed: Solutions\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/2gVCsFutUFo?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog, you will learn more about using the Power Platform CLI together with Power Platform Solutions. In the previous post, I focused on installing the Power Platform CLI, creating the auth profile and switching environments. In this blog, the solution command group is the superstar! This blog is part of a multi-part series [&hellip;]<\/p>\n","protected":false},"author":115431,"featured_media":126,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[19,21,2,11,23],"class_list":["post-116","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powerplatform","tag-code-first","tag-fusion-development","tag-powerapps","tag-cli","tag-solutions"],"acf":[],"blog_post_summary":"<p>In this blog, you will learn more about using the Power Platform CLI together with Power Platform Solutions. In the previous post, I focused on installing the Power Platform CLI, creating the auth profile and switching environments. In this blog, the solution command group is the superstar! This blog is part of a multi-part series [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-json\/wp\/v2\/posts\/116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-json\/wp\/v2\/users\/115431"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-json\/wp\/v2\/comments?post=116"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-json\/wp\/v2\/posts\/116\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-json\/wp\/v2\/media\/126"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-json\/wp\/v2\/media?parent=116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-json\/wp\/v2\/categories?post=116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powerplatform\/wp-json\/wp\/v2\/tags?post=116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}