Project documentation is in the RFC Repository on GitHub. This page is intended as Implementer Documentation, and should be migrated to there as the project reaches maturity.
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`.