Go to file
Sandro Santilli de275bfc50 Delegate user permission to PostgreSQL (closes #18)
If the request is authenticated (with map_key) then we log as the
database owner, otherwise we log as the default user.
The default user is now "publicuser" by default.

Raises dependency on Windshaft to 0.4.9+, to get the grainstore
version allowing override of database username.

Add test for req2params function, particularly authentication,
Add test for authenticated / unauthenticated access
2012-07-18 11:09:17 +02:00
config Delegate user permission to PostgreSQL (closes #18) 2012-07-18 11:09:17 +02:00
lib/cartodb Delegate user permission to PostgreSQL (closes #18) 2012-07-18 11:09:17 +02:00
test Delegate user permission to PostgreSQL (closes #18) 2012-07-18 11:09:17 +02:00
.gitignore include delete route 2011-11-25 21:21:21 +00:00
app.js Require carto_data only after setting the global env (closes #28) 2012-07-10 09:49:56 +02:00
cluster.js Require carto_data only after setting the global env (closes #28) 2012-07-10 20:39:24 +02:00
LICENCE License is BSD (added file and reference) 2012-07-05 18:30:18 +02:00
Makefile Add "make clean" 2012-07-10 15:56:40 +02:00
package.json Delegate user permission to PostgreSQL (closes #18) 2012-07-18 11:09:17 +02:00
README.md Make it clear that this package requires node-0.4 2012-07-09 13:21:19 +02:00
run_tests.sh Delegate user permission to PostgreSQL (closes #18) 2012-07-18 11:09:17 +02:00

Windshaft-CartoDB

NOTE: requires node-0.4.x

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
  • provides a map_metadata endpoint for windshaft

Install

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.

Configure

Edit config/environments/.js files

Look at lib/cartodb/server_options for more on config

Run

node app.js [development | production]

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 - if needed you can add a cachebuster to make sure you're rendering new
  • 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

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.