From 12209fe0dd88385458ccd40858344d0709d14cff Mon Sep 17 00:00:00 2001 From: Danny Avila <110412045+danny-avila@users.noreply.github.com> Date: Sat, 25 Nov 2023 16:34:51 -0500 Subject: [PATCH] refactor: address potential issues with deploy-compose.yml (#1220) * chore: remove /config/loader * chore: remove config/loader steps from Dockerfile.multi * chore: remove install script --- Dockerfile | 2 +- Dockerfile.multi | 8 +++++--- api/server/routes/oauth.js | 6 ++++-- api/server/services/AuthService.js | 9 ++++++--- api/strategies/discordStrategy.js | 4 +--- api/strategies/facebookStrategy.js | 4 +--- api/strategies/githubStrategy.js | 4 +--- api/strategies/googleStrategy.js | 4 +--- api/strategies/openidStrategy.js | 4 +--- config/loader.js | 6 ++++-- package.json | 1 - 11 files changed, 25 insertions(+), 27 deletions(-) diff --git a/Dockerfile b/Dockerfile index d7e419472e..1dac186b17 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ WORKDIR /app # Install call deps - Install curl for health check RUN apk --no-cache add curl && \ # We want to inherit env from the container, not the file - # This will preserve any existing env file if it's already in souce + # This will preserve any existing env file if it's already in source # otherwise it will create a new one touch .env && \ # Build deps in seperate diff --git a/Dockerfile.multi b/Dockerfile.multi index c0f1661e14..dc9f57c27b 100644 --- a/Dockerfile.multi +++ b/Dockerfile.multi @@ -1,13 +1,15 @@ # Build API, Client and Data Provider FROM node:19-alpine AS base -WORKDIR /app -COPY config/loader.js ./config/ -RUN npm install dotenv +# WORKDIR /app +# COPY config/loader.js ./config/ +# RUN touch .env +# RUN npm install dotenv WORKDIR /app/api COPY api/package*.json ./ COPY api/ ./ +RUN touch .env RUN npm install # React client build diff --git a/api/server/routes/oauth.js b/api/server/routes/oauth.js index f64930c751..e408539344 100644 --- a/api/server/routes/oauth.js +++ b/api/server/routes/oauth.js @@ -1,10 +1,12 @@ const passport = require('passport'); const express = require('express'); const router = express.Router(); -const config = require('../../../config/loader'); const { setAuthTokens } = require('../services/AuthService'); const { loginLimiter, checkBan } = require('../middleware'); -const domains = config.domains; +const domains = { + client: process.env.DOMAIN_CLIENT, + server: process.env.DOMAIN_SERVER, +}; router.use(loginLimiter); diff --git a/api/server/services/AuthService.js b/api/server/services/AuthService.js index 5be5529c96..c332cb2d7f 100644 --- a/api/server/services/AuthService.js +++ b/api/server/services/AuthService.js @@ -4,10 +4,13 @@ const User = require('../../models/User'); const Session = require('../../models/Session'); const Token = require('../../models/schema/tokenSchema'); const { registerSchema, errorsToString } = require('../../strategies/validators'); -const config = require('../../../config/loader'); const { sendEmail } = require('../utils'); -const domains = config.domains; -const isProduction = config.isProduction; +const domains = { + client: process.env.DOMAIN_CLIENT, + server: process.env.DOMAIN_SERVER, +}; + +const isProduction = process.env.NODE_ENV === 'production'; /** * Logout user diff --git a/api/strategies/discordStrategy.js b/api/strategies/discordStrategy.js index 8bdb2bb2c8..9a83c5b9ff 100644 --- a/api/strategies/discordStrategy.js +++ b/api/strategies/discordStrategy.js @@ -1,7 +1,5 @@ const { Strategy: DiscordStrategy } = require('passport-discord'); const User = require('../models/User'); -const config = require('../../config/loader'); -const domains = config.domains; const discordLogin = async (accessToken, refreshToken, profile, cb) => { try { @@ -52,7 +50,7 @@ module.exports = () => { clientID: process.env.DISCORD_CLIENT_ID, clientSecret: process.env.DISCORD_CLIENT_SECRET, - callbackURL: `${domains.server}${process.env.DISCORD_CALLBACK_URL}`, + callbackURL: `${process.env.DOMAIN_SERVER}${process.env.DISCORD_CALLBACK_URL}`, scope: ['identify', 'email'], authorizationURL: 'https://discord.com/api/oauth2/authorize?prompt=none', }, diff --git a/api/strategies/facebookStrategy.js b/api/strategies/facebookStrategy.js index 41d30754bd..b757f0a7cd 100644 --- a/api/strategies/facebookStrategy.js +++ b/api/strategies/facebookStrategy.js @@ -1,7 +1,5 @@ const FacebookStrategy = require('passport-facebook').Strategy; const User = require('../models/User'); -const config = require('../../config/loader'); -const domains = config.domains; const facebookLogin = async (accessToken, refreshToken, profile, cb) => { try { @@ -44,7 +42,7 @@ module.exports = () => { clientID: process.env.FACEBOOK_CLIENT_ID, clientSecret: process.env.FACEBOOK_CLIENT_SECRET, - callbackURL: `${domains.server}${process.env.FACEBOOK_CALLBACK_URL}`, + callbackURL: `${process.env.DOMAIN_SERVER}${process.env.FACEBOOK_CALLBACK_URL}`, proxy: true, scope: ['public_profile'], profileFields: ['id', 'email', 'name'], diff --git a/api/strategies/githubStrategy.js b/api/strategies/githubStrategy.js index 936a252597..2c8087203a 100644 --- a/api/strategies/githubStrategy.js +++ b/api/strategies/githubStrategy.js @@ -1,7 +1,5 @@ const { Strategy: GitHubStrategy } = require('passport-github2'); const User = require('../models/User'); -const config = require('../../config/loader'); -const domains = config.domains; const githubLogin = async (accessToken, refreshToken, profile, cb) => { try { @@ -41,7 +39,7 @@ module.exports = () => { clientID: process.env.GITHUB_CLIENT_ID, clientSecret: process.env.GITHUB_CLIENT_SECRET, - callbackURL: `${domains.server}${process.env.GITHUB_CALLBACK_URL}`, + callbackURL: `${process.env.DOMAIN_SERVER}${process.env.GITHUB_CALLBACK_URL}`, proxy: false, scope: ['user:email'], }, diff --git a/api/strategies/googleStrategy.js b/api/strategies/googleStrategy.js index 0870e23fee..c41142f5ce 100644 --- a/api/strategies/googleStrategy.js +++ b/api/strategies/googleStrategy.js @@ -1,7 +1,5 @@ const { Strategy: GoogleStrategy } = require('passport-google-oauth20'); const User = require('../models/User'); -const config = require('../../config/loader'); -const domains = config.domains; const googleLogin = async (accessToken, refreshToken, profile, cb) => { try { @@ -41,7 +39,7 @@ module.exports = () => { clientID: process.env.GOOGLE_CLIENT_ID, clientSecret: process.env.GOOGLE_CLIENT_SECRET, - callbackURL: `${domains.server}${process.env.GOOGLE_CALLBACK_URL}`, + callbackURL: `${process.env.DOMAIN_SERVER}${process.env.GOOGLE_CALLBACK_URL}`, proxy: true, }, googleLogin, diff --git a/api/strategies/openidStrategy.js b/api/strategies/openidStrategy.js index aa6e5d6d17..8b9b14108f 100644 --- a/api/strategies/openidStrategy.js +++ b/api/strategies/openidStrategy.js @@ -3,8 +3,6 @@ const { Issuer, Strategy: OpenIDStrategy } = require('openid-client'); const axios = require('axios'); const fs = require('fs'); const path = require('path'); -const config = require('../../config/loader'); -const domains = config.domains; const User = require('../models/User'); @@ -42,7 +40,7 @@ async function setupOpenId() { const client = new issuer.Client({ client_id: process.env.OPENID_CLIENT_ID, client_secret: process.env.OPENID_CLIENT_SECRET, - redirect_uris: [domains.server + process.env.OPENID_CALLBACK_URL], + redirect_uris: [process.env.DOMAIN_SERVER + process.env.OPENID_CALLBACK_URL], }); const openidLogin = new OpenIDStrategy( diff --git a/config/loader.js b/config/loader.js index 401f454b57..c0e3413528 100644 --- a/config/loader.js +++ b/config/loader.js @@ -35,7 +35,8 @@ class Env { if (fs.existsSync(this.envMap.default)) { hasDefault = true; dotenv.config({ - path: this.resolve(this.envMap.default), + // path: this.resolve(this.envMap.default), + path: path.resolve(__dirname, '..', this.envMap.default), }); } else { console.warn('The default .env file was not found'); @@ -49,7 +50,8 @@ class Env { // check if the file exists if (fs.existsSync(envFile)) { dotenv.config({ - path: this.resolve(envFile), + // path: this.resolve(envFile), + path: path.resolve(__dirname, '..', envFile), }); } else if (!hasDefault) { console.warn('No env files found, have you completed the install process?'); diff --git a/package.json b/package.json index f6d918d3d4..b31892444e 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,6 @@ "packages/*" ], "scripts": { - "install": "node config/install.js", "update": "node config/update.js", "add-balance": "node config/add-balance.js", "rebuild:package-lock": "node config/packages",