diff --git a/.env_dist b/.env_dist new file mode 100644 index 0000000000000000000000000000000000000000..246780d828c247bfb433096964e6172618996d6d --- /dev/null +++ b/.env_dist @@ -0,0 +1,13 @@ +# Modele du fichier '.env', definissant variables "d'environnement" utilisees dans divers fichiers de src/ et de db/. +# (Ces variables sont chargees par le package dotenv dans `process.env`, dans les fichiers .js et .ts ou dotenv.config() est appele) +# Copier ce fichier en le renommant '.env', (le placer a la racine du repo,) et modifier les champs comme il faut. + +TARGET_ENV=development +PORT=3000 +DB_USER=sigma +DB_PASSWD=sigmapw +DB_HOST=129.201.104.10 +#DB_HOST=127.0.0.1 # for devs using a port forwarding +FRONTEND_SERVER_URL=http://localhost:8888 +#LDAP_URI= (loaded from ldap_config.json!) +#TEST_PORT=3001 (used only in tests/, not yet implemented) diff --git a/db/knex_router.ts b/db/knex_router.ts index 34962cb8ef2c08b4e5682e2d959e2e4f63f2ca5f..3ce9bf2b228a4d96042af36d9033e3e280147a1e 100644 --- a/db/knex_router.ts +++ b/db/knex_router.ts @@ -3,7 +3,7 @@ */ require('dotenv').config(); -const environment = process.env.TARGET_ENV || 'development'; +const environment = process.env.TARGET_ENV; export const config = require('./knexfile')[environment]; console.log("Running Knex configuration '%s'", environment); diff --git a/db/knexfile.js b/db/knexfile.js index a439284e0e14dd16e2a64f497ccb8cbe580687f0..4f0e7a7db0f00acc94e92efcd3532fc522dee99c 100644 --- a/db/knexfile.js +++ b/db/knexfile.js @@ -26,8 +26,8 @@ module.exports = { client: 'pg', connection: { host: 'localhost', - user: process.env.DB_USER || 'sigma', - password: process.env.DB_PASSWD || 'sigmapw', + user: process.env.DB_USER, + password: process.env.DB_PASSWD, database: 'sigma_dev', charset: 'utf8' }, @@ -36,9 +36,9 @@ module.exports = { staging: { client: 'pg', connection: { - host: process.env.DB_HOST || '129.201.104.10', - user: process.env.DB_USER || 'sigma', - password: process.env.DB_PASSWD || 'password', + host: process.env.DB_HOST, + user: process.env.DB_USER, + password: process.env.DB_PASSWD, database: 'sigma_staging', charset: 'utf8' }, diff --git a/src/adminview/admin_router.ts b/src/adminview/admin_router.ts index a7c7ec837767f6d92232018b2d1a6bae29b3a541..736af262de715302cfc603e2ef7e474377e1a24a 100644 --- a/src/adminview/admin_router.ts +++ b/src/adminview/admin_router.ts @@ -32,8 +32,11 @@ import flash from 'connect-flash'; // packages pour l'API REST et pour GraphQL Voyager import knex from '../../db/knex_router'; import { express as graphqlVoyager } from 'graphql-voyager/middleware'; +//loads environment variables from (hidden) .env file +import dotenv from 'dotenv'; +dotenv.config(); -let port = process.env.PORT || 3000; +let port = process.env.PORT; const whitelist = [ "magi.karp", diff --git a/src/app.ts b/src/app.ts index 3f940daf2604571a868fd4bd9bf418bf95faf85c..b2da46066342f119f90b2b9aed4ea3ee4276870f 100644 --- a/src/app.ts +++ b/src/app.ts @@ -28,7 +28,9 @@ import morgan from 'morgan'; import path from 'path'; // config des paramètres de connexion au LDAP import { ldapConfig, credentialsLdapConfig } from './ldap/internal/config'; - +//loads environment variables from (hidden) .env file +import dotenv from 'dotenv'; +dotenv.config(); /** * @desc Création de l'application Express et setup de middlewares basiques @@ -45,7 +47,7 @@ app.disable('x-powered-by'); // use morgan (HTTP request logger middleware) app.use(morgan('dev')); -const FRONTEND_SERVER_URL = process.env.FRONTEND_SERVER_URL || 'http://localhost:8888'; +const FRONTEND_SERVER_URL = process.env.FRONTEND_SERVER_URL; // Options de configuration pour le _middleware_ `cors`. // CORS = Cross Origin Resource Sharing const corsOptions = { diff --git a/src/index.ts b/src/index.ts index f55c10752cdc50e6dc083b745c74d68f7b3eeb6b..e0aa4dd5fa60f18298a95c0c42482efaf2c62b89 100644 --- a/src/index.ts +++ b/src/index.ts @@ -7,7 +7,7 @@ dotenv.config(); import app from './app'; import colors from 'colors'; -const port = process.env.PORT || 3000; +const port = process.env.PORT; const hostnameConfigMap = { 'development': 'localhost', 'staging': '0.0.0.0', diff --git a/src/ldap/internal/config.ts b/src/ldap/internal/config.ts index ad76623e915817caa1234b39cade12b0ae18b5c7..d2b84df180db49fd4a92f407999006d1b0989f26 100644 --- a/src/ldap/internal/config.ts +++ b/src/ldap/internal/config.ts @@ -12,13 +12,18 @@ import fs from 'fs'; import path from 'path'; import colors from 'colors'; -// Point central ; tous les champs de la BDD sont 'cachés' dans config.json et pas visibles directement +import dotenv from 'dotenv'; +dotenv.config(); + +// Point central ; tous les champs de la BDD sont 'cachés' dans ldap_config.json et pas visibles directement let path_config = path.resolve(__dirname,'..', '..', '..', 'ldap_config.json'); console.log(colors.cyan("Loading LDAP config file from "+path_config)); export const ldapConfig = JSON.parse(fs.readFileSync(path_config).toString()); + let path_credentials = path.resolve(__dirname,'..', '..', '..', 'ldap_credentials.json') console.log(colors.cyan("Loading LDAP credentials from "+path_credentials)); export const credentialsLdapConfig = JSON.parse(fs.readFileSync(path_credentials).toString()); + // Override config server from environment if (process.env.LDAP_URI != null) { ldapConfig.server = process.env.LDAP_URI; @@ -26,4 +31,4 @@ if (process.env.LDAP_URI != null) { else { if (process.env.TARGET_ENV == `production`) { ldapConfig.server = ldapConfig.server_prod; } else { ldapConfig.server = ldapConfig.server_dev; } -} \ No newline at end of file +}