1.26.3 -- 2015-mm-dd -------------------- 1.26.2 -- 2015-01-28 -------------------- Bugfixes: - Accept 'open' string in templates' `auth` as authorized. 1.26.1 -- 2015-01-28 -------------------- Announcements: - Upgrades windshaft to 0.35.1, see https://github.com/CartoDB/Windshaft/pull/254 1.26.0 -- 2015-01-27 -------------------- Announcements: - Upgrades windshaft to 0.35.0, supports mapconfig version `1.3.0` 1.25.0 -- 2015-01-26 -------------------- Announcements: - No more signed maps (#227 and #238) - Splits template maps endpoint into its own controller - Removes TemplateMaps dependency on SignedMaps - Token validation is done against the template - Template is always extended with default values for auth and placeholders - MapConfig is extended, in order to validate auth_tokens, with template info: - template name - template auth - No more locks to create, update or delete templates - Trusting in redis' hash semantics - Some tradeoffs: * A client having more templates than allowed by a race condition between limit (HLEN) check and creation (HSET) * Updating a template could happen while deleting it, resulting in a new template * Templates already instantiated will be accessible through their layergroup so it is possible to continue requesting tiles/grids/etc. - Authorisation is now handled by template maps - Template instantiation returns new instances with default values if they are missing New features: - Basic layergroup validation on named map creation/update (#196) - Add named maps surrogate keys and call invalidation on template modification/deletion (#247) - Extends TemplateMaps backend with EventEmitter - Emits for create, update and delete templates - VarnishHttpCacheBackend will invalidate a varnish instance via HTTP PURGE method - In the future there could be more backends, for instance to invalidate a CDN. - NamedMapsEntry has the responsibility to generate a cache key for a named map - It probably should receive a template/named map instead of owner and template name - SurrogateKeysCache is responsible to tag responses with a header - It also is responsible for invalidations given an Invalidation Backend - In the future it could have several backends so it can invalidates different caches - SurrogateKeysCache is subscribed to TemplateMaps events to do the invalidations 1.24.0 -- 2015-01-15 -------------------- Announcements: - Upgrades windshaft to 0.34.0 for retina support 1.23.1 -- 2015-01-14 -------------------- Announcements: - Regenerate npm-shrinkwrap.json 1.23.0 -- 2015-01-14 -------------------- Announcements: - Upgrades windshaft to 0.33.0 New features: - Sets HTTP renderer configuration in server_options 1.22.0 -- 2015-01-13 -------------------- New features: - Health check endpoint 1.21.2 -- 2014-12-15 -------------------- Announcements: - Upgrades windshaft to 0.32.4 1.21.1 -- 2014-12-11 -------------------- Announcements: - Upgrades windshaft to 0.32.2 Bugfixes: - Closes fd for log files on `kill -HUP` (#230) 1.21.0 -- 2014-10-24 -------------------- New features: - Allow a different cache-control max-age for layergroup responses 1.20.2 -- 2014-10-20 -------------------- Announcements: - Upgrades windshaft to 0.31.0 1.20.1 -- 2014-10-17 -------------------- Announcements: - Upgrades redis-mpool to 0.3.0 1.20.0 -- 2014-10-15 -------------------- New features: - Report to statsd the status of redis pools - Upgrades Windshaft to start reporting redis/renderers/mapnik pool metrics Enhancements: - Share one redis-mpool across the application 1.19.0 -- 2014-10-14 -------------------- Announcements: - Dropping support for npm <1.2.1 npm-shrinkwrap.json is incompatible when generated with npm >=1.2.1 and consumed by npm <1.2.1 - Upgrades windshaft to 0.28.2 - Generates npm-shrinkwrap.json with npm >1.2.0 1.18.2 -- 2014-10-13 -------------------- Bug fixes: - Defaults resultSet to object if undefined in QueryTablesApi Announcements: - Upgrades windshaft to 0.28.1 1.18.1 -- 2014-10-13 -------------------- New features: - Allow to add more node.js' threadpool workers via process.env.UV_THREADPOOL_SIZE 1.18.0 -- 2014-10-03 -------------------- Announcements: - Comes back to use mapnik 2.3.x based on cartodb/node-mapnik@1.4.15-cdb from windshaft@0.28.0 1.17.2 -- 2014-10-01 -------------------- Announcements: - Upgrades windshaft to 0.27.2 which downgrades node-mapnik to 0.7.26-cdb1 1.17.1 -- 2014-09-30 -------------------- Announcements: - Upgrades windshaft to 0.27.1 which downgrades node-mapnik to 1.4.10 Enhancements: - TTL for template locks so they are not kept forever - Upgrades mocha 1.17.0 -- 2014-09-25 -------------------- New features: - Starts using mapnik 2.3.x Enhancements: - Upgrades windshaft and cartodb-redis - Supports `!scale_denominator!` dynamic param in SQL queries - Metrics revamp: removes and adds some metrics - Adds poolSize configuration for mapnik 1.16.1 -- 2014-08-19 -------------------- Enhancements: - Upgrades cartodb-redis 1.16.0 -- 2014-08-18 -------------------- New features: - Configurable QueryTablesAPI to call directly postgresql using cartodb-psql or to keep using a request to the SQL API Enhancements: - Removes mapnik dependency as it now relies on Windshaft to check mapnik version - Upgrades dependencies: - underscore - lzma - log4js - rollbar - windshaft - request 1.15.0 -- 2014-08-13 -------------------- Enhancements: - Upgrades dependencies: - redis-mpool - cartodb-redis - windshaft - Specifies name in the redis pool - Slow pool configuration in example configurations 1.14.0 -- 2014-08-07 -------------------- Enhancements: - SQL API requests moved to its own entity New features: - Affected tables and last updated time for a query are performed in a single request to the SQL API - Allow specifying the tile format, upgrades windshaft and grainstore dependencies for this matter 1.13.1 -- 2014-08-04 -------------------- Enhancements: - Profiler header sent as JSON string 1.13.0 -- 2014-07-30 -------------------- New features: - Support for postgresql schemas - Use public user from redis - Support for several auth tokens 1.12.1 -- 2014-06-24 -------------------- Enhancements: - Caches layergroup and sets X-Cache-Channel in GET requests also in named maps 1.12.0 -- 2014-06-24 -------------------- New features: - Caches layergroup and sets X-Cache-Channel in GET requests 1.11.1 -- 2014-05-07 -------------------- Enhancements: - Upgrade Windshaft to 0.21.0, see http://github.com/CartoDB/Windshaft/blob/0.21.0/NEWS 1.11.0 -- 2014-04-28 -------------------- New features: - Add support for log_filename directive - Reopen log file on SIGHUP, for better logrotate integration Enhancements: - Set default PostgreSQL application name to "cartodb_tiler" 1.10.2 -- 2014-04-08 -------------------- 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 -------------------- Bug fixes: - Do not cache non-success jsonp responses (#186) 1.10.0 -- 2014-03-20 -------------------- New features: - Add optional support for rollbar (#150) Enhancements: - Do not send connection details to client (#183) - Upgrade node-varnish to 0.3.0 - Upgrade Windshaft to 0.20.0, see http://github.com/CartoDB/Windshaft/blob/0.20.0/NEWS - Include tiler version in startup log - Install an uncaught exception handler - Require own fork of node-mapnik, with temptative fix for libxml usage (glibc detected corruptions) Other changes: - Switch to 3-clause BSD license (#184) 1.9.0 -- 2014-03-10 ------------------- New features: - Allow to set server related configuration in serverMetadata (#182) 1.8.5 -- 2014-03-10 ------------------- Enhancements: - Set statsd prefix for all endpoints - Respond with a permission denied on attempt to access map tiles waiving signature of someone who had not left any (#170) - Do not log an error on GET / (#177) - Do not UNWATCH on every redis client release (#161) - Include API docs (#164) - Add "cacheDns" statsd setting in the example configs - Do not send duplicated stats on template instanciation - Do not die on dns resolution errors (#178, #180) Bug fixes: - Do not cache map creation responses (#176) 1.8.4 -- 2014-03-03 ------------------- Enhancements: - Really skip CDB_TableMetadata lookup for sql affected by no tables (#169) - Upgrade windshaft to 0.19.2, see node_modules/windshaft/NEWS - Clarify obscure "ECONNREFUSED" error message (#171) - Change some http status responses to be more appropriate to the case - Forbid using map signatures of foreign users (#172) - Forbid instanciating templates of foreign users (#173) - Allow passing environment configuration name via NODE_ENV to app.js - Print environment configuration name on app start Bug fixes: - Fix database connection settings on template instanciation (#174) 1.8.3 -- 2014-02-27 ------------------- Enhancements: - Upgrades windshaft to 0.19.1 with many performance improvements, See node_modules/windshaft/NEWS - Improve speed of instanciating a map (#147, #159, #165) - Give meaningful error on attempts to use map tokens with attribute service (#156) - Reduce sql-api communication timeout, and allow overriding (#167) [ new sqlapi.timeout directive, defaults to 100 ms ] - Do not query CDB_TableMetadata for queries affected by no tables (#168) 1.8.2 -- 2014-02-25 ------------------- Enhancements: * Allow using ":host" as part of statsd.prefix (#153) * Expand "addCacheChannel" stats * Allow using GET with sql-api for queries shorter than configured len (#155) [ new sqlapi.max_get_sql_length directive, defaults to 2048 ] * Do not log an error for a legit request requiring no X-Cache-Channel Bug fixes: * Fix munin plugin after log format changes (#154) 1.8.1 -- 2014-02-19 ------------------- Enhancements: * Use log4js logger (#138) Bug fixes: * Always generate X-Cache-Channel for token-based tile responses (#152) 1.8.0 -- 2014-02-18 ------------------- Enhancements: * Add script to flush caches (#140) * Add script to list templates * Add statsd support (#139) * Add support for specifying a varnish password * Avoid sending multiple varnish invalidation at once (#135) * Tested with node-0.10 (#141) * Use single redis pooler for torque and grainstore * Reduce cost of garbage collection for localized resources * Allow limiting number of templates for each user (#136) * Allow configuring TTL of mapConfigs via "mapConfigTTL" 1.7.1 -- 2014-02-11 ------------------- Enhancements: * Disable debug logging unless "debug" config param evaluates to true (#137) * Require windshaft 0.17.2 for further reducing log noise (#137) 1.7.0 -- 2014-02-11 ------------------- New features: * Add support for torque tiles (#112) * Add attributes service (#118) * Implement Unified Map API (#126) * Make endpoints configurable (#127) Enhancements: * Allow specifying fixed sqlapi host address (#117) * Include template hash in template instance response, to keep caches of different instances separated (#105) Bug fixes: * Allow space padding in template variables usage (#129) * Allow passing numbers as values for numeric template variables (#130) 1.6.3 -- 2014-01-30 ------------------- Bug fixes: * layergroup accept both map_key and api_key (#91) * Fix public instanciation of signed template accessing private data (#114) * Fix show_style in presence of complex styles * Fix use of maxzoom in layergroup config (via windshaft-0.15.1) Enhancements: * Add support for instanciating a template map with JSONP (#116) * Stop processing XML on renderer creation, not needed anymore since 1.6.1 introduced on-demand XML generation. 1.6.2 -- 2014-01-23 ------------------- Bug fixes: * Fix support for long (>64k chars) queries in layergroup creation (#111) Enhancements: * Enhance tools/show_style to accept an environment parameter and print XML style now it is not in redis anymore (#110) * Support CORS in template instanciation endpoint (#113) 1.6.1 -- 2014-01-15 ------------------- Bug fixes: * Drop cache headers from error responses (#107) * Localize external CartoCSS resources at renderer creation time (#108) 1.6.0 -- 2014-01-10 ------------------- New features: * Add 'user_from_host' directive to generalize username extraction (#100) * Implement signed template maps (#98) Other changes: * Update cartodb-redis dependency to "~0.3.0" * Update redis-server dependency to "2.4.0+" 1.5.2 -- 2013-12-05 ------------------- Bug fixes: * Fix configuration-level compatibility with versions prior to 1.5 (#96) * Fix use of old layergroups on mapnik upgrade (#97) 1.5.1 -- 2013-11-28 ------------------- Bug fixes: * Survive presence of malformed CartoCSS in redis (#94) * Accept useless point-transform:scale directives (#93) 1.5.0 -- 2013-11-19 ------------------- NOTE: new configuration directives `postgres_auth_pass` and `postgres.password` added; see config/environments/*.example for documentation. Improvements: * Add support for configuring database connection passwords * Optionally read user-specific database_host and database_password from redis as per CartoDB-2.5.0 model (#88, #89) * Do not force ending dot in SQL-API hostname, for easier testing Bug fixes: * Return CORS headers when creating layergroups via GET (windshaft/#92) * Fix http status on database authentication error (windshaft/#94) * Fix text-face-name error at layergroup creation (windshaft/#93) Other changes: * CartoDB redis interaction delegated to "cartodb-redis" module 1.4.1 -- 2013-11-08 ------------------- * Fix support for exponential notation in CartoCSS filter values (#87) 1.4.0 -- 2013-10-31 ------------------- * Add Support for Mapnik-2.2.0 (#78) 1.3.6 -- 2013-10-11 ------------------- * Restore support for node-0.8.9 accidentally dropped by 1.3.5 NOTE: needs removing node_modules/windshaft and re-running npm install 1.3.5 -- 2013-10-03 ------------------- * Fixing apostrophes in CartoCSS * Fix "sql/table must contain zoom variable" error when using "[ zoom > 3]" CartoCSS snippets (note the space) * Fix backward compatibility handling of sqlapi.host configuration (#82) * Fix error for invalid text-name in CartoCSS (#81) * Do not let anonymous requests use authorized renderer caches 1.3.4 ------ NOTE: configuration sqlapi.host renamed to sqlapi.domain (support for "sqlapi.host" is retained for backward compatibility) * Improve empty CartoCSS error message * Improve invalid mapnik-geometry-type CSS error message * Fix race condition in localization of network resources 1.3.3 ------ * Set Last-Modified header to allow for 304 responses * Add profiling support (needs useProfiler in env config file) * Fix double-checking for layergroups with no interactivity * Log full layergroup config at creation time (#76) 1.3.2 ------ * Set default layergroup TTL to 2 hours * Serve multilayer tiles and grid with persistent cache control 1.3.1 ------ * Fix deadlock on new style creation * Fix database authentication with multi-table layergroups * Add tile and grid fetching checks at layergroup creation time * Fix SQL error reporting to NOT split on newline * Fix support for CartoCSS attachments 1.3.0 ------ * Change stats format for multilayer map token request, see http://github.com/Vizzuality/Windshaft-cartodb/wiki/Redis-stats-format 1.2.1 ------ * Fix multilayer post from firefox * Fix multilayer cartocss layer name handling 1.2.0 ------ * Multilayer API changes * Layers passed by index in grid fetching url * Interactivity only specified in layergroup config * Embed cache_buster within token * Use ISO format for last_modified timestamp * Expected LZMA encoding changed to base64 1.1.10 ------ * Fix regression with default interactivity parameter (#74) * More verbose logging for SQL api connection errors * Write stats for multilayer map token request 1.1.9 ----- * Handle SQL API errors by requesting no Varnish cache * Fix X-Cache-Channel for multilayer (by token) responses * Add last_modified field to layergroup creation response (#72) * Deprecate signal handler for USR1, add handler for USR2 (#71) * Fix support for ampersend characters in CartoCSS * Add support for LZMA compressed GET parameters * Add support for creating layergroups via GET 1.1.8 ----- * Require Windshaft-0.9.1, to reduce harmfulness of cache_buster param 1.1.7 (DD//MM//YY) ----- * Do not let /etc/services confuse FD checker (munin plugin) * Multilayer support (#72) * Expose renderer settings in the environment config files 1.1.6 (19//02//13) ----- * Require windshaft 0.8.5, fixing some stability issues and providing cache info on request * Require grainstore 0.10.9, fixing an issue with multi-geom markers * Enhance run_tests.sh to allow running single tests and skipping preparation * Fix async throws in getGeometryType, getInfoWindow and getMapMetadata * Survive connection refusals from redis * Add maxConnection environment configuration, default to 128 1.1.5 (DD//MM//YY) ----- * Fix bogus cached return of utf grid for fully contained tiles (#67) 1.1.4 (DD//MM//YY) ----- * Reduce default extent to allow for consistent proj4 round-tripping * Enhance reset_styles script to use full configuration (#62) * Have reset_styles script also drop extended keys (#58) * Fix example postgis parameter for simplifying input geoms (#63) * Add row_limit to example config (#64) 1.1.3 (30//11//12) ----- * Fix reset_styles script to really skip extended keys * CartoCSS versioning * Mapnik-version dependent default styles * Enhance 2.0 -> 2.1 transforms: * styles with conditional markers * scale arrow markers by 50% 1.1.2 (DD//MM//YY) ----- * CartoCSS versioning * Fix use of "style_version" with GET (inline styles) * Enhance 2.0 -> 2.1 transforms: * styles with no semicolon * markers shift due to geometry clipping 1.1.1 (DD//MM//YY) ----- * Add support for persistent client cache headers * Fix crash on unknown user (#55) * Add /version entry point * CartoCSS versioning * Include style_version in GET /style response * Support style_version and style_convert parameters in POST /style request * Support style_version in GET /:z/:x/:y request 1.1.0 (30/10/12) ======= * Add /version entry point * CartoCSS versioning * Include version in GET /style response * Support version and convert parameters in POST /style request * Autodetect target mapnik version and let config override it * Add tools/reset_styles script to batch-reset (and optionally convert) styles * Configurable logging format (#4) * Detailed error on missing user metadata * Properly handle unauthenticated requests for metadata * Accept "api_key" in addition to "map_key", both in query_string and POST body (#38) * Add ./configure script * Allow listening on host IP * Replaced environment configs by .example ones * Fixed some issues with cluster2 1.0.0 (03/10/12) ----- * Migrated to node 0.8.x. 0.9.0 (25/09/12) ----- * External resources in CartoCSS * Added X-Cache-Channel header in all the tiler GET requests * Small fixes