Advanced features like App identities and App events allow your apps go beyond the immediate web app UI and modify content using the Content Management API (CMA). You will find more resources on these topics under the Extensibility section of the developer documentation.
Apps are the next generation of UI Extensions. They are faster to build, update and manage and are easy to orchestrate when used in multiple spaces throughout your organization. Features like App Identities and App events make it possible to build fully automated workflows with apps, whereas UI Extensions act on behalf of the user and require the user's input to accomplish a task.
Apps and UI Extensions are compatible at the moment of this writing and share a lot of tooling, including the UI Extension SDK. While we plan to support UI Extensions into the foreseeable future, our current product efforts are focused on the app framework. For this reason, we encourage our customers to migrate their UI Extensions to Apps whenever possible to take advantage of the full range of extensibility features we offer.
Contentful allows users to build two types of apps: marketplace apps and private apps. The installation process depends on the type of the app you want to install.
For marketplace apps, navigate to the app page in the App Marketplace and click Install now. Select the target space and — if you have multiple environments in the space — the target environment. Grant the app access to your space by clicking Authorize access.
Finally, fill out the required configuration fields (note that these vary from app to app) and save your settings. For faster access, you can also install Marketplace apps directly from within the web app by visiting the App menu tab in the main navigation.
For private apps, begin by creating an app definition under the App section of your organizational settings. The app definition includes the basic information about your app: name, URL, and target location. For apps using advanced App Framework features, this is where you generate public-private keys and subscribe to app events.
Once you install the app definition, you can install the app into the target space the same way you install Marketplace apps. To read more about app installation and distribution, refer to our app development guide.
To create an app definition in your organization, you have to be assigned the Developer, Admin or Owner organizational role. To install an app within your space, you have to be assigned either the Developer or Admin role.
If you are interested in making your app available to the wider Contentful community, you can apply to have your app listed on the App Marketplace or open a pull request to feature it in the Awesome Apps list we maintain.
There are no special technical requirements for hosting your app: it can be hosted on any platform as long as it can be accessed through a public URL. If you are already using cloud platforms like AWS, GCP or Azure, you can also use them for hosting your app. Alternatively, you can host your app on dedicated platforms like Vercel, Heroku, Netlify, Glitch, Digital Ocean and more.
No, apps do not contribute towards organizational user quota and can be created free of charge. However, for technical reasons, we limit the maximum number of app definitions that can be created per organization at 10 and the maximum number of installations that can be installed per environment at 10. For more information on app limits please refer to the Technical limits page.
No. At the moment we do not provide such functionality. If you would like to request new features or share your feedback, please fill out the app framework feedback form.
Yes. Contentful does not provide a built-in mechanism for billing app users through the App Marketplace, but you can list apps requiring a subscription and offer an alternative payment channel. To see how other apps monetize access, check out Optimizely, Jira, GlobalLink offerings on the marketplace.
To be considered for the marketplace listing, apps should fulfill the following criteria:
Provide clear value to end users
Offer publicly available user documentation
Provide user support and be actively maintained
To determine whether your app qualifies for the marketplace listing, submit a request to our technology partnerships team.
An app access is limited to the one space and environment it is installed to. Depending on the access a user has it might be limited further. So if a user cannot update a particular field of a particular content type the app will render in read only mode for that particular field.
We allow you to have up to three different active app key pairs. This allows you to create a new keypair and deploy it across your infrastructure before removing the old one. If you don’t pass a key id in the API call to create an App Token we check up to all three existing public keys you stored for the App.
There are no restrictions when it comes to the programming language you use to build the backend. We provide a toolkit for node js but you can use any programming language you like.
There is no maximal bundle size like there was for
Webhooks and App Events are a quite similar concept but apply to different use cases.
If you don’t have control over the backend that receives the events, for example when sending events to a third party service, then you want to use our traditional webhooks. Sending webhooks directly to a third party service provider might require you to apply payload transformations before the webhook is sent which is only possible for traditional webhooks.
When you build the backend yourself it is simpler to apply the webhook transformations in your code rather than using our transformations dsl and you should use App Events.
You can think of App Events as a standard webhook for your app. The app developer can create an event subscription for the App Definition. The given endpoint will then receive events for each of the space-environments the app was installed to. There is no need to create or remove webhooks on app installation or uninstallation.
You can still use webhooks for cases where you don’t have control over the receiving end. We plan to support them going forward.
App keys are a key pair where we keep the public key and you keep the private key. They are used to request app tokens. Once the app has requested and received an app token it can use this token to authenticate with our CMA. You can think of app tokens as the personal access token for apps. App tokens give apps the ability to access Contentfuls CMA without a real user present and also without the need to create service accounts.
“App parameters” is a
JSON configuration object that is part of the App Installation. The
JSON.stringify’ed value of this object cannot exceed 16 kb.
We’re not opinionated about how you release new versions of your app. You already host the app yourself. You can release new versions of it daily, weekly or monthly based on your and your customers needs. We suggest that your App only introduces backwards compatible changes. Your app could further migrate old configuration values to a new format so users don't see errors on upgrade.
We designed App Identities with service accounts and their use cases in mind. While currently some of our newer CMA endpoints are not yet enabled for App Identities we plan to do so in the long run. Once they are there shouldn’t be many use cases where you have to create, maintain and use service accounts.
App identities only have access to entities within the space environment the app is installed in. They can access the following entities:
Snapshot (only on master environment)
The app's own