Description
New Issue Checklist
- [X ] I am not disclosing a vulnerability.
- I am not just asking a question.
- I have searched through existing issues.
- I can reproduce the issue with the latest version of Parse Server.
Issue Description
When starting a Parse Server instance via CLI, all config parameters are extensively checked and warnings/errors are logged if any issues are found (see Definitions.js). These same checks are not performed when creating a server instance via API.
This can lead to situations where a server setup is created and tested via API that later fails when started via CLI.
Ideally the same checks are performed when starting via API and CLI, so possible configuration issues can be detected early on and are consistent independent of how the server is started.
As there might be non-CLI installations that wouldn't pass the existing CLI checks, this should at least initially be an optional feature.
Steps to reproduce
On 5.5.1, the following config can be used to reproduce:
{
"appName": "test",
"appId": "test",
"masterKey": "test",
"logLevel": "error",
"auth": {
"facebook": {
"appIds": "test"
}
}
}
Passing this as config.json on the CLI results in an error (on v5.3 - v5.5.1).
Starting via API works:
const express = require('express');
const ParseServer = require('parse-server').ParseServer;
const fs = require('fs');
let api = new ParseServer(JSON.parse(fs.readFileSync('config.json')));
let app = express();
app.use('/parse', api);
app.listen(1337, () => console.log('parse-server running on port 1337.'));
Actual Outcome
The CLI gave following error (meanwhile addressed: #8666)
Error: [object Object] should be a comma separated string or an array
Expected Outcome
I expected the server to run fine when started via CLI instead of API (as it did before).
Environment
Server
- Parse Server version: all (tested with 5.5.1)
- Operating system: macOS, linux
- Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc): localhost
Database
- System (MongoDB or Postgres): n/a
- Database version: n/a
- Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc): n/a
Client
- SDK (iOS, Android, JavaScript, PHP, Unity, etc): n/a
- SDK version: n/a