22 KiB
Changelog
2.2.0
Released 2015-mm-dd
Enhancements:
- jshint is run against tests
- tests moved to mocha's
describe
New features:
- Fastly surrogate keys invalidation for named maps
- New configuration entry:
fastly
. Check example configurations for more information.
- New configuration entry:
PgQueryRunner
extracted fromQueryTablesApi
so it can be reused in newTablesExtentApi
- New top level element,
view
, in templates that holds attributes to identify the map scene. - Named maps static preview in /api/v1/map/static/named/:name/:width/:height.:format endpoint
- It will be invalidated if the named map changes
- But have a Cache-Control header with a 2 hours max-age, won't be invalidated on data changes
2.1.3
Released 2015-04-16
Announcements:
- Upgrades windshaft to 0.42.2
2.1.2
Released 2015-04-15
Bug fixes:
- Do not check statsd_client in profiler
Announcements:
- Upgrades windshaft to 0.42.1
2.1.1
Released 2015-04-10
Bug fixes:
- Do not add x-cache-channel header for GET template routes
2.1.0
Released 2015-04-09
Announcements:
- Upgrades windshaft to 0.42.0
2.0.0
Released 2015-04-08
Announcements:
- Major release with BREAKING CHANGES:
- Removes
/:table/infowindow
,/:table/map_metadata
and/:table/flush_cache
endpoints - Sample configuration removes
/tiles/template
and/tiles/layergroup
- URLs to use from now on are:
/api/v1/map/named
and/api/v1/map
- No more state changes for styles
- No more dump stats for renderers: SIGUSR1 and SIGUSR2 signals
- Removes query params:
- sql
- geom_type
- cache_buster
- cache_policy
- interactivity
- style
- style_version
- style_convert
- scale_factor
- Affected tables for x-cache-channel will use direct connection to postgresql
- Removes some metrics: authorized times ones
- Mapnik renderer configuration not part of the
renderer
root configuration- All configuration must be moved into
renderer.mapnik
, seeconfig/environments/*.js.example
for reference
- All configuration must be moved into
- Removes rollbar as optional logger
1.30.0
Released 2015-03-11
Announcements:
- Upgrades windshaft to 0.40.0
1.29.0
Released 2015-03-09
Announcements:
- Upgrades windshaft to 0.39.0
1.28.5
Released 2015-02-20
Announcements:
- Upgrades windshaft to 0.37.5
1.28.4
Released 2015-02-18
Announcements:
- Upgrades windshaft to 0.37.4
1.28.3
Released 2015-02-17
Announcements:
- Upgrades windshaft to 0.37.3
1.28.2
Released 2015-02-17
Announcements:
- Upgrades windshaft to 0.37.2
1.28.1
Released 2015-02-17
Announcements:
- Upgrades windshaft to 0.37.1
1.28.0
Released 2015-02-17
Announcements:
- Upgrades windshaft to 0.37.0
New features:
- QueryTablesApi will always use an authenticated query to retrieve last update, this allows to query affected private tables last update (#253)
1.27.0
Released 2015-02-16
Announcements:
- Adds default image placeholder for http renderer to use as fallback
New features:
named
layers type, see MapConfig-NamedMaps-extension- Starts using datasource per layer feature from Windshaft (2c7bc6a)
Bugfixes:
- Fixes tests with beforeEach and afterEach triggers
1.26.2
Released 2015-01-28
Bugfixes:
- Accept 'open' string in templates'
auth
as authorized.
1.26.1
Released 2015-01-28
Announcements:
- Upgrades windshaft to 0.35.1, see https://github.com/CartoDB/Windshaft/pull/254
1.26.0
Released 2015-01-27
Announcements:
- Upgrades windshaft to 0.35.0, supports mapconfig version
1.3.0
1.25.0
Released 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
- Extends TemplateMaps backend with EventEmitter
1.24.0
Released 2015-01-15
Announcements:
- Upgrades windshaft to 0.34.0 for retina support
1.23.1
Released 2015-01-14
Announcements:
- Regenerate npm-shrinkwrap.json
1.23.0
Released 2015-01-14
Announcements:
- Upgrades windshaft to 0.33.0
New features:
- Sets HTTP renderer configuration in server_options
1.22.0
Released 2015-01-13
New features:
- Health check endpoint
1.21.2
Released 2014-12-15
Announcements:
- Upgrades windshaft to 0.32.4
1.21.1
Released 2014-12-11
Announcements:
- Upgrades windshaft to 0.32.2
Bugfixes:
- Closes fd for log files on
kill -HUP
(#230)
1.21.0
Released 2014-10-24
New features:
- Allow a different cache-control max-age for layergroup responses
1.20.2
Released 2014-10-20
Announcements:
- Upgrades windshaft to 0.31.0
1.20.1
Released 2014-10-17
Announcements:
- Upgrades redis-mpool to 0.3.0
1.20.0
Released 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
Released 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
Released 2014-10-13
Bug fixes:
- Defaults resultSet to object if undefined in QueryTablesApi
Announcements:
- Upgrades windshaft to 0.28.1
1.18.1
Released 2014-10-13
New features:
- Allow to add more node.js' threadpool workers via process.env.UV_THREADPOOL_SIZE
1.18.0
Released 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
Released 2014-10-01
Announcements:
- Upgrades windshaft to 0.27.2 which downgrades node-mapnik to 0.7.26-cdb1
1.17.1
Released 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
Released 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
Released 2014-08-19
Enhancements:
- Upgrades cartodb-redis
1.16.0
Released 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
Released 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
Released 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
Released 2014-08-04
Enhancements:
- Profiler header sent as JSON string
1.13.0
Released 2014-07-30
New features:
- Support for postgresql schemas
- Use public user from redis
- Support for several auth tokens
1.12.1
Released 2014-06-24
Enhancements:
- Caches layergroup and sets X-Cache-Channel in GET requests also in named maps
1.12.0
Released 2014-06-24
New features:
- Caches layergroup and sets X-Cache-Channel in GET requests
1.11.1
Released 2014-05-07
Enhancements:
- Upgrade Windshaft to 0.21.0, see http://github.com/CartoDB/Windshaft/blob/0.21.0/NEWS
1.11.0
Released 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
Released 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
Released 2014-03-21
Bug fixes:
- Do not cache non-success jsonp responses (#186)
1.10.0
Released 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
Released 2014-03-10
New features:
- Allow to set server related configuration in serverMetadata (#182)
1.8.5
Released 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
Released 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
Released 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
Released 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
Released 2014-02-19
Enhancements:
- Use log4js logger (#138)
Bug fixes:
- Always generate X-Cache-Channel for token-based tile responses (#152)
1.8.0
Released 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
Released 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
Released 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
Released 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
Released 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
Released 2014-01-15
Bug fixes:
- Drop cache headers from error responses (#107)
- Localize external CartoCSS resources at renderer creation time (#108)
1.6.0
Released 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
Released 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
Released 2013-11-28
Bug fixes:
- Survive presence of malformed CartoCSS in redis (#94)
- Accept useless point-transform:scale directives (#93)
1.5.0
Released 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
Released 2013-11-08
- Fix support for exponential notation in CartoCSS filter values (#87)
1.4.0
Released 2013-10-31
- Add Support for Mapnik-2.2.0 (#78)
1.3.6
Released 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
Released 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
Released 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
Released 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
Released DD//MM//YY
- Fix bogus cached return of utf grid for fully contained tiles (#67)
1.1.4
Released 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
Released 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
Released 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
Released 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
Released (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
Released 03/10/12
- Migrated to node 0.8.x.
0.9.0
Released 25/09/12
- External resources in CartoCSS
- Added X-Cache-Channel header in all the tiler GET requests
- Small fixes