Make env vars more palatable for containerization (#10895)

* refactor(env-vars): remove object/colon syntax

* fix(tests): correct config expectations
This commit is contained in:
Sabe Jones
2018-12-06 10:13:49 -06:00
committed by GitHub
parent 18ab57eb91
commit f42e22b58f
25 changed files with 140 additions and 178 deletions

View File

@@ -1,116 +1,81 @@
{ {
"PORT":3000, "ADMIN_EMAIL": "you@example.com",
"ENABLE_CONSOLE_LOGS_IN_PROD":"false", "AMAZON_PAYMENTS_CLIENT_ID": "CLIENT_ID",
"IP":"0.0.0.0", "AMAZON_PAYMENTS_MODE": "sandbox",
"WEB_CONCURRENCY":1, "AMAZON_PAYMENTS_MWS_KEY": "MWS_KEY",
"BASE_URL":"http://localhost:3000", "AMAZON_PAYMENTS_MWS_SECRET": "MWS_SECRET",
"FACEBOOK_KEY":"123456789012345", "AMAZON_PAYMENTS_SELLER_ID": "SELLER_ID",
"FACEBOOK_SECRET":"aaaabbbbccccddddeeeeffff00001111", "AMPLITUDE_KEY": "AMPLITUDE_KEY",
"GOOGLE_CLIENT_ID":"123456789012345", "AMPLITUDE_SECRET": "AMPLITUDE_SECRET",
"GOOGLE_CLIENT_SECRET":"aaaabbbbccccddddeeeeffff00001111", "BASE_URL": "http://localhost:3000",
"PLAY_API": { "CRON_SAFE_MODE": "false",
"CLIENT_ID": "aaaabbbbccccddddeeeeffff00001111", "CRON_SEMI_SAFE_MODE": "false",
"CLIENT_SECRET": "aaaabbbbccccddddeeeeffff00001111", "DISABLE_REQUEST_LOGGING": "true",
"ACCESS_TOKEN":"aaaabbbbccccddddeeeeffff00001111", "EMAILS_COMMUNITY_MANAGER_EMAIL": "admin@habitica.com",
"REFRESH_TOKEN":"aaaabbbbccccddddeeeeffff00001111" "EMAILS_PRESS_ENQUIRY_EMAIL": "admin@habitica.com",
}, "EMAILS_TECH_ASSISTANCE_EMAIL": "admin@habitica.com",
"NODE_DB_URI":"mongodb://localhost/habitrpg", "EMAIL_SERVER_AUTH_PASSWORD": "password",
"TEST_DB_URI":"mongodb://localhost/habitrpg_test", "EMAIL_SERVER_AUTH_USER": "user",
"NODE_ENV":"development", "EMAIL_SERVER_URL": "http://example.com",
"ENABLE_CONSOLE_LOGS_IN_TEST": "false", "ENABLE_CONSOLE_LOGS_IN_PROD": "false",
"CRON_SAFE_MODE":"false", "ENABLE_CONSOLE_LOGS_IN_TEST": "false",
"CRON_SEMI_SAFE_MODE":"false", "FACEBOOK_KEY": "123456789012345",
"MAINTENANCE_MODE": "false", "FACEBOOK_SECRET": "aaaabbbbccccddddeeeeffff00001111",
"SESSION_SECRET":"YOUR SECRET HERE", "FLAG_REPORT_EMAIL": "email@example.com, email2@example.com",
"SESSION_SECRET_KEY": "1234567891234567891234567891234567891234567891234567891234567891", "GA_ID": "GA_ID",
"SESSION_SECRET_IV": "12345678912345678912345678912345", "GOOGLE_CLIENT_ID": "123456789012345",
"ADMIN_EMAIL": "you@example.com", "GOOGLE_CLIENT_SECRET": "aaaabbbbccccddddeeeeffff00001111",
"SMTP_USER":"user@example.com", "IAP_GOOGLE_KEYDIR": "/path/to/google/public/key/dir/",
"SMTP_PASS":"password", "IGNORE_REDIRECT": "true",
"SMTP_SERVICE":"Gmail", "ITUNES_SHARED_SECRET": "aaaabbbbccccddddeeeeffff00001111",
"SMTP_HOST":"example.com", "LOGGLY_CLIENT_TOKEN": "token",
"SMTP_PORT": 587, "LOGGLY_SUBDOMAIN": "example-subdomain",
"SMTP_TLS": true, "LOGGLY_TOKEN": "example-token",
"STRIPE_API_KEY":"aaaabbbbccccddddeeeeffff00001111", "MAINTENANCE_MODE": "false",
"STRIPE_PUB_KEY":"22223333444455556666777788889999", "NODE_DB_URI": "mongodb://localhost/habitrpg",
"NEW_RELIC_LICENSE_KEY":"NEW_RELIC_LICENSE_KEY", "NODE_ENV": "development",
"NEW_RELIC_NO_CONFIG_FILE":"true", "PATH": "bin:node_modules/.bin:/usr/local/bin:/usr/bin:/bin",
"NEW_RELIC_APPLICATION_ID":"NEW_RELIC_APPLICATION_ID", "PAYPAL_BILLING_PLANS_basic_12mo": "basic_12mo",
"NEW_RELIC_API_KEY":"NEW_RELIC_API_KEY", "PAYPAL_BILLING_PLANS_basic_3mo": "basic_3mo",
"GA_ID": "GA_ID", "PAYPAL_BILLING_PLANS_basic_6mo": "basic_6mo",
"AMPLITUDE_KEY": "AMPLITUDE_KEY", "PAYPAL_BILLING_PLANS_basic_earned": "basic_earned",
"AMPLITUDE_SECRET": "AMPLITUDE_SECRET", "PAYPAL_BILLING_PLANS_google_6mo": "google_6mo",
"AMAZON_PAYMENTS": { "PAYPAL_CLIENT_ID": "client_id",
"SELLER_ID": "SELLER_ID", "PAYPAL_CLIENT_SECRET": "client_secret",
"CLIENT_ID": "CLIENT_ID", "PAYPAL_EXPERIENCE_PROFILE_ID": "xp_profile_id",
"MWS_KEY": "", "PAYPAL_MODE": "sandbox",
"MWS_SECRET": "", "PLAY_API_ACCESS_TOKEN": "aaaabbbbccccddddeeeeffff00001111",
"MODE": "sandbox" "PLAY_API_CLIENT_ID": "aaaabbbbccccddddeeeeffff00001111",
}, "PLAY_API_CLIENT_SECRET": "aaaabbbbccccddddeeeeffff00001111",
"FLAG_REPORT_EMAIL": "email@mod.com,email2@mod.com", "PLAY_API_REFRESH_TOKEN": "aaaabbbbccccddddeeeeffff00001111",
"EMAIL_SERVER": { "PORT": 3000,
"url": "http://example.com", "PUSH_CONFIGS_APN_ENABLED": "false",
"authUser": "user", "PUSH_CONFIGS_APN_KEY": "xxxxxxxxxx",
"authPassword": "password" "PUSH_CONFIGS_APN_KEY_ID": "xxxxxxxxxx",
}, "PUSH_CONFIGS_APN_TEAM_ID": "aaabbbcccd",
"S3":{ "PUSH_CONFIGS_FCM_SERVER_API_KEY": "aaabbbcccd",
"bucket":"bucket", "S3_ACCESS_KEY_ID": "accessKeyId",
"accessKeyId":"accessKeyId", "S3_BUCKET": "bucket",
"secretAccessKey":"secretAccessKey" "S3_SECRET_ACCESS_KEY": "secretAccessKey",
}, "SESSION_SECRET": "YOUR SECRET HERE",
"SLACK_URL": "https://hooks.slack.com/services/some-url", "SESSION_SECRET_IV": "12345678912345678912345678912345",
"TRANSIFEX_SLACK_CHANNEL": "transifex", "SESSION_SECRET_KEY": "1234567891234567891234567891234567891234567891234567891234567891",
"PAYPAL":{ "SITE_HTTP_AUTH_ENABLED": "false",
"billing_plans": { "SITE_HTTP_AUTH_PASSWORD": "password",
"basic_earned":"basic_earned", "SITE_HTTP_AUTH_USERNAME": "admin",
"basic_3mo":"basic_3mo", "SLACK_FLAGGING_FOOTER_LINK": "https://habitrpg.github.io/flag-o-rama/",
"basic_6mo":"basic_6mo", "SLACK_FLAGGING_URL": "https://hooks.slack.com/services/id/id/id",
"google_6mo":"google_6mo", "SLACK_SUBSCRIPTIONS_URL": "https://hooks.slack.com/services/id/id/id",
"basic_12mo":"basic_12mo" "SLACK_URL": "https://hooks.slack.com/services/some-url",
}, "SMTP_HOST": "example.com",
"mode":"sandbox", "SMTP_PASS": "password",
"client_id":"client_id", "SMTP_PORT": 587,
"client_secret":"client_secret", "SMTP_SERVICE": "Gmail",
"experience_profile_id": "" "SMTP_TLS": "true",
}, "SMTP_USER": "user@example.com",
"IAP_GOOGLE_KEYDIR": "/path/to/google/public/key/dir/", "STRIPE_API_KEY": "aaaabbbbccccddddeeeeffff00001111",
"LOGGLY_TOKEN": "token", "STRIPE_PUB_KEY": "22223333444455556666777788889999",
"LOGGLY_CLIENT_TOKEN": "token", "TEST_DB_URI": "mongodb://localhost/habitrpg_test",
"LOGGLY_ACCOUNT": "account", "TRANSIFEX_SLACK_CHANNEL": "transifex",
"PUSH_CONFIGS": { "WEB_CONCURRENCY": 1
"GCM_SERVER_API_KEY": "",
"APN_ENABLED": "false",
"APN_KEY_ID": "xxxxxxxxxx",
"APN_KEY": "xxxxxxxxxx",
"APN_TEAM_ID": "aaabbbcccd",
"FCM_SERVER_API_KEY": ""
},
"SITE_HTTP_AUTH": {
"ENABLED": "false",
"USERNAME": "admin",
"PASSWORD": "password"
},
"SLACK": {
"FLAGGING_URL": "https://hooks.slack.com/services/id/id/id",
"FLAGGING_FOOTER_LINK": "https://habitrpg.github.io/flag-o-rama/",
"SUBSCRIPTIONS_URL": "https://hooks.slack.com/services/id/id/id"
},
"ITUNES_SHARED_SECRET": "aaaabbbbccccddddeeeeffff00001111",
"EMAILS" : {
"COMMUNITY_MANAGER_EMAIL" : "admin@habitica.com",
"TECH_ASSISTANCE_EMAIL" : "admin@habitica.com",
"PRESS_ENQUIRY_EMAIL" : "admin@habitica.com"
},
"LOGGLY" : {
"TOKEN" : "example-token",
"SUBDOMAIN" : "exmaple-subdomain"
},
"KAFKA": {
"GROUP_ID": "",
"CLOUDKARAFKA_BROKERS": "",
"CLOUDKARAFKA_USERNAME": "",
"CLOUDKARAFKA_PASSWORD": "",
"CLOUDKARAFKA_TOPIC_PREFIX": ""
},
"MIGRATION_CONNECT_STRING": "mongodb://localhost:27017/habitrpg?auto_reconnect=true"
} }

View File

@@ -12,28 +12,27 @@ const nconf = require('nconf');
const _ = require('lodash'); const _ = require('lodash');
const paypal = require('paypal-rest-sdk'); const paypal = require('paypal-rest-sdk');
const blocks = require('../website/common').content.subscriptionBlocks; const blocks = require('../website/common').content.subscriptionBlocks;
const live = nconf.get('PAYPAL:mode') === 'live'; const live = nconf.get('PAYPAL_MODE') === 'live';
nconf.argv().env().file('user', path.join(path.resolve(__dirname, '../config.json'))); nconf.argv().env().file('user', path.join(path.resolve(__dirname, '../config.json')));
let OP = 'create'; // list create update remove let OP = 'create'; // list get update create create-webprofile
paypal.configure({ paypal.configure({
mode: nconf.get('PAYPAL:mode'), // sandbox or live mode: nconf.get('PAYPAL_MODE'), // sandbox or live
client_id: nconf.get('PAYPAL:client_id'), client_id: nconf.get('PAYPAL_CLIENT_ID'),
client_secret: nconf.get('PAYPAL:client_secret'), client_secret: nconf.get('PAYPAL_CLIENT_SECRET'),
}); });
// https://developer.paypal.com/docs/api/#billing-plans-and-agreements // https://developer.paypal.com/docs/api/#billing-plans-and-agreements
let billingPlanTitle = 'Habitica Subscription'; let billingPlanTitle = 'Habitica Subscription';
let billingPlanAttributes = { let billingPlanAttributes = {
name: billingPlanTitle,
description: billingPlanTitle, description: billingPlanTitle,
type: 'INFINITE', type: 'INFINITE',
merchant_preferences: { merchant_preferences: {
auto_bill_amount: 'yes', auto_bill_amount: 'yes',
cancel_url: live ? 'https://habitica.com' : 'http://localhost:3000', cancel_url: live ? 'https://habitica.com' : 'http://localhost:3000',
return_url: `${live ? 'https://habitica.com' : 'http://localhost:3000' }/paypal/subscribe/success`, return_url: `${live ? 'https://habitica.com' : 'http://localhost:3000'}/paypal/subscribe/success`,
}, },
payment_definitions: [{ payment_definitions: [{
type: 'REGULAR', type: 'REGULAR',
@@ -45,7 +44,7 @@ let billingPlanAttributes = {
_.each(blocks, (block) => { _.each(blocks, (block) => {
block.definition = _.cloneDeep(billingPlanAttributes); block.definition = _.cloneDeep(billingPlanAttributes);
_.merge(block.definition.payment_definitions[0], { _.merge(block.definition.payment_definitions[0], {
name: `${billingPlanTitle } ($${block.price} every ${block.months} months, recurring)`, name: `${billingPlanTitle} ($${block.price} every ${block.months} months, recurring)`,
frequency_interval: `${block.months}`, frequency_interval: `${block.months}`,
amount: { amount: {
currency: 'USD', currency: 'USD',
@@ -63,7 +62,7 @@ switch (OP) {
}); });
break; break;
case 'get': case 'get':
paypal.billingPlan.get(nconf.get('PAYPAL:billing_plans:12'), (err, plan) => { paypal.billingPlan.get(nconf.get('PAYPAL_BILLING_PLANS_basic_12mo'), (err, plan) => {
console.log({err, plan}); console.log({err, plan});
}); });
break; break;
@@ -75,7 +74,7 @@ switch (OP) {
cancel_url: 'https://habitica.com', cancel_url: 'https://habitica.com',
}, },
}; };
paypal.billingPlan.update(nconf.get('PAYPAL:billing_plans:12'), updatePayload, (err, res) => { paypal.billingPlan.update(nconf.get('PAYPAL_BILLING_PLANS_basic_12mo'), updatePayload, (err, res) => {
console.log({err, plan: res}); console.log({err, plan: res});
}); });
break; break;
@@ -101,9 +100,6 @@ switch (OP) {
}); });
}); });
break; break;
case 'remove': break;
case 'create-webprofile': case 'create-webprofile':
let webexpinfo = { let webexpinfo = {
name: 'HabiticaProfile', name: 'HabiticaProfile',
@@ -116,4 +112,4 @@ switch (OP) {
console.log(error, result); console.log(error, result);
}); });
break; break;
} }

View File

@@ -15,6 +15,7 @@ describe('checkout', () => {
function getPaypalCreateOptions (description, amount) { function getPaypalCreateOptions (description, amount) {
return { return {
experience_profile_id: 'xp_profile_id',
intent: 'sale', intent: 'sale',
payer: { payment_method: 'Paypal' }, payer: { payment_method: 'Paypal' },
redirect_urls: { redirect_urls: {

View File

@@ -110,7 +110,7 @@ describe('slack', () => {
}); });
it('noops if no flagging url is provided', () => { it('noops if no flagging url is provided', () => {
sandbox.stub(nconf, 'get').withArgs('SLACK:FLAGGING_URL').returns(''); sandbox.stub(nconf, 'get').withArgs('SLACK_FLAGGING_URL').returns('');
sandbox.stub(logger, 'error'); sandbox.stub(logger, 'error');
let reRequiredSlack = requireAgain('../../../../website/server/libs/slack'); let reRequiredSlack = requireAgain('../../../../website/server/libs/slack');

View File

@@ -106,7 +106,7 @@ describe('POST /groups/:id/chat/:id/clearflags', () => {
.to.eventually.be.rejected.and.eql({ .to.eventually.be.rejected.and.eql({
code: 400, code: 400,
error: 'BadRequest', error: 'BadRequest',
message: t('messageCannotFlagSystemMessages', {communityManagerEmail: config.EMAILS.COMMUNITY_MANAGER_EMAIL}), message: t('messageCannotFlagSystemMessages', {communityManagerEmail: config.EMAILS_COMMUNITY_MANAGER_EMAIL}),
}); });
// let messages = await members[0].get(`/groups/${group._id}/chat`); // let messages = await members[0].get(`/groups/${group._id}/chat`);
// expect(messages[0].id).to.eql(skillMsg.id); // expect(messages[0].id).to.eql(skillMsg.id);

View File

@@ -333,7 +333,7 @@ describe('Post /groups/:groupId/invite', () => {
.to.eventually.be.rejected.and.eql({ .to.eventually.be.rejected.and.eql({
code: 401, code: 401,
error: 'NotAuthorized', error: 'NotAuthorized',
message: t('inviteLimitReached', {techAssistanceEmail: nconf.get('EMAILS:TECH_ASSISTANCE_EMAIL')}), message: t('inviteLimitReached', {techAssistanceEmail: nconf.get('EMAILS_TECH_ASSISTANCE_EMAIL')}),
}); });
}); });

View File

@@ -45,7 +45,7 @@ describe('POST /user/auth/local/login', () => {
})).to.eventually.be.rejected.and.eql({ })).to.eventually.be.rejected.and.eql({
code: 401, code: 401,
error: 'NotAuthorized', error: 'NotAuthorized',
message: t('accountSuspended', { communityManagerEmail: nconf.get('EMAILS:COMMUNITY_MANAGER_EMAIL'), userId: user._id }), message: t('accountSuspended', { communityManagerEmail: nconf.get('EMAILS_COMMUNITY_MANAGER_EMAIL'), userId: user._id }),
}); });
}); });

View File

@@ -71,7 +71,7 @@ describe('PUT /user/auth/update-email', () => {
})).to.eventually.be.rejected.and.eql({ })).to.eventually.be.rejected.and.eql({
code: 401, code: 401,
error: 'NotAuthorized', error: 'NotAuthorized',
message: t('cannotFulfillReq', { techAssistanceEmail: nconf.get('EMAILS:TECH_ASSISTANCE_EMAIL') }), message: t('cannotFulfillReq', { techAssistanceEmail: nconf.get('EMAILS_TECH_ASSISTANCE_EMAIL') }),
}); });
}); });

View File

@@ -15,11 +15,11 @@ setupNconf(configFile);
// @TODO: Do we need? const CLIENT_VARS = ['language', 'isStaticPage', 'availableLanguages', 'translations', // @TODO: Do we need? const CLIENT_VARS = ['language', 'isStaticPage', 'availableLanguages', 'translations',
// 'FACEBOOK_KEY', 'GOOGLE_CLIENT_ID', 'NODE_ENV', 'BASE_URL', 'GA_ID', // 'FACEBOOK_KEY', 'GOOGLE_CLIENT_ID', 'NODE_ENV', 'BASE_URL', 'GA_ID',
// 'AMAZON_PAYMENTS', 'STRIPE_PUB_KEY', 'AMPLITUDE_KEY', // 'AMAZON_PAYMENTS', 'STRIPE_PUB_KEY', 'AMPLITUDE_KEY',
// 'worldDmg', 'mods', 'IS_MOBILE', 'PUSHER:KEY', 'PUSHER:ENABLED']; // 'worldDmg', 'mods', 'IS_MOBILE'];
const AMAZON_SELLER_ID = nconf.get('AMAZON_PAYMENTS:SELLER_ID') || nconf.get('AMAZON_PAYMENTS_SELLER_ID'); const AMAZON_SELLER_ID = nconf.get('AMAZON_PAYMENTS_SELLER_ID');
const AMAZON_CLIENT_ID = nconf.get('AMAZON_PAYMENTS:CLIENT_ID') || nconf.get('AMAZON_PAYMENTS_CLIENT_ID'); const AMAZON_CLIENT_ID = nconf.get('AMAZON_PAYMENTS_CLIENT_ID');
const AMAZON_MODE = nconf.get('AMAZON_PAYMENTS:MODE') || nconf.get('AMAZON_PAYMENTS_MODE'); const AMAZON_MODE = nconf.get('AMAZON_PAYMENTS_MODE');
let env = { let env = {
NODE_ENV: '"production"', NODE_ENV: '"production"',
@@ -30,13 +30,13 @@ let env = {
MODE: `"${AMAZON_MODE}"`, MODE: `"${AMAZON_MODE}"`,
}, },
EMAILS: { EMAILS: {
COMMUNITY_MANAGER_EMAIL: `"${nconf.get('EMAILS:COMMUNITY_MANAGER_EMAIL')}"`, COMMUNITY_MANAGER_EMAIL: `"${nconf.get('EMAILS_COMMUNITY_MANAGER_EMAIL')}"`,
TECH_ASSISTANCE_EMAIL: `"${nconf.get('EMAILS:TECH_ASSISTANCE_EMAIL')}"`, TECH_ASSISTANCE_EMAIL: `"${nconf.get('EMAILS_TECH_ASSISTANCE_EMAIL')}"`,
PRESS_ENQUIRY_EMAIL: `"${nconf.get('EMAILS:PRESS_ENQUIRY_EMAIL')}"`, PRESS_ENQUIRY_EMAIL: `"${nconf.get('EMAILS_PRESS_ENQUIRY_EMAIL')}"`,
}, },
}; };
'NODE_ENV BASE_URL GA_ID STRIPE_PUB_KEY FACEBOOK_KEY GOOGLE_CLIENT_ID AMPLITUDE_KEY PUSHER:KEY PUSHER:ENABLED LOGGLY_CLIENT_TOKEN' 'NODE_ENV BASE_URL GA_ID STRIPE_PUB_KEY FACEBOOK_KEY GOOGLE_CLIENT_ID AMPLITUDE_KEY LOGGLY_CLIENT_TOKEN'
.split(' ') .split(' ')
.forEach(key => { .forEach(key => {
env[key] = `"${nconf.get(key)}"`; env[key] = `"${nconf.get(key)}"`;

View File

@@ -23,7 +23,7 @@ import {
import {verifyUsername} from '../../libs/user/validation'; import {verifyUsername} from '../../libs/user/validation';
const BASE_URL = nconf.get('BASE_URL'); const BASE_URL = nconf.get('BASE_URL');
const TECH_ASSISTANCE_EMAIL = nconf.get('EMAILS:TECH_ASSISTANCE_EMAIL'); const TECH_ASSISTANCE_EMAIL = nconf.get('EMAILS_TECH_ASSISTANCE_EMAIL');
let api = {}; let api = {};

View File

@@ -29,7 +29,7 @@ import shared from '../../../common';
import apiError from '../../libs/apiError'; import apiError from '../../libs/apiError';
const MAX_EMAIL_INVITES_BY_USER = 200; const MAX_EMAIL_INVITES_BY_USER = 200;
const TECH_ASSISTANCE_EMAIL = nconf.get('EMAILS:TECH_ASSISTANCE_EMAIL'); const TECH_ASSISTANCE_EMAIL = nconf.get('EMAILS_TECH_ASSISTANCE_EMAIL');
/** /**
* @apiDefine GroupBodyInvalid * @apiDefine GroupBodyInvalid

View File

@@ -23,7 +23,7 @@ import * as userLib from '../../libs/user';
import nconf from 'nconf'; import nconf from 'nconf';
import get from 'lodash/get'; import get from 'lodash/get';
const TECH_ASSISTANCE_EMAIL = nconf.get('EMAILS:TECH_ASSISTANCE_EMAIL'); const TECH_ASSISTANCE_EMAIL = nconf.get('EMAILS_TECH_ASSISTANCE_EMAIL');
const DELETE_CONFIRMATION = 'DELETE'; const DELETE_CONFIRMATION = 'DELETE';
/** /**

View File

@@ -17,7 +17,7 @@ import {
S3, S3,
} from '../../libs/aws'; } from '../../libs/aws';
const S3_BUCKET = nconf.get('S3:bucket'); const S3_BUCKET = nconf.get('S3_BUCKET');
const BASE_URL = nconf.get('BASE_URL'); const BASE_URL = nconf.get('BASE_URL');

View File

@@ -3,7 +3,7 @@ import shortid from 'short-uuid';
import { NotAuthorized } from '../errors'; import { NotAuthorized } from '../errors';
const COMMUNITY_MANAGER_EMAIL = nconf.get('EMAILS:COMMUNITY_MANAGER_EMAIL'); const COMMUNITY_MANAGER_EMAIL = nconf.get('EMAILS_COMMUNITY_MANAGER_EMAIL');
const translator = shortid('0123456789abcdefghijklmnopqrstuvwxyz'); const translator = shortid('0123456789abcdefghijklmnopqrstuvwxyz');
function generateUsername () { function generateUsername () {

View File

@@ -2,6 +2,6 @@ import AWS from 'aws-sdk';
import nconf from 'nconf'; import nconf from 'nconf';
export const S3 = new AWS.S3({ export const S3 = new AWS.S3({
accessKeyId: nconf.get('S3:accessKeyId'), accessKeyId: nconf.get('S3_ACCESS_KEY_ID'),
secretAccessKey: nconf.get('S3:secretAccessKey'), secretAccessKey: nconf.get('S3_SECRET_ACCESS_KEY'),
}); });

View File

@@ -12,7 +12,7 @@ import { model as Group } from '../../models/group';
import { chatModel as Chat } from '../../models/message'; import { chatModel as Chat } from '../../models/message';
import apiError from '../apiError'; import apiError from '../apiError';
const COMMUNITY_MANAGER_EMAIL = nconf.get('EMAILS:COMMUNITY_MANAGER_EMAIL'); const COMMUNITY_MANAGER_EMAIL = nconf.get('EMAILS_COMMUNITY_MANAGER_EMAIL');
const FLAG_REPORT_EMAILS = nconf.get('FLAG_REPORT_EMAIL').split(',').map((email) => { const FLAG_REPORT_EMAILS = nconf.get('FLAG_REPORT_EMAIL').split(',').map((email) => {
return { email, canSend: true }; return { email, canSend: true };
}); });

View File

@@ -8,10 +8,10 @@ import common from '../../common';
const IS_PROD = nconf.get('IS_PROD'); const IS_PROD = nconf.get('IS_PROD');
const EMAIL_SERVER = { const EMAIL_SERVER = {
url: nconf.get('EMAIL_SERVER:url'), url: nconf.get('EMAIL_SERVER_URL'),
auth: { auth: {
user: nconf.get('EMAIL_SERVER:authUser'), user: nconf.get('EMAIL_SERVER_AUTH_USER'),
password: nconf.get('EMAIL_SERVER:authPassword'), password: nconf.get('EMAIL_SERVER_AUTH_PASSWORD'),
}, },
}; };
const BASE_URL = nconf.get('BASE_URL'); const BASE_URL = nconf.get('BASE_URL');

View File

@@ -10,10 +10,10 @@ import iap from 'in-app-purchase';
iap.config({ iap.config({
// This is the path to the directory containing iap-sanbox/iap-live files // This is the path to the directory containing iap-sanbox/iap-live files
googlePublicKeyPath: nconf.get('IAP_GOOGLE_KEYDIR'), googlePublicKeyPath: nconf.get('IAP_GOOGLE_KEYDIR'),
googleAccToken: nconf.get('PLAY_API:ACCESS_TOKEN'), googleAccToken: nconf.get('PLAY_API_ACCESS_TOKEN'),
googleRefToken: nconf.get('PLAY_API:REFRESH_TOKEN'), googleRefToken: nconf.get('PLAY_API_REFRESH_TOKEN'),
googleClientID: nconf.get('PLAY_API:CLIENT_ID'), googleClientID: nconf.get('PLAY_API_CLIENT_ID'),
googleClientSecret: nconf.get('PLAY_API:CLIENT_SECRET'), googleClientSecret: nconf.get('PLAY_API_CLIENT_SECRET'),
applePassword: nconf.get('ITUNES_SHARED_SECRET'), applePassword: nconf.get('ITUNES_SHARED_SECRET'),
}); });

View File

@@ -22,8 +22,8 @@ if (IS_PROD) {
prettyPrint: false, prettyPrint: false,
}); });
logger.add(winston.transports.Loggly, { logger.add(winston.transports.Loggly, {
inputToken: nconf.get('LOGGLY:TOKEN'), inputToken: nconf.get('LOGGLY_TOKEN'),
subdomain: nconf.get('LOGGLY:SUBDOMAIN'), subdomain: nconf.get('LOGGLY_SUBDOMAIN'),
tags: ['Winston-NodeJS'], tags: ['Winston-NodeJS'],
json: true, json: true,
}); });

View File

@@ -22,14 +22,14 @@ import { model as Coupon } from '../../models/coupon';
// TODO better handling of errors // TODO better handling of errors
const i18n = common.i18n; const i18n = common.i18n;
const IS_SANDBOX = nconf.get('AMAZON_PAYMENTS:MODE') === 'sandbox'; const IS_SANDBOX = nconf.get('AMAZON_PAYMENTS_MODE') === 'sandbox';
let amzPayment = amazonPayments.connect({ let amzPayment = amazonPayments.connect({
environment: amazonPayments.Environment[IS_SANDBOX ? 'Sandbox' : 'Production'], environment: amazonPayments.Environment[IS_SANDBOX ? 'Sandbox' : 'Production'],
sellerId: nconf.get('AMAZON_PAYMENTS:SELLER_ID'), sellerId: nconf.get('AMAZON_PAYMENTS_SELLER_ID'),
mwsAccessKey: nconf.get('AMAZON_PAYMENTS:MWS_KEY'), mwsAccessKey: nconf.get('AMAZON_PAYMENTS_MWS_KEY'),
mwsSecretKey: nconf.get('AMAZON_PAYMENTS:MWS_SECRET'), mwsSecretKey: nconf.get('AMAZON_PAYMENTS_MWS_SECRET'),
clientId: nconf.get('AMAZON_PAYMENTS:CLIENT_ID'), clientId: nconf.get('AMAZON_PAYMENTS_CLIENT_ID'),
}); });
let api = {}; let api = {};

View File

@@ -12,7 +12,7 @@ import {
sendTxn as txnEmail, sendTxn as txnEmail,
} from '../email'; } from '../email';
const TECH_ASSISTANCE_EMAIL = nconf.get('EMAILS:TECH_ASSISTANCE_EMAIL'); const TECH_ASSISTANCE_EMAIL = nconf.get('EMAILS_TECH_ASSISTANCE_EMAIL');
const JOINED_GROUP_PLAN = 'joined group plan'; const JOINED_GROUP_PLAN = 'joined group plan';
function _dateDiff (earlyDate, lateDate) { function _dateDiff (earlyDate, lateDate) {

View File

@@ -28,16 +28,16 @@ const i18n = shared.i18n;
// a web interface for billing-plan creation), see ./paypalBillingSetup.js for how. After the billing plan is created // a web interface for billing-plan creation), see ./paypalBillingSetup.js for how. After the billing plan is created
// there, get it's plan.id and store it in config.json // there, get it's plan.id and store it in config.json
_.each(shared.content.subscriptionBlocks, (block) => { _.each(shared.content.subscriptionBlocks, (block) => {
block.paypalKey = nconf.get(`PAYPAL:billing_plans:${block.key}`); block.paypalKey = nconf.get(`PAYPAL_BILLING_PLANS_${block.key}`);
}); });
paypal.configure({ paypal.configure({
mode: nconf.get('PAYPAL:mode'), // sandbox or live mode: nconf.get('PAYPAL_MODE'), // sandbox or live
client_id: nconf.get('PAYPAL:client_id'), client_id: nconf.get('PAYPAL_CLIENT_ID'),
client_secret: nconf.get('PAYPAL:client_secret'), client_secret: nconf.get('PAYPAL_CLIENT_SECRET'),
}); });
let experienceProfileId = nconf.get('PAYPAL:experience_profile_id'); let experienceProfileId = nconf.get('PAYPAL_EXPERIENCE_PROFILE_ID');
// TODO better handling of errors // TODO better handling of errors
// @TODO: Create constants // @TODO: Create constants

View File

@@ -4,20 +4,20 @@ import apn from 'apn';
import logger from './logger'; import logger from './logger';
import gcmLib from 'node-gcm'; // works with FCM notifications too import gcmLib from 'node-gcm'; // works with FCM notifications too
const FCM_API_KEY = nconf.get('PUSH_CONFIGS:FCM_SERVER_API_KEY'); const FCM_API_KEY = nconf.get('PUSH_CONFIGS_FCM_SERVER_API_KEY');
const fcmSender = FCM_API_KEY ? new gcmLib.Sender(FCM_API_KEY) : undefined; const fcmSender = FCM_API_KEY ? new gcmLib.Sender(FCM_API_KEY) : undefined;
let apnProvider; let apnProvider;
// Load APN certificate and key from S3 // Load APN certificate and key from S3
const APN_ENABLED = nconf.get('PUSH_CONFIGS:APN_ENABLED') === 'true'; const APN_ENABLED = nconf.get('PUSH_CONFIGS_APN_ENABLED') === 'true';
if (APN_ENABLED) { if (APN_ENABLED) {
apnProvider = APN_ENABLED ? new apn.Provider({ apnProvider = APN_ENABLED ? new apn.Provider({
token: { token: {
key: nconf.get('PUSH_CONFIGS:APN_KEY'), key: nconf.get('PUSH_CONFIGS_APN_KEY'),
keyId: nconf.get('PUSH_CONFIGS:APN_KEY_ID'), keyId: nconf.get('PUSH_CONFIGS_APN_KEY_ID'),
teamId: nconf.get('PUSH_CONFIGS:APN_TEAM_ID'), teamId: nconf.get('PUSH_CONFIGS_APN_TEAM_ID'),
}, },
production: nconf.get('IS_PROD'), production: nconf.get('IS_PROD'),
}) : undefined; }) : undefined;

View File

@@ -5,9 +5,9 @@ import { TAVERN_ID } from '../models/group';
import nconf from 'nconf'; import nconf from 'nconf';
import moment from 'moment'; import moment from 'moment';
const SLACK_FLAGGING_URL = nconf.get('SLACK:FLAGGING_URL'); const SLACK_FLAGGING_URL = nconf.get('SLACK_FLAGGING_URL');
const SLACK_FLAGGING_FOOTER_LINK = nconf.get('SLACK:FLAGGING_FOOTER_LINK'); const SLACK_FLAGGING_FOOTER_LINK = nconf.get('SLACK_FLAGGING_FOOTER_LINK');
const SLACK_SUBSCRIPTIONS_URL = nconf.get('SLACK:SUBSCRIPTIONS_URL'); const SLACK_SUBSCRIPTIONS_URL = nconf.get('SLACK_SUBSCRIPTIONS_URL');
const BASE_URL = nconf.get('BASE_URL'); const BASE_URL = nconf.get('BASE_URL');
let flagSlack; let flagSlack;

View File

@@ -7,7 +7,7 @@ import {
import nconf from 'nconf'; import nconf from 'nconf';
import url from 'url'; import url from 'url';
const COMMUNITY_MANAGER_EMAIL = nconf.get('EMAILS:COMMUNITY_MANAGER_EMAIL'); const COMMUNITY_MANAGER_EMAIL = nconf.get('EMAILS_COMMUNITY_MANAGER_EMAIL');
function getUserFields (options, req) { function getUserFields (options, req) {
// A list of user fields that aren't needed for the route and are not loaded from the db. // A list of user fields that aren't needed for the route and are not loaded from the db.