Commit graph

466 commits

Author SHA1 Message Date
Simon Willison
cc27857c72 Removed unused variable 2019-07-11 09:14:24 -07:00
Abdus
74ecf8a7cc Fix static mounts using relative paths and prevent traversal exploits (#554)
Thanks, @abdusco! Closes #555
2019-07-11 09:13:19 -07:00
Abdus
9ca860e54f Add support for running datasette as a module (#556)
python -m datasette

Thanks, @abdusco
2019-07-11 09:07:44 -07:00
Simon Willison
973f8f139d
--plugin-secret option for datasette publish
Closes #543

Also added new --show-files option to publish now and publish cloudrun - handy for debugging.
2019-07-07 19:06:31 -07:00
Simon Willison
c5542abba5 Removed ManyToManyFacet for the moment, closes #550 2019-07-07 16:21:11 -07:00
Simon Willison
912ce848b9 Fix nav display on 500 page, closes #545 2019-07-07 13:26:45 -07:00
Simon Willison
787dd427de white-space: pre-wrap for table SQL, closes #505 2019-07-07 13:26:38 -07:00
Simon Willison
f80ff9b07b min-height on .hd
Now it should be the same size on the homepage as it is on pages with breadcrumbs
2019-07-07 13:16:48 -07:00
Simon Willison
fcfcae21e6
extra_template_vars plugin hook (#542)
* extra_template_vars plugin hook

Closes #541

* Workaround for cwd bug

Based on https://github.com/pytest-dev/pytest/issues/1235#issuecomment-175295691
2019-07-05 17:05:56 -07:00
Simon Willison
a18e0964ec Refactor templates for better top nav customization, refs #540 2019-07-05 13:34:41 -07:00
Simon Willison
16fdabda97 Better robustness in face of missing raw_path 2019-07-04 07:03:02 -07:00
Simon Willison
107d47567d Black 2019-07-03 22:56:13 -07:00
Simon Willison
25ff0a8ba6 Fix for accidentally leaking secrets in /-/metadata, closes #538 2019-07-03 22:47:45 -07:00
Simon Willison
a2d4593193
Secret plugin configuration options (#539)
Closes #538
2019-07-03 22:36:44 -07:00
Simon Willison
f0d32da0a9
Switch to ~= dependencies, closes #532 (#536)
* Switch to ~= dependencies, closes #532
* Bump click and click-default-group
* imp. is deprecated, use types.ModuleType instead - thanks https://stackoverflow.com/a/32175781
* Upgrade to pytest 5
2019-07-02 21:32:55 -07:00
Simon Willison
4d2fdafe39 Added asgi_wrapper plugin hook, closes #520 2019-07-02 21:06:25 -07:00
Simon Willison
e7120d91f6 Rename _rows_and_columns.html to _table.html, refs #521 2019-07-02 20:23:05 -07:00
Simon Willison
c461357b44 Default to raw value, use Row.display(key) for display, refs #521 2019-07-02 20:23:05 -07:00
Simon Willison
754836eef0 New experimental Row() for templates, refs #521 2019-07-02 20:23:05 -07:00
Simon Willison
ba8db9679f
Port Datasette from Sanic to ASGI + Uvicorn (#518)
Datasette now uses ASGI internally, and no longer depends on Sanic.

It now uses Uvicorn as the underlying HTTP server.

This was thirteen months in the making... for full details see the issue:

https://github.com/simonw/datasette/issues/272

And for a full sequence of commits plus commentary, see the pull request:

https://github.com/simonw/datasette/pull/518
2019-06-23 20:13:09 -07:00
Simon Willison
35429f9089 Revert "New encode/decode_path_component functions"
Refs #272

This reverts commit 9fdb47ca95.

Now that ASGI supports raw_path we don't need our own encoding scheme!
2019-06-18 17:23:27 -07:00
Simon Willison
d4df640d18 Refactored view class hierarchy, refs #272
See https://github.com/simonw/datasette/issues/272#issuecomment-502393107
2019-06-15 12:41:34 -07:00
Simon Willison
9c58d048ec Fix pagination when sorted by expanded foreign key
Closes #489
2019-05-27 19:23:18 -07:00
Simon Willison
f069950a14 Removed obsolete __init__ method 2019-05-27 19:03:36 -07:00
Simon Willison
bd4dbc8519 Rename InterruptedError => QueryInterrupted, closes #490 2019-05-27 17:16:36 -07:00
Simon Willison
edb36629e7 Database.get_outbound_foreign_keys() refactor
Following this, the only module that ever makes calls to the low-level
execute_against_connection_in_thread() method is datasette/database.py
2019-05-27 11:41:44 -07:00
Simon Willison
20f98c3e20 Databse.primary_keys(table) / fts_table(table) refactor, closes #488
Also cleaned up some unused imports spotted by the linter.
2019-05-27 11:27:42 -07:00
Simon Willison
6569287d90 Refactored ConnectedDatabase to datasette/database.py
Closes #487
2019-05-26 22:07:43 -07:00
Simon Willison
026c84db30 Refactor Datasette methods to ConnectedDatabase
Refs #487
2019-05-26 21:56:43 -07:00
Simon Willison
182a3017c2 Sort keys to past tests in Python 3.5 2019-05-25 09:22:02 -07:00
Simon Willison
9bd39672de Better label detection, refs #485
This needs unit tests.
2019-05-25 09:14:57 -07:00
Simon Willison
d923d84754 Facet by many-to-many, closes #365 2019-05-25 09:06:32 -07:00
Simon Willison
172da009d8 Added ?_through= table argument, closes #355
Also added much more interesting many-to-many fixtures - roadside attractions!
2019-05-22 22:45:12 -07:00
Simon Willison
967230c90e Facet by date, closes #481 2019-05-20 23:09:22 -07:00
Simon Willison
de4503a136 Fix ?col__date= for columns with spaces 2019-05-20 22:36:56 -07:00
Simon Willison
e513a80afb Use -i with datasette publish, closes #469 2019-05-19 15:53:34 -07:00
Simon Willison
f4eefdf193 Do not allow downloads of mutable databases - closes #474 2019-05-19 13:41:09 -07:00
Simon Willison
503fee891b Removed 'datasette skeleton', closes #476 2019-05-19 13:05:38 -07:00
Simon Willison
7d8573d672 Rename "datasette publish now" to "datasette publish nowv1"
Also added an alias so "datasette publish now" continues to work.

Closes #472
2019-05-19 11:06:51 -07:00
Simon Willison
db9dbfb816 ?_hash=1 no longer respected for mutable databases
Closes #471, refs #419
2019-05-16 08:10:25 -07:00
Simon Willison
cccea85be6 /-/databases sorts alphabetically
Should fix test failure in Python 3.5
2019-05-16 07:56:13 -07:00
Simon Willison
0dad111d24 New introspection endpoint: /-/databases - closes #470
Refs #419 and #465
2019-05-16 07:49:34 -07:00
Simon Willison
21b57cdf9a serve --inspect-file=X now populates cached table counts
Closes #462
2019-05-16 07:30:32 -07:00
Simon Willison
909e66dfdb Removed .inspect() and /-/inspect.json
Refs #462

/-/inspect.json may return in some shape in #465
2019-05-16 07:15:24 -07:00
Simon Willison
666c37415a publish heroku now uses Python 3.6.8
Also refactored temporary_heroku_directory out of utils.py
2019-05-15 21:32:23 -07:00
Simon Willison
2ad9d15cd6 Table counts now handles SQL Logic Error too
I tried running Datasette against 22 database files at once and ran into
a weird error where the table counts broke with an SQL Logic Error
exception. Easy fix: catch that exception too and treat it the same as a
regular Interrupted error.
2019-05-15 20:55:28 -07:00
Simon Willison
b7fe722f05 Removed rogue print() 2019-05-15 20:25:51 -07:00
Simon Willison
faf33515b2 Sometimes sort tables by number of relationships, closes #460 2019-05-15 20:23:33 -07:00
Simon Willison
689cf9c139 Index page only shows row counts for smaller databases
The index page now only shows row counts for immutable databases OR for
databases with less than 30 tables provided it could get a count for
each of those tables in less than 10ms.

Closes #467, Refs #460
2019-05-15 20:02:33 -07:00
Simon Willison
79303163b2 Row count fix + sort index page databases alphabetically
Sorting alphabetically should fix a test failure in Python 3.5

Refs #460
2019-05-15 17:40:10 -07:00