/**
* CogniCity Server configuration
* @file config
* @return {Object} Server configuration
*/
/* eslint-disable max-len */
require('dotenv').config({silent: true});
export default {
APP_NAME: process.env.APP_NAME || 'cognicity-server',
API_FEEDS_QLUE_CITIES: (process.env.API_FEEDS_QLUE_CITIES || 'jabodetabek,bandung,surabaya').split(','),
API_FEEDS_QLUE_DISASTER_TYPES: (process.env.API_FEEDS_QLUE_DISASTER_TYPES || 'flood').split(','),
API_FEEDS_DETIK_DISASTER_TYPES: (process.env.API_FEEDS_DEIK_DISASTER_TYPES || 'flood').split(','),
API_REPORTS_TIME_WINDOW: process.env.API_REPORTS_TIME_WINDOW || 3600,
API_REPORTS_TIME_WINDOW_MAX: process.env.API_REPORTS_TIME_WINDOW_MAX || 604800, // 1w
API_REPORTS_LIMIT: process.env.API_REPORTS_LIMIT,
API_FLOODGAUGE_REPORTS_TIME_WINDOW: process.env.API_FLOODGAUGE_REPORTS_TIME_WINDOW || 43200,
API_FLOODGAUGE_REPORTS_LIMIT: process.env.API_FLOODGAUGE_REPORTS_LIMIT,
AUTH0_AUDIENCE: process.env.AUTH0_AUDIENCE || 'https://data.petabencana.id',
AUTH0_CLIENT_ID: process.env.AUTH0_CLIENT_ID || 'auth0_client_id',
AUTH0_ISSUER: process.env.AUTH0_ISSUER || 'https://petabencana.au.auth0.com',
AUTH0_SECRET: process.env.AUTH0_SECRET || 'secret',
AWS_REGION: process.env.AWS_REGION || 'ap-southeast-1',
AWS_S3_ACCESS_KEY_ID: process.env.AWS_S3_ACCESS_KEY_ID || '',
AWS_S3_SECRET_ACCESS_KEY: process.env.AWS_S3_SECRET_ACCESS_KEY || '',
AWS_S3_SIGNATURE_VERSION: process.env.AWS_SIGNATURE_VERSION || 'v4',
BODY_LIMIT: process.env.BODY_LIMIT || '100kb',
CACHE: process.env.CACHE === 'true' || false,
CACHE_DURATION_CARDS: process.env.CACHE_DURATION_CARDS || '1 minute',
CACHE_DURATION_FLOODS: process.env.CACHE_DURATION_FLOODS || '1 hour',
CACHE_DURATION_FLOODS_STATES: process.env.CACHE_DURATION_FLOODS_STATES || '1 hour',
CACHE_DURATION_INFRASTRUCTURE: process.env.CACHE_DURATION_INFRASTRUCTURE || '1 hour',
COMPRESS: process.env.COMPRESS === 'true' || false,
CORS: process.env.CORS === 'true' || false,
CORS_HEADERS: process.env.CORS_HEADERS || ['Link'],
DISASTER_TYPES: (process.env.DISASTER_TYPES || 'flood,prep').split(','),
FORMAT_DEFAULT: process.env.FORMAT_DEFAULT || 'json',
FORMATS: (process.env.FORMATS || 'json').split(','),
GEO_FORMAT_DEFAULT: process.env.GEO_FORMAT_DEFAULT || 'topojson',
GEO_FORMATS: (process.env.GEO_FORMATS || 'geojson,topojson').split(','),
GEO_PRECISION: process.env.GEO_PRECISION || 10,
IMAGES_BUCKET: process.env.IMAGES_BUCKET || 'petabencana-image-uploads',
IMAGES_HOST: process.env.IMAGES_HOST || 'images.petabencana.id',
INFRASTRUCTURE_TYPES: (process.env.INFRASTRUCTURE_TYPES || 'floodgates,pumps,waterways').split(','),
LANGUAGES: (process.env.LANGUAGES || 'en,id').split(','),
LOG_CONSOLE: process.env.LOG_CONSOLE === 'true' || false,
LOG_DIR: process.env.LOG_DIR || '',
LOG_JSON: process.env.LOG_JSON === 'true' || false,
LOG_LEVEL: process.env.LOG_LEVEL || 'error',
LOG_MAX_FILE_SIZE: process.env.LOG_MAX_FILE_SIZE || 1024 * 1024 * 100,
LOG_MAX_FILES: process.env.LOG_MAX_FILES || 10,
NODE_ENV: process.env.NODE_ENV || 'development',
PGHOST: process.env.PGHOST || '127.0.0.1',
PGDATABASE: process.env.PGDATABASE || 'cognicity',
PGPASSWORD: process.env.PGPASSWORD || 'p@ssw0rd',
PGPORT: process.env.PGPORT || 5432,
PGSSL: process.env.PGSSL === 'true' || false,
PGTIMEOUT: process.env.PGTIMEOUT || 10000,
PGUSER: process.env.PGUSER || 'postgres',
PORT: process.env.PORT || 8001,
REGION_CODES: (process.env.REGION_CODES || 'jbd,bdg,sby').split(','),
REPORT_TYPES: (process.env.REPORT_TYPES || 'drain,desilting,canalrepair,treeclearing,flood').split(','),
RESPONSE_TIME: process.env.RESPONSE_TIME === 'true' || false,
SECURE_AUTH0: process.env.SECURE_AUTH0 === 'true' || false,
TABLE_FLOODGAUGE_REPORTS: process.env.TABLE_FLOODGAUGE_REPORTS || 'floodgauge.reports',
TABLE_FEEDS_QLUE: process.env.TABLE_FEEDS_QLUE || 'qlue.reports',
TABLE_FEEDS_DETIK: process.env.TABLE_FEEDS_DETIK || 'detik.reports',
TABLE_GRASP_CARDS: process.env.TABLE_GRASP_CARDS || 'grasp.cards',
TABLE_GRASP_LOG: process.env.TABLE_GRASP_LOG || 'grasp.log',
TABLE_GRASP_REPORTS: process.env.TABLE_GRASP_REPORTS || 'grasp.reports',
TABLE_INSTANCE_REGIONS: process.env.TABLE_INSTANCE_REGIONS || 'cognicity.instance_regions',
TABLE_LOCAL_AREAS: process.env.TABLE_LOCAL_AREAS || 'cognicity.local_areas',
TABLE_REM_STATUS: process.env.TABLE_REM_STATUS || 'cognicity.rem_status',
TABLE_REM_STATUS_LOG: process.env.TABLE_REM_STATUS_LOG || 'cognicity.rem_status_log',
TABLE_REPORTS: process.env.TABLE_REPORTS || 'cognicity.all_reports',
};