Commit Graph

363 Commits

Author SHA1 Message Date
Raul Ochoa
9ab49d4614 Fix test as now it's reporting the issue with the query syntax differently 2015-02-26 16:28:25 +01:00
javi
824b7c084e added /u/:user routing 2015-01-30 11:37:29 +01:00
Raul Ochoa
3a066fa9fe Fix test description 2014-12-02 11:37:00 +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
74429f82e1 Improve topojson output by streaming json 2014-11-12 11:36:59 +01:00
Raul Ochoa
dc601a5feb Improve statement timeout error messages 2014-11-11 13:57:15 +01:00
Raul Ochoa
389e3c81cb Remove -U params in postgresql commands 2014-09-24 17:23:56 +02:00
Raul Ochoa
924ede83a0 Force postgres user using PGUSER env var 2014-09-24 12:12:59 +02:00
Raul Ochoa
742904c6e6 Adds debug info about $PGUSER var 2014-09-24 11:05:16 +02:00
Raul Ochoa
32889ca41f debug env vars for ci environment 2014-09-24 10:48:36 +02:00
Raul Ochoa
a6ffd7d257 Defaults to PGUSER=postgres if env var does not exist 2014-09-24 10:39:34 +02:00
Raul Ochoa
41d056f32c Lower granted permissions on {geometry,geography}_columns to match
normal usage.
2014-09-22 17:20:49 +02:00
Raul Ochoa
40ff44e0fe Merge branch 'master' into gdal-1.11 2014-09-22 15:08:13 +02:00
Raul Ochoa
d1a444a83c Check style fixes 2014-09-22 15:05:38 +02:00
Raul Ochoa
7b804c9d71 Merge branch 'no-libpq-param-enforcements'
Conflicts:
	NEWS.md
	test/prepare_db.sh
2014-09-22 14:51:20 +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
7b9dbaf9f7 Upgrades QueryTables and QueryStatements to match with current
implementations. From now on it will re-download those functions from
https://github.com/CartoDB/cartodb-postgresql/tree/cdb when running
tests.
2014-09-22 13:16:11 +02:00
Raul Ochoa
386c236760 Fixes tests related to send 401 status code for unauthorized requests 2014-09-16 23:57:11 +02:00
Raul Ochoa
0500d21fd5 Removes unused method in assert extension 2014-08-28 10:43:36 +02:00
Raul Ochoa
0d5424c74f DRY 2014-08-27 17:09:59 +02:00
Raul Ochoa
6525b62fe2 Adds extra information when status/headers dont match 2014-08-27 17:09:31 +02:00
Raul Ochoa
840afa7a77 Make check() before any other assert 2014-08-27 16:39:16 +02:00
Raul Ochoa
85c70cc5f4 Call check before callback so the server is closed before the callback
throws an exception
2014-08-27 16:28:03 +02:00
Raul Ochoa
7c62632ea8 Health check endpoint 2014-08-26 18:40:58 +02:00
Raul Ochoa
96e47c4bdb Corrects JSDoc 2014-08-26 18:25:17 +02:00
Raul Ochoa
ae2c6f01d7 Change expected error code for backend crash. cartodb-psql 0.4.0
returns 500 error when it's not possible to connect to PostgreSQL.
2014-08-20 14:52:17 +02:00
Raul Ochoa
77cb86154c Starts using cartodb-psql node module in SQL API 2014-08-11 20:15:55 +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
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
93ed7a43be Merge pull request #165 from CartoDB/CDB-3255
CDB-3255 More secure test
2014-08-05 00:57:59 +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
63d41e4843 CDB-3255 More secure test 2014-08-05 00:57:09 +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
6dd08253bf Merge pull request #162 from CartoDB/CDB-3774
CDB-3774 Re-enables disabled tests
2014-08-04 18:48:35 +02:00
Raul Ochoa
c3aefd16c1 CDB-3774 Re-enables disabled tests 2014-08-04 15:58:37 +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
eaba2e20d4 Adds test to cover jsonp callbacks wrapped responses 2014-07-30 20:01:43 +02:00
Raul Ochoa
26685c58af Sets database host in redis test database 2014-07-04 17:01:58 +02:00
Raul Ochoa
572f8c59b7 Changes authentication to start using public user if it is defined in redis. 2014-07-04 16:47:59 +02:00
Raul Ochoa
ac0826dc91 Updates CDB_QueryTables to match the one from the extension. Fixes some tests to show the schema presence.
Skip some tests that we need to review because with the current implementation of CDB_QueryTables dont make sense.
CDB_QueryTables should be used from the extension as a dependency.
2014-06-26 11:22:40 +02:00
Sandro Santilli
af9da262a5 Do not assume "postgres" user exists
Revert "CDB-3079 enforces postgres user in preparation script"
Revert "CDB-3079 enforces postgres user in preparation script"
[TRAVIS] set "postgres" user for running tests (using PGUSER)

Closes #152
2014-06-19 11:52:06 +02:00
Raul Ochoa
9133893e39 Merge branch 'CDB-3079' of https://github.com/CartoDB/CartoDB-SQL-API into CDB-2038 2014-06-04 11:04:59 +02:00
Raul Ochoa
987b3e0318 CDB-3079 enforces postgres user in preparation script 2014-06-03 18:49:29 +02:00
Raul Ochoa
277a34cb83 CDB-3079 enforces postgres user in preparation script 2014-06-03 18:33:40 +02:00
Raul Ochoa
b3609696a3 requests associated with formats based on postgres expose a cancel method that will be called on client request abortion/cancelling so postgres can cancel ongoing queries 2014-06-02 14:48:38 +02:00
Sandro Santilli
51b135c0ac Set default PostgreSQL application name to "cartodb_sqlapi" 2014-05-07 16:14:17 +02:00
Raul Ochoa
8dbf1d9c45 Removes ending semicolons from SQL queries. Fixes #147 2014-04-15 15:29:03 +02:00
Raul Ochoa
3e6b63c9d6 CDB-2081 Returns original query in case there are no clauses to apply. 2014-04-14 15:44:43 +02:00
Raul Ochoa
537cb238c6 CDB-2081 Adds support for order_by through http query params. 2014-04-14 15:01:12 +02:00
Sandro Santilli
4606a44917 Fix testsuite with GDAL-1.11dev installed (current master) 2014-04-02 17:17:59 +02:00
Sandro Santilli
8a953c116c Fix paging with queries starting with comments
Closes #144
Includes testcase
2014-03-27 12:48:39 +01:00
Sandro Santilli
ee61ccfd94 Extend paging test
Tests page=0, POST and authentication
2014-03-27 11:18:02 +01:00
Sandro Santilli
45ad149fd4 Abort test if db preparation failed 2014-03-20 11:58:05 +01:00
Sandro Santilli
62e5d2b73c Give more detail on test failure 2014-03-19 17:44:38 +01:00
Sandro Santilli
b0d0d4d073 Reduce work on aborted requests
Closes #129
Includes testcase
2014-03-19 13:30:29 +01:00
Sandro Santilli
f88d33fdb9 Fix lack of response on backend crash
Closes #135
Enables previously failing test
Required upgrade of node-postgresql to own fork
2014-03-19 10:43:39 +01:00
Sandro Santilli
7b0145dde6 Check body of concurrent kml responses 2014-03-17 14:42:00 +01:00
Sandro Santilli
6d79572a3a Add pending test for backend crash (#135) 2014-03-17 10:43:55 +01:00
Sandro Santilli
622846b453 Add '/version' endpoint
Closes #138
Includes testcase
2014-03-13 13:40:56 +01:00
Sandro Santilli
6c47537f47 Honour the 'node_socket_timeout' configuration directive
Closes #128
Includes testcase, which required enhancing assert.response to
handle errors.
Changes app controller to a function that only reads configuration
when executed (rather than when only require'd).
2014-01-31 10:58:19 +01:00
Sandro Santilli
b736c228cf Allow running with mocha only symlinked in node_modules 2014-01-31 10:11:34 +01:00
Sandro Santilli
61cec80d4d Fix use of "SELECT .. INTO" with windowing params
Includes testcase. Closes #127
2014-01-09 17:56:09 +01:00
Sandro Santilli
76bd1bd37e Add --nocreate-{pg,redis} and --nodrop-{pg,redis} opts in run_test.sh 2013-12-18 12:33:03 +01:00
Sandro Santilli
80c30858bd Enhance error message on unknown cartodb username
Closes #126
2013-12-18 12:02:51 +01:00
Sandro Santilli
fcf982e045 Document and test "page" and "rows_per_page" parameters.
Closes #123
2013-12-03 10:52:55 -05:00
Sandro Santilli
3397f2f3f9 Fix field types names lookup after PSQL model refactoring
Fixes missing .prj in shapefile export regression
Closes #122
2013-12-02 11:47:52 +01:00
Sandro Santilli
5bd0e02103 Read test redis port from configuration, default to 6335 2013-11-27 12:56:33 +01:00
Sandro Santilli
77acd2567e Request that notices are sent to client while testing them
See https://travis-ci.org/CartoDB/CartoDB-SQL-API/builds/14146134
2013-11-18 17:09:57 +01:00
Sandro Santilli
9389a04030 Add warnings and notices to JSON response. Closes #104. 2013-11-18 17:01:06 +01:00
Sandro Santilli
6ebeed04c2 Optionally read user-specific database_password from redis
Follows CartoDB-2.5.0 model. Includes testcase.
Closes #120 -- Jira ref CDB-870
2013-11-18 13:31:11 +01:00
Sandro Santilli
af1f3daa69 Optionally read user-specific database_host from redis
Follows CartoDB-2.5.0 model. Includes testcase.
Closes #121 -- Jire ref CDB-870
2013-11-18 12:21:30 +01:00
Sandro Santilli
7218c89b2d Refactor PSQL model to take full db config in the constructor
Closes #58, stops reading configuration variables itself
2013-11-18 11:42:43 +01:00
Sandro Santilli
03ea51a375 CartoDB redis interaction delegated to "cartodb-redis" module 2013-11-15 19:14:55 +01:00
javi
370d45d8b6 fixed #119 2013-11-09 16:55:40 +01:00
Sandro Santilli
973c7181f0 Allow access to tables whose name contains "pg_" (but not at beginning)
Closes #118
2013-11-07 10:16:58 +01:00
Sandro Santilli
0139c8fb16 JSON format: correctly recognize "date" type columns
Closes #117 -- includes testcase
2013-11-06 11:43:56 +01:00
Sandro Santilli
8d2347af99 Make public PostgreSQL user name a configuration parameter
Closes #56.
Updates documentation and tests and example config files
2013-11-05 17:49:10 +01:00
Sandro Santilli
2abb136258 Set KML folder name to the requested filename.
Closes #115. Includes testcase.
2013-11-05 17:29:02 +01:00
Sandro Santilli
3c03099e8d Do not trust GDAL SRID detection for KML output.
Closes #116. Includes testcase.
2013-11-05 16:57:23 +01:00
Sandro Santilli
1637610f66 Set a meaningful X-Cache-Channel with cache_policy=persist
Closes #105
2013-10-18 13:29:06 +02:00
Sandro Santilli
e92530d6e5 Fix shapefile export for non-linestring results starting with NULL
Includes tests. Closes #111.
2013-10-02 12:12:09 +02:00
Sandro Santilli
0d84a704df Fix missing .prj file in shapefile format
Finds srid, when needed, with an additional query.
Closes #110.
Includes testcases.
2013-10-02 11:44:06 +02:00
Sandro Santilli
7f7ef682ac Improve recognition of non-standard field types names by db lookup
Closes #112.
Only looks up "geometry" and "raster" types for now, can be improved
over time.
2013-10-02 10:22:13 +02:00
Sandro Santilli
742936b2b8 Honour skipfields in JSON schema response. Closes #109 2013-09-26 13:26:45 +02:00
Sandro Santilli
531dd4b002 Tweak testcase to succeed with gdal-1.10
Absence of geometry column triggers a different behavior in 1.9 and 1.10
2013-09-23 13:24:00 +02:00
Sandro Santilli
615151528c Print ogr2ogr version when running tests 2013-09-04 15:15:47 +02:00
Sandro Santilli
7d5698b045 Accept an header-only CSV export for no-rows query
This makes the application compatible with both GDAL-0.9 and 0.10
See http://trac.osgeo.org/gdal/ticket/5234
2013-09-04 13:30:50 +02:00
Sandro Santilli
de1df14d91 Fix expected/obtained order in asserts 2013-09-04 13:18:10 +02:00
Sandro Santilli
7eedf89901 Also threat "description" as a special tag (in test) 2013-09-04 12:56:48 +02:00
Sandro Santilli
e4371f83bc Look for attribute names in both SimpleData and Placemark
See http://trac.osgeo.org/gdal/ticket/5208
2013-09-04 12:39:49 +02:00
Sandro Santilli
f7bee2345d Report boolean values as of boolean type, not string. Closes #106 2013-08-22 13:45:20 +02:00
Sandro Santilli
80e4521bb5 Tolerate blankspace differences in KML output
Makes tests succeed with gdal-1.10.x
2013-08-20 18:07:34 +02:00
Sandro Santilli
cda62f3a0a Check for field names in SimpleField rather than SimpleData
Doing so makes the test also succeed with gdal-1.10
See http://trac.osgeo.org/gdal/ticket/5208
2013-08-20 18:07:34 +02:00
Sandro Santilli
7a07a25086 Add REINDEX to the list of uncacheable queries 2013-07-24 18:43:38 +02:00
Sandro Santilli
2ee9411889 Review cache-control headers:
* Raise max-age to one year for all cacheable queries
 * Set max-age to 0 for uncacheable (mutating) queries
2013-07-22 17:21:38 +02:00
Luis Bosque
7b6b541083 Revert "Set max-age=0 when using no-cache" 2013-07-10 07:58:35 +02:00
Sandro Santilli
46b7f7a309 Parse all numbers as floats. Closes #100 2013-07-09 21:51:40 +02:00
Sandro Santilli
bc49aebd2a Don't assume SELECT "updated_at" may write to the database.
Closes #99
2013-07-08 17:36:53 +02:00
javi
69b5d825e3 reverted support for get params in post 2013-07-04 16:23:48 +02:00
javi
320e0b97a8 Merge branch 'develop' of github.com:Vizzuality/CartoDB-SQL-API into develop 2013-07-04 16:14:51 +02:00
javi
838c0c93ba Add support for GET params in POST requests 2013-07-04 16:14:44 +02:00
Sandro Santilli
ba28496127 Add support for "text" datatypes in json output format 2013-07-04 16:04:13 +02:00
Sandro Santilli
46e93355c4 Set max-age=0 when using no-cache (don't be self-contraddicting) 2013-06-28 11:17:52 +02:00
Sandro Santilli
7eff0cb107 Retain UTC offset in JSON output for dates
Hopefully helps reducing confusion when using timezone-less
with postgresql, in that the time that comes out of JSON output
matches the one input by user, except it may be in an unexpected
timezone (the server's one)
2013-06-19 12:25:48 +02:00
Sandro Santilli
5e379012a8 Add support for CTE in sql windowing, add unit tests
This is still an undocumented feature, but as long as it's present
and used (by cartodb UI) better tested than broken...

NOTE: more tests are needed for CTE and RETURNING queries
2013-06-17 16:36:36 +02:00
Sandro Santilli
88f1d33b42 Add "fields" member in JSON return. Closes #97 2013-06-14 18:36:05 +02:00
Sandro Santilli
779249801f Fix oAuth unit tests now that we use req.path rather than req.route.path 2013-06-06 17:08:31 +02:00
Sandro Santilli
e03262c5da Upgrade node-postgresql to ~1.1.3 fixing evented query model 2013-06-06 17:06:06 +02:00
Sandro Santilli
339bc0b3a4 Fix windowing support for non-uppercased SELECT queries 2013-06-06 15:24:57 +02:00
javi
0be9e47930 Add arraybuffer format 2013-05-28 10:37:39 +02:00
Sandro Santilli
aff77399b1 Extract geojson test from main test 2013-05-27 17:34:05 +02:00
Sandro Santilli
3f98cab09a Do not execute queries on OPTIONS. Closes #94 2013-05-24 14:21:13 +02:00
Sandro Santilli
985631092b Fix test for custom base_url 2013-05-24 13:51:39 +02:00
Sandro Santilli
cf6bed9bdb Bubble paging UI hack up from model to controller
... one day we'll need to completely drop this hack!
2013-05-24 10:22:17 +02:00
Sandro Santilli
d4bd646388 Move websocket_test/ under test/ 2013-05-24 08:38:57 +02:00
Sandro Santilli
81a83b93e4 Make base url configurable, use a wildcard in the example config 2013-05-23 11:49:23 +02:00
Sandro Santilli
e5ad8f0760 Fix test broken after oAuth interface change introduced in fcf95755
Also improve error message on miscall
2013-05-20 09:06:08 +02:00
Sandro Santilli
833394821c Enhance failing test to show the failure reason 2013-05-15 08:52:26 +02:00
Sandro Santilli
414f4b6c3e Do not request caching of TRUNCATE queries 2013-05-06 18:21:22 +02:00
Sandro Santilli
cc74244b33 Do not choke on multiple skipfields parameter 2013-05-06 12:30:32 +02:00
Sandro Santilli
adf17899e2 testsuite: insert all table values in a single statement 2013-04-11 17:08:26 +02:00
Sandro Santilli
e708d9bf8c Raise mocha timeout to 5 seconds
.. still trying to please the jenkins setup
2013-04-11 16:54:55 +02:00
Sandro Santilli
86e0a45c64 Use a single server in the test for concurrent KML exports
A similar thing should be done for KML and Shapefile, but the focus
here is making jenkins happy for now
2013-04-11 16:21:09 +02:00
Sandro Santilli
0f17889b05 Really fix the tests for unauthorized attempts to write db
It was not about specifying the db trough headers but rather
about referencing the _wrong_ database via params. Also fixes
the expected result (which was indeed wrong).
2013-04-11 13:35:11 +02:00
Sandro Santilli
491c549dcd Fix exit code from test runner
Before this commit it would return success or failure only based
on whether cleanup was successful or bogus
2013-04-11 13:22:47 +02:00
Sandro Santilli
2210d9b588 Fix test using wrong hostname (thus connecting to wrong db) 2013-04-11 13:00:13 +02:00
Sandro Santilli
0ec66c69a7 Allow sql queries to end with a semicolon. Closes #90 2013-04-10 17:21:42 +02:00
Sandro Santilli
e7437ba7cd Rework system catalogue prevention access check to use CDB_QueryTables
This change reduces the chances of false positive
(forbidding legit queries). Doesn't solve the problem of false
negative (allowing illegit queries).
2013-04-09 12:36:37 +02:00
Sandro Santilli
d54d953e75 Another bit of improvement for the system-table query prevention
This work is more important for the testcases than the actual code
2013-04-09 12:20:27 +02:00
Sandro Santilli
1bcffbc68c Make using SET or querying system catalogues harder
An hack to "prevent" querying system tables already existed but
was pretty weak. This commits makes that a bit stronger. The
filter for SET is new.
2013-04-09 11:52:34 +02:00
Sandro Santilli
a9f115cfa5 Rewrite an insert test to not affect a subsequent select test
Closes #84
2013-03-27 16:46:02 +01:00
Sandro Santilli
8f60735b5e Queue export requests for shapefile format. Closes #65 2013-03-27 16:43:12 +01:00
Sandro Santilli
49908e32c5 Add test for concurrently exporting to CSV 2013-03-27 16:09:31 +01:00
Sandro Santilli
6d6dd16446 Draft delegating CSV output to OGR
Adapt tests to new output
2013-03-27 15:41:24 +01:00
Sandro Santilli
58b079e212 Fix reace condition in new KML output, test KML export of empty table 2013-03-26 18:18:13 +01:00
Sandro Santilli
38f99c586a Fix concurrent requests for KML export 2013-03-26 16:59:37 +01:00
Sandro Santilli
f6d45783f6 KML content is already tested 2013-03-26 12:54:20 +01:00
Sandro Santilli
6c0d7813f6 Upgrade generic-pool to ~2.0.2 2013-03-14 11:58:30 +01:00
Sandro Santilli
5fa19a0515 Fix parsing of numeric arrays. Closes #88.
Includes testcase, requires using a fork of node-postgresql.
2013-03-14 11:41:07 +01:00
Sandro Santilli
dc87209033 Do not confuse warnings with errors on shapefile output
Closes #87
2013-02-25 18:32:28 +01:00
Sandro Santilli
8de8bbc460 Add test for multi-statement and begin/commit 2013-02-18 18:39:09 +01:00
Sandro Santilli
d4b1f580ff Fix X-Cache-Channel computation with paging parameters. Closes #85. 2013-02-18 16:19:12 +01:00
Sandro Santilli
197c14f30f Add test focused on x-cache-channel handling 2013-02-13 17:31:53 +01:00
Sandro Santilli
5959e6465a Fix Content-Disposition for error responses. Closes #82 2013-02-13 13:32:34 +01:00
Sandro Santilli
d667d64c78 Fix skipfields use with SHP output format. Closes #81 2013-02-13 13:02:37 +01:00