Releases: simonw/datasette
Releases · simonw/datasette
0.61a0
- Removed hashed URL mode from Datasette. The new
datasette-hashed-urls
plugin can be used to achieve the same result, see datasette-hashed-urls for details. (#1661) - Databases can now have a custom path within the Datasette instance that is indpendent of the database name, using the
db.route
property. (#1668) - URLs within Datasette now use a different encoding scheme for tables or databases that include "special" characters outside of the range of
a-zA-Z0-9_-
. This scheme is explained here: Tilde encoding. (#1657) - Table and row HTML pages now include a
<link rel="alternate" type="application/json+datasette" href="...">
element and return aLink: URL; rel="alternate"; type="application/json+datasette"
HTTP header pointing to the JSON version of those pages. (#1533) Access-Control-Expose-Headers: Link
is now added to the CORS headers, allowing remote JavaScript to access that header.- Canned queries are now shown at the top of the database page, directly below the SQL editor. Previously they were shown at the bottom, below the list of tables. (#1612)
- Datasette now has a default favicon. (#1603)
sqlite_stat
tables are now hidden by default. (#1587)- SpatiaLite tables
data_licenses
,KNN
andKNN2
are now hidden by default. (#1601) - Python 3.6 is no longer supported. (#1577)
- Tests now run against Python 3.11-dev. (#1621)
- Fixed bug where custom pages did not work on Windows. Thanks, Robert Christie. (#1545)
- SQL query tracing mechanism now works for queries executed in
asyncio
sub-tasks, such as those created byasyncio.gather()
. (#1576) - datasette.tracer mechanism is now documented.
- Common Datasette symbols can now be imported directly from the top-level
datasette
package, see Import shortcuts. Those symbols areResponse
,Forbidden
,NotFound
,hookimpl
,actor_matches_allow
. (#957) /-/versions
page now returns additional details for libraries used by SpatiaLite. (#1607)- Documentation now links to the Datasette Tutorials.
- Datasette will now also look for SpatiaLite in
/opt/homebrew
- thanks, Dan Peterson. (#1649) - Datasette is now covered by a Code of Conduct. (#1654)
0.60.2
0.60.1
0.60
Plugins and internals
- New plugin hook: filters_from_request(request, database, table, datasette), which runs on the table page and can be used to support new custom query string parameters that modify the SQL query. (#473)
- Added two additional methods for writing to the database: await db.execute_write_script(sql, block=True) and await db.execute_write_many(sql, params_seq, block=True). (#1570)
- The db.execute_write() internal method now defaults to blocking until the write operation has completed. Previously it defaulted to queuing the write and then continuing to run code while the write was in the queue. (#1579)
- Database write connections now execute the prepare_connection(conn, database, datasette) plugin hook. (#1564)
- The
Datasette()
constructor no longer requires thefiles=
argument, and is now documented at Datasette class. (#1563) - The tracing feature now traces write queries, not just read queries. (#1568)
- The query string variables exposed by
request.args
will now include blank strings for arguments such asfoo
in?foo=&bar=1
rather than ignoring those parameters entirely. (#1551)
Faceting
- The number of unique values in a facet is now always displayed. Previously it was only displayed if the user specified
?_facet_size=max
. (#1556) - Facets of type
date
orarray
can now be configured inmetadata.json
, see Facets in metadata.json. Thanks, David Larlet. (#1552) - New
?_nosuggest=1
parameter for table views, which disables facet suggestion. (#1557) - Fixed bug where
?_facet_array=tags&_facet=tags
would only display one of the two selected facets. (#625)
Other small fixes
- Made several performance improvements to the database schema introspection code that runs when Datasette first starts up. (#1555)
- Label columns detected for foreign keys are now case-insensitive, so
Name
orTITLE
will be detected in the same way asname
ortitle
. (#1544) - Upgraded Pluggy dependency to 1.0. (#1575)
- Now using Plausible analytics for the Datasette documentation.
explain query plan
is now allowed with varying amounts of whitespace in the query. (#1588)- New CLI reference page showing the output of
--help
for each of thedatasette
sub-commands. This lead to several small improvements to the help copy. (#1594) - Fixed bug where writable canned queries could not be used with custom templates. (#1547)
- Improved fix for a bug where columns with a underscore prefix could result in unnecessary hidden form fields. (#1527)
0.60a1
- Database write connections now execute the prepare_connection(conn, database, datasette) plugin hook. (#1564)
- The
Datasette()
constructor no longer requires thefiles=
argument, and is now documented at Datasette class. (#1563) - The tracing feature now traces write queries, not just read queries. (#1568)
- Added two methods for writing to the database: await db.execute_write_script(sql, block=False) and await db.execute_write_many(sql, params_seq, block=False). (#1570)
- Made several performance improvements to the database schema introspection code that runs when Datasette first starts up. (#1555)
- Fixed bug where writable canned queries could not be used with custom templates. (#1547)
0.60a0
- New plugin hook: filters_from_request(request, database, table, datasette), which runs on the table page and can be used to support new custom query string parameters that modify the SQL query. (#473)
- The number of unique values in a facet is now always displayed. Previously it was only displayed if the user specified
?_facet_size=max
. (#1556) - Fixed bug where
?_facet_array=tags&_facet=tags
would only display one of the two selected facets. (#625) - Facets of type
date
orarray
can now be configured inmetadata.json
, see Facets in metadata.json. Thanks, David Larlet. (#1552) - New
?_nosuggest=1
parameter for table views, which disables facet suggestion. (#1557) - Label columns detected for foreign keys are now case-insensitive, so
Name
orTITLE
will be detected in the same way asname
ortitle
. (#1544) - The query string variables exposed by
request.args
will now include blank strings for arguments such asfoo
in?foo=&bar=1
rather than ignoring those parameters entirely. (#1551)
0.59.4
- Fixed bug where columns with a leading underscore could not be removed from the interactive filters list. (#1527)
- Fixed bug where columns with a leading underscore were not correctly linked to by the "Links from other tables" interface on the row page. (#1525)
- Upgraded dependencies
aiofiles
,black
andjanus
.
0.59.3
- Fixed numerous bugs when running Datasette behind a proxy with a prefix URL path using the base_url setting. A live demo of this mode is now available at datasette-apache-proxy-demo.datasette.io/prefix/. (#1519, #838)
?column__arraycontains=
and?column__arraynotcontains=
table parameters now also work against SQL views. (#448)?_facet_array=column
no longer returns incorrect counts if columns contain the same value more than once.
0.59.2
- Column names with a leading underscore now work correctly when used as a facet. (#1506)
- Applying
?_nocol=
to a column no longer removes that column from the filtering interface. (#1503) - Official Datasette Docker container now uses Debian Bullseye as the base image. (#1497)
- Datasette is four years old today! Here's the original release announcement from 2017.