1.0a37
Pre-release
Pre-release
Performance improvement for SQL-backed permission checks, plus an improved permission debugging interface.
- SQL used to resolve permission checks now aggregates permission rules before joining them to resources, improving performance on instances with large schemas. (#2832)
- The Permission check view permission debugger now explains why a decision was allowed or denied, including the matching rules. The interactive form can also test a hypothetical actor supplied as JSON, and the permissions documentation now describes resolution rules in more detail. (#2841)
- db.execute_write(sql, ..., transaction=True) has a new
transaction=parameter, which can be set toFalsefor statements such asVACUUMthat cannot run inside a transaction. Write tasks now start their transactions usingBEGIN IMMEDIATE, which also ensures that writes are rolled back if the task fails. (#2831) - Refreshing a database's schema in Datasette's internal catalog is now performed as a single atomic operation. (#2831)
- Fixed schema introspection, table pages, facets and table counts for tables with names containing a
]character. Thanks, TowyTowy. (#2431, #2846) /-/plugins.jsononce again returns a top-level JSON array of plugin objects, reverting the object envelope introduced in 1.0a36. This should fix a large number of trivial test failures in existing plugins. (#2842, #2843)