// Time in milliseconds to force GC cycle. // Disable by using <=0 value. module.exports.gc_interval = 10000; // In case the base_url has a :user param the username will be the one specified in the URL, // otherwise it will fallback to extract the username from the host header. module.exports.base_url = '(?:/api/:version|/user/:user/api/:version)'; // If useProfiler is true every response will be served with an // X-SQLAPI-Profile header containing elapsed timing for various // steps taken for producing the response. module.exports.useProfiler = true; module.exports.log_format = '[:date] :remote-addr :method :req[Host]:url :status :response-time ms -> :res[Content-Type] (:res[X-SQLAPI-Profiler]) (:res[X-SQLAPI-Errors]) (:res[X-SQLAPI-Log])'; // If log_filename is given logs will be written there, in append mode. Otherwise stdout is used (default). // Log file will be re-opened on receiving the HUP signal module.exports.log_filename = 'logs/cartodb-sql-api.log'; // Regular expression pattern to extract username // from hostname. Must have a single grabbing block. module.exports.user_from_host = '^(.*)\\.cartodb\\.com$'; module.exports.node_port = 8080; module.exports.node_host = '127.0.0.1'; // idle socket timeout, in miliseconds module.exports.node_socket_timeout = 600000; module.exports.environment = 'production'; // Supported labels: 'user_id' (read from redis) module.exports.db_base_name = 'cartodb_user_<%= user_id %>_db'; // Supported labels: 'user_id' (read from redis) module.exports.db_user = 'cartodb_user_<%= user_id %>'; // Supported labels: 'user_id', 'user_password' (both read from redis) module.exports.db_user_pass = '<%= user_password %>' // Name of the anonymous PostgreSQL user module.exports.db_pubuser = 'publicuser'; // Password for the anonymous PostgreSQL user module.exports.db_pubuser_pass = 'public'; module.exports.db_host = 'localhost'; module.exports.db_port = '6432'; module.exports.db_batch_port = '5432'; module.exports.finished_jobs_ttl_in_seconds = 2 * 3600; // 2 hours module.exports.batch_query_timeout = 12 * 3600 * 1000; // 12 hours in milliseconds module.exports.batch_log_filename = 'logs/batch-queries.log'; module.exports.copy_timeout = "'5h'"; module.exports.copy_from_max_post_size = 2 * 1024 * 1024 * 1024 // 2 GB; module.exports.copy_from_max_post_size_pretty = '2 GB'; // Max number of queued jobs a user can have at a given time module.exports.batch_max_queued_jobs = 64; // Capacity strategy to use. // It allows to tune how many queries run at a db host at the same time. // Options: 'fixed', 'http-simple', 'http-load' module.exports.batch_capacity_strategy = 'fixed'; // Applies when strategy='fixed'. // Number of simultaneous users running queries in the same host. // It will use 1 as min. // Default 4. module.exports.batch_capacity_fixed_amount = 4; // Applies when strategy='http-simple' or strategy='http-load'. // HTTP endpoint to check db host load. // Helps to decide the number of simultaneous users running queries in that host. // 'http-simple' will use 'available_cores' to decide the number. // 'http-load' will use 'cores' and 'relative_load' to decide the number. // It will use 1 as min. // If no template is provided it will default to 'fixed' strategy. module.exports.batch_capacity_http_url_template = 'http://<%= dbhost %>:9999/load'; // Max database connections in the pool // Subsequent connections will wait for a free slot.i // NOTE: not used by OGR-mediated accesses module.exports.db_pool_size = 500; // Milliseconds before a connection is removed from pool module.exports.db_pool_idleTimeout = 30000; // Milliseconds between idle client checking module.exports.db_pool_reapInterval = 1000; // max number of bytes for a row, when exceeded the query will throw an error //module.exports.db_max_row_size = 10 * 1024 * 1024; // allows to use an object to connect with node-postgres instead of a connection string //module.exports.db_use_config_object = true; // requires enabling db_use_config_object=true // allows to enable/disable keep alive for database connections // by default is not enabled //module.exports.db_keep_alive = { // enabled: true, // initialDelay: 5000 //}; module.exports.redis_host = '127.0.0.1'; module.exports.redis_port = 6379; module.exports.redisPool = 50; module.exports.redisIdleTimeoutMillis = 10000; module.exports.redisReapIntervalMillis = 1000; module.exports.redisLog = false; // tableCache settings module.exports.tableCacheEnabled = false; // false by default // Max number of entries in the query tables cache module.exports.tableCacheMax = 8192; // Max age of query table cache items, in milliseconds module.exports.tableCacheMaxAge = 1000*60*10; // Temporary directory, make sure it is writable by server user module.exports.tmpDir = '/tmp'; // change ogr2ogr command or path module.exports.ogr2ogrCommand = 'ogr2ogr'; // change zip command or path module.exports.zipCommand = 'zip'; // Optional statsd support module.exports.statsd = { host: 'localhost', port: 8125, prefix: 'dev.:host.', cacheDns: true // support all allowed node-statsd options }; module.exports.health = { enabled: true, username: 'development', query: 'select 1' }; module.exports.oauth = { allowedHosts: ['carto.com', 'cartodb.com'] }; module.exports.disabled_file = 'pids/disabled'; module.exports.ratelimits = { // whether it should rate limit endpoints (global configuration) rateLimitsEnabled: false, // whether it should rate limit one or more endpoints (only if rateLimitsEnabled = true) endpoints: { query: false, job_create: false, job_get: false, job_delete: false, copy_from: false, copy_to: false } } module.exports.validatePGEntitiesAccess = false; module.exports.dataIngestionLogPath = 'logs/data-ingestion.log'; module.exports.logQueries = true; module.exports.maxQueriesLogLength = 1024;