parse-community / parse-community/parse-server
Replace Parse Server custom config logic with library
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 21.4k
- Forks
- 4.8k
- Avg merge
- 7h 45m
- Merged PRs (30d)
- 11
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 https://github.com/parse-community/parse-server/issues/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 https://github.com/parse-community/parse-server/issues/9052
- TS support
- config versioning (optional)
This would close:
- https://github.com/parse-community/parse-server/issues/8202
- https://github.com/parse-community/parse-server/issues/8673
- https://github.com/parse-community/parse-server/issues/8432
- https://github.com/parse-community/parse-server/issues/8300
- https://github.com/parse-community/parse-server/issues/7939
- https://github.com/parse-community/parse-server/issues/7151
- https://github.com/parse-community/parse-server/issues/9125
Related:
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by mapping the existing custom Parse Server configuration logic and the linked TypeScript migration context. Evaluate whether a configuration library can satisfy validation, environment variables, config files, dynamic values, TypeScript support, and optional versioning; done means those requirements are covered without the current custom logic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, nodejs, typescript
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100