There are two types of pages served by OpenMRS: server-side (JSP/GSP) and client-side (Single-SPA). This documentation will treat the latter, which is the recommended way of developing and configuring user-facing content going forward. The module which handles Single-SPA is openmrs-module-spa. URLs under `/openmrs/spa` are treated as frontend routes—they serve the frontend application, which is passed the URLs for routing.
There are essentially two pieces to this frontend: the Import Map and the Microfrontends.
The Import Map
Microfrontends on a CDN
This is a good option if you have a centralized deployment and users are assumed to have internet access. Your CDN can be something like Amazon S3. With this kind of deployment, you can update the front-end resources without having to touch the server at all.
Microfrontends locally through Tomcat
This is the way to deploy Microfrontends if your servers are deployed on-premises and are intended to be usable without internet access.
Anything put in `/frontend` under the Application Data directory will be served at `/openmrs/frontend`.
This subdirectory of Application Data can be configured using the global property `spa.frontend.directory`. The URL path base can be configured with the global property `spa.frontend.resourceBaseUrl`.