Skip to content
Snippets Groups Projects

Add support for models to work with custom main APIs beyond Vehicle

Merged Tuan Hoang Dinh Anh requested to merge tuanh/backend-core:custom-main-api-support into main
61 files
+ 1341
394
Compare changes
  • Side-by-side
  • Inline
Files
61
+ 22
4
@@ -18,6 +18,8 @@ const envVarsSchema = Joi.object()
@@ -18,6 +18,8 @@ const envVarsSchema = Joi.object()
JWT_VERIFY_EMAIL_EXPIRATION_MINUTES: Joi.number()
JWT_VERIFY_EMAIL_EXPIRATION_MINUTES: Joi.number()
.default(10)
.default(10)
.description('minutes after which verify email token expires'),
.description('minutes after which verify email token expires'),
 
JWT_COOKIE_NAME: Joi.string().required().description('JWT cookie name'),
 
JWT_COOKIE_DOMAIN: Joi.string().required().description('JWT cookie domain'),
SMTP_HOST: Joi.string().description('server that will send the emails'),
SMTP_HOST: Joi.string().description('server that will send the emails'),
SMTP_PORT: Joi.number().description('port to connect to the email server'),
SMTP_PORT: Joi.number().description('port to connect to the email server'),
SMTP_USERNAME: Joi.string().description('username for email server'),
SMTP_USERNAME: Joi.string().description('username for email server'),
@@ -45,6 +47,7 @@ const envVarsSchema = Joi.object()
@@ -45,6 +47,7 @@ const envVarsSchema = Joi.object()
ETAS_CLIENT_SECRET: Joi.string().description('ETAS client secret'),
ETAS_CLIENT_SECRET: Joi.string().description('ETAS client secret'),
ETAS_SCOPE: Joi.string().description('ETAS scope'),
ETAS_SCOPE: Joi.string().description('ETAS scope'),
ETAS_INSTANCE_ENDPOINT: Joi.string().description('ETAS instance endpoint'),
ETAS_INSTANCE_ENDPOINT: Joi.string().description('ETAS instance endpoint'),
 
ETAS_DEV_INSTANCE_ENDPOINT: Joi.string().description('ETAS dev instance endpoint'),
// Certivity
// Certivity
CERTIVITY_CLIENT_ID: Joi.string().required().description('Certivity client id'),
CERTIVITY_CLIENT_ID: Joi.string().required().description('Certivity client id'),
CERTIVITY_CLIENT_SECRET: Joi.string().required().description('Certivity client secret'),
CERTIVITY_CLIENT_SECRET: Joi.string().required().description('Certivity client secret'),
@@ -62,6 +65,16 @@ const config = {
@@ -62,6 +65,16 @@ const config = {
env: envVars.NODE_ENV,
env: envVars.NODE_ENV,
port: envVars.PORT,
port: envVars.PORT,
strictAuth: envVars.STRICT_AUTH,
strictAuth: envVars.STRICT_AUTH,
 
cors: {
 
regex: [
 
/localhost:\d+/,
 
/\.digitalauto\.tech$/,
 
/\.digitalauto\.asia$/,
 
/\.digital\.auto$/,
 
'https://digitalauto.netlify.app',
 
/127\.0\.0\.1:\d+/,
 
],
 
},
mongoose: {
mongoose: {
url: envVars.MONGODB_URL + (envVars.NODE_ENV === 'test' ? '-test' : ''),
url: envVars.MONGODB_URL + (envVars.NODE_ENV === 'test' ? '-test' : ''),
options: {
options: {
@@ -77,10 +90,14 @@ const config = {
@@ -77,10 +90,14 @@ const config = {
refreshExpirationDays: envVars.JWT_REFRESH_EXPIRATION_DAYS,
refreshExpirationDays: envVars.JWT_REFRESH_EXPIRATION_DAYS,
resetPasswordExpirationMinutes: envVars.JWT_RESET_PASSWORD_EXPIRATION_MINUTES,
resetPasswordExpirationMinutes: envVars.JWT_RESET_PASSWORD_EXPIRATION_MINUTES,
verifyEmailExpirationMinutes: envVars.JWT_VERIFY_EMAIL_EXPIRATION_MINUTES,
verifyEmailExpirationMinutes: envVars.JWT_VERIFY_EMAIL_EXPIRATION_MINUTES,
cookieRefreshOptions: {
cookie: {
secure: true,
name: envVars.JWT_COOKIE_NAME,
httpOnly: true,
options: {
sameSite: 'None',
secure: true,
 
httpOnly: true,
 
sameSite: 'None',
 
...(envVars.NODE_ENV === 'production' && { domain: envVars.JWT_COOKIE_DOMAIN }),
 
},
},
},
},
},
email: {
email: {
@@ -140,6 +157,7 @@ const config = {
@@ -140,6 +157,7 @@ const config = {
clientSecret: envVars.ETAS_CLIENT_SECRET,
clientSecret: envVars.ETAS_CLIENT_SECRET,
scope: envVars.ETAS_SCOPE,
scope: envVars.ETAS_SCOPE,
instanceEndpoint: envVars.ETAS_INSTANCE_ENDPOINT,
instanceEndpoint: envVars.ETAS_INSTANCE_ENDPOINT,
 
developmentEndpoint: envVars.ETAS_DEV_INSTANCE_ENDPOINT,
},
},
githubIssueSubmitUrl: 'https://api.github.com/repos/digital-auto/vehicle_signal_specification/issues',
githubIssueSubmitUrl: 'https://api.github.com/repos/digital-auto/vehicle_signal_specification/issues',
certivity: {
certivity: {
Loading