Simon Willison
f1dd86ebfb
Tweak URL designs of new endpoints
2026-05-25 14:05:26 -07:00
Simon Willison
8ab8999ba9
Big visual improvement to /-/queries pages
...
Including /db/-/queries
Refs https://github.com/simonw/datasette/issues/2735#issuecomment-4536860239
2026-05-25 12:56:59 -07:00
Simon Willison
4208ded249
No execute-write on immutable databases
...
Refs https://github.com/simonw/datasette/issues/2742#issuecomment-4536690161
2026-05-25 12:46:21 -07:00
Simon Willison
1f7c26ffea
Refactor to share JS/HTML between execute and execute-write
...
Refs #2742
2026-05-25 12:45:42 -07:00
Simon Willison
e1261442c0
Update parameters/query operations as user edits the write query
...
Refs #2742
2026-05-25 12:09:52 -07:00
Simon Willison
66bbbbc947
Support multi-line parameters on /db/-/execute-write
...
Refs https://github.com/simonw/datasette/issues/2742#issuecomment-4536317049
Each paramater input now has an expand/collapse button toggle to turn into a textarea.
If you paste text that includes at least one newline it toggles automatically.
2026-05-25 11:35:09 -07:00
Simon Willison
1bce34a338
If just a single insert, link to row page
...
Refs #2742
2026-05-25 11:22:24 -07:00
Simon Willison
2b5b4ed66b
Much improved "Write to this database" UI
...
- Start with a template option, letting you pick table and operation
- SQL textarea defaults to 4 empty lines at start
- Query operations table is simpler and looks nicer
Refs #2742
2026-05-25 11:11:11 -07:00
Simon Willison
f0b59971f7
Delete unnecessary test
2026-05-25 10:40:00 -07:00
Simon Willison
6eee6c81e8
Add global query browser
...
Refs #2735
2026-05-25 10:24:42 -07:00
Simon Willison
310c36ae94
Limit database query preview to five
...
Refs #2735
2026-05-25 10:18:36 -07:00
Simon Willison
4a70b89355
Add cursor-paginated query browser
...
Refs #2735
2026-05-25 10:11:46 -07:00
Simon Willison
e62a5ea337
Rename query publication flag
...
Refs #2735
2026-05-25 09:46:39 -07:00
Simon Willison
e0d39ba69f
Store query options as JSON
...
Refs #2735
2026-05-25 09:41:32 -07:00
Simon Willison
b7505a9fc2
Add execute write SQL database action
...
Refs #2735
2026-05-25 08:49:18 -07:00
Simon Willison
ef43c10388
Add arbitrary write SQL execution page
...
Refs #2735
2026-05-25 08:30:49 -07:00
Simon Willison
2d77e3334b
Clean up query management test coverage
...
Refs #2735
2026-05-24 23:06:01 -07:00
Simon Willison
040e42ddca
Enforce query ownership and remove canned query hook
...
Refs #2735
2026-05-24 22:58:50 -07:00
Simon Willison
4b5fac9cf7
Add query management API and create UI
...
Refs #2735
2026-05-24 22:52:06 -07:00
Simon Willison
221be2632e
Add query management actions and write analysis
...
Refs #2735
2026-05-24 22:41:56 -07:00
Simon Willison
b4c63966f8
Load saved queries into permission resources
...
Refs #2735
2026-05-24 22:40:22 -07:00
Simon Willison
7e1abd0da4
Add internal query storage APIs
...
Refs #2735
2026-05-24 22:37:34 -07:00
Simon Willison
a855a1acec
Database.analyze_sql(sql) method
...
Experimental, we may need this for the upcoming canned query
work so that we can tell if a user should be able to save
a writable canned query by confirming they have the right
permissions to update the affected tables.
Refs #2735
2026-05-24 22:29:49 -07:00
wheelman
b013aa1f7f
Add CORS headers to /db?sql= query redirect ( #2730 )
...
Closes #2728
2026-05-23 21:21:13 -07:00
Simon Willison
c980234c41
JumpSQL(database=) parameter
...
Refs https://github.com/simonw/datasette/pull/2732#issuecomment-4527304912
2026-05-23 21:00:04 -07:00
Simon Willison
cef6aa85b6
Remove source and source_key columns from JumpSQL
...
Refs https://github.com/simonw/datasette/pull/2732#issuecomment-4527290391
2026-05-23 20:41:32 -07:00
Simon Willison
c73ed1ee4e
Fixed a test I broke
2026-05-23 20:30:56 -07:00
Simon Willison
21a79b34b8
Improvements to Jump SQL columns
...
- Removed database_name and resource_name
- url can now optionally return JSON to reuse datasette.urls. methods
- description is now used as a truncated text description
2026-05-23 20:28:02 -07:00
Simon Willison
0f7e4410c1
Better test name
2026-05-23 17:07:47 -07:00
Simon Willison
be1b5b2b5c
Move debug links into jump menu
2026-05-23 16:57:09 -07:00
Simon Willison
1590444fa3
Simplify by removing _query_display_names_sql
...
See https://github.com/simonw/datasette/pull/2732/changes#r3293627533
2026-05-23 16:42:38 -07:00
Simon Willison
9e7419db8d
Remove navigation_search_js_hash mechanism
...
Codex added this because CSS was not reloading in dev.
2026-05-23 09:09:07 -07:00
Simon Willison
fba67250d1
Ran Black
2026-05-22 21:27:04 -07:00
Simon Willison
d44cfc3a55
Fix for failing JS test
2026-05-22 21:22:10 -07:00
Simon Willison
8568320a23
Replace jump_start() hook with JavaScript makeJumpSections() hook
2026-05-22 21:13:49 -07:00
Simon Willison
9909bd654b
Merge branch 'main' into jump
2026-05-21 23:11:01 -07:00
Simon Willison
1000d50220
datasette.fixtures module, closes #2733
...
https://gist.github.com/simonw/613be79094d491dd08f45e05f4f70691
2026-05-21 23:05:37 -07:00
Simon Willison
fae847ac10
Prototype of new /-/jump menu plus plugin hook
2026-05-21 15:02:17 -07:00
Simon Willison
d3330695fa
Always show 'Jump to...' menu item, closes #2725
2026-05-20 13:23:05 -07:00
Simon Willison
54b272baf6
Remove existing stale catalog_ tables, refs #2723
...
Now if there are any existing stale records in internal.db
those will be removed as well.
2026-05-20 12:39:54 -07:00
Simon Willison
7a914f8c65
Clear stale tables/other resources when DB removed, closes #2723
2026-05-20 12:16:23 -07:00
Simon Willison
3110faa0ba
Replace Janus queue with asyncio.Future
...
Closes #1752
AI generated patch explanation: https://gisthost.github.io/?e2b8d9c7666e988b5c003ff5e5ef3098
2026-05-16 11:45:43 -07:00
Simon Willison
345f910043
Fix for Database.close()/Datasette.close() order ( #2710 )
...
Closes:
- #2709
The key behavior change: after close() starts, no new execute work can be submitted, but already-running execute work is allowed to finish before SQLite connections are closed.
2026-05-12 16:31:36 -07:00
Simon Willison
0dc7bb19d9
Table headers and column options visible for 0 rows
...
Closes #2701
2026-04-22 22:23:02 -07:00
Simon Willison
b15ce18ddc
TokenRestrictions.abbreviated(datasette) utility method for creating _r dicts ( #2696 )
...
Closes #2695
Refs https://github.com/simonw/datasette-auth-tokens/pull/42
2026-04-17 08:44:43 -07:00
Simon Willison
630e557cdb
Ran black
2026-04-16 20:44:21 -07:00
Simon Willison
b3001c1e5a
Drop redundant _ds_client global now that ds_client is session-scoped
...
Session-scoped fixtures are cached per worker by pytest itself, so the
manual _ds_client module global is no longer needed.
Refs #2692
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-16 20:41:58 -07:00
Simon Willison
c9a7dc9be2
Declare ds_client as session-scoped so auto-close plugin spares it
...
ds_client already caches a single Datasette for the whole session via a
module-level _ds_client global, so the declared fixture scope should
match. With function scope the auto-close plugin correctly closes it
after the first test that uses it, which then breaks every subsequent
test that reuses the cached (now-closed) instance — as seen in the CI
coverage job, which runs serially rather than under pytest-xdist.
Refs #2692
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-16 20:40:51 -07:00
Simon Willison
ede942a32e
Fix ruff lints in close-related tests
...
Drop unused `bad = ...` assignment and unused `import pytest`.
Refs #2692
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-16 20:34:48 -07:00
Simon Willison
d23b32c3e5
Call ds.close() in more places in tests
...
Refs #2692
2026-04-16 20:25:58 -07:00