Simon Willison
e8e0a6f284
Use FTS4 in fixtures
...
Closes #1081
2020-11-11 16:02:58 -08:00
Simon Willison
2a981e2ac1
Blank foreign key labels now show as hyphens, closes #1086
2020-11-11 15:44:04 -08:00
Simon Willison
7b19492070
database_actions() plugin hook, closes #1077
2020-11-02 10:27:25 -08:00
Simon Willison
6bb41c4b33
Fix for test_paginate_using_link_header
2020-10-31 13:48:39 -07:00
Simon Willison
a4ca26a265
Address PrefixedUrlString bug in #1075
2020-10-31 13:35:47 -07:00
Simon Willison
bf18b9ba17
Stop using plugin-example.com, closes #1074
2020-10-31 12:47:42 -07:00
Simon Willison
84bc7244c1
datasette.client now applies base_url, closes #1026
2020-10-31 12:29:42 -07:00
Simon Willison
7a67bc7a56
datasette.urls methods will not apply base_url prefix twice, refs #1026
2020-10-31 12:11:40 -07:00
Simon Willison
11eb1e026f
datasette.urls.table(..., format="json"), closes #1035
...
Also improved tests for datasette.urls and added format= to some other methods
2020-10-31 11:16:28 -07:00
Simon Willison
b84cfe1b08
Confirm table actions work on views, closes #1067
2020-10-31 10:40:09 -07:00
Simon Willison
d6db47f5c1
Deploy demo plugins to latest.datasette.io, refs #1074
2020-10-31 10:36:46 -07:00
Simon Willison
f0a740ac21
Remove load_plugin hook - closes #1073
...
Refs #1042
This reverts commit 81dea4b07a
.
2020-10-31 09:21:22 -07:00
Simon Willison
81dea4b07a
load_template() plugin hook
...
Closes #1042
2020-10-30 10:47:18 -07:00
Simon Willison
222f79bb4c
debug-menu permission, closes #1068
...
Also added tests for navigation menu logic.
2020-10-30 08:41:57 -07:00
Simon Willison
2f7731e9e5
table_actions() plugin hook plus menu, closes #1066
...
Refs #690
2020-10-29 22:16:41 -07:00
Simon Willison
18a64fbb29
Navigation menu plus menu_links() hook
...
Closes #1064 , refs #690 .
2020-10-29 20:45:15 -07:00
Simon Willison
1a861be19e
Fixed test_max_csv_mb test that I just broke, refs #1063
2020-10-29 15:58:40 -07:00
Simon Willison
178b7e8749
.csv now links to .blob downloads
...
Closes #1063 , closes #1034
2020-10-29 15:47:32 -07:00
Simon Willison
78b3eeaad9
.blob output renderer
...
* _blob_hash= checking plus refactored to use new BadRequest class, refs #1050
* Replace BlobView with new .blob renderer, closes #1050
* .blob downloads on arbitrary queries, closes #1051
2020-10-29 15:01:38 -07:00
Simon Willison
89519f9a37
Fixed bug with download of BLOB null, refs #1050
2020-10-28 21:05:40 -07:00
Simon Willison
cefd058c1c
New explicit versioning mechanism
...
Closes #1054
2020-10-28 20:38:15 -07:00
Simon Willison
7d9fedc176
Cascading permissions for .db download, closes #1058
2020-10-27 20:15:41 -07:00
Simon Willison
c3aba4aa98
--cors for /name.db downloads, refs #1057
2020-10-27 13:39:57 -07:00
Simon Willison
e5f5034bcd
Fixed broken footer test
2020-10-27 12:39:55 -07:00
Simon Willison
f5dbe61a45
-o now opens to most relevant page, closes #976
2020-10-25 22:06:20 -07:00
Simon Willison
5db7ae3ce1
Link to BLOB downloads, closes #1046
2020-10-24 17:13:14 -07:00
Simon Willison
5a15197960
/db/table/-/blob/pk/column.blob download URL, refs #1036
2020-10-24 16:09:18 -07:00
Simon Willison
10c35bd371
urls.static_plugins() method, closes #1033
...
Also documented how to package static assets and templates in plugins, closes #575
2020-10-24 13:03:40 -07:00
Simon Willison
7f728d4a37
Extra tests for datasette.urls, refs #1025
2020-10-24 12:21:23 -07:00
Simon Willison
29a977a74e
New app_client_base_url_prefix fixture
2020-10-24 12:03:24 -07:00
Simon Willison
091441a444
Fixed remaining places that needed datasette.urls, closes #1025
2020-10-19 22:21:19 -07:00
Simon Willison
310c3a3e05
New datasette.urls URL builders, refs #904
2020-10-19 17:33:59 -07:00
Simon Willison
6aa5886379
--load-extension=spatialite shortcut, closes #1028
2020-10-19 15:37:43 -07:00
Simon Willison
f3a087a578
Edit SQL button on canned queries, closes #1019
2020-10-13 20:44:18 -07:00
Simon Willison
e34e84901d
Link: HTTP header pagination, closes #1014
2020-10-10 17:18:45 -07:00
Simon Willison
7e70643852
Removed --debug option, which didn't do anything - closes #814
2020-10-10 16:39:38 -07:00
Simon Willison
7239175f63
Fixed broken column header links, closes #1011
2020-10-09 20:51:56 -07:00
Simon Willison
9f6dd985bc
Fix broken CSV/JSON export on query page, refs #1010
2020-10-09 17:39:45 -07:00
Simon Willison
c13d184704
Emergency fix for broken links in 0.50, closes #1010
2020-10-09 17:33:13 -07:00
Simon Willison
896cc2c6ac
Replace MockRequest with Request.fake()
...
Close #1004
2020-10-09 09:26:17 -07:00
Simon Willison
8f97b9b58e
datasette.client internal requests mechanism
...
Closes #943
* Datasette now requires httpx>=0.15
* Support OPTIONS without 500, closes #1001
* Added internals tests for datasette.client methods
* Datasette's own test mechanism now uses httpx to simulate requests
* Tests simulate HTTP 1.1 now
* Added base_url in a bunch more places
* Mark some tests as xfail - will remove that when new httpx release ships: #1005
2020-10-09 09:11:24 -07:00
Simon Willison
7249ac5ca0
Support OPTIONS without 500, closes #1001
2020-10-08 18:43:53 -07:00
Simon Willison
e4554c37b7
datasette publish heroku --tar option, closes #969
2020-10-08 16:30:46 -07:00
Simon Willison
86823ae6f7
Default to Uvicorn workers=1, refs #999
2020-10-08 16:16:55 -07:00
Simon Willison
b47ac37114
Applied Black
2020-10-07 15:51:25 -07:00
Simon Willison
5070425817
Fix handling of nested custom page wildcard paths, closes #996
2020-10-07 15:51:11 -07:00
Simon Willison
b37431976c
custom pages tests templates now in repo
2020-10-07 15:16:41 -07:00
Simon Willison
e02f6c1300
Tests for db.table_columns() and db.table_column_details()
2020-10-06 14:02:30 -07:00
Simon Willison
5a184a5d21
Display column type in column action menu, closes #993
...
Also added new documented db.table_column_details() introspection method.
2020-10-05 17:32:10 -07:00
Simon Willison
0f2626868b
Much improved column menu display logic, refs #981
...
* Menu links now take into account existing querystring
* No longer shows facet option for primary key columns
* Conditionally displays sort/sort-desc if already sorted
* Does not show facet option if already faceted by this
2020-09-30 16:01:37 -07:00
Simon Willison
97c71c3a3b
Fixed test for column sorting, refs #981
2020-09-30 14:51:10 -07:00
Simon Willison
5b8b8ae597
Handle \r\n correctly in CSS escapes, refs #980
2020-09-29 12:16:30 -07:00
Simon Willison
c11383e628
Fix rendering glitch with columns on mobile, closes #978
2020-09-28 15:42:50 -07:00
Simon Willison
cac051bb8a
Fix for 'open' bug, closes #973
2020-09-22 08:39:48 -07:00
Simon Willison
a980199e61
New -o option for opening Datasette in your browser, closes #970
2020-09-22 07:26:47 -07:00
Simon Willison
448d13ea6b
Fix for MagicParameters error with no POST body, closes #967
2020-09-15 13:12:57 -07:00
Simon Willison
72ac2fd32c
JSON API for writable canned queries, closes #880
2020-09-14 14:23:18 -07:00
Simon Willison
894999a14e
Improved test for JSON POST, refs #880
2020-09-14 13:25:09 -07:00
Simon Willison
896fce228f
Canned query writes support JSON POST body, refs #880
2020-09-14 13:18:15 -07:00
Simon Willison
699be7dea9
raise_404() function for use in custom templates, closes #964
2020-09-14 10:39:25 -07:00
Simon Willison
cc77fcd133
Optional path parameters for custom pages, closes #944
2020-09-13 19:34:43 -07:00
Simon Willison
ea340cf320
Correctly persist selected facets in hidden fields
...
Closes #963
2020-09-12 14:54:01 -07:00
Simon Willison
20b1de86a1
Fix for test I broke in #947
2020-09-11 15:04:23 -07:00
Simon Willison
d02f6151da
datasette --get status code for error pages, closes #947
2020-09-11 14:32:54 -07:00
Simon Willison
ca5c405d0f
New 'datasette --pdb' option, closes #962
2020-09-11 11:37:55 -07:00
Simon Willison
a648bb82ba
Upgrade to Black 20.8b1, closes #958
2020-09-02 15:24:55 -07:00
Simon Willison
799ecae948
register_output_renderer can now return Response, closes #953
2020-08-27 21:02:50 -07:00
Simon Willison
69033c6ec4
datasette install --upgrade option, closes #945
2020-08-19 10:20:41 -07:00
Simon Willison
8e7e6458a6
Fix bug with ?_nl=on and binary data, closes #914
2020-08-16 11:26:49 -07:00
Simon Willison
3a4c8ed36a
Added columns argument to various extra_ plugin hooks, closes #938
2020-08-16 11:09:53 -07:00
Simon Willison
94ae840fe3
Plugin tests now start with test_hook_
2020-08-16 10:49:33 -07:00
Simon Willison
2da4144c57
Applied Black
2020-08-16 10:35:14 -07:00
Simon Willison
ac69d151c3
Test that plugin hooks are documented with correct arguments
2020-08-16 10:33:44 -07:00
Simon Willison
e3639247cd
Standard arguments for extra_ plugin hooks, closes #939
2020-08-16 09:50:23 -07:00
Simon Willison
41ddc19756
Docs now live at docs.datasette.io ( #937 )
2020-08-15 16:57:05 -07:00
Simon Willison
af12f45c2b
Documentation and tests for db.is_mutable
2020-08-15 16:27:32 -07:00
Simon Willison
b86f94883b
Don't hang in db.execute_write_fn() if connection fails
...
Closes #935
Refs https://github.com/simonw/latest-datasette-with-all-plugins/issues/3
2020-08-15 15:35:31 -07:00
Simon Willison
45414f8412
--get now calls startup() plugin hooks, closes #934
2020-08-15 13:52:41 -07:00
Simon Willison
e139a7619f
'datasette --get' option, closes #926
...
Also made a start on the datasette.utils.testing module, refs #898
2020-08-11 17:24:40 -07:00
Simon Willison
afdeda8216
Use runpy in install/uninstall, refs #928
2020-08-11 16:54:52 -07:00
Simon Willison
01fe5b7401
datasette install / datasette uninstall commands, closes #925
2020-08-11 15:32:06 -07:00
Simon Willison
7f10f0f766
Fix for security issue #918
2020-08-09 09:03:35 -07:00
Simon Willison
0748a65a22
Fixed content-disposition header on DB download, closes #909
2020-07-29 14:34:22 -07:00
Simon Willison
092874202c
Improvements to allow block logic and debug tool
...
true and false allow block values are now supported, closes #906
Added a bunch of demo links to the documentation, refs #908
2020-07-24 17:04:06 -07:00
Simon Willison
12c0bc09cc
/-/allow-debug tool, closes #908
2020-07-24 15:55:10 -07:00
Simon Willison
213e6a8926
content-length for DB downloads, closes #905
2020-07-21 21:52:35 -07:00
Simon Willison
1f6a134369
await request.post_body() method, closes #897
2020-07-17 13:12:35 -07:00
Amjith Ramanujam
ea99a4431c
Only load Python files from plugins-dir
...
Pull request #890 . Thanks, @amjith!
* Load only python files from plugins-dir
* Add a test to verify non-python files are not loaded as plugins
2020-07-02 20:08:32 -07:00
Simon Willison
57879dc8b3
Better titles for canned query pages, closes #887
2020-07-01 17:23:37 -07:00
Simon Willison
1bae24691f
Only show 'log out' if ds_cookie present, closes #884
2020-07-01 14:25:59 -07:00
Simon Willison
549b1c2063
New forbidden() plugin hook, closes #812
2020-06-30 21:17:38 -07:00
Simon Willison
3ec5b1abf6
CSRF tests for canned query POST, closes #835
2020-06-30 20:08:00 -07:00
Simon Willison
d6e03b0430
Cascading view permissions, closes #832
...
- If you have table permission but not database permission you can now view the table page
- New BaseView.check_permissions() method
2020-06-30 16:40:50 -07:00
Simon Willison
9ac6292614
_header_x now defaults to empty string
...
Prior to this a request to e.g. https://latest.datasette.io/fixtures/magic_parameters
which did not include a User-Agent header would trigger a 500 error.
2020-06-30 15:00:17 -07:00
Simon Willison
2115d7e345
Logout link in nav, refs #875
2020-06-29 11:40:40 -07:00
Simon Willison
51427323e6
Add message when user logs out, refs #840
2020-06-29 11:31:35 -07:00
Simon Willison
35aee82c60
Fixed 500 error with /favicon.ico, closes #874
2020-06-28 21:27:11 -07:00
Simon Willison
22d932fafc
/-/logout page for logging out of ds_actor cookie
...
Refs #840
2020-06-28 21:17:58 -07:00
Simon Willison
a8a5f81372
Made show_messages available to plugins, closes #864
2020-06-28 17:50:47 -07:00
Simon Willison
7ac4936cec
.add_message() now works inside plugins, closes #864
...
Refs #870
2020-06-28 17:25:35 -07:00
Simon Willison
0991ea75cc
Renamed _timestamp to _now, refs #842 , closes #871
2020-06-28 12:47:28 -07:00
Simon Willison
1f55a4a2b6
Release notes for 0.45a3
2020-06-27 20:22:49 -07:00
Simon Willison
335f26a0f7
/fixtures/magic_parameters demo, refs #842
2020-06-27 20:11:01 -07:00
Simon Willison
563f5a2d3a
Magic parameters for canned queries
...
Closes #842
Includes a new plugin hook, register_magic_parameters()
2020-06-27 19:58:16 -07:00
Simon Willison
4b142862f2
Support non-async view functions, closes #867
2020-06-27 11:30:34 -07:00
Simon Willison
1a5b7d318f
Fixed test I broke in #863
2020-06-23 21:17:30 -07:00
Simon Willison
28bb1c5189
csrftoken() now works with .render_template(), closes #863
2020-06-23 20:23:50 -07:00
Simon Willison
751e7b4af7
Update tests for new plugin_hooks.rst, refs #687
2020-06-21 19:41:07 -07:00
Simon Willison
b59b92b1b0
Fix for tests - order was inconsistent, refs #852
2020-06-18 16:52:16 -07:00
Simon Willison
6c26345836
New plugin hook: canned_queries(), refs #852
2020-06-18 16:35:15 -07:00
Simon Willison
6151c25a5a
Respect existing scope["actor"] if set, closes #854
2020-06-18 11:37:28 -07:00
Simon Willison
d2aef9f7ef
Test illustrating POST against register_routes(), closes #853
2020-06-18 09:21:15 -07:00
Simon Willison
a4ad5a504c
Workaround for 'Too many open files' in test runs, refs #846
2020-06-13 17:26:18 -07:00
Simon Willison
0e49842e22
datasette/actor_auth_cookie.py coverae to 100%, refs #841
2020-06-13 11:29:14 -07:00
Simon Willison
d60bd6ad13
Update plugin tests, refs #834
2020-06-13 11:15:33 -07:00
Simon Willison
72ae975156
Added test for async startup hook, refs #834
2020-06-13 10:58:32 -07:00
Simon Willison
09a3479a54
New "startup" plugin hook, closes #834
2020-06-13 10:55:41 -07:00
Simon Willison
308bcc8805
Fixed test_permissions_debug
2020-06-11 17:25:12 -07:00
Simon Willison
fba8ff6e76
"$env": "X" mechanism now works with nested lists, closes #837
2020-06-11 17:21:48 -07:00
Simon Willison
f39f111331
Fixed actor_matches_allow bug, closes #836
2020-06-11 15:47:19 -07:00
Simon Willison
29c5ff493a
view-instance permission for debug URLs, closes #833
2020-06-11 15:14:51 -07:00
Simon Willison
98632f0a87
--secret command for datasette publish
...
Closes #787
2020-06-11 09:02:03 -07:00
Simon Willison
198545733b
Document that "allow": {} denies all
...
https://github.com/simonw/datasette/issues/831#issuecomment-642324847
2020-06-10 16:56:53 -07:00
Simon Willison
57e812d5de
ds_author cookie can now expire, closes #829
...
Refs https://github.com/simonw/datasette-auth-github/issues/62#issuecomment-642152076
2020-06-10 12:39:54 -07:00
Simon Willison
008e2f63c2
response.set_cookie(), closes #795
2020-06-09 15:19:37 -07:00
Simon Willison
f240970b83
Fixed tests/fixtures.py, closes #804
2020-06-09 12:58:12 -07:00
Simon Willison
5ef3b7b0c9
Applied Black
...
Refs #825
2020-06-09 12:25:48 -07:00
Simon Willison
7633b9ab24
unauthenticated: true method plus allow block docs, closes #825
2020-06-09 10:01:03 -07:00
Simon Willison
eb3ec279be
Test for anonymous: true, refs #825
2020-06-08 23:33:06 -07:00
Simon Willison
fac8e93815
request.url_vars property, closes #822
2020-06-08 20:40:00 -07:00
Simon Willison
db660db463
Docs + unit tests for Response, closes #821
2020-06-08 20:32:10 -07:00
Simon Willison
f5e79adf26
register_routes() plugin hook ( #819 )
...
Fixes #215
2020-06-08 20:12:06 -07:00
Simon Willison
647c5ff0f3
Fixed broken CSS on 404 page, closes #777
2020-06-08 17:35:23 -07:00
Simon Willison
49d6d2f7b0
allow_sql block to control execute-sql upermission in metadata.json, closes #813
...
Also removed the --config allow_sql:0 mechanism in favour of the new allow_sql block.
2020-06-08 17:05:44 -07:00
Simon Willison
040fc0546f
Updated tests, refs #817
2020-06-08 12:02:56 -07:00
Simon Willison
799c5d5357
Renamed resource_identifier to resource, refs #817
2020-06-08 11:59:53 -07:00
Simon Willison
c9f1ec616e
Removed resource_type from permissions system, closes #817
...
Refs #811 , #699
2020-06-08 11:51:03 -07:00
Simon Willison
5598c5de01
Database list on index page respects table/view permissions, refs #811
2020-06-08 11:34:14 -07:00
Simon Willison
dcec89270a
View list respects view-table permission, refs #811
...
Also makes a small change to the /fixtures.json JSON:
"views": ["view_name"]
Is now:
"views": [{"name": "view_name", "private": true}]
2020-06-08 11:20:59 -07:00
Simon Willison
9ac27f67fe
Show padlock on private query page, refs #811
2020-06-08 11:13:32 -07:00
Simon Willison
aa420009c0
Show padlock on private table page, refs #811
2020-06-08 11:07:11 -07:00
Simon Willison
2a8b39800f
Updated tests, refs #811
2020-06-08 07:50:06 -07:00
Simon Willison
3ce7f2e7da
Show padlock on private database page, refs #811
2020-06-08 07:23:10 -07:00
Simon Willison
1cf86e5ecc
Show padlock on private index page, refs #811
2020-06-08 07:18:47 -07:00
Simon Willison
cc218fa9be
Move assert_permissions_checked() calls from test_html.py to test_permissions.py, refs #811
2020-06-08 07:02:31 -07:00
Simon Willison
9397d71834
Implemented view-table, refs #811
2020-06-07 21:47:22 -07:00
Simon Willison
b26292a458
Test that view-query is respected by query list, refs #811
2020-06-07 20:56:49 -07:00
Simon Willison
9b42e1a4f5
view-database permission
...
Also now using 🔒 to indicate private resources - resources that
would not be available to the anonymous user. Refs #811
2020-06-07 20:50:37 -07:00
Simon Willison
613fa551a1
Removed view-row permission, for the moment - refs #811
...
https://github.com/simonw/datasette/issues/811#issuecomment-640338347
2020-06-07 20:14:27 -07:00
Simon Willison
cd92e4fe2a
Fixed test name, this executes view-query, not execute-sql - refs #811
2020-06-07 14:33:56 -07:00