Open
Description
New Issue Checklist
- Report security issues confidentially.
- Any contribution is under this license.
- Before posting search existing issues.
Issue Description
The custom developed logic to handle the Parse Server config options is complex and difficult to maintain. In context of adopting TypeScript #7334, it would require an enormous effort to rewrite the logic. It is also buggy when it comes to complex option types (array of ...).
The are off-the-shelf libs like convict, which include all of the features that we currently maintain by hand.
Suggested Solution
Replace custom config logic with a library.
Requirements:
- validation
- accept options via env var
- accept options via config file
- allow to set dynamic vars, i.e. a function instead of a var, see Dynamic master key and maintenance key #9052
- TS support
- config versioning (optional)
This would close:
- Parse Server options should set default #8202
- Inconsistent config validation when starting a server instance via CLI vs. API #8673
- Flag Parse Server options which can only be used in certain setups #8432
- Define which
ParseServerOptions
apply to startup methods #8300 - Expose GraphQL server config through CLI #7939
- Parse Server option cannot be set via environment for interfaces #7151
- configure PARSE_SERVER_CLEANUP_INVALID_INSTALLATIONS without environment vars #9125
Related: