1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- const convict = require('convict');
- const { tmpdir } = require('os');
- const path = require('path');
- const { randomBytes } = require('crypto');
- const conf = convict({
- s3_bucket: {
- format: String,
- default: '',
- env: 'S3_BUCKET'
- },
- redis_host: {
- format: String,
- default: 'localhost',
- env: 'REDIS_HOST'
- },
- listen_port: {
- format: 'port',
- default: 1443,
- arg: 'port',
- env: 'PORT'
- },
- analytics_id: {
- format: String,
- default: '',
- env: 'GOOGLE_ANALYTICS_ID'
- },
- sentry_id: {
- format: String,
- default: '',
- env: 'SENTRY_CLIENT'
- },
- sentry_dsn: {
- format: String,
- default: '',
- env: 'SENTRY_DSN'
- },
- env: {
- format: ['production', 'development', 'test'],
- default: 'development',
- env: 'NODE_ENV'
- },
- max_file_size: {
- format: Number,
- default: 1024 * 1024 * 1024 * 2,
- env: 'MAX_FILE_SIZE'
- },
- expire_seconds: {
- format: Number,
- default: 86400,
- env: 'EXPIRE_SECONDS'
- },
- l10n_dev: {
- format: Boolean,
- default: false,
- env: 'L10N_DEV'
- },
- base_url: {
- format: 'url',
- default: 'https://send.firefox.com',
- env: 'BASE_URL'
- },
- file_dir: {
- format: 'String',
- default: `${tmpdir()}${path.sep}send-${randomBytes(4).toString('hex')}`,
- env: 'FILE_DIR'
- }
- });
- // Perform validation
- conf.validate({ allowed: 'strict' });
- const props = conf.getProperties();
- module.exports = props;
|