Extracts config.json into its own module (#1061)

This adds a config file that's loaded very early on during startup. 

It enables us to save/load settings from within Grist's admin panel, that affect the startup of the FlexServer.

The config file loading:
- Is type-safe, 
- Validates the config file on startup
- Provides a path to upgrade to future versions.

It should be extensible from other versions of Grist (such as desktop), by overriding `getGlobalConfig` in stubs.

----

Some minor refactors needed to occur to make this possible. This includes:
- Extracting config loading into its own module (out of FlexServer).
- Cleaning up the `loadConfig` function in FlexServer into `loadLoginSystem` (which is what its main purpose was before).
This commit is contained in:
Spoffy
2024-07-08 15:40:45 +01:00
committed by GitHub
parent 6171a012db
commit 6908807236
14 changed files with 484 additions and 33 deletions

View File

@@ -605,7 +605,7 @@ export async function createServer(port: number, initDb = createInitialDb): Prom
await flexServer.start();
await flexServer.initHomeDBManager();
flexServer.addDocWorkerMap();
await flexServer.loadConfig();
await flexServer.addLoginMiddleware();
flexServer.addHosts();
flexServer.addAccessMiddleware();
flexServer.addApiMiddleware();