Commit graph

1,536 commits

Author SHA1 Message Date
Simon Willison
ec38ad3768
Add DatabaseContext dataclass for consistent template context documentation (#2513)
Refs:
- #1510
- #2333

Claude Code:

Created DatabaseContext as a documented dataclass following the same pattern
as the existing QueryContext. This change replaces the inline dictionary
context creation with an explicit dataclass that:

- Documents all 21 template context variables with help metadata
- Inherits from the Context base class for identification
- Provides better IDE support and type safety
- Makes template variables discoverable without reading code

Also updated QueryContext to inherit from Context for consistency.
2025-10-09 12:54:02 -07:00
Simon Willison
659673614a Refactor debug templates to use shared JavaScript functions
Extracted common JavaScript utilities from debug_allowed.html, debug_check.html, and debug_rules.html into a new _debug_common_functions.html include template. This eliminates code duplication and improves maintainability.

The shared functions include:
- populateFormFromURL(): Populates form fields from URL query parameters
- updateURL(formId, page): Updates browser URL with form values
- escapeHtml(text): HTML escaping utility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 21:53:34 -07:00
Simon Willison
e2a739c496 Fix for asyncio.iscoroutinefunction deprecation warnings
Closes #2512

Refs https://github.com/simonw/asyncinject/issues/18
2025-10-08 20:32:16 -07:00
Simon Willison
27084caa04
New allowed_resources_sql plugin hook and debug tools (#2505)
* allowed_resources_sql plugin hook and infrastructure
* New methods for checking permissions with the new system
* New /-/allowed and /-/check and /-/rules special endpoints

Still needs to be integrated more deeply into Datasette, especially for listing visible tables.

Refs: #2502

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-08 14:27:51 -07:00
Simon Willison
909448fb7a Run CLI coroutines on explicit event loops
With the help of Codex CLI: https://gist.github.com/simonw/d2de93bfdf85a014a29093720c511093
2025-10-01 12:59:14 -07:00
Simon Willison
7a602140df catalog_views table, closes #2495
Refs https://github.com/datasette/datasette-queries/issues/1#issuecomment-3074491003
2025-07-15 10:22:56 -07:00
Simon Willison
6f7f4c7d89 Release 1.0a19
Refs #2479
2025-04-21 22:38:53 -07:00
Simon Willison
f4274e7a2e CSS fix for table headings on mobile, closes #2479 2025-04-21 22:33:34 -07:00
Simon Willison
271aa09056 Release 1.0a18
Refs #2466, #2468, #2470, #2476, #2477
2025-04-16 22:16:25 -07:00
Jack Stratton
d5c6e502fb
fix: tilde encode database name in expanded foreign key links (#2476)
* Tilde encode database for expanded foreign key links
* Test for foreign key fix in #2476

---------

Co-authored-by: Simon Willison <swillison@gmail.com>
2025-04-16 22:15:11 -07:00
Simon Willison
f2485dce9c
Hide FTS tables that have content=
* Hide FTS tables that have content=, closes #2477
2025-04-16 21:44:09 -07:00
dependabot[bot]
da209ed2ba
Drop 3.8 testing, add 3.13 testing, upgrade Black
Also bump some GitHub Actions versions.
2025-03-09 20:45:18 -07:00
Simon Willison
333f786cb0 Correct syntax for link headers, closes #2470 2025-03-09 20:05:43 -05:00
Simon Willison
209bdee0e8 Don't run prepare_connection() on internal database, closes #2468 2025-02-18 10:23:23 -08:00
Simon Willison
e59fd01757 Fix for incorrect REFERENCES in internal DB
Refs #2466
2025-02-12 19:40:43 -08:00
Simon Willison
cd9182a551 Release 1.0a17
Refs #1690, #1943, #2422, #2424, #2441, #2454, #2455, #2458, #2460, #2465
2025-02-06 11:12:34 -08:00
Simon Willison
7f23411002 Call db.close() in ds.remove_database()
https://github.com/simonw/datasette/issues/2465#issuecomment-2640712713
2025-02-06 10:46:11 -08:00
Simon Willison
f95ac19e71 Fix to support replacing a database, closes #2465 2025-02-06 10:32:47 -08:00
Simon Willison
53a3b3c80e
Test improvements and fixed deprecation warnings (#2464)
* `asyncio_default_fixture_loop_scope = function`
* Fix a bunch of BeautifulSoup deprecation warnings
* Fix for PytestUnraisableExceptionWarning: Exception ignored in: <_io.FileIO [closed]>
* xfail for sql_time_limit tests (these can be flaky in CI)

Refs #2461
2025-02-04 14:49:52 -08:00
Simon Willison
f57977a08f /-/permissions?filter=exclude-yours/only-yours - closes #2460 2025-02-04 11:09:44 -08:00
Simon Willison
b190b87ec6 Detect single unique text column in label_column_for_table, closes #2458
Also added new tests for label_column_for_table()
2025-02-01 17:02:49 -08:00
Simon Willison
d9a450b197 Show registered permissions on /-/permissions
Closes #1943
2025-01-15 17:42:13 -08:00
Simon Willison
308c243cfd datasette.set_actor_cookie() and datasette.delete_actor_cookie(), closes #1690 2025-01-15 17:37:25 -08:00
Simon Willison
37873e02b0 Better breadcrumbs on database and table page, closes #2454 2025-01-09 10:07:03 -08:00
Simon Willison
34390bbed8 Fix for params metadata error, closes #2455 2025-01-09 09:54:06 -08:00
Simon Willison
dce718961c Async support for magic parameters
Closes #2441
2024-11-15 13:17:45 -08:00
Simon Willison
ea9f66f9fb Rename SQLITE_EXTENSIONS to DATASETTE_LOAD_EXTENSION
Closes #2424
2024-09-09 09:16:23 -07:00
Alex Garcia
a542870bfb
Add DATASETTE_SSL_KEYFILE and DATASETTE_SSL_CERTFILE envvars to datasette serve flags (#2423)
Closes #2422
2024-09-09 08:58:33 -07:00
Simon Willison
0bc6a2af89 Release 1.0a16
Refs #2320, #2342, #2398, #2399, #2400, #2403, #2404, #2405, #2406, #2407, #2408, #2414, #2415, #2420
2024-09-05 20:56:46 -07:00
Simon Willison
2ec4d8a4d5 Removed a img styles, closes #2420 2024-09-05 20:45:07 -07:00
Simon Willison
f601425015 Table styles now only apply to table.rows-and-columns, refs #2420 2024-09-05 20:11:23 -07:00
Simon Willison
6da8d09a14 header.hd and footer.ft, refs #2420 2024-09-05 19:57:27 -07:00
Simon Willison
deb482a41e .core label, refs #2420 2024-09-05 19:53:06 -07:00
Simon Willison
2170269258
New .core CSS class for inputs and buttons
* Initial .core input/button classes, refs #2415
* Docs for the new .core CSS class, refs #2415
* Applied .core class everywhere that needs it, closes #2415
2024-09-03 08:37:26 -07:00
Simon Willison
92c4d41ca6 results.dicts() method, closes #2414 2024-09-01 17:20:41 -07:00
Simon Willison
dc288056b8 Better handling of errors for count all button, refs #2408 2024-08-21 19:56:02 -07:00
Simon Willison
9ecce07b08 count all rows button on table page, refs #2408 2024-08-21 19:09:25 -07:00
Simon Willison
dc1d152476 Stop counting at 10,000 rows when listing tables, refs #2398 2024-08-21 14:58:29 -07:00
Simon Willison
bc46066f9d Fix huge performance bug in DateFacet, refs #2407 2024-08-21 14:38:11 -07:00
Simon Willison
f28ff8e4f0 Consider just 1000 rows for suggest facet, closes #2406 2024-08-21 13:36:42 -07:00
Simon Willison
8a63cdccc7 Tracer now catches errors, closes #2405 2024-08-21 12:19:18 -07:00
Simon Willison
34a6b2ac84 Fixed bug with ?_trace=1 and large responses, closes #2404 2024-08-21 10:58:17 -07:00
Simon Willison
9028d7f805 Support nested JSON in metadata.json, closes #2403 2024-08-21 09:53:52 -07:00
Tiago Ilieve
1f3fb5f96b
debugger: load 'ipdb' if present
* debugger: load 'ipdb' if present

Transparently chooses between the IPython-enhanced 'ipdb' or the
standard 'pdb'.

* datasette install ipdb

---------

Co-authored-by: Simon Willison <swillison@gmail.com>
2024-08-20 20:02:35 -07:00
Simon Willison
39dfc7d7d7
Removed units functionality and Pint dependency
Closes #2400, unblocks #2320
2024-08-20 19:03:33 -07:00
Simon Willison
d444b6aad5 Fix for spacing on index page, closes #2399 2024-08-20 09:36:02 -07:00
Simon Willison
7d8dd2ac7f Release 1.0a15
Refs #2296, #2326, #2384, #2386, #2389, #2390, #2393, #2394
2024-08-15 22:04:04 -07:00
Alex Garcia
0dd41efce6
skip over "queries" blocks when processing database-level metadata items (#2386) 2024-08-15 21:48:07 -07:00
Seb Bacon
9cb5700d60
bugfix: correctly detect json1 in versions.json (#2327)
Fixes #2326
2024-08-15 13:20:26 -07:00
Alex Garcia
6d91d082e0
Hide shadow tables, don't hide virtual tables
Closes #2296
2024-08-15 13:19:22 -07:00