I am developing customizations in Microsoft Dynamics 365 Business Central (SaaS) using per-tenant extensions.
My current delivery approach is as follows:
- ISV solutions are developed as AL extensions
- The extension is packaged as a
.app file
- The
.app file is provided directly to the customer
- The customer installs the extension using Extension Management in a cloud-hosted Business Central environment
- After installation, the Download Source option is disabled in Extension Management
Despite this, I have concerns regarding intellectual property and source code protection.
Even though the Download Source option is disabled in Business Central, when the .app file is distributed directly to the customer, it can still be accessed locally. Using development tools such as Visual Studio Code, the customer can inspect the symbols and metadata contained within the .app package.
I am aware that:
- Runtime packages (
-packageType Runtime) provide stronger source-code protection
- Runtime packages are supported only for On-Premises deployments
- Runtime packages are not supported for Business Central SaaS
Requirement
My objective is to:
- Protect my AL source code
- Deliver a per-tenant extension for Business Central SaaS
- Allow customers to install and use the extension
- Prevent access to, or reverse engineering of, the underlying AL source code
Questions
- Is there any supported mechanism to convert a
.app file into a more secure/ binary format or protected format for Business Central SaaS, comparable to runtime packages?
- What is the recommended and supported approach for ISVs to protect AL source code when distributing per-tenant extensions in SaaS?
- Are there any Microsoft-recommended best practices or official guidance for IP protection in this scenario?