Monday, 14 September 2026

How I Recreated the Extension Upload Experience in Business Central


Microsoft has deprecated the in-product upload on the Extension Management page and the Automation API extensionUpload endpoint. Both are scheduled for removal in 2027 release wave 1 (version 30). Extension Management is expected to survive only as a read-only list.

https://mohana-dynamicsnav.blogspot.com/2026/09/managing-apps-in-business-central-admin.html


The supported replacement is the Business Central admin center API so I built an app that calls it from AL.


PTE Extension Management gives you a page that looks and behaves like the one you already use:

  • Installed Extensions (Admin Center) live list of what is installed, with available update versions and scope.
  • Upload Extension — pick a .app, choose when to deploy (current version, update window, next minor, next major), set the schema sync mode, and accept the publisher terms.
  • Uninstall — with an optional, confirmed delete of the extension's data.
  • Installation StatusScheduled Installs, and per-extension Operations so you can see what the API actually did.
  • Deployment Log — every attempt, with user, environment, HTTP status, operation ID, and the raw response body.

Setup is a one-time job:

Step 1. Create the app registration

Go to the Azure portal, then Microsoft Entra ID > App registrations > New registration.


Step 2. Copy the Application (client) ID - you will paste this into Business Central

Step 3. Create a client secret

Go to Certificates & secrets > Client secrets > New client secret.


Step 4. Add API permissions

Go to API permissions > Add a permission > APIs my organization uses, and search for Dynamics 365 Business Central.

Choose Application permissions, and select the permission that grants admin center API access for your tenant.

Then select Grant admin consent for [tenant] and confirm. The Status column must show a green tick for every permission before you continue.


Step 5. Register the app in Business Central

In Business Central, use Tell Me to open Microsoft Entra Applications. Select New.

  • Client ID: paste the Application (client) ID from Step 2

 


Step 6. Assign Exten. Mgt. - Admin

On the same card, in the User Permission Sets subpage, add a line and select Exten. Mgt. - Admin.

State: set to Enabled

Step 7. Grant consent

Select Grant Consent on the Entra Applications page and complete the prompt with an account that can consent on behalf of the organization.

Step 8. Open the setup page

Open MPA Deploy Setup.


Step 9. Enter the credentials

In the Entra Application group:

  • Client ID: paste the Application (client) ID
  • Client Secret: paste the secret value from Step 3

Step 10. Test the connection

Select Test Connection.

The app requests a token, calls the installed apps endpoint on the target environment, and reports how many extensions came back. A number means authentication, permissions, and environment routing are all correct.

Step 11. Assign the permission set to users

Assign MPA Deploy Admin to the people who should be able to deploy. It is a standalone permission set and is not included in any Microsoft permission set, so nobody gets it by accident.

Step 12. Deploy a package

Open Installed Extensions (Admin Center) and Upload Extensions action.
Select Select Package, choose an .app file, decide whether to install now or wait for the update window, and select Deploy.



Step 13. Check the Installation Status

Open Installation Status action. Track the status to watch the install complete.

 



The source is on GitHub. Try it in a sandbox, tell me where it breaks, and open an issue if something is missing or wrong. Feature suggestions are just as welcome as bug reports.

https://github.com/pmohanakrishna/PTE-Extension-Management


No comments:

Post a Comment