Commit Graph

480 Commits

Author SHA1 Message Date
Daniel García Aubert
ea00c22577 Merge branch 'master' into batch-add-profile 2016-05-26 17:46:52 +02:00
Raul Ochoa
a91c7a6a88 Increase job payload size to 8kb 2016-05-24 15:41:18 +02:00
Raul Ochoa
23228b2d73 Payload size validates multiple queries and fallback queries
It uses a middleware to check the body size
2016-05-24 14:28:00 +02:00
Daniel García Aubert
64ad284c9c WIP: adding metrics to Batch API 2016-05-24 11:19:00 +02:00
Daniel
8c8da8e39c Merge pull request #301 from CartoDB/job-model-refactor
Job model refactor
2016-05-18 11:38:41 +02:00
Daniel García Aubert
d2d3ba8159 Passed tests 2016-05-16 01:22:47 +02:00
Daniel García Aubert
cc7dd7a0d2 Job model refactor 2016-05-13 18:50:55 +02:00
Raul Ochoa
4e3238c2e8 Fix control flow when using OGR with _needSRS=true and empty queries
Continue on empty results as srid and geom type are not critical
when there are no results

Fixes #299
2016-05-12 17:21:07 +02:00
Juan Ignacio Sánchez Lara
e979b79f49 gpkg format #291 2016-05-10 18:42:23 +02:00
Juan Ignacio Sánchez Lara
c82cafb1ed Geopackage format support #291 2016-04-27 16:56:06 +02:00
Daniel García Aubert
5de931daa5 Improver error message in job max payload limit. 2016-04-25 11:18:30 +02:00
Daniel García Aubert
1dcbb1afdf Improved error message 2016-04-18 16:24:52 +02:00
Daniel García Aubert
790b9c6124 Fixed typos 2016-04-18 15:44:48 +02:00
Daniel García Aubert
7cc7482944 Implemented limit to query size in Batch API. 2016-04-18 15:30:16 +02:00
Daniel García Aubert
056f22b156 Implemented multi-jobs, user is able to send an array of jobs and batch service will run them in series 2016-03-18 14:57:18 +01:00
Raul Ochoa
66cd1f400f Skip query tables cache for authenticated requests 2016-03-10 19:20:56 +01:00
Raul Ochoa
5ebc8e43d5 Start hits=0 as first time is not a hit 2016-03-08 14:50:08 +01:00
Raul Ochoa
b8460d033e Add a cache decorator over QueryTables 2016-03-08 14:48:56 +01:00
Raul Ochoa
dbe033112d Rethrow error but do not fail when getting affected tables 2016-03-08 14:00:31 +01:00
Alejandro Martínez
cd593e12ce Join all Surrogate-Keys in one line 2016-02-24 11:43:43 +01:00
Alejandro Martínez
7d024dbf3f Fix include in query_controller 2016-02-22 19:10:59 +01:00
Alejandro Martínez
5411aa3a01 Use Date.now() fallback value for getLastUpdatedTime 2016-02-22 19:08:04 +01:00
Alejandro Martínez
2c4b659100 Properly discard errors fetching updated tables 2016-02-22 19:07:41 +01:00
Alejandro Martínez
5e06711b4b Use node-cartodb-querytables library 2016-02-22 12:24:05 +01:00
Raul Ochoa
15f90c1a78 QueryTablesApi only caches affected tables and always retrieve last modification 2016-02-02 01:16:24 +01:00
Raul Ochoa
9deab814c9 Skip query-tables-api for authenticated requests 2016-02-01 16:53:28 +01:00
Raul Ochoa
24ecf130a1 Namespace queries so two users don't share results
For instance 'select * from table' should result in different affected
tables (schema+table) depending on the database.
2016-01-28 15:38:08 +01:00
Raul Ochoa
65bcdad657 Fix cyclomatic complexity 2016-01-28 14:48:12 +01:00
Raul Ochoa
86ecc3ad0a Implements authDbParams interface
Uses user and pass from redis and relies on rest of params prepared
for normal dbParams
2016-01-28 14:38:02 +01:00
Raul Ochoa
e70a21a2b4 Adds documentation about values passed over callback in getConnectionParams 2016-01-28 14:25:03 +01:00
Raul Ochoa
a654c90b6d X-Cache-Channel generation only requires affected tables
mayWrite is redundant, and it's not its responsibility
2016-01-28 14:18:38 +01:00
Raul Ochoa
131d798653 Change interface to return also authenticated connection params 2016-01-28 14:18:10 +01:00
Raul Ochoa
235e7f9bc1 Rename method to match returning connection params behaviour 2016-01-28 14:14:31 +01:00
Raul Ochoa
023d06fd19 Affected tables and last modified behind QueryTablesApi
It handles the internal cache and exposes an unified result
2016-01-28 14:08:18 +01:00
Raul Ochoa
7dad90a108 Remove unused dependencies from job controller 2016-01-28 13:10:21 +01:00
Raul Ochoa
3be769a67e Fix style 2016-01-28 12:33:32 +01:00
Raul Ochoa
9881a6f7d4 Use readonly flag to run affected tables query 2016-01-28 12:33:00 +01:00
Daniel García Aubert
e9bd93cf3f Now batch service is linked to express app in order to make it accesible from main app module to expose drain mechanism 2016-01-25 16:28:19 +01:00
Daniel García Aubert
f2ea01f627 Removed unnecessary check in job controller 2016-01-25 14:50:43 +01:00
Daniel García Aubert
e6f714a51b Implemented some new unit test 2016-01-22 19:31:25 +01:00
Daniel García Aubert
968caae9b7 Removed void comment 2016-01-21 18:26:48 +01:00
Daniel García Aubert
79e626a71e Added cors middleware, decoupled query and job controllers from its dependencies 2016-01-21 17:24:48 +01:00
Daniel García Aubert
048d2cd0ea Refactored user database service ans updated controllers to use it. 2016-01-21 16:17:17 +01:00
Daniel García Aubert
6024791e18 Merge branch 'batch-api' of github.com:CartoDB/CartoDB-SQL-API into batch-api 2016-01-21 15:35:23 +01:00
Daniel García Aubert
ad8b610321 Removed unused code 2016-01-21 15:14:55 +01:00
Daniel García Aubert
f42727212b Removed unnecessary checkAborted function in job controller and changed signature for getUserDatabase. 2016-01-21 15:05:46 +01:00
Raul Ochoa
2923c2e083 Update max cyclomatic complexity as it has decreased 2016-01-21 11:18:11 +01:00
Daniel García Aubert
2913aed697 Placed job controller endpoit under /api/vX/sql 2016-01-18 20:12:44 +01:00
Daniel García Aubert
2d13bde301 Implemented uses cases test for Batch API 2016-01-11 20:14:15 +01:00
Daniel García Aubert
078eb7706b Now SQL API is able to disable Batch Service using argv param --no-batch 2016-01-08 18:29:36 +01:00
Daniel García Aubert
20f00d58d9 Refactored batch service to avoid event noise, doing in callback way 2016-01-08 15:47:59 +01:00
Daniel García Aubert
f9f52d2bd1 Improved object creation in batch service 2016-01-08 11:32:01 +01:00
Daniel García Aubert
e6a4e0f7eb Returned 201 HTTP code in job creation
Fixed bug listing jobs, now user job index is cleaned before respond to client
2016-01-07 12:07:30 +01:00
Daniel García Aubert
40d0161218 Fixed bug in authentication for PUT methods in Job Controller 2016-01-05 13:54:18 +01:00
Daniel García Aubert
246655de94 Changed redis data structure for users jobs 2016-01-04 19:08:13 +01:00
Daniel García Aubert
35650985db Implemented job modification whether job is pending 2015-12-31 15:42:31 +01:00
Daniel García Aubert
ada39d84b8 Implemented job cancelation in Batch API 2015-12-30 20:16:18 +01:00
Daniel García Aubert
851c393f75 Refactored batch manager avoiding concurrence issues 2015-12-29 10:19:10 +01:00
Daniel García Aubert
4dcd7c0a50 Fixed typo and prepared for listing user's job 2015-12-24 17:47:41 +01:00
Daniel García Aubert
c4f96b4a59 Implemented support for listing jobs for one user 2015-12-24 17:42:49 +01:00
Daniel García Aubert
ecb76ca1de Improved batch API being consistent with naming, humam readability for job dates, hide redis key details for jobs. 2015-12-23 17:29:11 +01:00
Daniel García Aubert
62db809476 Return 401 when no API KEY is provided 2015-12-23 14:55:49 +01:00
Daniel García Aubert
3c23bf12e7 Fixed bug whether a job consumer is empty. And refactored batch module, now is a common object intead of module function 2015-12-22 20:12:10 +01:00
Daniel García Aubert
30d0b2906b Implemented GET for jobs API 2015-12-22 11:45:25 +01:00
Daniel García Aubert
ef59a1d942 Fixed typo in batch test 2015-12-22 11:06:46 +01:00
Daniel García Aubert
328d4c6bfe Fixed bad assertion in batch acceptance test 2015-12-22 11:02:16 +01:00
Daniel García Aubert
3762ad7a39 Now jobs are stored in redis instead of user's database 2015-12-21 19:57:10 +01:00
Daniel García Aubert
fb8feeb964 Now Job is an event emitter instance and we are able to know what happen wwith any job. Implemented test without a silly timeout 2015-12-16 18:13:48 +01:00
Daniel García Aubert
43f759e96a Refactored Batch API using streams instead a interval to consume the job queue. Limited one job running at the same time per queue instead of using a job's counter to limit it. 2015-12-16 15:57:58 +01:00
Daniel García Aubert
d0787d03f7 Reused matadata backend instance for batch service 2015-12-14 10:36:16 +01:00
Daniel García Aubert
29e4c3c4af Avoid launch batch service in test enviroment 2015-12-10 18:40:44 +01:00
Daniel García Aubert
f5ca879ce3 Added entry point for main app to batch api 2015-12-10 15:08:31 +01:00
Daniel García Aubert
78ee92dbe5 Renamed exposed function 2015-12-10 15:06:25 +01:00
Daniel García Aubert
6cc48bf9dd Implemented batch service 2015-12-09 20:17:45 +01:00
Daniel García Aubert
c7680722ca Passed tests 2015-12-09 12:35:20 +01:00
Daniel García Aubert
00721bcd02 Implementing batch service 2015-12-09 00:02:08 +01:00
Daniel García Aubert
6f741827cd Fixed jshint error 2015-12-07 12:19:16 +01:00
vagrant
35d6600f36 Implemented test for job manegement 2015-12-07 10:29:55 +00:00
Daniel García Aubert
ee41db99ad Returned job_id to client/user after job enqueue 2015-12-07 09:59:05 +01:00
Daniel García Aubert
a1243ad64d Implemented job controller to enqueue jobs 2015-12-07 09:40:51 +01:00
Daniel García Aubert
a0895d4310 Fixed jshint error 2015-12-03 18:45:12 +01:00
Daniel García Aubert
f7a3c6ac4e Renamed controllers routing method 2015-12-03 18:43:13 +01:00
Daniel García Aubert
96e9fcbe33 Moved requirements to the top of module 2015-12-03 18:35:49 +01:00
Daniel García Aubert
c6bae6d951 app module moved to right place 2015-12-03 18:33:17 +01:00
Daniel García Aubert
d31d496a2e Add useful comment 2015-12-03 18:25:35 +01:00
Daniel García Aubert
a697fe6faa Making test pass 2015-12-03 18:19:39 +01:00
Daniel García Aubert
e5dedb6315 Split query controller and separated from app 2015-12-03 17:28:18 +01:00
Daniel García Aubert
df59405dca Split some functionallity from app to dedicated controllers 2015-12-03 15:00:35 +01:00
Raul Ochoa
b160f4051a Merge pull request #250 from CartoDB/issue-238
Stop adding X-Cache-Channel header when no tables involved
2015-09-08 12:30:26 +02:00
Raul Ochoa
5ec6d7c77b Remove no longer needed health check params 2015-09-07 18:34:50 +02:00
Raul Ochoa
875eccba62 Stop adding X-Cache-Channel header when no tables were identified in SQL query
Fixes #238 and fixes #157
2015-09-07 18:22:24 +02:00
Raul Ochoa
335d71bc04 Adds a custom log4js format function to log sql query from POST requests
Tokens in log4js are not provided with request/response for context,
using a custom format function allow to access them

In the case of express logger token functions receive request/response
for context so it uses a custom token

Closes #206
2015-09-04 12:29:20 +02:00
Raul Ochoa
f816093036 Set Last-Modified header based on affected tables
Closes #101
2015-09-02 16:25:56 +02:00
Raul Ochoa
c6c614b5bf Do not return results from health check
It also removed old dependencies and takes disabled file path in ctor.
2015-08-28 18:16:04 +02:00
Raul Ochoa
d42e5a6b75 Do not expose remove from pool after query error as a config option 2015-08-04 16:23:36 +02:00
Raul Ochoa
7c696317d0 New option to remove client from pool after error happens
This help to avoid issues with transactions.

Closes #241
2015-08-04 15:53:50 +02:00
Raul Ochoa
a297a14300 Revert "Uses tables ogr2ogr param to avoid heavy query on pg_class and friends"
This reverts commit b6e53f7326.
2015-06-16 16:58:22 +02:00
Raul Ochoa
93e965af29 Makes ogr2ogr command configurable so it's possible to change path/bin 2015-06-16 15:53:33 +02:00
Francisco Dans
d1db897699 Merge pull request #228 from CartoDB/spatialite
Adds SpatiaLite as export format
2015-06-03 16:02:16 +02:00
Francisco Dans
f34e010785 uses concat instead of looping 2015-06-03 15:32:20 +02:00