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