datasette 1.0a27
Release: datasette 1.0a27 (https://github.com/simonw/datasette/releases/tag/1.0a27)
Two major changes in this new Datasette alpha. I covered the first of those in detail yesterday (https://simonwillison.net/2026/Apr/14/replace-token-based-csrf/) - Datasette no longer uses Django-style CSRF form tokens, instead using modern browser headers as described by Filippo Valsorda (https://words.filippo.io/csrf).
The second big change is that Datasette now fires a new RenameTableEvent (https://docs.datasette.io/en/latest/events.html#datasette.events.RenameTableEvent) any time a table is renamed during a SQLite transaction. This is useful because some plugins (like datasette-comments (https://github.com/datasette/datasette-comments)) attach additional data to table records by name, so a renamed table requires them to react in appropriate ways.
Here are the rest of the changes in the alpha:
• New actor= parameter (https://docs.datasette.io/en/latest/internals.html#internals-datasette-client-actor) for datasette.client methods, allowing internal requests to be made as a specific actor. This is particularly useful for writing automated tests. (#2688 (https://github.com/simonw/datasette/pull/2688))
• New Database(is_temp_disk=True) option, used internally for the internal database. This helps resolve intermittent database locked errors caused by the internal database being in-memory as opposed to on-disk. (#2683 (https://github.com/simonw/datasette/issues/2683)) (#2684 (https://github.com/simonw/datasette/pull/2684))
• The / • Improved example in the API explorer for the /-/upsert endpoint (docs (https://docs.datasette.io/en/latest/json_api.html#tableupsertview)). (#1936 (https://github.com/simonw/datasette/issues/1936)) • The / • call_with_supported_arguments() (https://docs.datasette.io/en/latest/internals.html#internals-utils-call-with-supported-arguments) is now documented as a supported public API. (#2678 (https://github.com/simonw/datasette/pull/2678))/-/upsert API (docs (https://docs.datasette.io/en/latest/json_api.html#tableupsertview)) now rejects rows with null primary key values. (#1936 (https://github.com/simonw/datasette/issues/1936))
Tags: annotated-release-notes (https://simonwillison.net/tags/annotated-release-notes), datasette (https://simonwillison.net/tags/datasette), python (https://simonwillison.net/tags/python)
Write a comment