There is a quirk in the way Connect to Forge migration works, that allows you run any Connect marketplace app without licensing. As far as I can tell.
TLDR: If your app is Connect only, it can be run without a license. Afaik this will be ‘fixed’ once your app is a “Forge” app (Connect on Forge is enought), as you then the manifest is private.
Steps to Reproduce
-
Go to the marketplace and find a app that has a
Get the descriptor fileat the end. E.g. Atlassian Marketplace . Copy the URL the descriptor points to. -
Use the
connect-to-forgeutility (https://www.npmjs.com/package/@atlassian/connect-to-forge) to create a Forge descriptor for the app. Eg: npx @atlassian/connect-to-forge@latest --type confluence --url https://marketplace.atlassian.com/download/apps/1228981/version/1001016/descriptor -
Register that app:
forge register. Give it a name when prompted. -
Deploy the app to staging:
forge deploy -e staging -
Install the app to your own site with forge, eg:
forge install --license active --product confluence --site https://my-site.atlassian.net/ --environment staging -
The app runs now, without any license ever passed to it.
-
In the Connect back-end, the
&lic=activeis set to true. Unless the app does extra license checks, it looks like a licensed app for the Connect back-end.
What I didn’t check is what the licenses REST endpoints do return. So, if your app check more that the &lic= parameter with license REST endpoints, it might be immune.
PS: I might overlooked something and it doesn’t work in practice =)