Similar to an Operating System, Enonic XP supports development and deployment of applications.
Applications are standalone software executables that can be installed and run on top of Enonic XP. Applications are powered by the XP runtime, which also supports multiple applications running in the same instance. Once installed, applications get access to the platform services, such as the NoSQL storage.
A single application may offer many different capabilities, from web apps and cms specific functionality to low level OSGi services that can be used by other apps.
Enonic market is the go-to place for official apps from Enonic, as well as 3rd party applications. The marketplace also offers starter kits and software libraries that help you create new apps better and faster.
There are essentially two ways getting your applications running with Enonic XP:
- Via API
Applications installed through the API will be available for all nodes in an XP cluster.
- Via file system
File system deployment is most commonly used in development phases, but it can also be applied for specialized deployments scenarios.
Consider a microservice style highly isolated and controlled deployment, you will bundle your app(s) together with the XP runtime and launch it as a separate instance.
In addition to installing and uninstalling, XP applications may be started and stopped. This is referred to as the life cycle of the application. During the stop and start phases, applications themself may execute custom code.
Once installed, applications are automatically started on all nodes. During the startup, if it exists, the application’s main.js script will be executed. At a lower level, Java developers may utilize so-called OSGi lifecycle events for similar purposes.
Before an application is stopped, a special event is thrown. Applications may also react to these events before they are shut down.
Applications can be configured with deployment specific setting per node in the cluster. The configuration will automatically be injected when the applications starts.
Configuration files may be updated, and trigger a restart of the application, without restarting the XP nodes. This means that for instance sessions, or open websocket connections will not be recycled, even if an application is restarted.
TODO: Link to info about configuration management
To create an application you need to setup a project. Projects contain all code and configuration required to build the application.
For more details, check out the project reference documentation.
XP apps are powered by the XP runtime.
XP applications can also make use of Java.
Developers with special requirements may take advantage of advanced platform capabilities such as exposing and consuming services from other applications within the same instance. Learn more about using Java in XP apps
There are endless use cases for the XP platform, but the typical scenarios are listed below:
Read more about webapps and the web engine
A unique feature of XP is the embedded Content Management capabilities.
You may build applications that go from serving content from an API (Headless CMS) via traditional web sites to Hybrid CMS - offering the best of both worlds.
The CMS offering essentially consist of three parts:
Content Studio - Editorial admin interface, available as an app on Enonic Market
Content API - Built on top of the NoSQL Storage
Site Engine - Built on top of the webapp engine
XP apps may also act as a so-called ID provider. Once installed and configured, an ID provider can join the request pipeline of other sites and applications, dynamically providing authentication and authorization when needed. There are multiple standard ID providers available on Enonic Market.
Learn more about the identity and access management
Read more about Tasks