Microfrontends (MFE) are about to become officially part of the Open edX Lilac release, scheduled for June 9th. As part of my job as a Tutor maintainer, I am trying to figure out what is the minimal set of common settings to be defined for each MFE, and this is made very difficult by the fact that the none of the MFEs document any of their settings.
For instance, here is the list of env vars for a few MFEs:
- Account: frontend-app-learning/.env at master · edx/frontend-app-learning · GitHub
- Gradebook: frontend-app-gradebook/.env at master · edx/frontend-app-gradebook · GitHub
- Ecommerce: frontend-app-ecommerce/.env at master · edx/frontend-app-ecommerce · GitHub
- Payment: frontend-app-payment/.env at master · edx/frontend-app-payment · GitHub
By looking at these settings lists, I am unable to determine whether I need to define, for instance: ORDER_HISTORY_URL
, DISCOVERY_API_BASE_URL
, SEARCH_CATALOG_URL
. These are just examples of settings for which I have no clear idea whether their values should be shared with other MFEs or not. All I can do is grep
the repo source code along with my node_modules/
folder for every one of these settings. This is unmanageable.
As open source maintainers, we need the following:
- A list of documented settings that are shared between all MFEs. If necessary, this list can be split between frontend-component-header, frontend-component-footer and frontend-platform.
- For every MFE, a list of documented settings that are specific to this MFE.
The responsibility of creating these docs belongs to the developers who created the settings and who maintain the MFE repositories, i.e: edX.
I am sorry to raise the alarm in a public forum, but I have asked about this multiple times already in online conversations, both in private and in meetups of the BTR working group. Every time, my request was acknowledged, but not action was taken (as far as I know). With the multiplication of MFE and the Lilac release just around the corner, this documentation effort must be added to the MFE team roadmap as soon as possible.