config_schema.json
{
"id": "/CONFIG",
"type": "object",
"properties": {
"public_port": {
"type": "integer",
"required": true
},
"private_host": {
"type": "string",
"required": true
},
"private_port": {
"type": "integer",
"required": true
},
"internal_port": {
"type": "integer",
"required": false
},
"accessToken": {
"type": "object",
"properties": {
"cipherKey": {
"type": "string",
"required": true
},
"signKey": {
"type": "string",
"required": true
},
"expiration": {
"type": "integer",
"required": true
}
},
"required": true
},
"refreshToken": {
"type": "object",
"properties": {
"cipherKey": {
"type": "string",
"required": true
},
"signKey": {
"type": "string",
"required": true
},
"expiration": {
"type": "integer",
"required": true
}
},
"required": true
},
"management": {
"type": "object",
"properties": {
"clientId": {
"type": "string",
"required": true
},
"clientSecret": {
"type": "string",
"required": true
}
},
"required": true
},
"db": {
"conn": {
"type": "string",
"format": "uri",
"required": true
}
},
"passThroughEndpoint": {
"type": "object",
"properties": {
"path": {
"type": "string",
"required": true
},
"username": {
"type": "string",
"required": true
},
"email": {
"type": "string",
"required": false
},
"password": {
"type": "string",
"required": true
}
},
"required": true
},
"pinValidationEndpoints": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string",
"required": true
},
"method": {
"type": "string",
"enum": [
"post",
"get",
"delete",
"put"
],
"required": true
},
"fields": {
"type": "object",
"properties": {
"countryISO": {
"type": "string",
"required": true
},
"phoneNumber": {
"type": "string",
"required": true
}
},
"required": true
}
},
"required": true
}
},
"salesforce": {
"type": "object",
"properties": {
"scope": {
"type": "array",
"items": {
"type": "string"
},
"required": true
},
"clientId": {
"type": "string",
"required": true
},
"clientSecret": {
"type": "string",
"required": true
},
"callbackURL": {
"type": "string",
"format": "uri",
"required": true
},
"authUrl": {
"type": "string",
"format": "uri",
"required": true
},
"tokenUrl": {
"type": "string",
"format": "uri",
"required": true
},
"renewWhenLessThan": {
"type": "integer",
"required": true
},
"expiration": {
"type": "integer",
"required": true
},
"replaceDefaultAvatar": {
"type": "object",
"properties": {
"defaultAvatar": {
"type": "string",
"required": true
},
"replacementAvatar": {
"type": "string",
"required": true
}
}
},
"required": true
},
"required": true
},
"authHeaderKey": {
"type": "string",
"required": true
},
"aws": {
"type": "object",
"properties": {
"accessKeyId": {
"type": "string",
"required": true
},
"secretAccessKey": {
"type": "string",
"required": true
},
"region": {
"type": "string",
"required": true
},
"buckets": {
"type": "object",
"properties": {
"avatars": {
"type": "string",
"required": true
}
},
"required": true
}
},
"required": true
},
"redis": {
"type": "object",
"properties": {
"host": {
"type": "string",
"format": "ip-address",
"required": true
}
},
"required": true
},
"redisKeys": {
"type": "object",
"properties": {
"user_phone_verify": {
"type": "object",
"properties": {
"key": {
"type": "string",
"required": true
},
"expireInSec": {
"type": "integer",
"required": true
}
},
"required": true
}
},
"required": true
},
"usePinVerification": {
"type": "boolean",
"required": true
},
"userPIN": {
"type": "object",
"properties": {
"size": {
"type": "integer",
"required": true
},
"attempts": {
"type": "integer",
"required": true
}
},
"required": true
},
"useEmailVerification": {
"type": "boolean",
"required": true
},
"emailVerification": {
"type": "object",
"properties": {
"subject": {
"type": "string",
"required": true
},
"text": {
"type": "string",
"required": true
}
},
"required": true
},
"services": {
"type": "object",
"properties": {
"notifications": {
"type": "string",
"format": "uri",
"required": true
}
},
"required": true
},
"version": {
"type": "object",
"properties": {
"header": {
"type": "string",
"required": true
},
"platforms": {
"type": "object"
}
},
"required": true
},
"allowedDomains": {
"type": "array",
"items": {
"type": "object"
}
},
"recoverMessage": {
"type": "object",
"properties": {
"subject": {
"type": "string",
"required": true
},
"body": {
"type": "string",
"required": true
}
},
"required": true
}
},
"additionalProperties": false,
"directProxyUrls": {
"type": "array",
"items": {
"type": "string"
}
}
}