Moving between extension scopes
This article describes the different options you have for moving an app from one scope to another.
For a definition of the different extension types and their scope, see Extension types and scope.
Moving a PTE to AppSource
Scenario: You've deployed your extension for selected customers as a PTE and are now aiming at covering more markets by deploying it as an AppSource app.
Identity requirements for moving a PTE to AppSource
It isn't possible to deploy an AppSource app and a PTE with the same
id
. You must then change theid
of the extension before uploading it to AppSource. This means that the data won't be available anymore for environments that had the PTE installed and are now using the AppSource app. Dependent extensions will also need to be updated to use the new app ID in theirapp.json
file.Due to some current limitations in our service, it isn't possible to have an AppSource app and a PTE extension with the same
name
,publisher
, andversion
. You must then change thename
,publisher
, orversion
of the app before uploading it to AppSource.
Other requirements for moving a PTE to AppSource
AppSource apps and PTEs are using different ID ranges. You must then change the ID of all the objects in your extension. For more information, see Object Ranges.
AppSource apps are required to use affixes for their object names, while PTEs don't have any affix usage requirements. You might then have to rename all the objects in your extension to use affixes. For more information, see Benefits and Guidelines for using a Prefix or Suffix.
You can find the full list of requirements for AppSource apps here:
Other information moving a PTE to AppSource
If you want to move the data by having the two apps (PTE and AppSource app) installed side-by-side, then you must ensure that the two apps can be installed side-by-side. For this, they must not share any object names nor IDs. You can then define another PTE depending on both apps that would take care of moving the data.
All dependent extensions must be updated to use the new
App ID
in theirapp.json
file and to reference the objects defined in the extension by their new name and object ID.
Moving a DEV extension to AppSource
Scenario: You're done developing a new offer or a new version of an existing offer and are now ready to make it available for all your customers in SaaS.
Identity requirements for moving a DEV extension to AppSource
It's not possible to deploy an AppSource app and a PTE with the same
id
. You must then change theid
of the extension before uploading it to AppSource. This means that the data won't be available anymore for environments that had the PTE installed and are now using the AppSource app. Dependent extensions will also need to be updated to use the new app ID in theirapp.json
file.Due to some current limitations in our service, it isn't possible to have an AppSource app and a PTE extension with the same
name
,publisher
, andversion
. You must then change thename
,publisher
, orversion
of the app before uploading it to AppSource.
Note
Alternatively, you can also uninstall and unpublish the DEV extension with this app id
from your sandboxes environment. Make sure to select the option to delete the extension data and extension schema when uninstalling the extension.
Other requirements for moving a DEV extension to AppSource
AppSource apps must use a specific ID range, while DEV extensions don't have any ID range limitation. You might then have to change the ID of all the objects in your extension. For more information, see Object Ranges.
AppSource apps are required to use affixes for their object names, while DEV extensions don't have any affix usage requirements. You might then have to rename all the objects in your extension to use affixes. For more information, see Benefits and Guidelines for using a Prefix or Suffix
You can find the full list of requirements for AppSource apps here:
Publishing an AppSource app as a DEV extension
Scenario: Showing a preview of an app to a customer or developing the next version of the app.
Publishing an AppSource app to a sandbox environment as a DEV extension is a common scenario when you want to show a preview of your app to a customer or during active development.
Note
From Business Central 2023 release wave 2, it's possible to install a preview of AppSource apps on customer environments without publishing them as DEV extensions. For more information, see Technical Validation FAQ.
Identity requirements for publishing an AppSource app as a DEV extension
- DEV extensions should have a different app
id
because there might be other global apps published to your service and they'll collide. If you don't change the appid
, the app that you've published from Visual Studio Code to a developer sandbox will be automatically unpublished from your environment if another user tries to install the AppSource app in their environment.
Other requirements for publishing an AppSource app as a DEV extension
- If you haven't changed the app
id
of the AppSource app in your DEV extension, to prevent publishing the DEV extension if another AppSource app depends on that particular AppSource app. If you want to achieve such functionality the whole chain of dependencies should be published as DEV extensions with different appid
.
Publishing a PTE as a DEV extension
Scenario: Showing a preview of an app to a customer or developing the next version of the app.
Identity requirements for publishing a PTE as a DEV extension
No specific identity requirements.
Other requirements for publishing a PTE as a DEV extension
No specific requirements.
Moving a DEV extension to a PTE
Scenario: Deploying your app to a production environment.
Identity requirements for moving a DEV extension to a PTE
No specific identity requirements.
Other requirements for moving a DEV extension to a PTE
You can find the full list of requirements for PTE in the documentation for the PerTenantExtensionCop Analyzer.
Moving an AppSource app to a PTE
Scenario: Reducing the availability of your app to select customers.
Identity requirements for moving an AppSource app to a PTE
It's not possible to deploy an AppSource app and a PTE with the same
id
. You must then change theid
of the extension before uploading it the PTE. This means that the data won't be available anymore for environments that had the PTE installed and are now using the AppSource app. Dependent extensions will also need to be updated to use the new app ID in theirapp.json
file.If you wish to deprecate the offer in AppSource, see Discontinuing an AppSource app.
Additional requirements for moving an AppSource app to a PTE
AppSource apps and PTEs are using different ID ranges. You must then change the ID of all the objects in your extension. For more information, see Object Ranges.
In order to avoid potential name conflicts if the AppSource app and the PTE are installed side-by-side, it is recommend to change the name of all the objects in your extension.
You can find the full list of requirements for PTE in the documentation for the PerTenantExtensionCop Analyzer.
Other information moving an AppSource app to a PTE
Even if you stop distributing the offer in Partner Center, the app still exists in Business Central and the App ID remains reserved for it. It then can't be attributed to the PTE.
If you want to move the data by having the two apps (PTE and AppSource app) installed side-by-side, then you must ensure that the two apps can be installed side-by-side. For this, they must not share any object names nor IDs. You can then define another PTE depending on both apps that would take care of moving the data.
All dependent extensions will have to be updated to use the new app
id
in theirapp.json
file and to reference the objects defined in the extension by their new name and object ID.
See also
Developing Extensions
Get Started with AL
Extension Types and Scope