Go to file
Raul Ochoa 3af45e1a32 Moves calls to SQL API to its own entity.
Groups affected tables and last updated time for affected tables into one request.
2014-07-30 13:46:46 +02:00
config/environments Fix documentation for redis.max setting 2014-04-16 17:53:42 +02:00
docs Wrap all json strings and string values in double-quotes 2014-06-09 12:19:16 +02:00
lib/cartodb Moves calls to SQL API to its own entity. 2014-07-30 13:46:46 +02:00
test Adds host to redis setup as it does not make sense to continue if there is no host in redis. 2014-07-04 11:47:44 +02:00
tools Fix show_style tool broken since 1.8.1 2014-03-31 12:53:48 +02:00
.gitignore Remember per-environment ./configure parameters 2013-12-17 17:17:14 +01:00
.travis.yml Sets PGUSER environment variable 2014-06-24 12:39:57 +02:00
app.js Refuse to start if log_filename points to a non-existing directory 2014-05-07 11:03:25 +02:00
configure Remember per-environment ./configure parameters 2013-12-17 17:17:14 +01:00
HOWTO_RELEASE Update release document 2014-04-09 09:14:20 +02:00
LICENSE Switch to 3-clause BSD license 2014-03-20 10:20:51 +01:00
Makefile Implement signed teplate maps 2013-12-17 17:39:21 +01:00
NEWS.md CDB-3256 Prepares 1.12.1 release 2014-06-24 16:26:57 +02:00
npm-shrinkwrap.json Retrieving db public user from redis. It uses a new multiget method from cartodb-redis 2014-07-03 21:39:47 +02:00
package.json Retrieving db public user from redis. It uses a new multiget method from cartodb-redis 2014-07-03 21:39:47 +02:00
README.md Keep build status line within 80 cols (and use http) 2014-01-09 18:01:22 +01:00
run_tests.sh Set default PostgreSQL application name to "cartodb_tiler" 2014-05-07 16:19:22 +02:00

Windshaft-CartoDB

[Build Status] (http://travis-ci.org/CartoDB/Windshaft-cartodb)

This is the CartoDB map tiler. It extends Windshaft with some extra functionality and custom filters for authentication

  • reads dbname from subdomain and cartodb redis for pretty tile urls
  • configures windshaft to publish cartodb_id as the interactivity layer
  • gets the default geometry type from the cartodb redis store
  • allows tiles to be styled individually
  • provides a link to varnish high speed cache
  • provides a infowindow endpoint for windshaft (DEPRECATED)
  • provides a map_metadata endpoint for windshaft (DEPRECATED)
  • provides signed template maps API (http://github.com/CartoDB/Windshaft-cartodb/wiki/Template-maps)

Requirements

[core]

  • node-0.8.x+
  • PostgreSQL-8.3+
  • PostGIS-1.5.0+
  • Redis 2.4.0+ (http://www.redis.io)
  • Mapnik 2.0 or 2.1

[for cache control]

[for running the testsuite]

Configure

Create the config/environments/.js files (there are .example files to start from). You can optionally use the ./configure script for this, see ./configure --help to see available options.

Look at lib/cartodb/server_options.js for more on config

Build/install

To fetch and build all node-based dependencies, run:

git clone
npm install

Note that the npm install step will populate the node_modules/ directory with modules, some of which being compiled on demand. If you happen to have startup errors you may need to force rebuilding those modules. At any time just wipe out the node_modules/ directory and run npm install again.

Run

node app.js <env> 

Where is the name of a configuration file under config/environments/.

Note that caches are kept in redis. If you're not seeing what you expect there may be out-of-sync records in there. Take a look: http://redis.io/commands

URLs

TILES

[GET] subdomain.cartodb.com/tiles/:table_name/:z/:x/:y.[png|png8|grid.json]

Args:

  • sql - plain SQL arguments
  • interactivity - specify the column to use in UTFGrid
  • cache_buster - Specify an identifier for the internal tile cache. Requesting tiles with the same cache_buster value may result in being served a cached version of the tile (even when requesting a tile for the first time, as tiles can be prepared in advance)
  • cache_policy - Set to "persist" to have the server send an Cache-Control header requesting caching devices to keep the response cached as much as possible. This is best used with a timestamp value in cache_buster for manual control of updates.
  • geom_type - override the cartodb default
  • style - override the default map style with Carto

STYLE

[GET/POST] subdomain.cartodb.com/tiles/:table_name/style

Args:

  • style - the style in CartoCSS you want to set
  • style_version - the version of the style for POST
  • style_convert - request conversion to target version (both POST and GET)

INFOWINDOW

[GET] subdomain.cartodb.com/tiles/:table_name/infowindow

Args:

  • infowindow - returns contents of infowindow from CartoDB.

MAP METADATA

[GET] subdomain.cartodb.com/tiles/:table_name/map_metadata

Args:

  • infowindow - returns contents of infowindow from CartoDB.

All GET requests are wrappable with JSONP using callback argument, including the UTFGrid map tile call.