changing endpoint groups constant keys
This commit is contained in:
@@ -64,7 +64,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/:token/:z/:x/:y@:scale_factor?x.:format',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_8),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.TILE),
|
||||
this.prepareContext,
|
||||
this.tile.bind(this),
|
||||
vectorError()
|
||||
@@ -74,7 +74,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/:token/:z/:x/:y.:format',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_8),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.TILE),
|
||||
this.prepareContext,
|
||||
this.tile.bind(this),
|
||||
vectorError()
|
||||
@@ -84,7 +84,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/:token/:layer/:z/:x/:y.(:format)',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_8),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.TILE),
|
||||
validateLayerRouteMiddleware,
|
||||
this.prepareContext,
|
||||
this.layer.bind(this),
|
||||
@@ -95,7 +95,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/:token/:layer/attributes/:fid',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_9),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ATTRIBUTES),
|
||||
this.prepareContext,
|
||||
this.attributes.bind(this)
|
||||
);
|
||||
@@ -104,7 +104,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/static/center/:token/:z/:lat/:lng/:width/:height.:format',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_2),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.STATIC),
|
||||
allowQueryParams(['layer']),
|
||||
this.prepareContext,
|
||||
this.center.bind(this)
|
||||
@@ -114,7 +114,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_2),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.STATIC),
|
||||
allowQueryParams(['layer']),
|
||||
this.prepareContext,
|
||||
this.bbox.bind(this)
|
||||
@@ -142,7 +142,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/:token/dataview/:dataviewName',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_5),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.DATAVIEW),
|
||||
allowQueryParams(allowedDataviewQueryParams),
|
||||
this.prepareContext,
|
||||
this.dataview.bind(this)
|
||||
@@ -152,7 +152,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/:token/:layer/widget/:dataviewName',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_5),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.DATAVIEW),
|
||||
allowQueryParams(allowedDataviewQueryParams),
|
||||
this.prepareContext,
|
||||
this.dataview.bind(this)
|
||||
@@ -162,7 +162,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/:token/dataview/:dataviewName/search',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_6),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.DATAVIEW_SEARCH),
|
||||
allowQueryParams(allowedDataviewQueryParams),
|
||||
this.prepareContext,
|
||||
this.dataviewSearch.bind(this)
|
||||
@@ -172,7 +172,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/:token/:layer/widget/:dataviewName/search',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_6),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.DATAVIEW_SEARCH),
|
||||
allowQueryParams(allowedDataviewQueryParams),
|
||||
this.prepareContext,
|
||||
this.dataviewSearch.bind(this)
|
||||
@@ -182,7 +182,7 @@ LayergroupController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/:token/analysis/node/:nodeId',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_7),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ANALYSIS),
|
||||
this.prepareContext,
|
||||
this.analysisNodeStatus.bind(this)
|
||||
);
|
||||
|
||||
@@ -59,28 +59,28 @@ MapController.prototype.register = function(app) {
|
||||
base_url_mapconfig,
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_1),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ANONYMOUS),
|
||||
this.composeCreateMapMiddleware()
|
||||
);
|
||||
app.post(
|
||||
base_url_mapconfig,
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_1),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ANONYMOUS),
|
||||
this.composeCreateMapMiddleware()
|
||||
);
|
||||
app.get(
|
||||
`${base_url_templated}/:template_id/jsonp`,
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_13),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED),
|
||||
this.composeCreateMapMiddleware(useTemplate)
|
||||
);
|
||||
app.post(
|
||||
`${base_url_templated}/:template_id`,
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_13),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED),
|
||||
this.composeCreateMapMiddleware(useTemplate)
|
||||
);
|
||||
app.options(
|
||||
|
||||
@@ -47,7 +47,7 @@ NamedMapsController.prototype.register = function(app) {
|
||||
app.base_url_templated + '/:template_id/:layer/:z/:x/:y.(:format)',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_17),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_TILES),
|
||||
this.prepareContext,
|
||||
this.getNamedMapProvider('NAMED_MAP_TILE'),
|
||||
this.getAffectedTables(),
|
||||
@@ -65,7 +65,7 @@ NamedMapsController.prototype.register = function(app) {
|
||||
app.base_url_mapconfig + '/static/named/:template_id/:width/:height.:format',
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_3),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.STATIC_NAMED),
|
||||
allowQueryParams(['layer', 'zoom', 'lon', 'lat', 'bbox']),
|
||||
this.prepareContext,
|
||||
this.getNamedMapProvider('STATIC_VIZ_MAP'),
|
||||
|
||||
@@ -25,7 +25,7 @@ NamedMapsAdminController.prototype.register = function (app) {
|
||||
`${base_url_templated}/`,
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_11),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_CREATE),
|
||||
this.checkContentType('POST', 'POST TEMPLATE'),
|
||||
this.authorizedByAPIKey('create', 'POST TEMPLATE'),
|
||||
this.create()
|
||||
@@ -35,7 +35,7 @@ NamedMapsAdminController.prototype.register = function (app) {
|
||||
`${base_url_templated}/:template_id`,
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_14),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_UPDATE),
|
||||
this.checkContentType('PUT', 'PUT TEMPLATE'),
|
||||
this.authorizedByAPIKey('update', 'PUT TEMPLATE'),
|
||||
this.update()
|
||||
@@ -45,7 +45,7 @@ NamedMapsAdminController.prototype.register = function (app) {
|
||||
`${base_url_templated}/:template_id`,
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_12),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_GET),
|
||||
this.authorizedByAPIKey('get', 'GET TEMPLATE'),
|
||||
this.retrieve()
|
||||
);
|
||||
@@ -54,7 +54,7 @@ NamedMapsAdminController.prototype.register = function (app) {
|
||||
`${base_url_templated}/:template_id`,
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_15),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_DELETE),
|
||||
this.authorizedByAPIKey('delete', 'DELETE TEMPLATE'),
|
||||
this.destroy()
|
||||
);
|
||||
@@ -63,7 +63,7 @@ NamedMapsAdminController.prototype.register = function (app) {
|
||||
`${base_url_templated}/`,
|
||||
cors(),
|
||||
userMiddleware,
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_10),
|
||||
rateLimit(this.metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.NAMED_LIST),
|
||||
this.authorizedByAPIKey('list', 'GET TEMPLATE LIST'),
|
||||
this.list()
|
||||
);
|
||||
|
||||
@@ -3,21 +3,21 @@
|
||||
const REDIS_DB = 8;
|
||||
|
||||
const RATE_LIMIT_ENDPOINTS_GROUPS = {
|
||||
ENDPOINT_1: 'anonymous',
|
||||
ENDPOINT_2: 'static',
|
||||
ENDPOINT_3: 'static_named',
|
||||
ENDPOINT_5: 'dataview',
|
||||
ENDPOINT_6: 'dataview_search',
|
||||
ENDPOINT_7: 'analysis',
|
||||
ENDPOINT_8: 'tile',
|
||||
ENDPOINT_9: 'attributes',
|
||||
ENDPOINT_10: 'named_list',
|
||||
ENDPOINT_11: 'named_create',
|
||||
ENDPOINT_12: 'named_get',
|
||||
ENDPOINT_13: 'named',
|
||||
ENDPOINT_14: 'named_update',
|
||||
ENDPOINT_15: 'named_delete',
|
||||
ENDPOINT_17: 'named_tiles'
|
||||
ANONYMOUS: 'anonymous',
|
||||
STATIC: 'static',
|
||||
STATIC_NAMED: 'static_named',
|
||||
DATAVIEW: 'dataview',
|
||||
DATAVIEW_SEARCH: 'dataview_search',
|
||||
ANALYSIS: 'analysis',
|
||||
TILE: 'tile',
|
||||
ATTRIBUTES: 'attributes',
|
||||
NAMED_LIST: 'named_list',
|
||||
NAMED_CREATE: 'named_create',
|
||||
NAMED_GET: 'named_get',
|
||||
NAMED: 'named',
|
||||
NAMED_UPDATE: 'named_update',
|
||||
NAMED_DELETE: 'named_delete',
|
||||
NAMED_TILES: 'named_tiles'
|
||||
};
|
||||
|
||||
function rateLimitFn(metadataBackend, endpointGroup = null) {
|
||||
|
||||
@@ -72,7 +72,7 @@ function setLimit(count, period, burst) {
|
||||
return;
|
||||
}
|
||||
|
||||
const key = getStoreKey(user, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_1);
|
||||
const key = getStoreKey(user, RATE_LIMIT_ENDPOINTS_GROUPS.ANONYMOUS);
|
||||
redisClient.rpush(key, burst);
|
||||
redisClient.rpush(key, count);
|
||||
redisClient.rpush(key, period);
|
||||
@@ -280,7 +280,7 @@ describe('rate limit middleware', function () {
|
||||
|
||||
const redisPool = new RedisPool(global.environment.redis);
|
||||
const metadataBackend = cartodbRedis({ pool: redisPool });
|
||||
rateLimit = rateLimitMiddleware(metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ENDPOINT_1);
|
||||
rateLimit = rateLimitMiddleware(metadataBackend, RATE_LIMIT_ENDPOINTS_GROUPS.ANONYMOUS);
|
||||
|
||||
redisClient = redis.createClient(global.environment.redis.port);
|
||||
testClient = new TestClient(createMapConfig(), 1234);
|
||||
|
||||
Reference in New Issue
Block a user