Server-Side Ingestion Capability Via Multipart File Uploads
Key takeaways
- Datasette's Request object supports multipart/form-data file uploads using await request.form(files=True).
- A new ?_extra=render_cell parameter is available on both table and row JSON pages to return results of executing the render_cell() plugin hook.
- The recommended development environment for working on Datasette now uses uv.
- Datasette 1.0a24 has been released as a new alpha version.
- Work was done to eliminate intermittently failing flaky tests in CI, and those flaky tests are believed to be resolved now.
Sections
Server-Side Ingestion Capability Via Multipart File Uploads
A concrete request-parsing mechanism for multipart file uploads is now available, expanding what Datasette endpoints can accept. A related future plugin is described as planned, but remains a forward-looking item rather than confirmed delivery.
- Datasette's Request object supports multipart/form-data file uploads using await request.form(files=True).
- A future datasette-files plugin is planned to support attaching uploaded files to rows of data.
Json Api Expansion For Plugin-Driven Cell Rendering
The JSON API can now optionally include render_cell hook results via a query parameter on table and row JSON endpoints. The corpus also contains an expectation that this may enable future JavaScript UI features, but that outcome is not evidenced as delivered.
- A new ?_extra=render_cell parameter is available on both table and row JSON pages to return results of executing the render_cell() plugin hook.
- The new render_cell extra output is expected to enable additional JavaScript UI features in the future.
Developer Tooling Standardization On Uv And Simplified Test Execution
Contributor workflow guidance changes toward uv, with an explicit mechanism for running tests without manual environment setup due to dev dependency grouping. The deltas are operational/process-oriented rather than user-facing runtime functionality.
- The recommended development environment for working on Datasette now uses uv.
- Developers can run Datasette tests using uv run pytest without manually creating a virtual environment or pre-installing dependencies, due to a dev dependency group pattern.
Release State Change (Alpha Availability)
The corpus establishes a new pre-release version state, which is a prerequisite context for interpreting the other deltas as newly introduced or newly recommended behaviors in that alpha.
- Datasette 1.0a24 has been released as a new alpha version.
Ci Reliability Improvement (Flake Reduction)
The corpus reports work to address intermittent CI test failures and states belief that flakiness is resolved. This is a quality/throughput delta, but the corpus does not provide quantitative before/after failure rates.
- Work was done to eliminate intermittently failing flaky tests in CI, and those flaky tests are believed to be resolved now.
Unknowns
- What breaking changes (if any) are included in Datasette 1.0a24 relative to prior alphas, and what compatibility constraints exist for plugins and deployments?
- What is the exact structure and lifecycle of uploaded file objects returned by await request.form(files=True), and how are storage, size limits, and memory/disk handling managed?
- Is there any authentication/authorization or CSRF-related guidance associated with enabling file upload endpoints in Datasette?
- Will the planned datasette-files plugin be released, and if so, what is its timeline, data model (how files relate to rows), and storage backend assumptions?
- What is the format and schema of the render_cell() hook output included via ?_extra=render_cell, and are there stability guarantees for API consumers?