- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 4.8k
 
Open
Labels
type:featureNew feature or improvement of existing featureNew feature or improvement of existing feature
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 
ParseServerOptionsapply 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:
isokosan
Metadata
Metadata
Assignees
Labels
type:featureNew feature or improvement of existing featureNew feature or improvement of existing feature