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
Francisco Dans
e57f2e7219
specifies spatialite spec in the formatter
2015-06-03 12:10:57 +02:00
Francisco Dans
dfa18f7c11
checks if there are command params provided by the specific exporter
2015-06-03 12:09:48 +02:00
Francisco Dans
5140aaa132
actually uses variable...
2015-06-01 16:48:27 +02:00
Francisco Dans
61ef29a02d
puts SPATIALITE command option in SpatialiteFormat model
2015-06-01 16:33:04 +02:00
Francisco Dans
3a8f94641b
Merge pull request #225 from CartoDB/log-addr
...
Uses :remote-addr instead of :req[X-Real-IP]
2015-06-01 16:17:47 +02:00
Francisco Dans
f3bdddf123
forces spatialite if sqlite is passed as format
2015-05-29 15:25:19 +02:00
Francisco Dans
44be0ea1b7
adds spatialite export model
2015-05-29 15:24:50 +02:00
Francisco Dans
996bd971cd
replaces default log format string to remote-addr
2015-05-26 19:18:54 +02:00
Raul Ochoa
debeb8ca3e
Update news
2015-05-25 16:38:07 +02:00
Raul Ochoa
b6e53f7326
Uses tables ogr2ogr param to avoid heavy query on pg_class and friends
...
Fixes #204
Newer versions of ogr2ogr don't use that heavy query so it should work
Ref 2e3eeefd0f
2015-05-25 16:29:18 +02:00
Raul Ochoa
b29933f96e
Closes stream responses on error
...
fixes #219
2015-05-13 18:15:38 +02:00
Raul Ochoa
6bb3ccbe1e
Format files split into pg and ogr directories
2015-05-13 15:15:53 +02:00
Raul Ochoa
8ae1f1c976
jshint fixes, does not deal with integers as strings
2015-05-13 13:00:38 +02:00
Raul Ochoa
07cff25d38
jshint fixes
2015-05-13 13:00:12 +02:00
Raul Ochoa
09b95c9846
jshint fixes
2015-05-13 13:00:01 +02:00
Raul Ochoa
6e0acbda50
jshint fixes
2015-05-13 12:23:27 +02:00
Raul Ochoa
9dd887dc4d
jshint fixes, not addressing complexity
2015-05-13 12:22:41 +02:00
Raul Ochoa
d108225001
jshint: fix monitoring directory
2015-05-12 18:02:23 +02:00
Raul Ochoa
703479b7de
jshint: fix auth directory
2015-05-12 18:00:30 +02:00
Luis Bosque
d3409bdf3c
Disable per user health check
2015-04-06 16:08:29 +02:00
Luis Bosque
8b7dc6f058
Removed unnecessary variable in health check
2015-03-25 18:22:13 +01:00
Luis Bosque
897df7634b
Return failed health checks with disabled file
2015-03-25 17:15:41 +01:00
Raul Ochoa
9dcb397737
Merge pull request #205 from CartoDB/url_rewrite
...
added /u/:user routing
2015-03-20 12:22:07 +01:00
Raul Ochoa
9b31df6793
Improve row size limit error message
2015-03-02 14:34:01 +01:00
Raul Ochoa
45f5b398a0
Logs with console.error too large row erros
2015-03-02 12:31:11 +01:00
Raul Ochoa
302a856d37
Move note about username extraction to cartodb_request
2015-02-02 12:15:53 +01:00
Raul Ochoa
e5ab4272eb
Use a multiple params route to be able to extract the username from
...
the path or default to host header.
2015-02-02 12:09:34 +01:00
javi
824b7c084e
added /u/:user routing
2015-01-30 11:37:29 +01:00
Seth Fitzsimmons
bcc1577ec4
Add 'refresh' to the list of keywords that write
2015-01-06 12:40:01 -08:00
Raul Ochoa
8477d4569a
Removes buffering for every single row
2014-12-02 12:32:54 +01:00
Raul Ochoa
025a6abdaa
Closes stream responses on error. Fixes #188
2014-12-01 16:55:59 +01:00
Raul Ochoa
d50ddbb10f
Add more fields to error responses with hint, detail and context for SQL errors.
2014-11-21 12:59:48 +01:00
Raul Ochoa
3625c07250
Fallback to nextTick for node v0.8, resolves #182
2014-11-13 11:18:00 +01:00
Raul Ochoa
74429f82e1
Improve topojson output by streaming json
2014-11-12 11:36:59 +01:00
Raul Ochoa
3093e813fa
Merge branch 'master' into formats-svg-topojson-improvements
...
Conflicts:
NEWS.md
2014-11-11 14:32:38 +01:00
Raul Ochoa
dc601a5feb
Improve statement timeout error messages
2014-11-11 13:57:15 +01:00
Raul Ochoa
878c62e04e
Order by dimension so it's possible to stream the rows as they come
2014-10-24 16:23:08 +02:00
Raul Ochoa
2e9a16d56d
Don't loop twice over svg rows
2014-10-23 16:49:04 +02:00
Raul Ochoa
2e3eeefd0f
Removes tables=fake wadus param in ogr2ogr command so it can go to
...
geometry_colums view to retrieve the column data type. This requires
to grant permissions on geometry_columns and geography_columns to the
public user.
2014-09-22 13:23:30 +02:00
Raul Ochoa
25d2e64891
Removes query tables console.log
2014-09-17 15:54:46 +02:00
Raul Ochoa
2d232c20ef
Returns 401 Unauthorized for queries without permission
2014-09-02 15:00:04 +02:00
Raul Ochoa
5f2fb65095
Proper db params object
2014-08-27 17:43:28 +02:00
Raul Ochoa
7c62632ea8
Health check endpoint
2014-08-26 18:40:58 +02:00
Raul Ochoa
3a26692448
New header for database host serving the request
2014-08-22 12:29:27 +02:00
Raul Ochoa
0035f04edd
Metrics revamp: removes and adds some metrics
2014-08-18 19:45:17 +02:00
Raul Ochoa
2fc16ce2c5
Updates news
2014-08-14 14:23:41 +02:00
Raul Ochoa
77cb86154c
Starts using cartodb-psql node module in SQL API
2014-08-11 20:15:55 +02:00
Raul Ochoa
951636892c
Removes unused vars
2014-08-08 12:54:36 +02:00
Raul Ochoa
21b8e6947c
Non authenticated request cannot use pg_ catalogs/functions
2014-08-08 12:48:29 +02:00
Raul Ochoa
f6c364b3b9
CDB-3032 Removes sql statements restriction on pg_ queries
2014-08-07 16:22:48 +02:00
Raul Ochoa
bd60f8f748
Using new method from cartodb-redis to retrieve oauth values so we
...
can reuse the same redis-mpool
2014-08-06 12:51:55 +02:00
Raul Ochoa
81e191bcf3
Fixes redis-mpool dependency
2014-08-06 11:32:12 +02:00
Raul Ochoa
a7027f4b05
Removes console.log
2014-08-05 16:48:11 +02:00
Raul Ochoa
480a9f27b4
New authentication mechanism: checks in advance if credentials are provided
...
in order to do a single request to redis to retrieve the required database
connection parameters.
2014-08-05 16:20:06 +02:00
Raul Ochoa
49406c99fa
Moves auth functionality to its own directory
2014-08-05 11:57:43 +02:00
Raul Ochoa
e16f278087
CDB-3629 Uses one request to redis to retrieve all connection params
2014-08-05 02:29:07 +02:00
Raul Ochoa
41fe1f4cb5
Merge pull request #164 from CartoDB/CDB-3780
...
Fixes for GeoJSON stream responses
2014-08-05 00:57:35 +02:00
Raul Ochoa
bbb82c2ceb
CDB-3780 Adds stream start in case there were no rows. Adds regression test.
2014-08-05 00:47:49 +02:00
Raul Ochoa
15a3f4cc88
CDB-3780 Handle error at query end. Adds regression test.
2014-08-05 00:47:14 +02:00
Raul Ochoa
ce70e7252b
Callback requests send 200 status error even if the query failed
2014-08-04 15:56:43 +02:00
Raul Ochoa
919110570c
Unified naming for formats
2014-08-02 20:27:05 +02:00
Raul Ochoa
a747818cfa
Unifying require for formats
2014-08-02 20:26:01 +02:00
Raul Ochoa
0bc88f1687
Style changes
2014-08-02 20:23:47 +02:00
Raul Ochoa
4830b69a2f
Use streaming for geojson format
2014-07-31 03:17:14 +02:00
Raul Ochoa
73a195a7fa
Use streaming for json responses. Number of buffered rows can be specified by config.
2014-07-31 02:17:07 +02:00