Simon Willison
f84acae98e
Return 400 errors for ?_sort errors, closes #1950
2022-12-13 14:23:17 -08:00
Simon Willison
c6a811237c
/-/actor.json no longer requires view-instance, closes #1945
2022-12-12 20:11:51 -08:00
Simon Willison
8bf06a76b5
register_permissions() plugin hook ( #1940 )
...
* Docs for permissions: in metadata, refs #1636
* Refactor default_permissions.py to help with implementation of #1636
* register_permissions() plugin hook, closes #1939 - also refs #1938
* Tests for register_permissions() hook, refs #1939
* Documentation for datasette.permissions, refs #1939
* permission_allowed() falls back on Permission.default, refs #1939
* Raise StartupError on duplicate permissions
* Allow dupe permisisons if exact matches
2022-12-12 18:05:54 -08:00
Simon Willison
dee18ed8ce
test_create_table_error_rows_twice_with_duplicates, refs #1927
2022-12-07 17:29:24 -08:00
Simon Willison
9342b60f14
test_create_table_error_if_pk_changed, refs #1927
2022-12-07 17:27:01 -08:00
Simon Willison
6b27537988
ignore/replace to create requires pk, refs #1927
2022-12-07 17:18:40 -08:00
Simon Willison
272982e8a6
/db/table/-/upsert API
...
Close #1878
Also made a few tweaks to how _r works in tokens and actors,
refs #1855 - I needed that mechanism for the tests.
2022-12-07 17:12:15 -08:00
Simon Willison
93ababe6f7
Initial attempt at insert/replace for /-/create, refs #1927
2022-12-02 23:00:18 -08:00
Simon Willison
9a1536b52a
Move CORS headers into base class, refs #1922
2022-11-30 15:48:32 -08:00
Simon Willison
48725bb4ea
CORS headers for write APIs, refs #1922
2022-11-30 09:27:10 -08:00
Simon Willison
8404b21556
405 method not allowed for GET to POST endpoints, closes #1916
2022-11-29 21:15:13 -08:00
Simon Willison
5518397338
Show mutable DBs first in API explorer, closes #1918
2022-11-29 21:07:51 -08:00
Simon Willison
b8fc8e2cd7
Merge branch 'main' into 1.0-dev
2022-11-29 11:34:39 -08:00
Simon Willison
1154048f79
Compound primary key support for /db/-/create - closes #1911
...
Needed for tests in #1864
2022-11-29 10:47:48 -08:00
Simon Willison
484bef0d3b
/db/table/pk/-/update endpoint, closes #1863
2022-11-29 10:06:19 -08:00
Simon Willison
ee64130fa8
Refactor to use new resolve_database/table/row methods, refs #1896
2022-11-18 14:46:25 -08:00
Simon Willison
83a6872d1b
Include views in SQL autocomplete, refs #1897
2022-11-17 18:53:48 -08:00
Simon Willison
52bf222d48
/db/-/create API endpoint, closes #1882
2022-11-17 17:24:46 -08:00
Simon Willison
98611b3da0
Include SQL schema for CodeMirror on query pages, closes #1897
...
Refs #1893
2022-11-17 17:24:44 -08:00
Simon Willison
3e61a41b9b
Include SQL schema for CodeMirror on query pages, closes #1897
...
Refs #1893
2022-11-17 17:19:37 -08:00
Simon Willison
187d91d686
/db/-/create API endpoint, closes #1882
2022-11-14 21:57:28 -08:00
Simon Willison
575a29c424
API explorer: respect immutability, closes #1888
2022-11-13 22:01:56 -08:00
Simon Willison
264d0ab471
Renamed return_rows to return in insert API
...
Refs https://github.com/simonw/datasette/issues/1866#issuecomment-1313128913
2022-11-13 21:49:23 -08:00
Simon Willison
65521f03db
Error for drop against immutable database, closes #1874
2022-11-13 21:40:10 -08:00
Simon Willison
612da8eae6
confirm: true mechanism for drop table API, closes #1887
2022-11-13 21:17:18 -08:00
Simon Willison
db796771e2
Example links for API explorer, closes #1871
2022-11-13 20:58:45 -08:00
Simon Willison
fa9cc9efaf
Fix for redirects ignoring base_url, refs #1883
2022-11-12 12:29:59 -08:00
Simon Willison
8d9a957c63
Fix for redirects ignoring base_url, refs #1883
2022-11-10 22:49:54 -08:00
Simon Willison
bcc781f4c5
Implementation and tests for _r field on actor, refs #1855
...
New mechanism for restricting permissions further for a given actor.
This still needs documentation. It will eventually be used by the mechanism to issue
signed API tokens that are only able to perform a subset of actions.
This also adds tests that exercise the POST /-/permissions tool, refs #1881
2022-11-03 17:12:23 -07:00
Simon Willison
fb8b6b2311
Refactor _error helper function
2022-11-03 16:36:43 -07:00
Simon Willison
c51d9246b9
Permission check testing tool, refs #1881
2022-11-02 22:10:07 -07:00
Simon Willison
9b5a73ba4c
Applied Black
2022-11-02 21:46:05 -07:00
Simon Willison
719e757252
Return method not allowed error in JSON in some situations
...
Added this while playing with the new API explorer, refs #1871
2022-11-02 20:12:13 -07:00
Simon Willison
000eeb4464
Link to Datasette API docs from /-/api, refs #1871
2022-11-01 22:45:05 -07:00
Simon Willison
497290beaf
Handle database errors in /-/insert, refs #1866 , #1873
...
Also improved API explorer to show HTTP status of response, refs #1871
2022-11-01 12:59:17 -07:00
Simon Willison
9bec7c38eb
ignore and replace options for bulk inserts, refs #1873
...
Also removed the rule that you cannot include primary keys in the rows you insert.
And added validation that catches invalid parameters in the incoming JSON.
And renamed "inserted" to "rows" in the returned JSON for return_rows: true
2022-11-01 11:08:17 -07:00
Simon Willison
93a02281da
Show interrupted query in resizing textarea, closes #1876
2022-11-01 10:38:24 -07:00
Simon Willison
2ec5583629
Show interrupted query in resizing textarea, closes #1876
2022-11-01 10:22:26 -07:00
Simon Willison
00632ded30
Initial attempt at /db/table/row/-/delete, refs #1864
2022-10-30 16:16:00 -07:00
Simon Willison
2865d3956f
/db/table/-/drop API, closes #1874
2022-10-30 15:17:21 -07:00
Simon Willison
f6bf2d8045
Initial prototype of API explorer at /-/api, refs #1871
2022-10-29 23:20:11 -07:00
Simon Willison
c35859ae3d
API for bulk inserts, closes #1866
2022-10-29 23:03:45 -07:00
Simon Willison
6e788b49ed
New URL design /db/table/-/insert, refs #1851
2022-10-27 13:18:05 -07:00
Simon Willison
a51608090b
Slight tweak to insert row API design, refs #1851
...
https://github.com/simonw/datasette/issues/1851#issuecomment-1292997608
2022-10-27 12:06:18 -07:00
Simon Willison
51c436fed2
First draft of insert row write API, refs #1851
2022-10-26 20:57:02 -07:00
Simon Willison
382a871583
max_signed_tokens_ttl setting, closes #1858
...
Also redesigned token format to include creation time and optional duration.
2022-10-26 20:14:59 -07:00
Simon Willison
c23fa850e7
allow_signed_tokens setting, closes #1856
2022-10-25 19:55:47 -07:00
Simon Willison
0f013ff497
Mechanism to prevent tokens creating tokens, closes #1857
2022-10-25 19:43:55 -07:00
Simon Willison
7ab091e8ef
Tests and docs for /-/create-token, refs #1852
2022-10-25 19:04:05 -07:00
Simon Willison
68ccb7578b
dstoke_ prefix for tokens
...
Refs https://github.com/simonw/datasette/issues/1852#issuecomment-1291290451
2022-10-25 18:40:07 -07:00
Simon Willison
42f8b402e6
Initial prototype of create API token page, refs #1852
2022-10-25 17:07:58 -07:00
Simon Willison
5be86d48b2
Fix display of padlocks on database page, closes #1848
2022-10-23 19:42:30 -07:00
Simon Willison
78dad236df
check_visibility can now take multiple permissions into account
...
Closes #1829
2022-10-23 19:11:33 -07:00
Simon Willison
5f9f567acb
Show SQL query when reporting time limit error, closes #1819
2022-09-26 16:06:01 -07:00
Simon Willison
5aa359b869
Apply cell truncation on query page too, refs #1805
2022-09-06 16:58:30 -07:00
Simon Willison
d0737e4de5
truncate_cells_html now affects URLs too, refs #1805
2022-09-06 16:50:43 -07:00
Simon Willison
c1396bf860
Don't allow canned write queries on immutable DBs, closes #1728
2022-08-14 09:34:31 -07:00
Simon Willison
1563c22a8c
Don't duplicate _sort_desc, refs #1738
2022-08-14 09:13:12 -07:00
Simon Willison
df4fd2d7dd
_sort= works even if sort column not selected, closes #1773
2022-08-14 08:44:02 -07:00
Simon Willison
6373bb3414
Expose current SQLite row to render_cell hook, closes #1300
2022-07-07 09:30:49 -07:00
Simon Willison
280ff372ab
ETag support for .db downloads, closes #1739
2022-05-03 07:59:46 -07:00
Simon Willison
942411ef94
Execute some TableView queries in parallel
...
Use ?_noparallel=1 to opt out (undocumented, useful for benchmark comparisons)
Refs #1723 , #1715
2022-04-26 15:50:02 -07:00
Simon Willison
8a0c38f0b8
Rename database->database_name and table-> table_name, refs #1715
2022-04-26 15:50:02 -07:00
Simon Willison
579f59dcec
Refactor to remove RowTableShared class, closes #1719
...
Refs #1715
2022-04-25 11:33:35 -07:00
Simon Willison
0bc5186b7b
Tooltip and commas for byte length display, closes #1712
2022-04-12 11:44:12 -07:00
Simon Willison
c496f2b663
Don't show facet in cog menu if not allow_facet, closes #1683
2022-03-24 12:16:19 -07:00
Simon Willison
0159662ab8
Fix for bug running ?sql= against databases with a different route, closes #1682
2022-03-23 11:48:10 -07:00
Simon Willison
1a7750eb29
Documented datasette.check_visibility() method, closes #1678
2022-03-21 12:01:37 -07:00
Simon Willison
194e4f6c3f
Removed check_permission() from BaseView, closes #1677
...
Refs #1660
2022-03-21 11:41:56 -07:00
Simon Willison
e627510b76
BaseView.check_permissions is now datasette.ensure_permissions, closes #1675
...
Refs #1660
2022-03-21 10:13:16 -07:00
Simon Willison
cdbae2b93f
Fixed internal links to respect db.route, refs #1668
2022-03-19 17:31:23 -07:00
Simon Willison
7a6654a253
Databases can now have a .route separate from their .name, refs #1668
2022-03-19 17:11:17 -07:00
Simon Willison
798f075ef9
Read format from route captures, closes #1667
...
Refs #1660
2022-03-19 13:32:29 -07:00
Simon Willison
61419388c1
Rename route match groups for consistency, refs #1667 , #1660
2022-03-19 09:52:08 -07:00
Simon Willison
d4f60c2388
Remove hashed URL mode
...
Also simplified how view class routing works.
Refs #1661
2022-03-18 17:12:03 -07:00
Simon Willison
a35393b29c
Tilde encoding ( #1659 )
...
Closes #1657
Refs #1439
2022-03-15 11:01:57 -07:00
Simon Willison
1baa030eca
Switch to dash encoding for table/database/row-pk in paths
...
* Dash encoding functions, tests and docs, refs #1439
* dash encoding is now like percent encoding but with dashes
* Use dash-encoding for row PKs and ?_next=, refs #1439
* Use dash encoding for table names, refs #1439
* Use dash encoding for database names, too, refs #1439
See also https://simonwillison.net/2022/Mar/5/dash-encoding/
2022-03-07 07:38:29 -08:00
Simon Willison
23a09b0f6a
Remove JSON rel=alternate from some pages, closes #1623
2022-02-02 13:48:52 -08:00
Simon Willison
8d5779acf0
Refactored alternate_url_json mechanism, refs #1620 , #1533
2022-02-02 13:32:47 -08:00
Simon Willison
b72b2423c7
rel=alternate JSON for queries and database pages, closes #1620
2022-02-02 13:22:45 -08:00
Simon Willison
3ef47a0896
Link rel=alternate header for tables and rows
...
Also added Access-Control-Expose-Headers: Link to --cors mode.
Closes #1533
Refs https://github.com/simonw/datasette-notebook/issues/2
LL# metadata.json.1
2022-02-01 23:49:09 -08:00
Simon Willison
ab7d6a7179
Updated settings help URL to avoid redirect
2022-01-13 16:38:16 -08:00
Simon Willison
3a0f7d6488
Fixed hidden form fields bug #1527
2022-01-13 16:27:21 -08:00
Simon Willison
8c401ee0f0
Fixed remaining code and docs for new block=True default, closes #1579
2021-12-23 11:18:20 -08:00
Simon Willison
ace86566b2
Remove concept of special_args, re-arrange TableView a bit, refs #1518
2021-12-22 12:23:05 -08:00
Simon Willison
4094741c28
Fixed bug with custom templates for writable canned queries, closes #1547
2021-12-19 13:11:57 -08:00
Simon Willison
d0f24f9bbc
Clarifying comment
...
The new filters stuff is a little bit action-at-a-distance
2021-12-17 15:55:06 -08:00
Simon Willison
aa7f0037a4
filters_from_request plugin hook, now used in TableView
...
- New `filters_from_request` plugin hook, closes #473
- Used it to extract the logic from TableView that handles `_search` and
`_through` and `_where` - refs #1518
Also needed for this plugin work: https://github.com/simonw/datasette-leaflet-freedraw/issues/7
2021-12-17 11:02:14 -08:00
Simon Willison
0663d5525c
More comments in TableView.data(), refs #1518
2021-12-16 14:00:29 -08:00
Simon Willison
2c07327d23
Move columns_to_select to TableView class, add lots of comments, refs #1518
2021-12-16 13:43:44 -08:00
Simon Willison
95d0dd7a1c
Fix for colliding facet types bug, closes #625
...
Refs #830
2021-12-16 12:12:04 -08:00
Simon Willison
992496f261
?_nosuggest=1 parameter for table views, closes #1557
2021-12-16 11:24:54 -08:00
Simon Willison
eb53837d2a
Always show count of distinct facet values, closes #1556
...
Refs #1423
2021-12-15 09:58:01 -08:00
Simon Willison
a6ff123de5
keep_blank_values=True when parsing query_string, closes #1551
...
Refs #1518
2021-12-12 12:01:51 -08:00
Simon Willison
a37ee74891
Correct link to _ prefix on row page, closes #1525
2021-11-29 22:34:31 -08:00
Simon Willison
06762776f7
Fix for incorrect hidden for fields for _columns, refs #1527
2021-11-29 19:04:35 -08:00
Simon Willison
08947fa764
Fix more broken base_url links
...
Refs #1519 , #838
2021-11-20 11:03:08 -08:00
Simon Willison
640031edfd
Fixed bug introduced in #1519
2021-11-19 17:01:17 -08:00
Simon Willison
fe687fd020
Fixed a whole bunch of broken base_url links
...
Refs #1519 , #838
2021-11-19 16:53:11 -08:00
Simon Willison
1c13e1af06
Ensure query columns are included too, ref #1503
2021-11-13 21:08:33 -08:00