diff --git a/NEWS.md b/NEWS.md index 3db3ddfd..36bf27f9 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,7 +1,6 @@ # Changelog -## 2.77.0 - +## 2.78.0 Released 2016-mm-dd New features: @@ -11,6 +10,23 @@ Announcements: - Upgrades turbo-carto to [0.17.0](https://github.com/CartoDB/turbo-carto/releases/tag/0.17.0). +## 2.77.1 + +Released 2016-09-28 + +Announcements: + - Upgrades camshaft to [0.44.1](https://github.com/CartoDB/camshaft/releases/tag/0.44.1). + + +## 2.77.0 + +Released 2016-09-26 + +Announcements: + - Upgrades camshaft to [0.44.0](https://github.com/CartoDB/camshaft/releases/tag/0.44.0). + - Adds a new configuration for camshaft: logger stream. + + ## 2.76.0 Released 2016-09-15 diff --git a/config/environments/development.js.example b/config/environments/development.js.example index 98404825..1432b31f 100644 --- a/config/environments/development.js.example +++ b/config/environments/development.js.example @@ -210,6 +210,12 @@ var config = { endpoint: 'http://127.0.0.1:8080/api/v2/sql/job', // the template to use for adding the host header in the batch api requests hostHeaderTemplate: '{{=it.username}}.localhost.lan' + }, + logger: { + // If filename is given logs comming from analysis client will be written + // there, in append mode. Otherwise 'log_filename' is used. Otherwise stdout is used (default). + // Log file will be re-opened on receiving the HUP signal + filename: '/tmp/analysis.log' } } ,millstone: { diff --git a/config/environments/production.js.example b/config/environments/production.js.example index 691b62e7..e7f8eb21 100644 --- a/config/environments/production.js.example +++ b/config/environments/production.js.example @@ -204,6 +204,12 @@ var config = { endpoint: 'http://127.0.0.1:8080/api/v2/sql/job', // the template to use for adding the host header in the batch api requests hostHeaderTemplate: '{{=it.username}}.localhost.lan' + }, + logger: { + // If filename is given logs comming from analysis client will be written + // there, in append mode. Otherwise 'log_filename' is used. Otherwise stdout is used (default). + // Log file will be re-opened on receiving the HUP signal + filename: 'logs/analysis.log' } } ,millstone: { diff --git a/config/environments/staging.js.example b/config/environments/staging.js.example index f223013a..08fd5c98 100644 --- a/config/environments/staging.js.example +++ b/config/environments/staging.js.example @@ -204,6 +204,12 @@ var config = { endpoint: 'http://127.0.0.1:8080/api/v2/sql/job', // the template to use for adding the host header in the batch api requests hostHeaderTemplate: '{{=it.username}}.localhost.lan' + }, + logger: { + // If filename is given logs comming from analysis client will be written + // there, in append mode. Otherwise 'log_filename' is used. Otherwise stdout is used (default). + // Log file will be re-opened on receiving the HUP signal + filename: 'logs/analysis.log' } } ,millstone: { diff --git a/config/environments/test.js.example b/config/environments/test.js.example index 057be949..1350f7e6 100644 --- a/config/environments/test.js.example +++ b/config/environments/test.js.example @@ -205,6 +205,12 @@ var config = { endpoint: 'http://127.0.0.1:8080/api/v2/sql/job', // the template to use for adding the host header in the batch api requests hostHeaderTemplate: '{{=it.username}}.localhost.lan' + }, + logger: { + // If filename is given logs comming from analysis client will be written + // there, in append mode. Otherwise 'log_filename' is used. Otherwise stdout is used (default). + // Log file will be re-opened on receiving the HUP signal + filename: 'node-windshaft.log' } } ,millstone: { diff --git a/lib/cartodb/backends/analysis.js b/lib/cartodb/backends/analysis.js index 5855da46..4ac7ba2b 100644 --- a/lib/cartodb/backends/analysis.js +++ b/lib/cartodb/backends/analysis.js @@ -1,19 +1,50 @@ var camshaft = require('camshaft'); +var fs = require('fs'); -function AnalysisBackend(options) { - var batchConfig = options.batch || {}; +function AnalysisBackend (options) { + options = options || {}; + this.setBatchConfig(options.batch); + this.setLoggerConfig(options.logger); +} + +module.exports = AnalysisBackend; + +AnalysisBackend.prototype.setBatchConfig = function (options) { + var batchConfig = options || {}; batchConfig.endpoint = batchConfig.endpoint || 'http://127.0.0.1:8080/api/v1/sql/job'; batchConfig.inlineExecution = batchConfig.inlineExecution || false; batchConfig.hostHeaderTemplate = batchConfig.hostHeaderTemplate || '{{=it.username}}.localhost.lan'; this.batchConfig = batchConfig; -} +}; -module.exports = AnalysisBackend; +AnalysisBackend.prototype.setLoggerConfig = function (options) { + var loggerConfig = options || {}; + + loggerConfig.filename = loggerConfig.filename; + + this.loggerConfig = loggerConfig; + + if (this.loggerConfig.filename) { + this.stream = fs.createWriteStream(this.loggerConfig.filename, { flags: 'a', encoding: 'utf8' }); + + process.on('SIGHUP', function () { + if (this.stream) { + this.stream.destroy(); + } + + this.stream = fs.createWriteStream(this.loggerConfig.filename, { flags: 'a', encoding: 'utf8' }); + }.bind(this)); + } +}; AnalysisBackend.prototype.create = function(analysisConfiguration, analysisDefinition, callback) { analysisConfiguration.batch.endpoint = this.batchConfig.endpoint; analysisConfiguration.batch.inlineExecution = this.batchConfig.inlineExecution; analysisConfiguration.batch.hostHeaderTemplate = this.batchConfig.hostHeaderTemplate; + analysisConfiguration.logger = { + stream: this.stream ? this.stream : process.stdout + }; + camshaft.create(analysisConfiguration, analysisDefinition, callback); }; diff --git a/lib/cartodb/server.js b/lib/cartodb/server.js index e51b39c8..e302b4bc 100644 --- a/lib/cartodb/server.js +++ b/lib/cartodb/server.js @@ -147,6 +147,7 @@ module.exports = function(serverOptions) { var tileBackend = new windshaft.backend.Tile(rendererCache); var mapValidatorBackend = new windshaft.backend.MapValidator(tileBackend, attributesBackend); var mapBackend = new windshaft.backend.Map(rendererCache, mapStore, mapValidatorBackend); + var analysisBackend = new AnalysisBackend(serverOptions.analysis); var layergroupAffectedTablesCache = new LayergroupAffectedTablesCache(); diff --git a/lib/cartodb/server_options.js b/lib/cartodb/server_options.js index 22039b8c..052e30cc 100644 --- a/lib/cartodb/server_options.js +++ b/lib/cartodb/server_options.js @@ -36,6 +36,9 @@ var analysisConfig = _.defaults(global.environment.analysis || {}, { inlineExecution: false, endpoint: 'http://127.0.0.1:8080/api/v2/sql/job', hostHeaderTemplate: '{{=it.username}}.localhost.lan' + }, + logger: { + filename: undefined } }); @@ -95,6 +98,9 @@ module.exports = { inlineExecution: analysisConfig.batch.inlineExecution, endpoint: analysisConfig.batch.endpoint, hostHeaderTemplate: analysisConfig.batch.hostHeaderTemplate + }, + logger: { + filename: analysisConfig.logger.filename } }, // Do not send unwatch on release. See http://github.com/CartoDB/Windshaft-cartodb/issues/161 diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 89b694c6..b2e8d1fa 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "windshaft-cartodb", - "version": "2.77.0", + "version": "2.78.0", "dependencies": { "body-parser": { "version": "1.14.2", @@ -90,7 +90,7 @@ }, "mime-types": { "version": "2.1.12", - "from": "mime-types@>=2.1.2 <2.2.0", + "from": "mime-types@>=2.1.11 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz", "dependencies": { "mime-db": { @@ -105,15 +105,140 @@ } }, "camshaft": { - "version": "0.43.0", - "from": "camshaft@0.43.0", - "resolved": "https://registry.npmjs.org/camshaft/-/camshaft-0.43.0.tgz", + "version": "0.44.1", + "from": "camshaft@0.44.1", + "resolved": "https://registry.npmjs.org/camshaft/-/camshaft-0.44.1.tgz", "dependencies": { "async": { "version": "1.5.2", "from": "async@>=1.5.2 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, + "bunyan": { + "version": "1.8.1", + "from": "bunyan@1.8.1", + "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.1.tgz", + "dependencies": { + "dtrace-provider": { + "version": "0.6.0", + "from": "dtrace-provider@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.6.0.tgz", + "dependencies": { + "nan": { + "version": "2.4.0", + "from": "nan@>=2.0.8 <3.0.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.4.0.tgz" + } + } + }, + "mv": { + "version": "2.1.1", + "from": "mv@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "dependencies": { + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.1 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "ncp": { + "version": "2.0.0", + "from": "ncp@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz" + }, + "rimraf": { + "version": "2.4.5", + "from": "rimraf@>=2.4.0 <2.5.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "dependencies": { + "glob": { + "version": "6.0.4", + "from": "glob@>=6.0.1 <7.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "dependencies": { + "inflight": { + "version": "1.0.5", + "from": "inflight@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.2", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + } + } + }, + "inherits": { + "version": "2.0.3", + "from": "inherits@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + }, + "minimatch": { + "version": "3.0.3", + "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.6", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "from": "balanced-match@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.4.0", + "from": "once@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.2", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } + } + } + } + } + }, + "safe-json-stringify": { + "version": "1.0.3", + "from": "safe-json-stringify@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.0.3.tgz" + }, + "moment": { + "version": "2.15.1", + "from": "moment@>=2.10.6 <3.0.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.15.1.tgz" + } + } + }, "request": { "version": "2.75.0", "from": "request@>=2.69.0 <3.0.0", @@ -146,7 +271,7 @@ }, "inherits": { "version": "2.0.3", - "from": "inherits@>=2.0.0 <3.0.0", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" }, "isarray": { @@ -567,7 +692,7 @@ "dependencies": { "mime-types": { "version": "2.1.12", - "from": "mime-types@>=2.1.11 <2.2.0", + "from": "mime-types@>=2.1.6 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz", "dependencies": { "mime-db": { @@ -717,7 +842,7 @@ "dependencies": { "inherits": { "version": "2.0.3", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "inherits@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" } } @@ -797,7 +922,7 @@ }, "mime-types": { "version": "2.1.12", - "from": "mime-types@>=2.1.11 <2.2.0", + "from": "mime-types@>=2.1.6 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz", "dependencies": { "mime-db": { @@ -2996,16 +3121,16 @@ "from": "async@>=1.5.2 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, "aws4": { "version": "1.4.1", "from": "aws4@>=1.2.1 <2.0.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz" }, + "aws-sign2": { + "version": "0.6.0", + "from": "aws-sign2@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" + }, "balanced-match": { "version": "0.4.1", "from": "balanced-match@>=0.4.1 <0.5.0", @@ -3021,31 +3146,31 @@ "from": "boom@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, - "caseless": { - "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, "brace-expansion": { "version": "1.1.4", "from": "brace-expansion@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz" }, + "caseless": { + "version": "0.11.0", + "from": "caseless@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, "chalk": { "version": "1.1.3", "from": "chalk@>=1.1.1 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" }, - "commander": { - "version": "2.9.0", - "from": "commander@>=2.9.0 <3.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" - }, "combined-stream": { "version": "1.0.5", "from": "combined-stream@>=1.0.5 <1.1.0", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" }, + "commander": { + "version": "2.9.0", + "from": "commander@>=2.9.0 <3.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" + }, "concat-map": { "version": "0.0.1", "from": "concat-map@0.0.1", @@ -3076,16 +3201,16 @@ "from": "delayed-stream@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" }, - "ecc-jsbn": { - "version": "0.1.1", - "from": "ecc-jsbn@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" - }, "delegates": { "version": "1.0.0", "from": "delegates@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" }, + "ecc-jsbn": { + "version": "0.1.1", + "from": "ecc-jsbn@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" + }, "escape-string-regexp": { "version": "1.0.5", "from": "escape-string-regexp@>=1.0.2 <2.0.0", @@ -3116,6 +3241,11 @@ "from": "fstream@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.9.tgz" }, + "fstream-ignore": { + "version": "1.0.4", + "from": "fstream-ignore@>=1.0.3 <1.1.0", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.4.tgz" + }, "gauge": { "version": "1.2.7", "from": "gauge@>=1.2.5 <1.3.0", @@ -3126,11 +3256,6 @@ "from": "generate-function@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" }, - "fstream-ignore": { - "version": "1.0.4", - "from": "fstream-ignore@>=1.0.3 <1.1.0", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.4.tgz" - }, "generate-object-property": { "version": "1.2.0", "from": "generate-object-property@>=1.1.0 <2.0.0", @@ -3141,6 +3266,11 @@ "from": "glob@>=7.0.0 <8.0.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz" }, + "graceful-fs": { + "version": "4.1.4", + "from": "graceful-fs@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz" + }, "graceful-readlink": { "version": "1.0.1", "from": "graceful-readlink@>=1.0.0", @@ -3151,10 +3281,10 @@ "from": "har-validator@>=2.0.6 <2.1.0", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz" }, - "graceful-fs": { - "version": "4.1.4", - "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz" + "has-unicode": { + "version": "2.0.0", + "from": "has-unicode@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz" }, "has-ansi": { "version": "2.0.0", @@ -3281,11 +3411,6 @@ "from": "mime-db@>=1.23.0 <1.24.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" }, - "has-unicode": { - "version": "2.0.0", - "from": "has-unicode@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz" - }, "mime-types": { "version": "2.1.11", "from": "mime-types@>=2.1.7 <2.2.0", @@ -3301,16 +3426,16 @@ "from": "minimist@0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" - }, "ms": { "version": "0.7.1", "from": "ms@0.7.1", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + }, "node-uuid": { "version": "1.4.7", "from": "node-uuid@>=1.4.7 <1.5.0", @@ -3346,16 +3471,16 @@ "from": "pinkie@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" }, - "pinkie-promise": { - "version": "2.0.1", - "from": "pinkie-promise@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - }, "process-nextick-args": { "version": "1.0.7", "from": "process-nextick-args@>=1.0.6 <1.1.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" }, + "pinkie-promise": { + "version": "2.0.1", + "from": "pinkie-promise@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + }, "qs": { "version": "6.1.0", "from": "qs@>=6.1.0 <6.2.0", @@ -3366,16 +3491,16 @@ "from": "readable-stream@>=2.0.0 <3.0.0||>=1.1.13 <2.0.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.2.tgz" }, - "request": { - "version": "2.72.0", - "from": "request@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.72.0.tgz" - }, "rimraf": { "version": "2.5.2", "from": "rimraf@>=2.5.0 <2.6.0", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz" }, + "request": { + "version": "2.72.0", + "from": "request@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.72.0.tgz" + }, "semver": { "version": "5.1.0", "from": "semver@>=5.1.0 <5.2.0", @@ -3456,18 +3581,6 @@ "from": "xtend@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" }, - "dashdash": { - "version": "1.13.1", - "from": "dashdash@>=1.12.0 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.1.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - } - } - }, "bl": { "version": "1.1.2", "from": "bl@>=1.1.2 <1.2.0", @@ -3480,10 +3593,10 @@ } } }, - "getpass": { - "version": "0.1.6", - "from": "getpass@>=0.1.1 <0.2.0", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", + "dashdash": { + "version": "1.13.1", + "from": "dashdash@>=1.12.0 <2.0.0", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.1.tgz", "dependencies": { "assert-plus": { "version": "1.0.0", @@ -3504,10 +3617,10 @@ } } }, - "sshpk": { - "version": "1.8.3", - "from": "sshpk@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz", + "getpass": { + "version": "0.1.6", + "from": "getpass@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", "dependencies": { "assert-plus": { "version": "1.0.0", @@ -3527,6 +3640,18 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" } } + }, + "sshpk": { + "version": "1.8.3", + "from": "sshpk@>=1.7.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "from": "assert-plus@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + } + } } } }, @@ -4047,7 +4172,7 @@ "dependencies": { "strip-ansi": { "version": "3.0.1", - "from": "strip-ansi@>=3.0.1 <4.0.0", + "from": "strip-ansi@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "dependencies": { "ansi-regex": { @@ -4324,7 +4449,7 @@ }, "strip-ansi": { "version": "3.0.1", - "from": "strip-ansi@>=3.0.1 <4.0.0", + "from": "strip-ansi@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "dependencies": { "ansi-regex": { diff --git a/package.json b/package.json index 7a58f7b4..0db90cb7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.77.0", + "version": "2.78.0", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" @@ -20,7 +20,7 @@ ], "dependencies": { "body-parser": "~1.14.0", - "camshaft": "0.43.0", + "camshaft": "0.44.1", "cartodb-psql": "~0.6.1", "cartodb-query-tables": "~0.1.0", "cartodb-redis": "0.13.1",