Commit Graph

792 Commits

Author SHA1 Message Date
Simon Martín
4322ccdd09 adding new endpoints to rate limits 2018-05-03 18:50:13 +02:00
Simon Martín
af4c5906c8 adding /sql tro the endpoints 2018-05-03 18:31:49 +02:00
Paul Ramsey
36bdf84f71 Merge branch 'master' of github.com:CartoDB/CartoDB-SQL-API into pgcopy-stream 2018-04-27 15:56:13 +02:00
Paul Ramsey
e2d8896307 Typo in curl example 2018-04-27 12:32:47 +02:00
Paul Ramsey
5f9cc37dba Jshint change, DRY the content-disposition handler 2018-04-27 12:19:53 +02:00
Paul Ramsey
fe52af71ac Add documentation SQL API copyfrom/copyto end points,
and make small modifications arising from that task
2018-04-27 11:55:06 +02:00
Paul Ramsey
c78cac9bd6 Use the correct database credentials, so we obey security 2018-04-26 10:45:52 +02:00
Paul Ramsey
f13028b497 More jshint changes 2018-04-26 10:20:21 +02:00
Simon Martín
5f8e1d8f53 fix validatePGEntitiesAccess access 2018-04-26 10:13:03 +02:00
Paul Ramsey
cc5fa5c6ce Changes suggested by jshint 2018-04-26 10:04:38 +02:00
Paul Ramsey
ea66076255 Remove 'console.debug', try and get travis tests clean 2018-04-26 09:40:13 +02:00
Paul Ramsey
a98781d335 Working code for /copyfrom (streaming) and /copyto (streaming) 2018-04-25 18:37:04 +02:00
Paul Ramsey
b59bda5780 Get working copyto implementation in place. Many test cases
needed still and thoughts on how to communicate errors back
that are maybe nicer than stack messages?
2018-04-24 15:55:20 +02:00
Simon Martín
e12e16507a create object and export 2018-04-24 13:21:43 +02:00
Paul Ramsey
4914100205 CopyFrom works, but still needs a decent return payload and
a lot of work on returning useful information for error cases (post empty input,
db errors returned more nicely? etc)
2018-04-24 13:07:57 +02:00
Paul Ramsey
72bce5732b WIP on /copyfrom 2018-04-24 11:26:15 +02:00
Simon Martín
3b228ac17b solving jshint crazy error 2018-04-24 10:10:37 +02:00
Simon Martín
985f9ef7f5 pgEntitiesAccessValidator 2018-04-23 18:17:44 +02:00
Rafa de la Torre
2229d0ee57 Fix jshint issues 2018-04-13 16:36:43 +02:00
Paul Ramsey
0161696627
Update copy_controller.js 2018-04-13 05:43:23 -07:00
Paul Ramsey
d54e2f5a07 Implementation including multer, custom storage engine, and pg-copy,
but without turning over pg-copy, and demonstrating the missing 'sql'
parameter in the custom storage engine.
2018-04-12 12:25:28 -07:00
Simon Martín
2a729b7da8 destructuring error_handler parameters 2018-04-03 13:43:17 +02:00
Simon Martín
3f6b6d3cff middleware naming 2018-04-03 13:41:18 +02:00
Simon Martín
db6ab4a591 let & const vars 2018-03-28 13:52:45 +02:00
Simon Martín
adab7f21d8 setErrorHeader refactor 2018-03-28 13:50:45 +02:00
Simon Martín
720c3eb8cb changing msg var name for errorResponse 2018-03-28 13:35:19 +02:00
Simon Martín
4301b63189 fix error 2018-03-28 13:31:31 +02:00
Simon Martín
616f3f3c07 errorHandlerFactory 2018-03-28 13:06:39 +02:00
Simon Martín
16ea727fc3 move ErrorHandler logic from error middleware 2018-03-28 12:58:10 +02:00
Simon Martín
5b6f876cd6 change pgErrorHandler for more generic errorHandler 2018-03-28 12:50:07 +02:00
Simon Martín
b45f5fe31e move ErrorHandler to services folder 2018-03-28 12:49:33 +02:00
Simon Martín
287d4634c6 rename createPgError to createGenericError 2018-03-28 12:43:34 +02:00
Simon Martín
e611d21029 getName refactor 2018-03-28 12:38:45 +02:00
Simon Martín
2bfa00ab57 getStatus refactor 2018-03-28 12:35:01 +02:00
Simon Martín
d727a50407 jshint 2018-03-28 12:17:42 +02:00
Simon Martín
96435d28e0 removing underscore dependency 2018-03-28 12:15:55 +02:00
Simon Martín
e2641200f7 extracting error type check 2018-03-28 12:13:31 +02:00
Simon Martín
575f1b3a05 simplify error response on models 2018-03-28 11:55:52 +02:00
Simon Martín
050c598e90 using new error handler as a Error 2018-03-28 11:30:11 +02:00
Simon Martín
2722302a89 using error handler as a Error 2018-03-28 11:29:38 +02:00
Simon Martín
60021a70dc extends Error 2018-03-28 10:56:06 +02:00
Simon Martín
522363c419 removing semicolons 2018-03-28 10:49:50 +02:00
Simon Martín
eefea03b80 error handler to class 2018-03-28 10:48:25 +02:00
Simon Martín
67e1c04efd indentation details 2018-03-28 10:48:08 +02:00
Simon Martín
c6eb0ad4c7 error middleware name 2018-03-28 09:58:05 +02:00
Simon Martín
0998e50014 refactor getFields method 2018-03-27 15:56:53 +02:00
Simon Martín
b75334f1e7 Merge branch 'master' into limits-error-refactor 2018-03-27 15:32:24 +02:00
Simon Martín
483c263f61 adding and testing limits error response with params 2018-03-26 19:10:23 +02:00
Simon Martín
54876fa203 addind properties to limits errors 2018-03-26 15:56:50 +02:00
Simon Martín
50b8a9ed17 remove unused parameter 2018-03-23 18:02:44 +01:00
Simon Martín
0b708165b3 simplify timeout error catch 2018-03-23 17:48:21 +01:00
Simon Martín
8c86c2b3f8 correct error message in rate limit 2018-03-23 15:35:06 +01:00
Simon Martín
26baaf6081 removing retry after when no necessary 2018-03-23 15:09:16 +01:00
Simon Martín
80818c3cbb fix userLimits reference 2018-03-20 16:20:56 +01:00
Simon Martín
581bd0dd89 Merge branch 'master' into rateLimits 2018-03-14 12:47:45 +01:00
Simon Martín
1ffeb456e8 Headers following rfc6648 2018-03-14 12:17:26 +01:00
Daniel García Aubert
8dea7615c4 Use user's port instead of the generic one 2018-03-13 19:08:51 +01:00
Daniel García Aubert
328d6f253e Honor batch api port 2018-03-13 18:49:01 +01:00
Eneko Lakasta
2ec767c1fc Set Vary Header to honor Authorization header when caching (fastly) 2018-03-13 11:59:07 +01:00
Simon Martín
9cd4e85768 using cartodb-redis in rate limits 2018-03-03 15:01:45 +01:00
Simon Martín
b6ff37d33f changing param name 2018-03-02 19:57:33 +01:00
Simon Martín
967cdf8a06 refactoring user_limits 2018-03-02 19:54:22 +01:00
Simon Martín
5cd7c24776 refactoring middleware and updating tests 2018-03-02 16:42:45 +01:00
Simon Martín
a11d9870a3 exporting RATE_LIMIT_REDIS_DB 2018-03-02 13:17:50 +01:00
Simon Martín
25d1e5442c new redis keys 2018-03-01 15:51:19 +01:00
Simon Martín
7a6ef637ae make jshint happy 2018-03-01 14:47:34 +01:00
Simon Martín
f3adad57aa fix assignment 2018-03-01 13:15:32 +01:00
Simon Martín
779ab3b83f adding rate limit middleware to controllers 2018-03-01 12:19:57 +01:00
Simon Martín
a3dfd2767b rate limit middleware 2018-03-01 12:19:28 +01:00
Simon Martín
2834975d14 controllers using user limits service 2018-03-01 11:31:35 +01:00
Simon Martín
3fdb7abeaf user limits service 2018-03-01 11:30:34 +01:00
Daniel García Aubert
5802b2182e Improve profiling 2018-02-27 13:56:00 +01:00
Daniel García Aubert
78f8c430ea Merge branch 'master' into auth-api 2018-02-27 12:24:40 +01:00
Daniel García Aubert
6f4c79eaef Fix common interface for auth-backends 2018-02-26 19:02:05 +01:00
Daniel García Aubert
418ec1304f Fix issue with auth fallback, it wasn't authenticated when apikey master was provided 2018-02-26 18:13:49 +01:00
Daniel García Aubert
cf0214f5c3 Respond with 403 intead of 401 when the request has no permissions to the specific resource 2018-02-23 15:50:23 +01:00
Daniel García Aubert
f85bdf53a5 Missing middleware 2018-02-23 13:19:26 +01:00
Daniel García Aubert
897d38c3f4 Do not set undefined step 2018-02-23 13:05:41 +01:00
Daniel García Aubert
47b54612c7 Place send-response-middleware to the very end of middleware stack 2018-02-23 13:03:56 +01:00
Rafa de la Torre
90b0ec61c2 Add RESIZE=yes param to shapefiles export
Add the parameter `RESIZE=yes` to gdal shapefile driver. This resizes
fields to their optimal size. See
http://www.gdal.org/drv_shapefile.html for details.

This is needed because some customers are having trouble exporting
shapefiles, then reimporting into ArcGIS.
2018-02-23 10:34:44 +01:00
Daniel García Aubert
3807d9f94d Template for User not found error 2018-02-22 17:49:02 +01:00
Daniel García Aubert
ec24019cc0 Apply some ES6 goodies 2018-02-22 17:35:03 +01:00
Daniel García Aubert
868dc798b2 Cosmetic line break 2018-02-22 15:59:13 +01:00
Daniel García Aubert
095c34358e Remove step 2018-02-22 15:58:52 +01:00
Daniel García Aubert
8c3b9fa05b Remove bad assignment 2018-02-22 13:27:50 +01:00
Daniel García Aubert
e4067132b0 Add profile to user limit middleware 2018-02-22 12:48:39 +01:00
Daniel García Aubert
700c64bba3 Extract to a middleware user timeout limit from user-database-services 2018-02-22 12:45:55 +01:00
Daniel García Aubert
afceac7369 Improve profile step name 2018-02-22 12:23:37 +01:00
Daniel García Aubert
94c5bd11df Split authorization middleware, it was actually doing two things: authorize and get database connection params 2018-02-22 12:22:39 +01:00
Daniel García Aubert
1252f32579 Get api_key token from res.locals 2018-02-22 12:07:27 +01:00
Daniel García Aubert
8730b5c517 Read if the request is authenticated through res.locals 2018-02-22 12:04:05 +01:00
Daniel García Aubert
b399abee18 Move authorization to auth-api and extract it from user-database-service 2018-02-22 11:46:34 +01:00
Daniel García Aubert
6c92781600 Remove empty line 2018-02-21 16:19:12 +01:00
Daniel García Aubert
9088cbf150 Improve naming 2018-02-21 13:51:28 +01:00
Daniel García Aubert
28a7cf9259 Don't authenticate when default_public api-key is provided 2018-02-21 11:14:31 +01:00
Daniel García Aubert
ba113d8628 Improve naming 2018-02-20 16:43:43 +01:00
Daniel García Aubert
33baa399ae Create function to compose middlewares to perfom job operations 2018-02-20 16:25:16 +01:00
Daniel García Aubert
864ec30058 Remove duplication 2018-02-20 13:22:33 +01:00
Daniel García Aubert
d4d54648d4 Improve naming 2018-02-20 13:14:28 +01:00
Daniel García Aubert
03e9b8006b Actually pass just apikey instead of the entire "res" object 2018-02-19 19:16:33 +01:00
Daniel García Aubert
d6776189bd Remove unused param 2018-02-19 16:04:57 +01:00
Daniel García Aubert
4af751ff62 Rename param 2018-02-19 15:58:48 +01:00
Daniel García Aubert
b6a666a8b4 Miss rename middleware 2018-02-19 15:54:05 +01:00
Daniel García Aubert
8c13add7a8 Rename middleware 2018-02-19 15:49:17 +01:00
Daniel García Aubert
939443ef81 Unify credentials and authenticated request midllewares 2018-02-19 15:44:28 +01:00
Daniel García Aubert
7898b49e59 Extract profiler middleware to used in query and job controllers 2018-02-19 15:13:36 +01:00
Daniel García Aubert
85fbd7c6b2 Create middlewares to initialize and finish profiling 2018-02-19 14:42:52 +01:00
Daniel García Aubert
633d06bf2d Do not use underscore 2018-02-19 14:41:06 +01:00
Daniel García Aubert
e04529c501 Rename middleware 2018-02-19 14:20:09 +01:00
Daniel García Aubert
75c2d85dbb Use authenticated middleware in query controller 2018-02-19 13:24:44 +01:00
Daniel García Aubert
114070ef96 Rename middleware 2018-02-19 12:37:19 +01:00
Daniel García Aubert
adfe3dd52b Remove comment 2018-02-19 11:10:39 +01:00
Daniel García Aubert
ea310db62c Cosmetic chenges 2018-02-19 11:04:28 +01:00
Daniel García Aubert
edd382fb8f Check user is the same user that sends the request when basic-auth is provided 2018-02-16 18:21:06 +01:00
Daniel García Aubert
bcf88093e9 Support basic-auth for batch api 2018-02-16 11:52:57 +01:00
Daniel García Aubert
2cadfe6f18 Add support for Basic Auth 2018-02-16 10:46:58 +01:00
Daniel García Aubert
756fbe42c9 Use apikey midlleware 2018-02-15 17:24:04 +01:00
Daniel García Aubert
ad772246d0 Get api_key from specific middleware and save it into res.locals 2018-02-15 17:23:35 +01:00
Daniel García Aubert
67f2a85abd Add database credentials to jobs 2018-02-15 12:30:04 +01:00
Daniel García Aubert
ea6e8b5315 Implement fallback mechanism to be able to authenticate as usual in case of apikey is not found 2018-02-14 16:22:36 +01:00
Daniel García Aubert
7c859f0d7b Use actual apikey properties 2018-02-12 17:49:50 +01:00
Daniel García Aubert
c003a491c0 Use current implementation of cartodb-redis 2018-02-12 16:41:35 +01:00
Daniel García Aubert
5c7f5fbaa5 Merge branch 'master' into auth-api 2018-02-12 16:30:09 +01:00
Simon Martín
bd410fb5f6 using same way to search a string 2018-01-09 17:16:38 +01:00
Simon Martín
df86cc16e4 method to detect timeout error 2018-01-09 17:14:11 +01:00
Simon Martín
6e45c39b1f Merge branch 'master' into pythonTimeout 2018-01-08 11:29:17 +01:00
Simon Martín
ee511d3762 stringifyForLogs more usual case first 2017-12-18 14:54:23 +01:00
Simon Martín
b531922459 add line at EOF 2017-12-18 12:59:20 +01:00
Simon Martín
485d9adddd escape chars function 2017-12-18 12:45:44 +01:00
Simon Martín
3fa09a007e line at EOF and better comment 2017-12-12 17:16:40 +01:00
Simon Martín
6481d14192 escape quotes for logs 2017-12-12 12:58:31 +01:00
Simon Martín
c478e8e62e removing default error log value 2017-12-12 10:55:28 +01:00
Simon Martín
61b351535c change funcion name 2017-11-30 15:06:25 +01:00
Simon Martín
0ab87df644 extract error message from array 2017-11-28 17:19:10 +01:00
Simon Martín
4d598eacd7 dont modify err, works with errorsLog 2017-11-28 16:11:04 +01:00
Simon Martín
a17e1fc5ec logErrors function 2017-11-28 15:58:14 +01:00
Simon Martín
3e23be2087 add errors header with default value 2017-11-28 15:57:58 +01:00
Daniel García Aubert
88015aaf0f Implement new auth system based on api-key tokens with scoped permissions 2017-11-24 17:57:54 +01:00
Simon Martín
670cb6eb8b Merge branch 'master' into pythonTimeout 2017-11-24 16:02:13 +01:00
Daniel García Aubert
15949d2fc2 Fix wrong function name 2017-11-24 15:55:16 +01:00
Daniel García Aubert
b10937a8fb Use res.locals instead of req.context to share object among middlewares 2017-11-24 15:49:25 +01:00
Daniel García Aubert
c2d1a4653e Improve naming for connection database params holder 2017-11-24 15:45:49 +01:00
Simon Martín
11e0ac89d2 undo test of postgres9.5 error 2017-11-24 12:22:30 +01:00
Rafa de la Torre
296d1878fd Trying regexp instead of exact match 2017-11-24 10:55:02 +01:00
Daniel García Aubert
833b7b962c Order geo-columns to export 'the_geom' by default while exporting SHP format 2017-11-17 14:45:58 +01:00
Simon Martín
27e43c8d91 handling python timeout error 2017-11-17 13:30:58 +01:00
Daniel García Aubert
b1112e2bb1 Remove unneeded header 2017-09-20 16:48:22 +02:00
Daniel García Aubert
980e762ab7 Skip user auth middlewares 2017-09-20 16:35:33 +02:00
Daniel García Aubert
0597a3b8a6 Change job work in progress endpoint 2017-09-20 15:46:29 +02:00
Raul Ochoa
32154b67c6 Merge branch 'master' into upgrade-cartodb-psql 2017-08-11 11:57:16 +02:00
Daniel García Aubert
f13c16e523 Typo 2017-08-10 11:22:08 +02:00
Daniel García Aubert
01a71ee60e Apply user timeout to ogr2ogr command 2017-08-09 12:50:16 +02:00
Raul Ochoa
3e536b822e Remove unnecessary destroyOnError option 2017-08-08 18:21:10 +02:00
Daniel García Aubert
fb477260ec Respond with 429 and proper message when database fires a timeout error 2017-08-03 17:19:08 +02:00
Rafa de la Torre
07890ec608 Change tableCache.get for tableCache.peek #244
This will make it consider age of the key when it was initially set,
instead of renewing it with the time of the last access.
2017-07-03 11:13:21 +02:00
Rafa de la Torre
1db935a24b Merge pull request #423 from CartoDB/422-disable-query-lru-cache
422 disable query lru cache
2017-06-27 17:40:33 +02:00
Rafa de la Torre
2d9a5e9655 Move cyclomatic complexity to the factory #422 2017-06-27 16:05:05 +02:00
Rafa de la Torre
c8e42f561d Reduce cyclomatic complexity (jshint 2/2) #422 2017-06-27 15:35:51 +02:00
Rafa de la Torre
34ccfc10df Please jshint (1/2) #422 2017-06-27 13:26:14 +02:00
Rafa de la Torre
bf478cabb2 Fix initialization of NoCache #422 2017-06-27 12:44:11 +02:00
Rafa de la Torre
bc71889f93 First attempt at removing tableCache #422 2017-06-27 12:10:24 +02:00
Daniel García Aubert
aa66000848 Going green: use replacer parameter in JSON.stringify method to not cast special number values to null 2017-06-08 12:42:37 +02:00
Mario de Frutos
3a99020632 Added regexp for the test to matches both 0.10 and 6.X node version 2017-04-18 12:15:47 +02:00
Mario de Frutos
da42daa536 Improved error message for zip spawn command 2017-04-18 12:15:47 +02:00
Daniel García Aubert
e4eeb9e1f6 Clean commented code 2017-04-18 12:15:47 +02:00
Daniel García Aubert
e0f9209017 Attach error handler while spawning zip command 2017-04-18 12:15:47 +02:00
Daniel García Aubert
884d3aea0a Dont call 'next' callback twice, include error message if zip don't exit normally 2017-04-18 12:15:47 +02:00
Daniel García Aubert
4b98b7056a Make zip command path configurable 2017-04-18 12:15:47 +02:00
Daniel García Aubert
6dba06130b Retur a proper error message when ogr2ogr command fails 2017-04-18 11:40:37 +02:00
Daniel García Aubert
d60e2107af Add error callback to ogr command while spawning 2017-04-11 09:43:25 +02:00
Raul Ochoa
db9bfacf07 Extract stats client creation 2017-03-30 16:13:17 +02:00
Raul Ochoa
d48a901533 Merge branch 'master' into node-v6 2017-01-12 19:49:56 +01:00
Javier Torres
62a67f148c Correctly accept custom options for formats in ogr.js 2017-01-11 19:07:50 +01:00
Javier Torres
c67a2e7d09 Use cartodb_id as FID column in gpkg 2017-01-11 19:07:50 +01:00
Daniel García Aubert
ef124d689e Handle query end in error listener since pg no longer emits end if and error occurs 2016-12-07 16:22:21 +01:00
Daniel García Aubert
99c7a6e4f9 Raise job query size to 16kb 2016-11-07 16:50:44 +01:00
Daniel García Aubert
4a64d37c6c Add work in progrees list endpoint 2016-10-28 15:08:42 +02:00
Raul Ochoa
cdde1be29e Re-use redis pool as much as possible 2016-10-17 15:02:34 +02:00
Raul Ochoa
e401c01d78 Only log on non-test environments 2016-10-12 01:40:14 +02:00
Raul Ochoa
e4b1711e8e pub/sub package 2016-10-11 18:28:46 +02:00
Raul Ochoa
66820a67bb Make possible to specify a name for batch 2016-10-10 19:46:07 +02:00
Raul Ochoa
42a1f3ad4c Accept multipart requests 2016-10-05 17:29:16 +02:00
Raul Ochoa
6309318534 Use body-parser from old connect module 2016-10-05 14:22:44 +02:00
Raul Ochoa
025b3f3cc7 Increase body limit to 20mb 2016-10-05 11:14:06 +02:00
Raul Ochoa
2a2a54a073 DRY in job response handler 2016-10-04 16:07:13 +02:00
Raul Ochoa
19c9bec633 Callback with job 2016-10-04 15:57:13 +02:00
Raul Ochoa
05cbd55b95 Use db host from request's context 2016-10-04 15:50:39 +02:00
Raul Ochoa
c32a2199fa Use request bootstrapper to add host header 2016-10-04 15:43:19 +02:00
Raul Ochoa
7b7d651d8f DRY while authenticating requests 2016-10-04 15:40:56 +02:00
Raul Ochoa
20f50d988e Use user middleware in job controller 2016-10-04 15:19:31 +02:00
Raul Ochoa
b139b9ab21 Add context object in all requests 2016-10-04 15:12:46 +02:00
Raul Ochoa
2edc7505e7 Do not condition req.profiler 2016-10-04 15:08:31 +02:00
Raul Ochoa
cb9db0c4cb Make request.profiler always available 2016-10-04 14:40:04 +02:00
Raul Ochoa
3b6bc14d17 Increment errors on err 2016-10-04 13:19:29 +02:00
Raul Ochoa
bf1a67780d Merge branch 'master' into express-4.x 2016-09-30 17:37:30 +02:00
Daniel García Aubert
59e5c10f85 Set batch queries log path 2016-09-29 15:37:14 +02:00
Raul Ochoa
2aa1f045ff Use .status() API 2016-09-26 18:10:20 +02:00
Raul Ochoa
abc2f130c9 Migrate to express 4.x series
- Remove express logger
 - Error handler responds with application/[json|javascript]
 - Fix all tests relying on res.headers
 - assert.response based on request module
2016-09-26 18:09:27 +02:00
Raul Ochoa
f92d50cccf Rename from app to server
Removes app_root dependency in requires
2016-09-14 20:54:53 +02:00
Raul Ochoa
0626d80e24 Removes support for optional rollbar logging 2016-09-14 19:22:31 +02:00