labels_id,labels_id_label,issues_id,issues_id_label 729585263,small,710650633,Default table view JSON should include CREATE TABLE 729585263,small,1823428714,Add __all__ to datasette/__init__.py 729585263,small,1469044738,API explorer should list mutable databases first 729585263,small,1397193691,__bool__ method on Results 729585263,small,1108235694,A proper favicon 729585263,small,1105916061,Add KNN and data_licenses to hidden tables list 729585263,small,1084007781,"""Query took"" should be ""Queries took""" 729585263,small,1083726550,Trace should show queries on the write connection too 729585263,small,1082564912,`?_nosuggest=1` parameter for disabling facet suggestions on table view 729585263,small,969840302,`--help-config` should be called `--help-settings` 729585263,small,962391325,Show count of facet values if ?_facet_size=max 729585263,small,961367843,Ability to default to hiding the SQL for a canned query 729585263,small,959898166,`datasette publish cloudrun --cpu X` option 729585263,small,953218043,Labels explaining what hidden tables are for 729585263,small,940077168,"""searchmode"": ""raw"" in table metadata" 729585263,small,818430405,datasette.add_memory_database() method 729585263,small,812704869,?_pretty=1 option for pretty-printing JSON output 729585263,small,808843401,--port option should validate port is between 0 and 65535 729585263,small,792890765,?_size=10 option for the arbitrary query page would be useful 729585263,small,788447787,?_size= argument is not persisted by hidden form fields in the table filters 729585263,small,785588942,"extra_body_script() support for script type=""module""" 729585263,small,780278550,Make original path available to render hooks 729585263,small,776101101,Update a whole bunch of links to datasette.io instead of datasette.readthedocs.io 729585263,small,772438273,Use time.perf_counter() instead of time.time() to measure performance 729585263,small,772408750,Rename _schemas to _internal 729585263,small,760605882,Feature: --create option to create database file if it does not yet exist 729585263,small,759695780,Option to omit header row in CSV export 729585263,small,758899581,New filter: array does not contain 729585263,small,753788261,messagge_is_html typo 729585263,small,749981663,config.json in directory config mode should be settings.json 729585263,small,749979454,Rename /-/config to /-/settings 729585263,small,743370900,Foreign key links break for compound foreign keys 729585263,small,733829385,database_actions plugin hook 729585263,small,732905360,"Table actions menu on view pages, not on query pages" 729585263,small,732685643,.csv should link to .blob downloads 729585263,small,730802994,Database download should implement cascading permissions 729585263,small,730797787,--cors should enable /fixtures.db CORS access 729585263,small,728895193,Link to blob downloads in the right places 729585263,small,726094754,Add horizontal scrollbar to tables 729585263,small,725996507,Make it possible to download BLOB data from the Datasette UI 729585263,small,725743755,"datasette.urls.table(..., format=""json"") argument" 729585263,small,725184645,Better way of representing binary data in .csv output 729585263,small,725099777,datasette.urls.static_plugins(...) method 729585263,small,723803777,--load-extension=spatialite shortcut 729585263,small,718255803,Replace MockRequest with Request.fake() 729585263,small,718238967,from_json jinja2 filter 729585263,small,716756082,Better handling of multiple matching template wildcard paths 729585263,small,705108492,"request an ""-o"" option on ""datasette server"" to open the default browser at the running url" 729585263,small,700728217,raise_404 mechanism for custom templates 729585263,small,696908389,Verification checks for metadata.json on startup 729585263,small,688622148,Simplify imports of common classes 729585263,small,684961449,Try out CodeMirror SQL hints 729585263,small,684111953,datasette --get exit code should reflect HTTP errors 729585263,small,682005535,datasette install -U for upgrading packages 729585263,small,665407663,"Interactive debugging tool for ""allow"" blocks" 729585263,small,665403403,Allow documentation doesn't explain what happens with multiple allow keys 729585263,small,665400224,"""allow"": true for anyone, ""allow"": false for nobody" 729585263,small,663317875,/database.db download should include content-length header 729585263,small,663228985,"datasette.urls.table() / .instance() / .database() methods for constructing URLs, also exposed to templates" 729585263,small,663145122,Add temporary plugin testing pattern to the testing docs 729585263,small,659580487,Request method for retrieving the unparsed request body 729585263,small,658476055,Use white-space: pre-wrap on ALL table cell contents 729585263,small,649329013,"Only show ""log out"" button if user is authenticated using a ds_actor cookie" 729585263,small,648673556,Release notes for 0.45 729585263,small,648637666,POST to /db/canned-query that returns JSON should be supported (for API clients) 729585263,small,648569227,Database page documentation still talks about hashes in URLs 729585263,small,647879783,Add log out link to the pattern portfolio 729585263,small,647103735,"""Logged in as: XXX - logout"" navigation item" 729585263,small,646840273,Rename the _timestamp magic parameters to _now 729585263,small,645975649,register_routes() should support non-async view functions too 729585263,small,643510821,Set an upper limit on total facet suggestion time for a page 729585263,small,642652808,Script to generate larger SQLite test files 729585263,small,642572841,Database page loads too slowly with many large tables (due to table counts) 729585263,small,641460179,"Respect default scope[""actor""] if one exists" 729585263,small,637370652,Plugin $env secrets mechanism doesn't work inside lists 729585263,small,637365801,actor_matches_allow fails to consider all keys 729585263,small,637342551,startup() plugin hook 729585263,small,637253789,/-/metadata and so on should respect view-instance permission 729585263,small,636614868,"It would be more intuitive if ""allow"": none meant ""no-one can do this""" 729585263,small,635107393,"Documentation is inconsistent about ""id"" as required field on actor" 729585263,small,635077656,request.url_vars helper property 729585263,small,635076066,Add Response class to internals documentation 729585263,small,634651079,Remove --debug option from datasette serve 729585263,small,633066114,Refactor permission check for canned query 729585263,small,630120235,"Documentation for new ""params"" setting for canned queries" 729585263,small,629541395,response.set_cookie() method 729585263,small,629535669,Show hooks implemented by each plugin on /-/plugins 729585263,small,629524205,CSRF protection for /-/messages tool and writable canned queries 729585263,small,629459637,"Replace response.body.decode(""utf8"") with response.text in tests" 729585263,small,628121234, /-/permissions debugging tool 729585263,small,628025100,Datasette secret mechanism - initially for signed cookies 729585263,small,626582657,Make human_description_en explicitly available to output renderers 729585263,small,626171242,Error pages not correctly loading CSS 729585263,small,626163974,register_output_renderer render callback should be optionally awaitable 729585263,small,625930207,register_output_renderer can_render mechanism 729585263,small,620969465,Allow to specify a URL fragment for canned queries 729585263,small,612382643,Question: Access to immutable database-path 729585263,small,611540797,Ability to set custom default _size on a per-table basis 729585263,small,611252244,Add notlike table filter 729585263,small,610342575,?_searchmode=raw should be documented on full-text search page 729585263,small,607223136,"Replace ""datasette publish --extra-options"" with ""--setting""" 729585263,small,607086780,Pass a request object to custom page templates 729585263,small,603295970,Visually distinguish integer and text columns 729585263,small,600583271,Custom CSS class on body for styling canned queries 729585263,small,592829135,Support YAML in metadata - metadata.yaml 729585263,small,582713554,Request object utility for handling POST form data 729585263,small,574035432,is_hidden_table context variable on table.html page 729585263,small,569253072,prepare_connection() plugin hook should accept optional datasette argument 729585263,small,569237568,The first time you click sort by ID it should show you results in reverse order 729585263,small,565518772,Mechanism for checking if a SQLite database file is safe to open 729585263,small,555832585,"--port option to expose a port other than 8001 in ""datasette package""" 729585263,small,541467590,Template debug mode that outputs template context 729585263,small,539590148,fts5 syntax error when using punctuation 729585263,small,531502365,Make database level information from metadata.json available in the index.html template 729585263,small,530653633,Mechanism for register_output_renderer to suggest extension or not 729585263,small,528442126,Better documentation for --static option 729585263,small,527710055,Nicer error message for heroku publish name clash 729585263,small,526913133,Don't suggest column for faceting if all values are 1 729585263,small,525993034,"Custom queries with 0 results should say ""0 results""" 729585263,small,525254973,rowid is not included in dropdown filter menus 729585263,small,521995039,Upgrade datasette publish Heroku runtime 729585263,small,521335335,"""datasette publish"" commands should deploy with Python 3.8" 729585263,small,521329771,Render jinja2 templates in async mode 729585263,small,520681725,Syntax for ?_through= that works as a form field 729585263,small,520655983,"""Invalid SQL"" page should let you edit the SQL" 729585263,small,520507306,Mechanism for seeing indexes on a specific table 729585263,small,516950748,"Add ""not in"" filter - ?pk__notin=x,y,z" 729585263,small,516310670,Don't suggest array facet if column is only [] empty arrays 729585263,small,513008936,"Improve UI of ""datasette publish cloudrun"" to reduce chances of accidentally over-writing a service" 729585263,small,504805857,Use --platform=managed for publish cloudrun 729585263,small,503217375,"Databases on index page should display in order they were passed to ""datasette serve""?" 729585263,small,503128914,"Enable ""explain"" and ""explain query plan"" for CTEs" 729585263,small,503053243,Datasette should not completely crash if one SQLite database is malformed 729585263,small,470542938,Facet by array shouldn't suggest for arrays that are not arrays-of-strings 729585263,small,465019882,"Add --plugin-secret support to ""datasette package""" 729585263,small,464994105,Add datasette-cors and datasette-auth-github plugins to Ecosystem page 729585263,small,464905894,Fix header on 404 page 729585263,small,464779810,Plugin hook for adding extra template context variables 729585263,small,463544206,"Populate ""endpoint"" key in ASGI scope" 729585263,small,462928038,Switch setup.py to using ~= for dependencies 729585263,small,459882902,Stream all results for arbitrary SQL and canned queries 729585263,small,459622390,Handle case-insensitive headers in a nicer way 729585263,small,459621683,Easier way of creating custom row templates 729585263,small,459598080,asgi_wrapper plugin hook 729585263,small,459509126,Enforce import sort order with isort 729585263,small,456569067,Ability to facet by delimiter (e.g. comma separated fields) 729585263,small,456568880,Support opening multiple databases with the same stem 729585263,small,455965174,Ability to set default sort order for a table or view in metadata.json 729585263,small,453846217,Option to display binary data 729585263,small,453829910,Add white-space: pre-wrap to SQL create statement 729585263,small,453639196,Remove TableView ?_group_count= feature 729585263,small,453243459,Handle SQLite databases with spaces in their names? 729585263,small,449931899,--reload should only trigger for -i databases 729585263,small,448978907,Rename InterruptedError exception class 729585263,small,448977444,Pagination breaks when combined with expanded foreign keys 729585263,small,448664792,Refactor database methods off Datasette class 729585263,small,447469253,Improvements to table label detection 729585263,small,445862501,Documentation for ArrayFacet (facet by JSON array) 729585263,small,445858491,"Remove ""datasette skeleton""" 729585263,small,445855910,Documentation for about and about_url metadata 729585263,small,445855789,Do not allow downloads of mutable databases 729585263,small,445230077,"Rename ""publish now"" to ""publish nowv1""" 729585263,small,445003029,?_hash=1 and --config hash_urls:1 should only work for immutable databases 729585263,small,444997937,/-/databases showing currently attached database details 729585263,small,444749373,publish commands should use new -i option 729585263,small,444711254,Index page row counts only for DBs with < 30 tables (10ms count limit per table) 729585263,small,443040665,"Move ""no such module: VirtualSpatialIndex"" code elsewhere" 729585263,small,443020810,Design changes to homepage to support mutable files 729585263,small,443020048,"Fix the ""datasette now publish ... --alias=x"" option" 729585263,small,442330564,"Ability to ""publish cloudrun"" with no user input" 729585263,small,442327592,Installing installs the tests package 729585263,small,440437037,Plugin for allowing CORS from specified hosts 729585263,small,440332621,Error pages do not return CORS header with --cors 729585263,small,433297989,"?column__in=value1,value2,value3 filter" 729585263,small,432636432,?_where=sql-fragment parameter for table views 729585263,small,407174173,"Show metadata info (e.g. license, source) on custom SQL query pages" 729585263,small,397129564,Update official datasetteproject/datasette Docker container to SQLite 3.26.0 729585263,small,397098882,Add pragma compile_options output to /-/versions 729585263,small,396215043,Find a cleaner pattern for fixtures with arguments 729585263,small,396212021,base_url configuration setting 729585263,small,374953006,Interface should show same JSON shape options for custom SQL queries 729585263,small,341123355,Requesting support for query description 729585263,small,339095976,extra_options not passed to heroku publisher 729585263,small,338768551,Datasette on Zeit Now returns http URLs for facet and next links 729585263,small,336936010,Datasette throws error when loading spatialite db without extension loaded 729585263,small,333000163,"HTML, CSV and JSON views should support ?_col=&_col=" 729585263,small,328172521,Support table names ending with .json or .csv 729585263,small,327459829,URLify URLs in results from custom SQL statements / views 729585263,small,326617744,?_shape=arrayfirst 729585263,small,326189744,num_threads and cache_max_age should be --config options 729585263,small,324451322,Figure out a way to have /-/version return current git commit hash 729585263,small,317900587,FTS table detection should be part of .inspect() 729585263,small,316128955,Setting page size AND max returned rows to 1000 doesn't seem to work 729585263,small,316031566,"If spatialite detected, mark idx_XXX_Geometry tables as hidden" 729585263,small,314771615,"Support custom unit display in order to handle ""$10,000""" 729585263,small,313512748,Support explain select / explain query plan select 729585263,small,312620566,Ability to apply sort on mobile in portrait mode 729585263,small,312313496,"Run pks_for_table in inspect, executing once at build time rather than constantly" 729585263,small,292011379,500 from missing table name 729585263,small,274662378,Fix the   bug on the database custom SQL query view 729585263,small,274023625,Start a change log 729585263,small,274023417,Default to 127.0.0.1 not 0.0.0.0 729585263,small,274022950,Link to JSON for the list of tables 729585263,small,273998513,Allow shorter time limits to be set using a ?_sql_time_limit_ms =20 query string limit 729585263,small,273895344,Add --license --license_url --source --source_url --title arguments to datasette publish 729585263,small,273709194,Configure Travis to release new tags to PyPI 729585263,small,273569477,Deploy final versions of fivethirtyeight and parlgov datasets (with view pagination) 729585263,small,273554949,Rename after to next and provide a next_url 729585263,small,273537940,Add Travis CI badge to README 729585263,small,273510781,publish should have required argument specifying publisher 729585263,small,273509159,Add --cors argument to serve 729585263,small,273296684,Send a 302 redirect to the new hash for hits to old hashes 729585263,small,273296178,_nocache=1 query string option for use with sort-by-random 729585263,small,273283166,publish command should take an optional --name argument 729585263,small,273191806,Show table SQL on table page 729585263,small,273191608,Re-implement ?sql= mode 729585263,small,273181020,Support for ?field__isnull=1 or similar 729585263,small,273174447,Review design of JSON output 729585263,small,273174397,Link to .json and .jsono versions on various pages 729585263,small,273173116,Common header and footer 729585263,small,273128608,"publish command should detect if ""now"" is installed" 729585263,small,273127694,Ship a Docker image of the whole thing 729585263,small,273127117,Ship first version to PyPI 729585263,small,273121803,Views should not attempt to link to records / use rowids 729585263,small,273026602,Solution for temporarily uploading DB so it can be built by docker 729585263,small,272735257,Make a proper README 729585263,small,272661336,Pick a name 729585263,small,272391665,Switch to ujson 729585263,small,269731374,?_group_count=country - return counts by specific column(s) 729585263,small,268590777,Homepage should show summary of databases 729585263,small,267886865,/database?sql= should redirect correctly 729585263,small,267741262,Efficient url for downloading the raw database file 729585263,small,267726219,Default HTML/CSS needs to look reasonable and be responsive