2020-06-01
Bug Fixes:
- Update dependencies to avoid security vulnerabilities
2020-05-14
Breaking changes:
- Drop support for Node.js 10
Announcements:
- Apply ES2018 syntax uniformly (#724)
- Better error messages for TorqueRenderer.
- Support Node.js 12
- Upgrades
@carto/cartonik
to version0.9.1
- Upgrades
redis-mpool
to version0.8.0
Bug Fixes:
- Use
Array.prototype.sort()
's callback properly while testing. It should return a number not a boolean.
2020-04-05
Breaking changes:
- Stops providing several classes and delegating how to build this library to the clients (e.g: Windshaft-CartoDB). Now it provides a factory method that creates the required backend instances and exposes them along with the MapConfig model and the Datasource helper. Everything else is removed, even the version info of dependencies such as
grainstore
,node-mapnik
, andmapnik
. - New signature for
onTileErrorStrategy
:- From
onTileErrorStrategy(err, tile, headers, stats, format, callback)
toasync onTileErrorStrategy(err, format)
- From
callbacks
topromises
to match with the new internal signature for renderers
- From
- Improved renderer reporting:
- Now
renderer.getStats()
returns aMap<key, value>
with information about renderer's performance
- Now
Announcements:
- Bumps acorn from 7.1.0 to 7.1.1
- Bootstrap system fonts to register them into mapnik and make them accessible to CartoCSS Renderer in Grainstore
- Rename
MapValidatorBackend
byMapValidator
- Now
rendererCache
implements a new method.getStats() -> Map<key, value>
where accumulates stats from different renderers alive in the cache - Upgrades
@carto/cartonik
to version0.8.0
- New signature for renderers:
.getTile(z, x, y, callback)
=>.getTile(format, z, x, y) -> Promise
.getMetadata(callback)
=>.getMetadata() -> Promise
.close(callback)
=>.close() -> Promise
- Removes
format
argument in adaptor's constructors as is no longer needed. - In renderers, applied some ES7/8 features: classes, async/await, spread syntax, etc..
- Fix test that fails quietly
- Removed
jshint
as linter in favour ofeslint
to check syntax, find problems, and enforce code style - Remove deprecated coverage tool istanbul, using nyc instead
- Stop using two different tools for package management, testing, and any other developer workflow
- Removes Makefile and related bash scripts
- Use npm scripts as the only tool for testing, CI and linting.
- Simplified CI configuration
- Improved documentation:
- Merge different documents file into README.md
- Remove outdated sections
- Update old sections
- Added missing sections
2019-10-28
Announcements:
- Adding logs of Redis errors in MapStore. More info #708
2019-09-16
Announcements:
- Update
cartodb-query-tables
to version0.6.1
.
2019-09-16
Announcements:
- Remove uneeded param
the_geom_webmercator
fromST_AsMVT
, which improves compatibility with other postgis installations when running through FDW's. See #704 for details.
2019-09-13
Announcements:
- Update
cartodb-psql
to0.14.0
and use the new timeout parameter to simplify pg-mvt. - Update
cartodb-query-tables
to version0.6.0
. - Refactor Torque renderer using ES6 features.
2019-07-30
Announcements:
- Update @carto/cartonik to version
v0.7.0
: addconcurrency
param in preview backend to avoid map renderer exhaustion.
2019-07-23
Bug fixes:
- Remove
queue-async
as a dependency - Remove
underscore
as a dependency
2019-07-16
Announcements:
- Update grainstore to
2.0.1
- Expose
utils.WebMercatorHelper
with utilities to calculate webmercator tile resolution and extent. - Remove dependency on cartodb-postgresql extension for CDB_XYZ_Resolution and CDB_XYZ_extent.
- Update @carto/mapnik to
3.6.2-carto.16
. This requires updating cartonik too.
2019-06-25
Announcements:
- Upgrade
torque.js
to version3.1.1
2019-06-17
Announcements:
- In preview backend, use
@carto/cartonik
instead of@mapbox/abaculus
to build static images. - Upgrade
@carto/cartonik
to version 0.6.0.
2019-05-21
Announcements:
- Update @carto/mapnik to
3.6.2-carto.15
. This requires updating cartonik and abaculus too.
2019-04-29
Announcements:
- In mapnik renderer, use
@carto/cartonik
instead of@mapbox/tilelive
to fetch raster/vertor tiles.
2019-04-15
Announcements:
- Update @carto/mapnik to
3.6.2-carto.13
. This requires updating tilelive-bridge, tilelive-mapnik and abaculus too. - Remove dot (unused).
2019-04-02
Announcements:
- Upgrade
canvas
to version2.4.1
- Upgrade
torque.js
to version3.1.0
2019-03-29
Breaking changes:
- Drop support for Node.js 6
- Drop support for npm 3
- Drop support for yarn
- Stop supporting
yarn.lock
- Drop support for Postgres 9.5
- Drop support for PosGIS 2.2
- Drop support for Redis 3
Announcements:
- Upgrades
torque.js
to version3.0.0
- Upgrades
grainstore
to version2.0.0
- Improves Travis CI workflow
Bug fixes:
- Avoid uncaught exception in Blend Renderer
2019-03-19
Announcements:
- Upgrade
tilelive-mapnik
to version0.6.18-cdb20
, add header to know when a tile comes from cache (metatiling)
2019-03-19
Announcements:
- Upgrade
tilelive-mapnik
to version0.6.18-cdb19
- Upgrade
@carto/tilelive-bridge
to version2.5.1-cdb12
2019-03-13
Announcements:
- Upgrade grainstore to version 1.11.0: do not hang when child process is not able to generate a Mapnik XML
2019-02-11
Announcements:
- Upgrade tilelive-mapnik to version 0.6.18-cdb18.
2019-02-04
Announcements:
- Upgrade tilelive-mapnik to version 0.6.18-cdb17: be able to load maps with custom pool size and max waiting clients.
2019-01-24
Bug fixes:
- Fix compatible Node.js and npm versions
2019-01-23
Announcement
- Update docs: compatible Node.js and npm versions
- Deps:
- Devel deps:
2018-12-13
Announcements:
- Update cartodb-psql to 0.13.1
2018-11-21
Announcements:
- Support Node.js 10 LTS
- Add package-lock.json
- Updated Travis configuration to run tests against Node.js 6 and 10
2018-10-25
Bug fixes:
- Make all modules to use strict mode semantics.
2018-10-23
Announcements:
- Fix bug when releasing the renderer cache entry in some scenarios.
- Upgrade grainstore to 1.9.1.
2018-10-19
Announcements:
- Renderer Cache Entry: Do not throw errors for integrity checks
2018-10-17
Announcements:
- pg-mvt: Accept trailing semicolon in queries
2018-10-16
Announcements:
- pg-mvt: Fix bug while building query and there is no columns defined for the layer.
2018-10-15
Announcements:
- pg-mvt: Use
query-rewriter
to compose the query to render a MVT tile. If not defined, it will use a Default Query Rewriter.
2018-09-24
Announcements:
- pg-mvt: Implement timeout in getTile.
- Remove use of
step
module to handle asynchronous code, now it's defined as development dependency.
2018-09-05
Announcements:
- pg-mvt renderer: Match current Mapnik behaviour (Filter column with known types, same default buffer size, accept geom_column ifferent than
the_geom_webmercator
). - pg-mvt renderer: Remove undocummented filtering by
layer.options.columns
. - MVT tests: Compare outputs (tile and headers) from Mapnik and pg-mvt renderers.
- Update deps:
@carto/mapnik
to3.6.2-carto.11
: Geometries in MVTs created with the mapnik renderer will be simplified based on the layer extent instead of a static 256. This has impact in lines and polygon layers, both in results and performance since geometries were being oversimplified.@carto/tilelive-bridge
to2.5.1-cdb10
: MVT Mapnik renderer no longers returns error on empty tile, instead it returns an empty buffer.tilelive-mapnik
to0.6.18-cdb15
: Removes internal use of step and eventEmitter. Also updates and removes some dependencies.abaculus
to2.0.3-cdb11
: Keeping up with node-mapnik update.
- MVT renderers (both): No longer returns error on empty tile. Instead it returns an empty buffer.
- MVT renderers (both): Add
vector_extent
option in MapConfig to setup the layer extent in MVTs. - MVT renderers (both): Add
vector_simplify_extent
option in MapConfig to configure the simplification process in MVTs. - pg-mvt renderer: Include the buffer zone in the !bbox! variable.
- pg-mvt renderer: Fix bug that caused a buffer size of value 0 being ignored.
2018-07-19
Announcements:
- Validation of attributes is omitteed when sql_raw is used #643
2018-07-17
Announcements:
- Add
.npmignore
to reduce size of npm package. - Validate buffer-size in map-config model #637
2018-05-28
Announcements:
- Update
cartodb-psql
to 0.11.0
2018-05-21
Announcements:
- Update deps:
- cartodb-psql: 0.10.2
- dot: 1.1.2
- queue-async: 1.1.0
- request: 2.87.0
- semver: 5.5.0,
- sphericalmercator: 1.0.5,
- step: 1.0.0
- tilelive: 5.12.3
- torque.js: 2.16.2
- Update dev deps:
- express: 4.16.3
- istanbul: 0.4.5
- mocha: 3.5.3
- Support
yarn.lock
file
2018-05-14
Announcements:
- Set @carto/mapnik to
3.6.2-carto.10
and tilelive-mapnik, tilelive-bridge and abaculus accordingly.
2018-05-08
Announcements:
- Set @carto/mapnik to
3.6.2-carto.9
and tilelive-mapnik, tilelive-bridge and abaculus accordingly. - MVT: Disable simplify_distance to avoid multiple simplifications (Postgis query and mapnik-vector-tile).
2018-04-17
Announcements:
- Update @carto/mapnik to
3.6.2-carto.8
and tilelive-mapnik, tilelive-bridge and abaculus accordingly. It brings a fix for mapnik-vector-tile to avoid mixing properties with the same value but different type.
2018-04-10
Announcements:
- Adding Redis v4 in Dockerfile
- Update @carto/mapnik to
3.6.2-carto.7
. Also updates tilelive-mapnik, tilelive-bridge, abaculus and grainstore accordingly. It brings some improvements for markers symbolizer caches as well as more performance metrics and configuration options. - Add a config option to disable
markers_symbolizer_caches
. - Mapnik renderer: Add support for render time variables in MapConfig.
2018-03-15
Announcements:
- Update @carto/mapnik to 3.6.2-carto.4. Also update tilelive-mapnik, tilelive-bridge and abaculus accordingly. That version includes a cache for rasterized symbols. See https://github.com/CartoDB/node-mapnik/blob/v3.6.2-carto/CHANGELOG.carto.md#362-carto4
- PostGIS: Variables in postgis SQL queries must now additionally be wrapped in
!
(refs #29, mapnik/#3618):
-- Before
SELECT ... WHERE trait = @variable
-- Now
SELECT ... WHERE trait = !@variable!
2018-03-14
Announcements:
- Fix bug when parsing incomplete Mapnik metrics
2018-03-12
Announcements:
- AttributesBackend: Support distinct and json_agg
2018-03-12
Announcements:
- Update request to 2.85.0
2018-03-09
Announcements:
- AttributesBackend: Allow multiple points if all the attributes are the same
- Avoids mapnik conflict: Update tilelive-mapnik#0.6.18-cdb7, tilelive-bridge#2.5.1-cdb3
2018-02-13
Announcements:
- Mapnik metrics: Apply top metrics to all posibilities (formats / error strategies)
2018-02-12
Announcements:
- Mapnik metrics: Use several individual objects instead of children
2018-02-06
Announcements:
- Add option to request Mapnik metrics.
2018-02-05
Announcements:
- Upgrade redis-mpool to 0.5.0.
2018-01-31
Announcements:
- Do not expose 'cache-features' in Mapconfig (can only be set via configuration)
2018-01-31
Announcements:
- Support layer 'cache-features' in Mapnik/CartoDB layers.
2018-01-29
Announcements:
- Upgrade mapnik to @carto/mapnik 3.6.2-carto.2, which uses carto lib mapnik v3.0.15.3 underneath and fixes a performance regression in rendering of labels.
2018-01-11
Bug fixes:
- Fix broken torque tests for PG9.6+
New features:
- Now mapnik has support for fine-grained metrics.
- Variables can be passed for later substitution in postgis datasource.
Announcements:
- Upgrade mapnik to @carto/mapnik 3.6.2-carto.1, which uses carto lib mapnik v3.0.15.2 underneath. See https://github.com/CartoDB/mapnik/blob/v3.0.15-carto/CHANGELOG.carto.md and https://github.com/CartoDB/mapnik/blob/v3.0.15-carto/CHANGELOG.carto.md
- Upgrade tilelive-bridge to @carto/tilelive-bridge 2.5.1-cdb1. See https://github.com/CartoDB/tilelive-bridge/blob/cdb-2.x/CHANGELOG.carto.md
- Upgrade tilelive-mapnik to 0.6.18-cdb4
- Upgrade abaculus to 2.0.3-cdb2
- Upgrade grainstore to 1.8.1
- Use yarn instead of npm
- Use the script docker-test.sh for travis builds
2018-01-02
New features:
- Support layer minzoom and maxzoom in Mapnik/CartoDB layers #585.
- PostGIS vector renderer: be able to retrieve required columns #583.
Announcements:
- Upgrade grainstore to version 1.8.0.
2017-12-28
Bug-fixes:
- Fix support for single layer id filters #584.
2017-12-04
- Allow to request MVT tiles without CartoCSS
- Upgrade grainstore to version 1.7.0
2017-10-27
Bug-fixes:
- Add support for gziped responses coming from marker-file urls #571
2017-10-11
Breaking changes:
- Removes support for geojson tiles.
2017-10-03
Announcements:
- Upgrade debug to 3.1.0
- Upgrade request to 2.83.0
2017-09-18
Bug-fixes:
- Fix static map image generation when basemap tiles are bigger than 256px (@2x, 512px, etc)
2017-08-13
Announcements:
- Upgrade cartodb-psql to 0.10.1.
2017-08-09
Announcements:
- Upgrade tilelive-bridge to 2.3.1-cdb4.
- Upgrade tilelive-mapnik to 0.6.18-cdb3.
- Upgrade cartodb-psql to 0.9.0.
2017-07-20
Announcements:
- Upgrade tilelive-bridge to 2.3.1-cdb3.
2017-05-31
Bug fixes:
- Removed dead code while extracting layer metadata stats #551.
2017-05-18
Announcements:
- Use different buffer-size values for different tile formats.
- Official support for
buffer-size
at layergroup level.- Check doc/MapConfig-1.6.0.md for more details.
- Upgrade tilelive-bridge to 2.3.1-cdb2.
- Upgrade tilelive-mapnik to 0.6.18-cdb2.
2017-05-05
Announcements:
- Upgrade cartodb-psql to 0.8.0.
2017-04-25
Bug fixes:
- Don't default formats in formatMetatile configuration #545.
2017-03-30
Bug fixes:
- Only release renderer if exists.
Announcements:
- Remove forced GC cycle after renderer removal.
2017-03-21
Bug fixes:
- Use
binary
encoding for generating MapConfig.id.
2017-03-16
Announcements:
- Supports Node v6.9.x
- Drops support for Node v0.10.x
- Upgrades mapnik to 3.5.14
- Upgrades tilelive to 5.12.2
- Upgrades tilelive-bridge to 2.3.1-cdb1
- Upgrades tilelive-mapnik to 0.6.18-cdb1
- Upgrades sphericalmercator to 1.0.4
- Upgrades abaculus to 2.0.3-cdb1
- Upgrades canvas to 1.6.2-cdb2
- Upgrades carto to 0.15.1-cdb3
- Upgrades redis-mpool to 0.4.1
2017-03-16
Deprecation warning: v2.8.0 is the last release that supports Node v0.10.x. Next mayor release will support Node v6.9.x and further versions.
New features:
- Honour "srid" option in mapnik layer.
Announcements:
- Upgrades grainstore to 1.6.0.
2017-02-20
Announcements:
- Upgrades cartodb-psql to 0.7.1.
2016-12-13
Announcements:
- Upgrades request dependency.
2016-12-13
Announcements:
- Upgrades grainstore to 1.4.0.
2016-12-01
Announcements:
- Upgrades grainstore to 1.3.0.
2016-11-05
Bug fixes:
- Now validates all mapnik layers and if it fails then checks layer by layer to indicate which one fails.
2016-11-01
Bug fixes:
- Fix bad behavior in map validator, now validates layer by layer to indicate which one fails.
2016-10-31
Enhancements:
- Expose layer index if map validation fails.
2016-08-17
Announcements:
- Allow to show & hide mapnik layers filtering by indexes in URL.
2016-08-12
Announcements:
- Use S3 bucket for mapnik module.
2016-08-11
Announcements:
- Use github's git URL for dependencies instead of tarballs.
2016-06-29
Enhancements:
- Errors during MapConfig's instantiation return the layer-id to give more info about what's going on.
2016-06-08
Enhancements:
- Only adds cartocss to meta for layers where it makes sense.
New features:
- Expose layer id in metadata.
2016-06-07
Improvements:
- Allow to set id per layer #485
Announcements:
- Upgrades grainstore to 1.2.0
2016-06-06
Improvements:
- Adds support for substitution tokens in geojson tiles
2016-06-02
Bug fixes:
- Geojson renderer: columns option should ignore nulls #481
2016-06-02
Announcements:
- Removes support for widgets/filters introduced in version 1.7.0.
2016-06-02
Announcements:
- Upgrades mapnik to cartodb/[email protected]
2016-04-28
New features:
- Adds support for buffer-size CartoCSS Map property in geojson tiles.
Announcements:
- Upgrades carto to 0.15.1-cdb2
2016-04-27
New features::
- Handles columns defined in layer options to fill properties to render GeoJSON format
2016-04-27
Enhancements:
- Columns defined in dataviews specification are taking into account to fill properties in geojson renderer
2016-04-26
Enhancements:
- Skip mapnik properties in geojson renderer
2016-04-18
Enhancements:
- GeoJSON renderer: removing ST_MakeValid, it might fail for some tiles but it's way better performance wise.
2016-04-06
New features:
- GeoJSON renderer (#451):
- Adds precision to ST_AsGeoJSON based on zoom
- Handle interactivity columns as they might be arrays or strings
- Simplify geometries keeping at least their bbox
2016-03-23
- Improves column extraction from cartocss #466
2016-03-16
Announcements:
- Now GeoJSON Renderer fills properties with columns that are required in CartoCSS, Widgets and Interactivity.
2016-03-15
Announcements:
- Added cartocss to metadata of layergroup[#462]
2016-03-14
Announcements:
- Removed experimental support for turbo-cartocss [#459]
2016-02-25
Enhancements:
- Ignore turbo-cartocss error when it fails and continue to carto parser
2016-02-24
Enhancements:
- Do not use st_makevalid for && envelope
2016-02-24
Enhancements:
- Improved experimental support for turbo-cartocss with number of buckets #442
2016-02-23
New features:
- Experimental support for turbo-cartocss #438
2016-02-22
Enhancements:
- Geojson make valid #437
2016-02-18
New features:
- Histogram can be retrieved with a fix number of bins #433
2016-02-15
Enhancements:
- Removes console.* calls
2016-02-15
New features:
- Async filter params #431
Enhancements:
- Geojson buffer fixed to 32px #430
2016-02-09
New features:
- Provisional internal query-rewriting interface for Windshaft-cartodb tests
2016-02-08
Enhancements:
- Widgets histogram improvements: type casting when required #428
- Widgets async queries #427
2016-02-04
Bug fixes:
- Use datasource from layer id to compute mapnik layers metadata
2016-02-04
Announcements:
- Upgrades grainstore to 1.1.1
2016-02-04
New features:
- Supported GeoJSON format for MVT tiles #421
2016-01-20
New features:
- Allow to use Substitution tokens with attributes service #416
Unsupported:
- Histograms, aggregations, formulas, and lists
- Filters
Note: API for unsupported list might change in the future, use at your own peril.
2015-11-23
Announcements:
- Upgrades tilelive-mapnik to not cache solid grids
2015-11-11
Announcements:
- Upgrades mapnik to cartodb/[email protected]
2015-10-29
Announcements:
- Upgrades mapnik to cartodb/[email protected]
- Upgrades all mapnik dependants to upgrade their mapnik dependency
2015-10-28
Announcements:
- Upgrades mapnik to cartodb/[email protected]
- Upgrades all mapnik dependants to upgrade their mapnik dependency
2015-10-28
Announcements:
- Upgrades mapnik to cartodb/[email protected]
- Upgrades all mapnik dependants to upgrade their mapnik dependency
2015-10-21
New features:
- Adds support for
png32
format in mapnik layers (#344)
2015-10-21
Enhancements:
- Removes step dependency in RendererCache
2015-10-09
New features:
- Adds support for substitution tokens in Torque (#392)
Supported substitution tokens are:
!bbox!
,!pixel_width!
,!pixel_height!
, and!scale_denominator!
.
2015-09-30
Bug fixes:
- Lowercasing dbparams in MapConfig to be backwards compatible
2015-09-30
From Semantic Versioning:
Major version zero (0.y.z) is for initial development. Anything may change at any time. The public API should not be considered stable.
As we are following Semantic Versioning and we didn't release any major > 0 we could change anything with next minor bump but I would like to make this version 1.0.0 so this stays as the first public API.
A lot of things have changed/moved/disappeared, internal API has nothing to do with previous one.
List of changes:
- RendererCache now works with MapConfig providers (
needs documentation). - Backends hold a RendererCache, so they also work with MapConfig providers
- More specific backends: tiles, previews, map, validator, attributes
- Express no longer a dependency
- Makefile picks tests with
find
, no need to add files manually - Example contains a basic server similar to original windshaft's server
- Test environment now extends development
- Mapnik factory no longer supports snapToGrid and clipByBox2d
- RendererFactory now supports a
mapnik
filter to retrieve all mapnik layers - Starts using debug to no output to stdout by default
- Removes stats code: profiler, client, reporter
- Major rewrite of tests to not rely on server
- Support for
MVT
format in mapnik renderer - Official support for
plain
layer type: options includecolor
andimageUrl
.- Check doc/MapConfig-1.4.0.md for more details.
2015-08-27
New features:
- When gc extension is enabled with
--expose_gc
flag, RendererCache will invoke gc 1 out of 10 times it runs.
2015-08-25
Enhancements:
- Implements close mechanism for torque renderer to free canvas' images
- Base adaptor exposes and calls renderers' close if available
- Blend renderer calls close on all renderers
Bug fixes:
- Honor RenderCache ttl option
Announcements:
- Do not report png cache size on renderers
- Uses cartodb/[email protected]
2015-08-18
New features:
- Exposes tilelive-mapnik internal metatile cache configuration
Bug fixes:
- Renderer stats for pool and cache now reports from all renderers
Announcements:
- Changes abaculus and tilelive-mapnik to use
cdb
branch
2015-07-15
Announcements:
- Upgrades mapnik to cartodb/[email protected]
- Upgrades abaculus and tilelive-mapnik to also use [email protected]
2015-07-05
Enhancements:
2015-07-02
Enhancements:
- Blend renderer doesn't blend if there is only one tile to blend
2015-07-02
Announcements:
- Removes
beforeTileRender
andafterTileRender
triggers, use version~0.45.0
to keep them
Enhancements:
- Checks for ETIMEDOUT error code so timeouts do not turn into empty image in http layers (#360)
- Allows to set metatile based on the format
2015-06-18
Enhancements:
- Handles coordinates out of range errors returning an empty image
- Blend rendering fallback to empty image when http layer request fails
- Checks the type of torque-specific CSS rules
- Unifies error response format to
{ "errors": ["messages"] }
Announcements:
- Removes LocalizedResourcePurger to avoid issues with cached assets See #339 (comment)
2015-06-01
Enhancements:
- Performance improvement while retrieving metadata for layergroups Does not create renderers for layers with no metadata
2015-05-26
New features
- Blend rendering now allows to filter the layers to render
Layer argument in URL accepts comma separated layer indexes, so now it's possible to do requests like:
GET /{layergroupid}/0,3,4/{z}/{x}/{y}.png
and will blend just layers 0, 3 and 4, skipping 1 and 2. See Multilayer-API.md for more details. - Layergroup creation returns metadata for all layers (#338) Keeps backwards compatibility for torque metadata
- Renderer selection based on layer (#336) Before the renderer selection was based on the format For instance that meant it wasn't possible to request layer in png because that was returning just mapnik layers
2015-04-29
New features
- Static map backend to retrieve preview images. Implementation extracted from static maps controller.
Bug fixes:
- Do not use headers from abaculus in combination with sendWithHeaders That was overriding Cache-Control header in static images
2015-04-16
Enhancements:
- Improve mapnik renderer stats
2015-04-15
Bug fixes:
- Do not profile during map validation (#318)
Enhancements:
- Wrap x coordinate based on zoom level to avoid negative x coordinates
2015-04-09
New features:
tms
option forhttp
layers to invert Y axis in TMS services
Bug fixes:
- Proper stats client instead of stubbed one
2015-04-07
New features:
- onTileErrorStrategy can be injected into adaptors to intercept tile errors and change behaviour
- beforeRendererCreate hook in RenderCache to add options when creating a new Renderer
Announcements:
- Renderer factories changed getRenderer signature, check renderers/README
- Remove tile / style endpoints AKA old API (#259). Most likely this will evolve into a 1.0.0 release.
If you want to keep using those endpoints the best option is to freeze windshaft version @0.40.0.
- Changes includes:
- Before/after state change hooks for styles removed
- Render cache now based on dbname + token
- processRendererCache hook removed
- Changes a lot of tests to use layergroup
- New features in testClient to support kind of transactions with layergroups
- Changes includes:
Bug fixes:
- Layergroup creation via GET returns with status 200 for JSONP (#302)
2015-03-11
New features:
- Adds stats from tilelive-mapnik to step-profiler: it discerns about rendering and encoding times
- Profiler proxy now with add method
Announcements:
- Upgrades step-profiler and tilelive-mapnik to handle new metrics
2015-03-09
New features:
- Allow buffer-size in torque server side rendering (#292)
Bugfixes:
- Support for torque heatmaps server side rendering (#294)
Enhancements:
- Upgrades [email protected] to use fromString async method to create map objects
- Upgrades [email protected]
2015-02-26
Announcements:
- Upgrades node-canvas 1.2.1
2015-02-25
Announcements:
- Upgrades node-canvas 1.2.0
2015-02-23
Bugfixes:
- Adds qualifyURL function as option for the Point renderer (#272)
- For now it is just an identity function
Announcements:
- Upgrades carto to 0.15.1-cdb1 (#271)
- Upgrades torque.js to 2.10.0 (#271)
2015-02-20
Enhancements:
- Force followRedirect in http renderers (#268)
2015-02-18
Enhancements:
- Allow exact match along regex matching in urlTemplate for http layers
2015-02-17
Bugfixes:
- Use datasource for layer when retrieving attributes (#266)
2015-02-17
Enhancements:
- Do not use
inner_cdbq
wrapped queries ifST_ClipByBox2D
orST_SnapToGrid
are not enabled.
2015-02-17
Enhancements:
- Make
urlTemplate
option mandatory in http layers (#265)
2015-02-16
New features:
- Improvements for Mapnik queries using ST_SnapToGrid and ST_ClipByBox2D. New queries can be enabled via config:
renderer.snapToGrid=true
will ONLY use ST_SnapToGridrenderer.snapToGrid=true
andrenderer.clipByBox2d=true
will use both: ST_SnapToGrid and ST_ClipByBox2D- ST_ClipByBox2D requires Postgis >=2.2
- This requires function CDB_ScaleDenominatorToZoom
Bugfixes:
- Don't allow to instantiate a mapnik raster layer with interactivity option (#244)
2015-02-13
New features:
- Adds a fallback http renderer
- Mapconfig per layer datasource
- Plain renderer based on mapnik.Image
- Enable regex matching in valid url templates for http renderer
Bugfixes:
- Use a different zero-based index for grid layers so they can pick up their proper interactivity (#253)
Enhancements:
- Create layergroup improvements, model now does all the validation for the mapconfig
2015-01-28
Bugfixes:
- Fix grid layers order to have the proper index in grainstore (#253)
2015-01-27
Announcements:
- Freeze torque.js version to 2.8
- Makes mapconfig
1.3.0
version final, no more1.3.0-alpha
version required
2015-01-15
New features:
- New endpoint for map config tiles to be rendered with different resolutions, à la retina display.
- Resolution can be specified with
{z}/{x}/{y}@{resolution}x.png
, like in0/0/[email protected]
. - It only supports mapnik tiles right now, torque png tiles should be next.
- Resolution can be specified with
Announcements:
- Remove full layerconfig dump to logfile
2015-01-14
New features:
- Static previews with support for base layers (HTTP layers) and torque layers
- Support to render/proxy HTTP layers
- Render torque tiles server side
- It misses rendering with buffer size
Announcements:
- Remove support for global_cartocss and global_cartocss_version in multilayer config (#207)
Enhancements:
- Split big server.js file into controllers
- Split RenderCache: renderer factory so RenderCache does not know about mapnik (not totally true)
- Don't expose the underlying map configuration store technology
- Reset getInstance method after each test
2014-12-15
Bugfixes:
- Torque Infinity number of steps (#233)
2014-12-15
Bugfixes:
- Fix incorrect number of steps in Torque (see CartoDB/torque#60)
Enhancements:
- Split torque renderer functionality into several files
2014-12-11
Announcements:
- Upgrades mapnik
2014-12-02
Announcements:
- Upgrades grainstore dependency
2014-11-05
New features:
- Add support for raster layers (#190)
- Expose tilelive so it is possible to use the same version externally
2014-10-20
Enhancements:
- Don't autoload fonts when creating new tilelive-mapnik objects
- Add a couple of metrics in render cache to track xml generation and tilelive loading time
2014-10-15
New features
- Report stats about number of renderers and mapnik pools
2014-10-15
New features:
- Exposes statsd client globally
2014-10-14
Bug fixes:
- Consider resolution to determine the LEAST value in torque queries
2014-10-13
Bug fixes:
- Delays RenderCache initialization so StatsD client is created with proper configuration
2014-10-03
Announcements:
- Comes back to use mapnik 2.3.x from cartodb/[email protected] branch
2014-10-01
Announcements:
- Downgrades node-mapnik to 0.7.26-cdb1
2014-09-30
Announcements:
- Downgrades node-mapnik to 1.4.10
Enhancements:
- Upgrades mocha
2014-09-24
New features:
- Starts using mapnik 2.3.x with node-mapnik 1.4.15
Enhancements:
- Upgrades grainstore dependency to be able to use 2.3.0 carto styles
2014-09-18
Enhancements:
- Torque query improvements
- New header for database host serving the request
- Metrics revamp: removes and adds some metrics
- Profiler is now always available as a proxy so no need to keep checking if it exists.
- Tracks and reports time for torque queries, using chronograph module
- Stats client now lives in its own file
- Upgrade dependencies:
- grainstore
- tilelive-mapnik
- tilelive
Bug fixes:
- Increments counters and track timers only for supported formats
- Support specifying column name in MapConfig (#191)
2014-08-19
Bug fixes:
- Responds with 400 error on invalid json input (#156)
2014-08-18
Enhancements:
- Removes npm-shrinkwrap.json as it was a temporary measure to fix a problem with srs.
New features:
- Deprecates psql and starts using cartodb-psql module
2014-08-13
Enhancements:
- Checks mapnik version for grainstore is configured, otherwise it uses installed one
2014-08-13
Enhancements:
- Upgrades dependencies:
- underscore
- grainstore
- redis-mpool
- pg
- Specifies name in the redis pool
2014-08-07
New features:
- Upgrade to grainstore 0.19.0 version
2014-07-30
Enhancements:
- dbhost and dbport are no longer hashed in on the MapConfig identifier hash, so dbhost and dbport can be dynamically altered at runtime keeping the same URL schema.
- Cache buster does not invalidate renderer if it is numeric and smaller than cached buster (#177)
- Literal expression for some regular expressions
- Profiler header sent as JSON string
Bug fixes:
- Returns 400 errors for bad filters and missing columns in queries
Other changes:
- Metrics documentation
2014-05-07
Enhancements:
- Make tests runnable in Mac OS X
- Code reorganization for CacheEntry
- assert helper now support per mil tolerance to check image equality
Bug fixes:
- Do not omit points close to the tile boundary from torque tiles (#186)
- Use correct torque.js dependency
2014-03-20
Enhancements:
- Do not cache bogus renderers (#171)
- Upgrade carto to 0.9.5-cdb3
- Use INFO level for express logging
- Do not include connection info in error responses (#173)
Other changes:
- Use external module as profiler (#174)
- Switch to 3-clause BSD license (#175)
2014-03-05
Enhancements:
- Catch statsd exceptions (#166, #167)
2014-03-04
Enhancements:
- Log full connection string on PostgreSQL connection error (#165)
- Prefix statsd resulting from hits of / and /version endpoints
- Use 403 status, not 401, for forbidden access
- Upgrade grainstore to 0.18.1
2014-02-27
Enhancements:
- Send 404 instead of 400 on attempts to fetch non-existing database items
- Send 500 status and better error message on db connection error
- Use "TorqueRenderer" prefix for errors generated by it (#164)
- Inject db parameters in user-provided MapConfig objects (#163)
2014-02-26
Enhancements:
- Do not send 0 timings to statsd (fixes "Bad line: 0,ms" messages)
- Do not call req2params more then once on MapConfig creation (#157)
- Do not invalidate renderer caches when NO cache_buster is given (#158)
- Call afterLayergroupCreate only after MapConfig verification (#159)
- Drop LRU cache for "seen" layergroups (#160)
- Clearer error on mapnik tokens use with attribute service (#154)
- Include MapConfig specification and MultilayerAPI documents in repo
Bug fixes:
- Fix MapStore.save always false "known" return variable (#162)
2014-02-19
New features:
- Use own .sendResponse function for all responses
- Make MapStore instance accessible via app
- Allow passing RedisPooler via server options (#146)
Enhancements:
- Use log4js express logger if global.log4js is defined (#140)
- Include format in rendering profile labels (#152)
2014-02-17
Bug fixes:
- Fix error message on unexistent map config token (#148)
Enhancements:
- Integrate statsD support in Profiler
2014-02-13
Bug fixes:
- Fix duplicated garbage collection via grainstore upgrade
Enhancements:
- Speed up construction of mapnik renderers
- Allow disabling statsD via configuration (#144)
2014-02-12
Enhancements:
- Advertise support for node-0.10 (#128)
- Use a single pooler for mapnik and torque renderers (#142)
- Improve garbage collection performance (#141)
- Add statsd support
2014-02-11
Enhancements:
- Reduce debug logs (#139)
2014-02-11
Bug fixes:
- Check attribute service validity at MapConfig creation time (#131)
- Use read-only transactions for torque tiles and attributes (#130)
- Fix reading database password (dbpassword) from req.param (#134)
Enhancements:
- Add 'torque.json' and 'torque.bin' format aliases (#133)
- Allow specifying name of torque geometry column in the MapConfig (#125)
- Improve error message on attempts to fetch torque tile from non-torque layers (#136)
- Include X-Tiler-Profiler header in POST /style endpoint (#138)
- Improve speed of POST /style and DELETE /style (#138)
2014-02-04
New features:
- Configurable endpoint for multilayer API (#126)
Bug fixes:
- Fix coordinate order in TorqueRenderer.getTile
2014-02-04
New features:
- Support for torque tiles (#113)
- New attributes service (#121)
Enhancements:
- Store full layergroup configuration in redis (#114)
Backward incompatible changes:
- Drop support for XML processor hook (#119)
2014-01-30
Bug fixes:
- Fix testsuite run against PostGIS-1.5 (#108, #109)
- Fix core dependency list to include 'semver' (#112)
- Fix use of maxzoom (#78, again)
2014-01-14
New features:
- Make strict XML parsing configurable via params (#100)
Bug fixes:
- Fix restore of localized resources on renderer creation (#107)
2013-12-05
- Fix use of layergroups on mapnik upgrade (#101)
2013-11-28
- Update tilelive-mapnik to upsteam version 0.6.4 (#86)
- Survive presence of malformed CartoCSS in redis (#97)
- Validate fonts at CartoCSS rendering time (#98)
2013-11-13
- Return CORS headers when creating layergroups via GET (#92)
- Fix http status on database authentication error (#94)
- Ensure bogus text-face-name error raises at layergroup creation (#93)
2013-11-08
- Fix parsing of CartoCSS filter values using exponential notation (#90)
2013-10-31
- Update grainstore dep to ~0.14.1
- Fix test preparation when postgresql params are set
2013-10-31
- Support for Mapnik 2.2.0 (#89)
2013-10-03
- Require grainstore 0.13.11, fixing support for apostrophes in CartoCSS (#87)
2013-09-12
- Require grainstore 0.13.10, fixing error message for some invalid cartocss (#85)
2013-09-09
- Always use http status 200 for jsonp requests (#84)
- Upgrade grainstore to 0.13.9, fixing " zoom" error "sql/table must contain zoom variable"
2013-09-04
- Fix race condition with external resources (#82)
2013-09-03
- Upgrade tilelive-mapnik to use eio-2.1.0
- Enable travis-ci
2013-08-13
- Rewrite mapnik XML parsing error to start with style name (#73)
- Fix error on empty CartoCSS
2013-07-18
- Do not print profile to stdout (use log_format for that)
- Include renderer build time to profile
- Do not re-check layergroup configs with no interaction
- Log full layergroup config with resulting token on creation (#80)
2013-07-16
- Add support for profiling requests
2013-07-16
- Improve error message on blank CartoCSS in multilayer config
2013-07-04
- Do not assume already-tested layergroup config was good (#79)
2013-06-28
- Allow setting layergroup token ttl via config variable grainstore.default_layergroup_ttl
- Only check layergroup configuration when first seen (#77)
- Use tile 30/0/0 for testing layergroups, override with maxzoom (#78)
2013-06-26
- Do not confuse single layergroup creation errors with multiple errors
2013-06-21
- Try fetching tile and grids on layergroup creation, early reporting errors
2013-06-12
- Redis moved to a devDependency, and upgraded to ~0.8.3
- Grainstore dependency raised to ~0.13.4, fixing possible deadlocks during map styles gc operations.
2013-06-06
- Grainstore dependency raised to ~0.13.3
2013-05-29
- Do not confuse colors with layer names (#72)
2013-05-29
- Fix handling of layer name placeholder in multi-section CSS (#71)
2013-05-21
- Add possibility to specify a literal cache_buster value in benchmark.js
- Allow Content-Type with encoding on /layergroup POST (#70)
2013-04-04
- Multilayer API changes
- Interactivity layers are referenced by index (0-based)
- Interactivity fields are only specified at layergroup creation time
- Upgrade tilelive to ~4.4.2
- Upgrade generic-pool to ~2.0.3
2013-04-03
- Drop tilelive-mapnik internal cache
2013-04-02
- Multilayer API changes (revert to 0.9.x behavior)
- Configure interactivity at grid fetch time
- Drop /layergroup/:token/:z/:x/:y.grid.json route
- Add /layergroup/:token/:layer/:z/:x/:y.grid.json route
- Add /layergroup route to create maps via GET (#69)
- Add map config to afterLayergroupCreate hook signature
2013-03-29
- Multilayer API changes
- Fully configure interactivity at layergroup (token) creation
- Drop /layergroup/:token/:layer/:z/:x/:y.grid.json route
- Add /layergroup/:token/:z/:x/:y.grid.json route
2013-03-13
- Change afterLayergroupCreate hook signature to take a full http request as first parameter
2013-03-01
- Implement OPTIONS for multilayer endpoint
- Add "test" make target (alias to "check")
- Add support for global_cartocss_version in multilayer config
- Allow req2param to install a RendererCache processor in the parameters (params.processRendererCache)
- Per-map cache_buster encoding (#58)
2013-02-25
- New multilayer API (#61)
2013-02-11
- Do not assume any thrown exception is an Error (#65)
- Clear both aut and non-auth render cache on style change (#59)
- Require an 'interactivity' param when fetching grids (#55)
- Allow configuring 'metatile' and 'buffer size' of renderer
- Allow configuring renderer cache time to live (#35)
2013-01-30
- Add dumpCacheStats method of Windshaft server
- Log cache cleanup activity outcome
2013-01-28
- Enhance run_tests.sh to allow running single tests and skipping preparation
- Return status code 400 on POST STYLE and GET STYLE errors
- Require grainstore ~0.10.10
2012-12-20
- Require tilelive-mapnik 0.3.3-cdb2 to fix bug with utf grid cache http://github.com/Vizzuality/Windshaft-cartodb/issues/67
2012-12-19
- Add X-Windshaft-Cache header
- Require grainstore ~0.10.8 for better 2.0.0 -> 2.1.0 transforms
2012-11-14
- API: add "style_convert" parameter to GET /style
- Support geometry-type based rendering (#11)
2012-10-30
- Allow sql queries to end with a semicolon
- Added CORS headers to OPTIONS method
- More enhancements to the benchmark.js script
- Properly handle async nature of mml_builder construction (#51)
2012-10-19
- API: add "style_" prefix to "version" and "convert" parameters
- Enhancements to the benchmark.js script
2012-10-11
- Log all error responses to console
- Provide a sendError method to subclasses
2012-10-09
- Fix getVersion reporting of grainstore version
2012-10-08
- CartoCSS version control
- Include version in GET /style response
- Support version and convert parameters in POST /style request
- Add /version entry point
- Autodetect target mapnik version and let config override it
2012-09-28
- Automated localization of external resources referenced in carto
- Send 400 response status on GET tile errors
- Added support for OPTIONS method in tile_style to be able to change styles from a javascript client
2012-09-03
- Include database username in renderer cache key (#42).
- Allow req2param to install an XML processor in the parameters
- Less verbose error messages
- Send 401 on authentication failure and 404 on table not found (#30)
2012-08-07
- Add beforeStateChange called on POST and DELETE style request
2012-08-07
- Use custom tilelive-mapnik to workaround ever-growing memory use
- Expose setStyle and delStyle methods
- Add afterStyleChange and afterStyleDelete callbacks
2012-08-01
- Enable metatiling (4x4) speeding up 5x4 viewport fillups by ~2.5 (#12)
- Shrinkwrap node-mapnik 0.7.9, fixing the garbage collection issue (#32)
2012-07-25
This release drops the requirement of a field already in epsg:3857 (aka "the_geom_webmercator");
- Raise grainstore dependency to ~0.3.1 to allow for safe wgs84 to webmercator reprojection in mapnik.
- Update tests to use mapnik reprojection.
- Improve testing tool to accept tolerances
- Shrinkwrap carto 0.8.1 and mapnik-reference 3.1.0
2012-07-20
- Node 0.8 support
- Raise tilelive dependency to ~4.3.1
2012-07-12
- Raise underscore dependency to ~1.3
- Loosen grainstore dependency to >= 0.2.3 < 0.4
- Loosen hiredis dependency to ~0.1.12
2012-07-05
NOTE: this release drops support for node-0.4.x
- Requires node-0.6 (#10)
- Add npm-shrinkwrap.json file to lock dependencies versions
- Add support for mapnik 2.1.x (#14)
- Stop depending on the tilelive-mapnik-cartodb fork of tilelive-mapnik (#26)
2012-07-04
- Encode dependency on node-0.4
- Raise express dependency to 2.5.11 (supports node-0.6)
- Prepare code to support express-3.0
- Redis dependency raised from 0.6.7 to 0.7.2 (supports node-0.8)
- Require grainstore 0.2.3 (supports node-0.8)
- Require zlib module as a workaround to "express" requiring a version of "connect" which doesn't do so while it should (senchalabs/connect#613)
- Testsuite enhancements
- Read connection params from environment also at preparation time
- Better handling of database preparation failures
- Require mocha 1.2.1 as 1.2.2 doesn't work with node-0.4 See mochajs/mocha#489
2012-06-26
- Testsuite enhancements
- Run on "make check"
- Ported to mocha
- Do not hang anymore
- Fix invalid MML syntax
- More verbose failures
- Improved documentation
- Raise grainstore dependency to 0.2.2
2012-05-07
2012-04-23
2012-04-01
2011-12-14
2011-12-09
2011-12-09
2011-12-08
2011-11-30
2011-11-25
2011-10-13
2011-10-07
2011-10-07
2011-10-07
2011-10-07
2011-10-07
2011-09-20
2011-09-20
2011-09-20
2011-09-14
2011-09-14
2011-09-14
2011-09-06
2011-09-04
2011-09-04
2011-09-04