Documentation now links to a current source of information for installing Python 3. (#1987)
Incorrectly calling the Datasette constructor using Datasette("path/to/data.db") instead of Datasette(["path/to/data.db"]) now returns a useful error message. (#1985)
0.64
Datasette now strongly recommends against allowing arbitrary SQL queries if you are using SpatiaLite. SpatiaLite includes SQL functions that could cause the Datasette server to crash. See SpatiaLite for more details.
Fixed an accessibility issue: the <select> elements in the table filter form now show an outline when they are currently focused. (#1771)
0.63.3
Fixed a bug where datasette --root, when running in Docker, would only output the URL to sign in as root when the server shut down, not when it started up. (#1958)
You no longer need to ensure await datasette.invoke_startup() has been called in order for Datasette to start correctly serving requests - this is now handled automatically the first time the server receives a request. This fixes a bug experienced when Datasette is served directly by an ASGI application server such as Uvicorn or Gunicorn. It also fixes a bug with the datasette-gunicorn plugin. (#1955)
0.63.2
Fixed a bug in datasette publish heroku where deployments failed due to an older version of Python being requested. (#1905)
New datasette publish heroku --generate-dir <dir> option for generating a Heroku deployment directory without deploying it.
0.63.1
Fixed a bug where Datasette's table filter form would not redirect correctly when run behind a proxy using the base_url setting. (#1883)
SQL query is now shown wrapped in a <textarea> if a query exceeds a time limit. (#1876)
Fixed an intermittent "Too many open files" error while running the test suite. (#1843)
Documentation now links to a current source of information for installing Python 3. (:issue:1987)
Incorrectly calling the Datasette constructor using Datasette("path/to/data.db") instead of Datasette(["path/to/data.db"]) now returns a useful error message. (:issue:1985)
.. _v0_64:
0.64 (2023-01-09)
Datasette now strongly recommends against allowing arbitrary SQL queries if you are using SpatiaLite. SpatiaLite includes SQL functions that could cause the Datasette server to crash. See :ref:spatialite for more details.
New :ref:setting_default_allow_sql setting, providing an easier way to disable all arbitrary SQL execution by end users: datasette --setting default_allow_sql off. See also :ref:authentication_permissions_execute_sql. (:issue:1409)
Building a location to time zone API with SpatiaLite <https://datasette.io/tutorials/spatialite>__ is a new Datasette tutorial showing how to safely use SpatiaLite to create a location to time zone API.
New documentation about :ref:how to debug problems loading SQLite extensions <installation_extensions>. The error message shown when an extension cannot be loaded has also been improved. (:issue:1979)
Fixed an accessibility issue: the <select> elements in the table filter form now show an outline when they are currently focused. (:issue:1771)
.. _v0_63_3:
0.63.3 (2022-12-17)
Fixed a bug where datasette --root, when running in Docker, would only output the URL to sign in root when the server shut down, not when it started up. (:issue:1958)
You no longer need to ensure await datasette.invoke_startup() has been called in order for Datasette to start correctly serving requests - this is now handled automatically the first time the server receives a request. This fixes a bug experienced when Datasette is served directly by an ASGI application server such as Uvicorn or Gunicorn. It also fixes a bug with the datasette-gunicorn <https://datasette.io/plugins/datasette-gunicorn>__ plugin. (:issue:1955)
.. _v1_0_a2:
1.0a2 (2022-12-14)
The third Datasette 1.0 alpha release adds upsert support to the JSON API, plus the ability to specify finely grained permissions when creating an API token.
See Datasette 1.0a2: Upserts and finely grained permissions <https://simonwillison.net/2022/Dec/15/datasette-1a2/>__ for an extended, annotated version of these release notes.
New /db/table/-/upsert API, :ref:documented here <TableUpsertView>. upsert is an update-or-insert: existing rows will have specified keys updated, but if no row matches the incoming primary key a brand new row will be inserted instead. (:issue:1878)
New :ref:plugin_register_permissions plugin hook. Plugins can now register named permissions, which will then be listed in various interfaces that show available permissions. (:issue:1940)
The /db/-/create API for :ref:creating a table <TableCreateView> now accepts "ignore": true and "replace": true options when called with the "rows" property that creates a new table based on an example set of rows. This means the API can be called multiple times with different rows, setting rules for what should happen if a primary key collides with an existing row. (:issue:1927)
Arbitrary permissions can now be configured at the instance, database and resource (table, SQL view or canned query) level in Datasette's :ref:metadata JSON and YAML files. The new "permissions" key can be used to specify which actors should have which permissions. See :ref:authentication_permissions_other for details. (:issue:1636)
The /-/create-token page can now be used to create API tokens which are restricted to just a subset of actions, including against specific databases or resources. See :ref:CreateTokenView for details. (:issue:1947)
Likewise, the datasette create-token CLI command can now create tokens with :ref:a subset of permissions <authentication_cli_create_token_restrict>. (:issue:1855)
New :ref:datasette.create_token() API method <datasette_create_token> for programmatically creating signed API tokens. (:issue:1951)
/db/-/create API now requires actor to have insert-row permission in order to use the "row" or "rows" properties. (:issue:1937)
.. _v1_0_a1:
1.0a1 (2022-12-01)
Write APIs now serve correct CORS headers if Datasette is started in --cors mode. See the full list of :ref:CORS headers <json_api> in the documentation. (:issue:1922)
Fixed a bug where the _memory database could be written to even though writes were not persisted. (:issue:1917)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps datasette from 0.63 to 0.64.1.
Release notes
Sourced from datasette's releases.
Changelog
Sourced from datasette's changelog.
... (truncated)
Commits
2e06464
Release 0.64.1a1c60ba
Fix Sphinx warning turned errorb7df546
Raise ValueError if Datasette(files=) is a string, refs #19850a1de5d
Link to non-spam Python 3 setup instructionscd65558
setup-gcloud 318.0.00084daa
Release 0.64, with a warning against arbitrary SQL with SpatiaLite02987e3
Explicitly explain allow_sql: falsefdb4d97
Better error for --load-extensions, refs #19793b88ac6
What to do if extensions will not load, refs #19791ec9c99
Backported default_allow_sql for 0.63.x, closes #1409Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)