From a5b091eec880cb39029cc36ee64c99743c0cf270 Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Mon, 31 Mar 2014 12:55:04 +0200 Subject: [PATCH 1/6] Prepare for 1.10.2 --- NEWS.md | 7 ++++++- package.json | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index babceb78..a5ae2170 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ +1.10.2 -- 2014-MM-DD +-------------------- + +Bug fixes: + 1.10.1 -- 2014-03-21 -------------------- +-------------------- Bug fixes: diff --git a/package.json b/package.json index 56e5fad8..fd90f0b9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "1.10.1", + "version": "1.10.2", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From 8aeadd1960ec04c89c90d14f28d146195125cb03 Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Mon, 31 Mar 2014 12:48:40 +0200 Subject: [PATCH 2/6] Fix show_style tool broken since 1.8.1 --- NEWS.md | 2 ++ tools/show_style | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index a5ae2170..4070d5af 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,6 +2,8 @@ -------------------- Bug fixes: + + - Fix show_style tool broken since 1.8.1 1.10.1 -- 2014-03-21 -------------------- diff --git a/tools/show_style b/tools/show_style index 1cb1d09e..66ae5924 100755 --- a/tools/show_style +++ b/tools/show_style @@ -38,7 +38,8 @@ if ( ! username ) usage(me, 1); console.log("Using environment " + ENV); global.environment = require('../config/environments/' + ENV); -var serverOptions = require('../lib/cartodb/server_options'); // _after_ setting global.environment +// _after_ setting global.environment +var serverOptions = require('../lib/cartodb/server_options')(); var client; var dbname; From 7e1aba3368f4fa1cc934b6a3fb18e4d484a51b65 Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Tue, 8 Apr 2014 09:16:16 +0200 Subject: [PATCH 3/6] Use signer's map_key when contacting sql-api Includes testcase. Fixes #188 --- NEWS.md | 1 + lib/cartodb/server_options.js | 30 +++++++++++++++++++++++++++--- test/acceptance/templates.js | 30 ++++++++++++++++++++++++++++-- 3 files changed, 56 insertions(+), 5 deletions(-) diff --git a/NEWS.md b/NEWS.md index 4070d5af..e38dc4b4 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,7 @@ Bug fixes: - Fix show_style tool broken since 1.8.1 + - Fix X-Cache-Channel of tiles accessed via signed token (#188) 1.10.1 -- 2014-03-21 -------------------- diff --git a/lib/cartodb/server_options.js b/lib/cartodb/server_options.js index ddcd7223..25468e8e 100644 --- a/lib/cartodb/server_options.js +++ b/lib/cartodb/server_options.js @@ -285,8 +285,31 @@ module.exports = function(){ } return [req.params.table]; } - var username = that.userByReq(req); - me.affectedTables(username, req.params.map_key, sql, this); + var user, key; + var next = this; + Step ( + function findUserKey() { + if ( req.params.hasOwnProperty('_authorizedBySigner') ) { + user = req.params._authorizedBySigner; + cartoData.getUserMapKey(user, this); + } else { + user = that.userByReq(req); + key = req.params.map_key || req.params.api_key; + return null; + } + }, + function getAffected(err, data) { + if ( err ) throw err; + if ( data ) { + if ( req.profiler ) req.profiler.done('getSignerMapKey'); + key = data; + } + me.affectedTables(user, key, sql, this); // in addCacheChannel + }, + function finish(err, data) { + next(err,data); + } + ); }, function buildCacheChannel(err, tableNames) { if ( err ) throw err; @@ -407,7 +430,7 @@ module.exports = function(){ Step( function getTables() { - me.affectedTables(usr, key, sql, this); + me.affectedTables(usr, key, sql, this); // in afterLayergroupCreate }, function getLastupdated(err, tableNames) { if (req.profiler) req.profiler.done('affectedTables'); @@ -671,6 +694,7 @@ module.exports = function(){ } // Authorized by "signed_by" ! + _.extend(req.params, { _authorizedBySigner: signed_by }); that.setDBAuth(signed_by, req.params, function(err) { if (req.profiler) req.profiler.done('setDBAuth'); callback(err, true); // authorized (or error) diff --git a/test/acceptance/templates.js b/test/acceptance/templates.js index d78ef637..5ee57016 100644 --- a/test/acceptance/templates.js +++ b/test/acceptance/templates.js @@ -20,7 +20,8 @@ var helper = require(__dirname + '/../support/test_helper'); var windshaft_fixtures = __dirname + '/../../node_modules/windshaft/test/fixtures'; var CartodbWindshaft = require(__dirname + '/../../lib/cartodb/cartodb_windshaft'); -var serverOptions = require(__dirname + '/../../lib/cartodb/server_options')(); +var ServerOptions = require(__dirname + '/../../lib/cartodb/server_options'); +var serverOptions = ServerOptions(); var server = new CartodbWindshaft(serverOptions); server.setMaxListeners(0); @@ -1167,12 +1168,37 @@ suite('template_api', function() { assert.response(server, get_request, {}, function(res) { next(null, res); }); }, - function checkTile(err, res) { + function checkTile_fetchOnRestart(err, res) { if ( err ) throw err; assert.equal(res.statusCode, 200, 'Unexpected error for authorized instance: ' + res.statusCode + ' -- ' + res.body); assert.equal(res.headers['content-type'], "application/json; charset=utf-8"); + var cc = res.headers['x-cache-channel']; + assert.ok(cc); + assert.ok(cc.match, /ciao/, cc); + // hack simulating restart... + serverOptions = ServerOptions(); // need to clean channel cache + server = new CartodbWindshaft(serverOptions); + var get_request = { + url: '/tiles/layergroup/' + layergroupid + ':cb1/0/0/0/1.json.torque?auth_token=valid1', + method: 'GET', + headers: {host: 'localhost' }, + encoding: 'binary' + } + var next = this; + assert.response(server, get_request, {}, + function(res) { next(null, res); }); + }, + function checkCacheChannel(err, res) { + if ( err ) throw err; + assert.equal(res.statusCode, 200, + 'Unexpected error for authorized instance: ' + + res.statusCode + ' -- ' + res.body); + assert.equal(res.headers['content-type'], "application/json; charset=utf-8"); + var cc = res.headers['x-cache-channel']; + assert.ok(cc, "Missing X-Cache-Channel on fetch-after-restart"); + assert.ok(cc.match, /ciao/, cc); return null; }, function deleteTemplate(err) From 6f8f3d2057d8299fb8acaea70948761315af8557 Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Tue, 8 Apr 2014 09:57:49 +0200 Subject: [PATCH 4/6] Release 1.10.2 --- NEWS.md | 2 +- npm-shrinkwrap.json | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/NEWS.md b/NEWS.md index e38dc4b4..8a1587f4 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -1.10.2 -- 2014-MM-DD +1.10.2 -- 2014-04-08 -------------------- Bug fixes: diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index f1646497..4a58073b 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "windshaft-cartodb", - "version": "1.10.0", + "version": "1.10.2", "dependencies": { "node-varnish": { "version": "0.3.0", @@ -469,14 +469,14 @@ } } }, - "strftime": { - "version": "0.6.2" + "redis": { + "version": "0.8.6" }, "semver": { "version": "1.1.4" }, - "redis": { - "version": "0.8.6" + "strftime": { + "version": "0.6.2" }, "mocha": { "version": "1.14.0", From ee37da5b35b989c8233b49a1d982c8eb49cfbe6f Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Tue, 8 Apr 2014 10:00:10 +0200 Subject: [PATCH 5/6] Prepare for 1.10.3 --- NEWS.md | 3 +++ package.json | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 8a1587f4..749dde2a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,6 @@ +1.10.3 -- 2014-MM-DD +-------------------- + 1.10.2 -- 2014-04-08 -------------------- diff --git a/package.json b/package.json index fd90f0b9..480b143d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "1.10.2", + "version": "1.10.3", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From 4738b880a6c29a6d10dda3ad178f35a54bd576d3 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Wed, 7 May 2014 18:28:10 +0200 Subject: [PATCH 6/6] Prepares release 1.10.3 --- NEWS.md | 7 ++++++- npm-shrinkwrap.json | 4 ++-- package.json | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/NEWS.md b/NEWS.md index 749dde2a..506a5979 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,6 +1,11 @@ -1.10.3 -- 2014-MM-DD +1.10.3 -- 2014-05-07 -------------------- +Enhancements: + + - Upgrade Windshaft to 0.21.0, see + http://github.com/CartoDB/Windshaft/blob/0.21.0/NEWS + 1.10.2 -- 2014-04-08 -------------------- diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 4a58073b..844943c6 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "windshaft-cartodb", - "version": "1.10.2", + "version": "1.10.3", "dependencies": { "node-varnish": { "version": "0.3.0", @@ -11,7 +11,7 @@ }, "windshaft": { "version": "0.20.0", - "from": "http://github.com/CartoDB/Windshaft/tarball/0.20.0", + "from": "http://github.com/CartoDB/Windshaft/tarball/0.21.0", "dependencies": { "grainstore": { "version": "0.18.1", diff --git a/package.json b/package.json index 480b143d..13e5d996 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "dependencies": { "node-varnish": "http://github.com/Vizzuality/node-varnish/tarball/0.3.0", "underscore" : "~1.3.3", - "windshaft" : "http://github.com/CartoDB/Windshaft/tarball/0.20.0", + "windshaft" : "http://github.com/CartoDB/Windshaft/tarball/0.21.0", "step": "0.0.x", "request": "2.9.202", "cartodb-redis": "~0.3.0",