GSoC 2021: The REST of Administration

 

Primary mentor

@Daniel Kayiwa

Backup mentor

@CLIFF GITA

Assigned to

@Bartłomiej Rasztabiga

 

Description

In order to meet our goal of migrating our administration functions to our new micro frontend framework, we need to make sure all of our administration functions are accessible through REST APIs. This is a unique opportunity to work at the heart of OpenMRS and with some of the most experienced OpenMRS developers while extending the capabilities of the platform.

The Legacy UI uses an extension point on its admin page to render a list of administration links for installed modules. This list can be seen on the advanced administration screen of the Reference Application (demo.openmrs.org) as everything listed after the "Modules" section in the third (rightmost) column. The "Modules" section is hardcoded onto this admin screen, but everything below it is dynamically generated based on which modules are installed and running in OpenMRS.

 

Modules implement the AdministrationSectionExt interface (examples: Basic Module and HTML Form Entry) to participate in this list. The goal of this project will be to find a backwards-compatible way to expose this list via the REST API to properly authenticated users (i.e., users who could see this list in the admin page of the Legacy UI should be able to retrieve the list of modules and their links via the REST API). This REST endpoint will be needed to allow a Micro Frontend-based administration application to discover and render the appropriate links.

Skills Needed

Objectives

  • Create REST endpoints for managing administration functions that are not yet available via REST - COMPLETED

  • Wherever possible & appropriate, build FHIR-based endpoints within the FHIR2 module (may not be relevant to this particular project) - COMPLETED

Issues

key summary type created updated due assignee reporter priority status resolution

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

 

 

The goal of this project is to be able to render links to administration pages for install modules within a new (REACT-based) administration application. The links will still go to the legacy administration screens for most/all modules (probably best in a new tab to avoid losing context within the single page app running the new administration functions). Refactoring administration screens for the myriad of OpenMRS modules is not within scope for this project.

Resources

Extra Credit

  • Finding a way to support the admin list for installed modules that not only works for existing implementations (backwards compatible), but also works without requiring the Legacy UI module to be installed.