sha,message,author_date,committer_date,raw_author,raw_committer,repo,author,committer 31a5d8fa77be68d4f837f0a80a611675dce49f4b,"Bump aiohttp to fix compatibility with Python 3.7 Tests failed here: https://travis-ci.org/simonw/datasette/jobs/403223333",2018-07-12T17:41:20Z,2018-07-12T18:07:37Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 9959a9e4deec8e3e178f919e8b494214d5faa7fd,"Added screenshots to facets and full_text_search docs, refs #255",2018-05-16T15:24:44Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 858d79fe938afbe04e2b249da71860e812869ec8,Typo fix,2018-05-16T15:15:56Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 566f2d31d6f4950200b64424f6f9cfdd06343f4e,"Clarified relationship between metadata and _facet= facets, updated docs - refs @255",2018-05-16T15:15:23Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 b263da78e329853ceea41c4ecabe7e8bb08d20a7,"Reliable sort order for facets in Python 3.5, fixing test - refs #255",2018-05-16T14:43:13Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 062303419cef9bbf72927c4ac4efdb185829c03b,Hide facet button is now a ✖ - refs #255,2018-05-16T14:37:05Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 62f1d3a6cbf7fca5c0e85c13a77830755c314883,"class=""suggested-facets""",2018-05-16T05:08:58Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 91bf5f56bb301fb564640fa6b1bb8a6e981ff721,"Show enabled facets in flexbox columns, refs #255",2018-05-16T05:06:05Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 6d12580ed74ff0baf081bf9fabc14eeaf8a3105c,"Foreign key facets are now expanded to labels, refs #255",2018-05-15T15:52:02Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 a892f9a0bd6667c1ad4c590016d6845cd98a645a,Use escape_sqlite() more consistently,2018-05-15T15:00:39Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 8a0bd68c393423a6c3bdae27d3826e6161a101c1,Undid some slightly weird code formatting by 'black',2018-05-15T13:23:20Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 63aac537f238239d5fb7f4934545404d37d874f6,"1,442 format for facet counts, refs #255",2018-05-15T12:14:14Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 f4943ca89bf400350205788f9130c135aaf7b85b,"_facet selections persist through table form, refs #255",2018-05-15T10:28:48Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 514873c6295dcd467d806064a549e46b4ea3279a,Fix bug with toggle_url on integer facets,2018-05-15T10:19:09Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 1dc94f6eaa98431da9c61e803e2b05b082f9c6e8,"Facets can now be toggled off again, refs #255",2018-05-15T10:11:52Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 ba515fc56e6cf77ea299b6d534be7ccfa925a533,Removed un-used variable,2018-05-15T10:08:07Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 142a550a99f3c78349a10ed79f1b513fe704a169,"Facet results now have ""truncated"" field To indicate if there was more than 20 distinct values. Refs #255",2018-05-15T09:50:27Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 a82175276c3f5898161c7630f669d0b8990d7a16,_sort/_next links now use new path_with_replaced_args method,2018-05-15T09:34:45Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 2f81552cd29125e3916763f05949125a49c2dde8,Never suggest a facet if it only results in on option,2018-05-15T03:05:10Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 b0d2bb3e43dd567b96b6a4ddc3c1a09a84c2c42d,Facets no longer consider null values,2018-05-14T22:19:43Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 ddef2298509e3027a44971a681ad7855bf07b51a,"Initial implementation of suggested facets Causes tests to break at the moment",2018-05-14T22:09:42Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 8a4ed052a5034d3f12daf5eedabb0808a0bf20fc,path_with_added_args now works with multiple existing args,2018-05-14T22:09:09Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 f36c9d4b4ca77dd42495f31d02e89b4c10833531,"Facet toggling now works for integer columns, refs #255",2018-05-14T21:33:24Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 de05cf21aa6a922ee2825b5098b108dd23fb0755,"Facet ""selected"" key and toggle_url now toggles, refs #255",2018-05-14T20:42:10Z,2018-05-16T15:27:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 2b79f2bdeb1efa86e0756e741292d625f91cb93d,path_with_added_args now preserves order in Python 3.5,2018-05-14T03:02:07Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 eaf715a60ae3c3180d0949da8292e2627b72e287,Extract /-/plugins view into a method,2018-05-13T13:06:02Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 cf1fe693e5741035df65cc9d69c4af32befd021d,Used isort to re-order my imports,2018-05-13T12:58:28Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 368638555160fb9ac78f462d0f79b1394163fa30,Ran black source formatting tool against new views/ and app.py,2018-05-13T12:55:15Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 1f69269fe93e4cd42e56890126cc0dbcf719c6cb,"Refactored views into new views/ modules, refs #256",2018-05-13T12:44:22Z,2018-05-14T03:04:23Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 690736436bac599ca042d1caa465c6d66d2651f9,"Bump up time limit for test_paginate_tables_and_views It was intermittently failing in Travis CI on Python 3.5: https://travis-ci.org/simonw/datasette/jobs/373713476",2018-05-02T00:17:39Z,2018-05-02T00:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 349e262bb1c8f225cf86a5e8542253282809a0eb,"Renamed ?_sql_time_limit_ms= to ?_timelimit, closes #242",2018-05-02T00:11:46Z,2018-05-02T00:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 a4cc5dc81364a7300f0ba0bd5711633e803c250a,"New ?_shape=array option + tweaks to _shape, closes #245 * Default is now ?_shape=arrays (renamed from lists) * New ?_shape=array returns an array of objects as the root object * Changed ?_shape=object to return the object as the root * Updated docs",2018-05-02T00:08:16Z,2018-05-02T00:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 2565d623af6222f3ed1c630f753b5f95ad749d49,?_shape=array experimental feature,2018-05-01T17:40:33Z,2018-05-02T00:20:39Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 c1d37fdf2be84fb07155bb1b1f61057444b03300,"Fixed bug with human filter description, refs #189 We were showing this: 201 rows where sorted by sortable_with_nulls We now show this: 201 rows sorted by sortable_with_nulls",2018-04-09T05:07:18Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 23e0fdb0f3196ffa4d8bc4944c8bc9cb0f89129b,"Removed unnecessary enumerate template helper I made this obsolete in d1756d773685ca4f9c5b57fb40e1aa743bc95525 Refs #189",2018-04-09T05:02:19Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 b13f0986f26d88938519b07871c961c0b5a97802,"New sortable_columns option in metadata.json to control sort options You can now explicitly set which columns in a table can be used for sorting using the _sort and _sort_desc arguments using metadata.json: { ""databases"": { ""database1"": { ""tables"": { ""example_table"": { ""sortable_columns"": [ ""height"", ""weight"" ] } } } } } Refs #189",2018-04-09T04:58:25Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 a87df963a08054ad7a652f0218e70ddb7f9cc8bd,"Error handling for ?_sort and ?_sort_desc Verifies that they match an existing column, and only one or the other option is provided - refs #189 Eses a new DatasetteError exception that closes #193",2018-04-09T04:07:31Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 bfb19e3a178ba9b2dab2f90f90a398b54a73d34e,Correctly escape sort-by columns in SQL (refs #189),2018-04-09T02:25:14Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 747a801b50487cd4cc20856d44252ac0a6cb346f,Column headers now link to sort/desc sort - refs #189,2018-04-09T02:08:28Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 9f2ec39fbc5481b0fa6585ccdd159ba9fd989bcc,"Current sort order now reflected in human filter description Plus renamed human_description to human_description_en Refs #189",2018-04-09T01:01:23Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 f3a3820ff5c5ba9b4af102e65ed1f084b1fe704d,"_sort and _sort_desc parameters for table views Allows for paginated sorted results based on a specified column. Refs #189",2018-04-09T00:06:10Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 29f9a29250169cdb564020109f76e0f4b52afa5d,Total row count now correct even if _next= applied,2018-04-08T23:13:52Z,2018-04-09T05:10:22Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 46281c9db0d6eb50203880c83363a8b279db4ecd,Release 1.2.1,2019-06-21T00:01:21Z,2019-06-21T00:01:24Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,140912432,9599,9599 976263effcc2b9658006f739f7f7f02554f8d97f,"Sanity check add_foreign_key() column exists, closes #29",2019-06-20T23:58:09Z,2019-06-20T23:58:18Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,140912432,9599,9599 364b0fb6784f72b5c4048a3d6b697fba5ec86db7,Remove .DS_Store,2019-06-20T23:55:39Z,2019-06-20T23:56:13Z,13ae486343ea6454a93114c6f558ffea2f2c6874,2946d096d0cdefdc017559e6b57e87658736e843,140912432,9599,9599 28a52fcffb869f5e83ca2fad53738dc25eec425d,Set theme jekyll-theme-architect,2018-05-24T16:56:21Z,2018-05-24T16:56:21Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 3d9baf3c2f2f745e6949973f18480092f189116c,Set theme jekyll-theme-leap-day,2018-05-24T16:55:19Z,2018-05-24T16:55:19Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 f96e55bce55d26c4d5b198edc536e1b8e9bbea43,"Fix pytest version conflict https://travis-ci.org/simonw/datasette/jobs/305929426 pkg_resources.VersionConflict: (pytest 3.2.1 (/home/travis/virtualenv/python3.5.3/lib/python3.5/site-packages), Requirement.parse('pytest==3.2.3'))",2017-11-22T20:15:29Z,2017-11-22T20:17:51Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 1b04662585ea1539014bfbd616a8112b650d5699,"Table views now show expanded foreign key references, if possible If a table has foreign key columns, and those foreign key tables have label_columns, the TableView will now query those other tables for the corresponding values and display those values as links in the corresponding table cells. label_columns are currently detected by the inspect() function, which looks for any table that has just two columns - an ID column and one other - and sets the label_column to be that second non-ID column.",2017-11-18T03:09:32Z,2017-11-18T03:15:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 6a007f632258e6cfd3c5e9e229683deb0efd87be,Row pages show incoming foreign key relationships,2017-11-17T18:15:44Z,2017-11-18T03:15:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 7feb746efe8c5ed80f477475acc546370bae89e4,Fixed bug where 0 values were showing up blank,2017-11-17T18:14:01Z,2017-11-18T03:15:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 0b702f3679a2ffd4e3efb5c34b9fe30221172ccb,"Fixed weird edge-case with foreign key detection It turns out it is possible for a SQLite table to define a foreign key relationship to a table that does not actually exist We should still be able to handle these databases.",2017-11-17T16:18:26Z,2017-11-17T16:18:26Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 45e502aace6cc1198cc5f9a04d61b4a1860a012b,"Added unit tests for inspect() foreign key detection Used them to fix a bug with it. Refs #85",2017-11-17T16:08:11Z,2017-11-17T16:08:11Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 e16ca1169cc49fbb5b0325564d248becad3a4b7f,"Refactored table column/row display logic Simplified the template and made the way for upcoming foreign key work. Refs #85 Also fixed   bug on database page - closes #113",2017-11-17T15:39:36Z,2017-11-17T15:39:36Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 084350b0f1343d988928cae63cfedbeb6205e25e,"Switched to gather_request=False for Sanic tests Gets rid of those ugly _, response = lines.",2017-11-17T14:53:37Z,2017-11-17T14:53:37Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 f3445e2d13e2c38bfbf75f35c2aa3e50df0040f1,Install python3-dev rothar than python-dev,2017-11-17T14:18:49Z,2017-11-17T14:18:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 1a6cfcc10f9abcc743b45437996c7264cc2a57b2,"Added a .dockerignore Figured this would be useful while testing out 03572ae3557",2017-11-17T14:18:23Z,2017-11-17T14:18:23Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 03572ae35573c2ea802a540624ce116f540ba1ac,"Allow --load-extension to be set via environment variable I tesed this by first building and running a container using the new Dockerfile from #114: docker build . docker run -it -p 8001:8001 6c9ca7e29181 /bin/sh Then I ran this inside the container itself: apt update && apt-get install wget -y \ && wget http://www.gaia-gis.it/spatialite-2.3.1/test-2.3.sqlite.gz \ && gunzip test-2.3.sqlite.gz \ && mv test-2.3.sqlite test23.sqlite \ && datasette -h 0.0.0.0 test23.sqlite I visited this URL to confirm I got an error due to spatialite not being loaded: http://localhost:8001/test23-c88bc35?sql=select+ST_AsText%28Geometry%29+from+HighWays+limit+1 Then I checked that loading it with `--load-extension` worked correctly: datasette -h 0.0.0.0 test23.sqlite \ --load-extension=/usr/lib/x86_64-linux-gnu/mod_spatialite.so Then, finally, I tested it with the new environment variable option: SQLITE_EXTENSIONS=/usr/lib/x86_64-linux-gnu/mod_spatialite.so \ datasette -h 0.0.0.0 test23.sqlite Running it with an invalid environment variable option shows an error: $ SQLITE_EXTENSIONS=/usr/lib/x86_64-linux-gnu/blah.so datasette \ -h 0.0.0.0 test23.sqlite Usage: datasette -h [OPTIONS] [FILES]... Error: Invalid value for ""--load-extension"": Path ""/usr/lib/x86_64-linux-gnu/blah.so"" does not exist. Closes #112",2017-11-17T14:13:35Z,2017-11-17T14:13:35Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 b7c4165346ee8b6a6fbd72d6ba2275a24a8a8ae3,"Added --load-extension argument to datasette serve Allows loading of SQLite extensions. Refs #110.",2017-11-16T16:46:04Z,2017-11-16T16:48:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 9e27b2a0ba45d92e198fcbac8641da41a62236b8,Add example of named parameter UI to the release notes,2017-11-16T16:09:07Z,2017-11-16T16:46:25Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 a9138f044a4d73256c2244243d4e2908d77d218e,Added date to most recent changelog entry,2017-11-16T15:40:43Z,2017-11-16T15:40:43Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 51bdd67691bd69082ae7690af8b905f06050ee80,Changelog for 0.12 release,2017-11-16T15:37:46Z,2017-11-16T15:37:46Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 01e0c3fa18cd0dd7970e208790ffd683a420c924,"Fixed   bug   was showing for all None values in table cells, thanks to the autoescaping change introduced in 82261a638bd35c9",2017-11-16T15:29:52Z,2017-11-16T15:29:52Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 228bce83a37b4bee633f674b802aee13fe5b2f44,"Added __version__, bumped it to 0.12 Closes #108",2017-11-16T15:20:54Z,2017-11-16T15:20:54Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 e6ca88588395a9b8266c0e14121668990d34ff67,"Added initial docs, including a changelog Docs initialized using this helpful guide: http://docs.readthedocs.io/en/latest/getting_started.html I used https://pypi.python.org/pypi/gitchangelog to kick-start the changelog. Closes #99 Refs #109",2017-11-16T15:11:00Z,2017-11-16T15:11:00Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 9199945a1bcec4852e1cb866eb3642614dd32a48,"Fixed 500 on views page Bug introduced in a4af532a31ece7095d710a1f5abb39ea93fe003f Refs 85",2017-11-16T14:46:49Z,2017-11-16T14:46:49Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 82261a638bd35c9d69a9582a898cf4dab374f76c,"Turn on auto-escaping in Jinja We had XSS holes! Since we don't do cookies or authentication they shouldn't cause any actual harm, but still really not good. https://github.com/pallets/jinja/issues/528",2017-11-16T01:59:42Z,2017-11-16T01:59:42Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 a4af532a31ece7095d710a1f5abb39ea93fe003f,"Include foreign key info in inspect() output Refs #85",2017-11-16T01:34:32Z,2017-11-16T01:34:32Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 5d8084a28578da2aefa79ad81df9d82e2c265666,"Added a UI for editing named parameters Fixes #96",2017-11-16T01:32:48Z,2017-11-16T01:32:48Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 9f47b6e4d80f0f393cf0167a6f48280de6847d1d,"Pin to specific Jinja version Closes #100",2017-11-16T00:14:07Z,2017-11-16T00:14:07Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 f45ca30f91b92ac68adaba893bf034f13ec61ced,"Fixed bug with datasette package --metadata Closes #84",2017-11-15T05:18:29Z,2017-11-15T05:18:29Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 ea183b2ae3d557a370628e236fe606717c704e2a,"Default to 127.0.0.1 not 0.0.0.0 Closes #98",2017-11-15T05:08:46Z,2017-11-15T05:08:46Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 7fe1e8b4827aa1d7e72825da563effdf44ae7233,"Added extra metadata options to publish and package commands You can now run these commands like so: datasette now publish mydb.db \ --title=""My Title"" \ --source=""Source"" \ --source_url=""http://www.example.com/"" \ --license=""CC0"" \ --license_url=""https://creativecommons.org/publicdomain/zero/1.0/"" This will write those values into the metadata.json that is packaged with the app. If you also pass --metadata= that file will be updated with the extra values before being written into the Docker image. Closes #92",2017-11-15T05:02:11Z,2017-11-15T05:02:11Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 9cb69cbd45ed8fd93190c47060c19abec80bc4ef,"New ?_sql_time_limit_ms=10 argument to database and table page Allows callers to opt for a lower time limit. Closes #95",2017-11-15T02:55:10Z,2017-11-15T02:55:10Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 0b8c1b0a6da9cb8ac0d28cc90dd783de87554036,"Test for sql_time_limit_ms + sqlite_functions mechanism Added a unit test for the sql_time_limit_ms option. To test this, I needed to add a custom SQLite sleep() function. I've added a simple mechanism to the Datasette class for registering custom functions. I also had to modify the sqlite_timelimit() function. It makes use of a magic value, N, which is the number of SQLite virtual machine instructions that should execute in between calls to my termination decision function. The value of N was not finely grained enough for my test to work - so I've added logic that says that if the time limit is less than 50ms, N is set to 1. This got the tests working. Refs #95",2017-11-15T02:41:03Z,2017-11-15T02:43:34Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 4f7281af8ce421d2f8c57ba43108261ba89d2cd6,"Apply a default height to CodeMirror Makes it a bit more obvious that it's an editable textarea even if the SQL in it is only one line long.",2017-11-15T02:04:04Z,2017-11-15T02:04:04Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 cbb59e3801868e1c284ad50b66343cd4358e516c,Handle tables with names that start with digits,2017-11-14T18:13:37Z,2017-11-15T02:03:21Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 b0f3d4e375655f0764f3137dbcede324f9bbc0cb,Version 0.11,2017-11-14T01:48:22Z,2017-11-14T01:48:22Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 fc7c04fe0b2f9daf8875ccaa9625ec80d8eeafe2,"Added 'datasette publish now --force' option This calls now with --force - which is useful as it means you get a fresh copy of datasette even if now has already cached that docker layer.",2017-11-14T01:48:03Z,2017-11-14T01:48:03Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 00527e5c629d9dae56d6228891b40105ff0e34c6,Enable --cors by default in containers,2017-11-14T01:23:22Z,2017-11-14T01:23:22Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 5928c11ee798a232aa4096706cd47e639d1c9fc2,Version 0.10,2017-11-14T00:45:23Z,2017-11-14T00:45:23Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 50e817801f90d07468ea394ef562d55d8940d124,"Fixed #83 Turns out we had a redirect bug as well.",2017-11-14T00:44:08Z,2017-11-14T00:44:43Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 44a199a0625b695492b2a8605030dc61191f39cb,"Stop using sqlite WITH RECURSIVE in our tests The version of Python 3 running in Travis CI doesn't support this.",2017-11-13T22:15:21Z,2017-11-13T22:15:21Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 d75f423b6fcfc074b7c6f8f7679da8876f181edd,Release 0.9,2017-11-13T22:00:39Z,2017-11-13T22:00:53Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 1e698787a4dd6df0432021a6814c446c8b69bba2,"Added --sql_time_limit_ms and --extra-options The serve command now accepts --sql_time_limit_ms for customizing the SQL time limit. The publish and package commands now accept --extra-options which can be used to specify additional options to be passed to the datasite serve command when it executes inside the rusulting Docker containers.",2017-11-13T21:58:34Z,2017-11-13T22:00:53Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 fe279ab7b4ae99dab295d5cf4d39ad06d782997e,"v0.8 - added PyPI metadata, ready to ship",2017-11-13T21:17:34Z,2017-11-13T21:17:34Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 847f3e0c92b5ac17200b2090bedcc5443bb08e4b,"Implemented offset/limit pagination for views Closes #70",2017-11-13T21:10:55Z,2017-11-13T21:10:55Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 7dac1c05cd40f89a5af34763e4d5614c750575c2,"Improved pagination Closes #78",2017-11-13T20:34:56Z,2017-11-13T20:34:56Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 d76412668f8c12572eb7de57ccb72f1e50306177,Removed rogue middot,2017-11-13T20:34:39Z,2017-11-13T20:34:39Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 79216bac12668eb90ccad65086d4f129476a3969,Added some breathing room to the footer,2017-11-13T19:38:20Z,2017-11-13T19:38:20Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 8252e71da461c425e625e1c3e4ee0bd92ea4cbf0,"Limit on max rows returned, controlled by --max_returned_rows option If someone executes 'select * from table' against a table with a million rows in it, we could run into problems: just serializing that much data as JSON is likely to lock up the server. Solution: we now have a hard limit on the maximum number of rows that can be returned by a query. If that limit is exceeded, the server will return a `""truncated"": true` field in the JSON. This limit can be optionally controlled by the new `--max_returned_rows` option. Setting that option to 0 disables the limit entirely. Closes #69",2017-11-13T19:33:01Z,2017-11-13T19:33:01Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 6b3b05b6db0d2a7b7cec8b8dbb4ddc5e12a376b2,Released 0.7,2017-11-13T18:42:30Z,2017-11-13T18:42:30Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 e838bd743d31358b362875854a0ac5e78047727f,Added README and improved help for 'datasette serve',2017-11-13T18:41:53Z,2017-11-13T18:41:59Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 20d41c8e8e84ab3e8bdb5cca9bd9799da09794ad,"publish now takes a required publisher argument - only current option is 'now' Closes #76",2017-11-13T18:40:51Z,2017-11-13T18:40:51Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 4fec50597a8684756bc96d4a69b6fab809ec6cf6,Include license/source in JSON output if provided,2017-11-13T18:39:25Z,2017-11-13T18:39:25Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 97c4bf4271495f8f711926ec44d8def3f2941379,"Added --cors argument to enable CORS Closes #75",2017-11-13T18:17:42Z,2017-11-13T18:17:42Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 495407acefe1e6976316aef88ae0e4c1d48ab421,"Force initial .inspect() before starting server Otherwise there is a long pause on the first request made.",2017-11-13T18:03:52Z,2017-11-13T18:03:52Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 4143e3b45c16cbae5e3e3419ef479a71810e7df3,"New command: datasette package - packages a docker container Example usage: datasette package fivethirtyeight.db \ --tag fivethirtyeight \ --metadata=538-metadata.json This will create a temporary directory, generate a Dockerfile, copy in the SQLite database and metadata file, then build that as a new docker image and tag that in your local Docker repository as fivethirtyeight:latest. You can then run the image like so: docker run -p 8006:8001 fivethirtyeight This will expose port 8001 in the container (the default) as port 8006 on your host. Closes #67",2017-11-13T16:13:38Z,2017-11-13T16:17:35Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 3ef35ca8b4369af6a8bcdd9e5cfbb5f3a7d17cf8,"serve and publish commands now take a --metadata option If provided, the --metadata option is the path to a JSON file containing metadata that should be displayed alongside the dataset. datasette /tmp/fivethirtyeight.db --metadata /tmp/metadata.json Currently that metadata format looks like this: { ""title"": ""Five Thirty Eight"", ""license"": ""CC Attribution 4.0 License"", ""license_url"": ""http://creativecommons.org/licenses/by/4.0/"", ""source"": ""fivethirtyeight/data on GitHub"", ""source_url"": ""https://github.com/fivethirtyeight/data"" } If provided, this will be used by the index template and to populate the common footer. The publish command also accepts this argument, and will package any provided metadata up and include it with the resulting Docker container. datasette publish --metadata /tmp/metadata.json /tmp/fivethirtyeight.db Closes #68",2017-11-13T15:20:02Z,2017-11-13T15:20:02Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 ff2fb573cd8773206a6df83229620928056e2ee2,"datasette publish --name=now-accepts-name Fixes #72",2017-11-13T02:12:21Z,2017-11-13T02:12:21Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599 2bbe9ca34a701191e3bf4e97943b7503a50ab548,Support OPTIONS requests for CORS,2017-11-13T02:11:52Z,2017-11-13T02:11:52Z,2946d096d0cdefdc017559e6b57e87658736e843,2946d096d0cdefdc017559e6b57e87658736e843,107914493,9599,9599