issue_comments
8,883 rows where user = 9599 sorted by created_at descending
This data as json, CSV (advanced)
issue >30
- Show column metadata plus links for foreign keys on arbitrary query results 51
- Redesign default .json format 50
- ?_extra= support (draft) 48
- Rethink how .ext formats (v.s. ?_format=) works before 1.0 47
- Updated Dockerfile with SpatiaLite version 5.0 45
- Complete refactor of TableView and table.html template 45
- Port Datasette to ASGI 38
- Authentication (and permissions) as a core concept 38
- JavaScript plugin hooks mechanism similar to pluggy 38
- invoke_startup() is not run in some conditions, e.g. gunicorn/uvicorn workers, breaking lots of things 35
- await datasette.client.get(path) mechanism for executing internal requests 33
- Maintain an in-memory SQLite table of connected databases and their tables 31
- Deploy a live instance of demos/apache-proxy 31
- Ability to sort (and paginate) by column 29
- Research: demonstrate if parallel SQL queries are worthwhile 29
- Default API token authentication mechanism 29
- Port as many tests as possible to async def tests against ds_client 28
- Add ?_extra= mechanism for requesting extra properties in JSON 27
- Export to CSV 27
- Optimize all those calls to index_list and foreign_key_list 27
- Ability for a canned query to write to the database 26
- table.transform() method for advanced alter table 26
- Upgrade to CodeMirror 6, add SQL autocomplete 26
- Proof of concept for Datasette on AWS Lambda with EFS 25
- New pattern for views that return either JSON or HTML, available for plugins 25
- Support cross-database joins 24
- Redesign register_output_renderer callback 24
- "datasette insert" command and plugin hook 23
- API explorer tool 23
- Option for importing CSV data using the SQLite .import mechanism 22
- …
user 1
- simonw · 8,783 ✖
id | html_url | issue_url | node_id | user | created_at ▲ | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
1724084199 | https://github.com/simonw/datasette/issues/2189#issuecomment-1724084199 | https://api.github.com/repos/simonw/datasette/issues/2189 | IC_kwDOBm6k_c5mw2_n | simonw 9599 | 2023-09-18T17:47:01Z | 2023-09-18T17:47:01Z | OWNER | I managed to trigger it by loading |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Server hang on parallel execution of queries to named in-memory databases 1901416155 | |
1724083324 | https://github.com/simonw/datasette/issues/2189#issuecomment-1724083324 | https://api.github.com/repos/simonw/datasette/issues/2189 | IC_kwDOBm6k_c5mw2x8 | simonw 9599 | 2023-09-18T17:46:21Z | 2023-09-18T17:46:21Z | OWNER | Sometimes it takes a few clicks for the bug to occur, but it does seem to always be within the in-memory database. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Server hang on parallel execution of queries to named in-memory databases 1901416155 | |
1724081909 | https://github.com/simonw/datasette/issues/2189#issuecomment-1724081909 | https://api.github.com/repos/simonw/datasette/issues/2189 | IC_kwDOBm6k_c5mw2b1 | simonw 9599 | 2023-09-18T17:45:27Z | 2023-09-18T17:45:27Z | OWNER | Maybe it's not related to faceting - I just got it on a hit to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Server hang on parallel execution of queries to named in-memory databases 1901416155 | |
1724072390 | https://github.com/simonw/datasette/issues/2189#issuecomment-1724072390 | https://api.github.com/repos/simonw/datasette/issues/2189 | IC_kwDOBm6k_c5mw0HG | simonw 9599 | 2023-09-18T17:39:06Z | 2023-09-18T17:39:06Z | OWNER | Landing a version of that test anyway. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Server hang on parallel execution of queries to named in-memory databases 1901416155 | |
1724064440 | https://github.com/simonw/datasette/issues/2189#issuecomment-1724064440 | https://api.github.com/repos/simonw/datasette/issues/2189 | IC_kwDOBm6k_c5mwyK4 | simonw 9599 | 2023-09-18T17:36:00Z | 2023-09-18T17:36:00Z | OWNER | I wrote this test, but it passes:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Server hang on parallel execution of queries to named in-memory databases 1901416155 | |
1724055823 | https://github.com/simonw/datasette/issues/2189#issuecomment-1724055823 | https://api.github.com/repos/simonw/datasette/issues/2189 | IC_kwDOBm6k_c5mwwEP | simonw 9599 | 2023-09-18T17:31:10Z | 2023-09-18T17:31:10Z | OWNER | That line was added in https://github.com/simonw/datasette/commit/942411ef946e9a34a2094944d3423cddad27efd3 which first shipped in 0.62a0. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Server hang on parallel execution of queries to named in-memory databases 1901416155 | |
1724051886 | https://github.com/simonw/datasette/issues/2189#issuecomment-1724051886 | https://api.github.com/repos/simonw/datasette/issues/2189 | IC_kwDOBm6k_c5mwvGu | simonw 9599 | 2023-09-18T17:28:20Z | 2023-09-18T17:30:30Z | OWNER | The bug exhibits when I try to add a facet. I think it's caused by the parallel query execution I added to facets at some point. http://127.0.0.1:8045/airtable_refs/airtable_refs - no error http://127.0.0.1:8045/airtable_refs/airtable_refs?_facet=table_name#facet-table_name - hangs the server Crucial line in the traceback:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Server hang on parallel execution of queries to named in-memory databases 1901416155 | |
1724049538 | https://github.com/simonw/datasette/issues/2189#issuecomment-1724049538 | https://api.github.com/repos/simonw/datasette/issues/2189 | IC_kwDOBm6k_c5mwuiC | simonw 9599 | 2023-09-18T17:26:44Z | 2023-09-18T17:26:44Z | OWNER | Just managed to get this exception trace:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Server hang on parallel execution of queries to named in-memory databases 1901416155 | |
1724048314 | https://github.com/simonw/datasette/issues/2189#issuecomment-1724048314 | https://api.github.com/repos/simonw/datasette/issues/2189 | IC_kwDOBm6k_c5mwuO6 | simonw 9599 | 2023-09-18T17:25:55Z | 2023-09-18T17:25:55Z | OWNER | The good news is that this bug is currently unlikely to affect most users since named in-memory databases (created using |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Server hang on parallel execution of queries to named in-memory databases 1901416155 | |
1724045748 | https://github.com/simonw/datasette/issues/2189#issuecomment-1724045748 | https://api.github.com/repos/simonw/datasette/issues/2189 | IC_kwDOBm6k_c5mwtm0 | simonw 9599 | 2023-09-18T17:24:07Z | 2023-09-18T17:24:07Z | OWNER | I need reliable steps to reproduce, then I can bisect and figure out which exact version of Datasette introduced the problem. I have a hunch that it relates to changes made to the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Server hang on parallel execution of queries to named in-memory databases 1901416155 | |
1722662413 | https://github.com/simonw/datasette/issues/2188#issuecomment-1722662413 | https://api.github.com/repos/simonw/datasette/issues/2188 | IC_kwDOBm6k_c5mrb4N | simonw 9599 | 2023-09-18T02:01:34Z | 2023-09-18T02:01:34Z | OWNER | I'm not interested in these in Datasette core itself, but I think they have a ton of potential for plugins. I wonder what the best way to handle that would be? Right now it's possible to write a plugin that adds extra routes, so someone could build a If this could return JSON, they could add JavaScript to the Something that could make that more ergonomic might be the plugin hook that allows plugins to add extra HTML to different core database pages - e.g. adding a "Query this database using PRQL" button or link or even a full form at the top of that database page. That's this issue here:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin Hooks for "compile to SQL" languages 1900026059 | |
1722323967 | https://github.com/simonw/datasette/issues/2057#issuecomment-1722323967 | https://api.github.com/repos/simonw/datasette/issues/2057 | IC_kwDOBm6k_c5mqJP_ | simonw 9599 | 2023-09-16T21:54:33Z | 2023-09-16T21:54:33Z | OWNER | Just found this migration guide: https://importlib-metadata.readthedocs.io/en/latest/migration.html |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DeprecationWarning: pkg_resources is deprecated as an API 1662951875 | |
1722266942 | https://github.com/simonw/datasette/issues/2057#issuecomment-1722266942 | https://api.github.com/repos/simonw/datasette/issues/2057 | IC_kwDOBm6k_c5mp7U- | simonw 9599 | 2023-09-16T16:38:27Z | 2023-09-16T16:38:27Z | OWNER | The
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DeprecationWarning: pkg_resources is deprecated as an API 1662951875 | |
1722266513 | https://github.com/simonw/datasette/issues/2057#issuecomment-1722266513 | https://api.github.com/repos/simonw/datasette/issues/2057 | IC_kwDOBm6k_c5mp7OR | simonw 9599 | 2023-09-16T16:36:09Z | 2023-09-16T16:36:09Z | OWNER | Now I need to switch out |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DeprecationWarning: pkg_resources is deprecated as an API 1662951875 | |
1722265848 | https://github.com/simonw/datasette/issues/2057#issuecomment-1722265848 | https://api.github.com/repos/simonw/datasette/issues/2057 | IC_kwDOBm6k_c5mp7D4 | simonw 9599 | 2023-09-16T16:32:42Z | 2023-09-16T16:32:42Z | OWNER | Here's the exception it uses: ```pycon
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DeprecationWarning: pkg_resources is deprecated as an API 1662951875 | |
1722258980 | https://github.com/simonw/datasette/issues/2057#issuecomment-1722258980 | https://api.github.com/repos/simonw/datasette/issues/2057 | IC_kwDOBm6k_c5mp5Yk | simonw 9599 | 2023-09-16T15:56:45Z | 2023-09-16T15:56:45Z | OWNER | Weird, I still can't get the warning to show even with this: ```python @pytest.mark.asyncio async def test_plugin_is_installed(): datasette = Datasette(memory=True)
``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DeprecationWarning: pkg_resources is deprecated as an API 1662951875 | |
1722257328 | https://github.com/simonw/datasette/issues/2057#issuecomment-1722257328 | https://api.github.com/repos/simonw/datasette/issues/2057 | IC_kwDOBm6k_c5mp4-w | simonw 9599 | 2023-09-16T15:47:32Z | 2023-09-16T15:47:32Z | OWNER | Frustrating that this warning doesn't show up in the Datasette test suite itself. It shows up in plugin test suites that run this test:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DeprecationWarning: pkg_resources is deprecated as an API 1662951875 | |
1721742055 | https://github.com/simonw/datasette/issues/2186#issuecomment-1721742055 | https://api.github.com/repos/simonw/datasette/issues/2186 | IC_kwDOBm6k_c5mn7Ln | simonw 9599 | 2023-09-15T19:27:59Z | 2023-09-15T19:27:59Z | OWNER | This feels like it might be quite a nice pattern generally - providing optional arguments to plugins and views that can be |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for register_output_renderer hooks to access full count 1898927976 | |
1721740872 | https://github.com/simonw/datasette/issues/2186#issuecomment-1721740872 | https://api.github.com/repos/simonw/datasette/issues/2186 | IC_kwDOBm6k_c5mn65I | simonw 9599 | 2023-09-15T19:26:51Z | 2023-09-15T19:27:19Z | OWNER | Here's where it's called at the moment: https://github.com/simonw/datasette/blob/16f0b6d8222d06682a31b904d0a402c391ae1c1c/datasette/views/base.py#L297-L313 And the docs: https://github.com/simonw/datasette/blob/1.0a6/docs/plugin_hooks.rst#register-output-renderer-datasette I'm tempted to add a
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for register_output_renderer hooks to access full count 1898927976 | |
1718316733 | https://github.com/simonw/datasette/pull/2183#issuecomment-1718316733 | https://api.github.com/repos/simonw/datasette/issues/2183 | IC_kwDOBm6k_c5ma269 | simonw 9599 | 2023-09-13T21:05:36Z | 2023-09-13T21:05:36Z | OWNER | I'm going to land this and make any further documentation tweaks on |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`datasette.yaml` plugin support 1891212159 | |
1714920708 | https://github.com/simonw/sqlite-utils/issues/594#issuecomment-1714920708 | https://api.github.com/repos/simonw/sqlite-utils/issues/594 | IC_kwDOCGYnMM5mN50E | simonw 9599 | 2023-09-12T03:51:13Z | 2023-09-12T03:51:13Z | OWNER | Changing this without breaking backwards compatibility (and forcing a 4.0 release) will be tricky, because I could swap it out for a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Represent compound foreign keys in table.foreign_keys output 1891614971 | |
1714919806 | https://github.com/simonw/sqlite-utils/issues/594#issuecomment-1714919806 | https://api.github.com/repos/simonw/sqlite-utils/issues/594 | IC_kwDOCGYnMM5mN5l- | simonw 9599 | 2023-09-12T03:49:41Z | 2023-09-12T03:49:41Z | OWNER | Digging in a bit more: ```pycon
Right now I ignore those columns entirely: https://github.com/simonw/sqlite-utils/blob/622c3a5a7dd53a09c029e2af40c2643fe7579340/sqlite_utils/db.py#L1523-L1540 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Represent compound foreign keys in table.foreign_keys output 1891614971 | |
1714699724 | https://github.com/simonw/datasette/pull/2183#issuecomment-1714699724 | https://api.github.com/repos/simonw/datasette/issues/2183 | IC_kwDOBm6k_c5mND3M | simonw 9599 | 2023-09-11T23:01:36Z | 2023-09-11T23:02:30Z | OWNER | On thinking about this further, I'm fine releasing it as another alpha provided it causes Datasette to error loudly with an explanatory message if you attempt to load Something like this:
For added usability points, let's have it suggest |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`datasette.yaml` plugin support 1891212159 | |
1712897194 | https://github.com/simonw/datasette/issues/2168#issuecomment-1712897194 | https://api.github.com/repos/simonw/datasette/issues/2168 | IC_kwDOBm6k_c5mGLyq | simonw 9599 | 2023-09-10T17:54:07Z | 2023-09-10T17:54:07Z | OWNER | This looks relevant: https://pluggy.readthedocs.io/en/stable/#wrappers
This could be the perfect mechanism for implementing this hook, although I still need to figure out how it interacts with streaming. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Consider a request/response wrapping hook slightly higher level than asgi_wrapper() 1876353656 | |
1712895580 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1712895580 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5mGLZc | simonw 9599 | 2023-09-10T17:46:41Z | 2023-09-10T17:46:41Z | OWNER | In working on this I learned that https://www.sqlite.org/lang_vacuum.html#how_vacuum_works
So this fix wasn't as valuable as I thought. I need to move away from ever assuming that a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1712895084 | https://github.com/simonw/datasette/issues/2180#issuecomment-1712895084 | https://api.github.com/repos/simonw/datasette/issues/2180 | IC_kwDOBm6k_c5mGLRs | simonw 9599 | 2023-09-10T17:44:14Z | 2023-09-10T17:44:14Z | OWNER | Used by |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook: `actors_from_ids()` 1886791100 | |
1711057080 | https://github.com/simonw/datasette/issues/2180#issuecomment-1711057080 | https://api.github.com/repos/simonw/datasette/issues/2180 | IC_kwDOBm6k_c5l_Ki4 | simonw 9599 | 2023-09-08T04:28:03Z | 2023-09-08T04:28:03Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook: `actors_from_ids()` 1886791100 | ||
1711054840 | https://github.com/simonw/datasette/pull/2181#issuecomment-1711054840 | https://api.github.com/repos/simonw/datasette/issues/2181 | IC_kwDOBm6k_c5l_J_4 | simonw 9599 | 2023-09-08T04:23:47Z | 2023-09-08T04:23:47Z | OWNER | I've implemented this hook once now in: - https://github.com/datasette/datasette-remote-actors And built and tested a debug tool for it in: - https://github.com/datasette/datasette-debug-actors-from-ids I'm now confident in the design of this plugin hook, I'm going to land it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
actors_from_ids plugin hook and datasette.actors_from_ids() method 1886812002 | |
1711054624 | https://github.com/simonw/datasette/issues/2180#issuecomment-1711054624 | https://api.github.com/repos/simonw/datasette/issues/2180 | IC_kwDOBm6k_c5l_J8g | simonw 9599 | 2023-09-08T04:23:23Z | 2023-09-08T04:23:23Z | OWNER | I've implemented this hook once now in: - https://github.com/datasette/datasette-remote-actors And built and tested a debug tool for it in: - https://github.com/datasette/datasette-debug-actors-from-ids I'm now confident in the design of this plugin hook, I'm going to land it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook: `actors_from_ids()` 1886791100 | |
1711028355 | https://github.com/simonw/datasette/issues/2180#issuecomment-1711028355 | https://api.github.com/repos/simonw/datasette/issues/2180 | IC_kwDOBm6k_c5l_DiD | simonw 9599 | 2023-09-08T03:36:02Z | 2023-09-08T03:36:02Z | OWNER | I shipped the first version of When I land this plugin in a Datasette release I need to update that repo to depend on the new alpha. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook: `actors_from_ids()` 1886791100 | |
1710969448 | https://github.com/simonw/datasette/pull/2181#issuecomment-1710969448 | https://api.github.com/repos/simonw/datasette/issues/2181 | IC_kwDOBm6k_c5l-1Jo | simonw 9599 | 2023-09-08T01:53:27Z | 2023-09-08T01:53:27Z | OWNER | Documentation preview: - https://datasette--2181.org.readthedocs.build/en/2181/internals.html#await-actors-from-ids-actor-ids - https://datasette--2181.org.readthedocs.build/en/2181/plugin_hooks.html#plugin-hook-actors-from-ids |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
actors_from_ids plugin hook and datasette.actors_from_ids() method 1886812002 | |
1710969339 | https://github.com/simonw/datasette/issues/2180#issuecomment-1710969339 | https://api.github.com/repos/simonw/datasette/issues/2180 | IC_kwDOBm6k_c5l-1H7 | simonw 9599 | 2023-09-08T01:53:16Z | 2023-09-08T01:53:16Z | OWNER | Documentation preview: - https://datasette--2181.org.readthedocs.build/en/2181/internals.html#await-actors-from-ids-actor-ids - https://datasette--2181.org.readthedocs.build/en/2181/plugin_hooks.html#plugin-hook-actors-from-ids |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook: `actors_from_ids()` 1886791100 | |
1710947637 | https://github.com/simonw/datasette/issues/2180#issuecomment-1710947637 | https://api.github.com/repos/simonw/datasette/issues/2180 | IC_kwDOBm6k_c5l-v01 | simonw 9599 | 2023-09-08T01:17:28Z | 2023-09-08T01:17:28Z | OWNER | I think this is both a plugin hook and a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook: `actors_from_ids()` 1886791100 | |
1710935270 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1710935270 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5l-szm | simonw 9599 | 2023-09-08T00:55:30Z | 2023-09-08T00:55:30Z | OWNER | Yes! That recreated the bug: ```
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1710934448 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1710934448 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5l-smw | simonw 9599 | 2023-09-08T00:54:03Z | 2023-09-08T00:54:03Z | OWNER | Oh! Maybe the row ID preservation here is a coincidence because the tables are created from scratch and count 1, 2, 3. If I delete a row from the table and then insert some more - breaking the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1710933716 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1710933716 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5l-sbU | simonw 9599 | 2023-09-08T00:52:42Z | 2023-09-08T00:52:42Z | OWNER | I just noticed that the table where I encountered this bug wasn't actually a The reason the But I tried this test and it passed, too:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1710931605 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1710931605 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5l-r6V | simonw 9599 | 2023-09-08T00:49:02Z | 2023-09-08T00:49:02Z | OWNER | I tried bumping that up to 10,000 rows instead of just 3 but the test still passed. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1710930934 | https://github.com/simonw/sqlite-utils/issues/592#issuecomment-1710930934 | https://api.github.com/repos/simonw/sqlite-utils/issues/592 | IC_kwDOCGYnMM5l-rv2 | simonw 9599 | 2023-09-08T00:47:57Z | 2023-09-08T00:47:57Z | OWNER | That's odd, I wrote a test for this just now and it passes already:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.transform()` should preserve `rowid` values 1886771493 | |
1710879239 | https://github.com/simonw/datasette/issues/2178#issuecomment-1710879239 | https://api.github.com/repos/simonw/datasette/issues/2178 | IC_kwDOBm6k_c5l-fIH | simonw 9599 | 2023-09-07T23:20:32Z | 2023-09-07T23:20:32Z | OWNER | To test that locally, use this YAML instead:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Don't show foreign key links to tables the user cannot access 1886350562 | |
1710878391 | https://github.com/simonw/datasette/issues/2178#issuecomment-1710878391 | https://api.github.com/repos/simonw/datasette/issues/2178 | IC_kwDOBm6k_c5l-e63 | simonw 9599 | 2023-09-07T23:19:05Z | 2023-09-07T23:19:05Z | OWNER | This fix didn't work on Datasette Cloud. I used Only checking |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Don't show foreign key links to tables the user cannot access 1886350562 | |
1710871095 | https://github.com/simonw/datasette/issues/2178#issuecomment-1710871095 | https://api.github.com/repos/simonw/datasette/issues/2178 | IC_kwDOBm6k_c5l-dI3 | simonw 9599 | 2023-09-07T23:07:16Z | 2023-09-07T23:07:16Z | OWNER | I ran this:
Against this YAML:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Don't show foreign key links to tables the user cannot access 1886350562 | |
1710567329 | https://github.com/simonw/datasette/issues/2178#issuecomment-1710567329 | https://api.github.com/repos/simonw/datasette/issues/2178 | IC_kwDOBm6k_c5l9S-h | simonw 9599 | 2023-09-07T17:59:59Z | 2023-09-07T17:59:59Z | OWNER | Should I put the permission check in that undocumented |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Don't show foreign key links to tables the user cannot access 1886350562 | |
1710565268 | https://github.com/simonw/datasette/issues/2178#issuecomment-1710565268 | https://api.github.com/repos/simonw/datasette/issues/2178 | IC_kwDOBm6k_c5l9SeU | simonw 9599 | 2023-09-07T17:58:04Z | 2023-09-07T17:59:06Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Don't show foreign key links to tables the user cannot access 1886350562 | ||
1708777964 | https://github.com/simonw/datasette/issues/2177#issuecomment-1708777964 | https://api.github.com/repos/simonw/datasette/issues/2177 | IC_kwDOBm6k_c5l2eHs | simonw 9599 | 2023-09-06T17:04:30Z | 2023-09-06T17:04:30Z | OWNER | Here's the thinking: setting the You might run more than one instance at once (I often have 4 or 5 going). This would currently break, because they would over-write each other's catalog tables: The breaking wouldn't be obvious because the catalog tables aren't used by any features yet, but it's still bad. This convinced us that actually we should move those I think we move them to an in-memory So each instance of Datasette gets its own truly private An interesting thing that came up about a shared |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Move schema tables from _internal to _catalog 1884408624 | |
1708728926 | https://github.com/simonw/datasette/pull/2174#issuecomment-1708728926 | https://api.github.com/repos/simonw/datasette/issues/2174 | IC_kwDOBm6k_c5l2SJe | simonw 9599 | 2023-09-06T16:36:56Z | 2023-09-06T16:36:56Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use $DATASETTE_INTERNAL in absence of --internal 1884330740 | |
1708727204 | https://github.com/simonw/datasette/pull/2174#issuecomment-1708727204 | https://api.github.com/repos/simonw/datasette/issues/2174 | IC_kwDOBm6k_c5l2Ruk | simonw 9599 | 2023-09-06T16:35:39Z | 2023-09-07T23:45:42Z | OWNER | We can use this here: https://click.palletsprojects.com/en/8.1.x/options/#values-from-environment-variables
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use $DATASETTE_INTERNAL in absence of --internal 1884330740 | |
1708695907 | https://github.com/simonw/sqlite-utils/pull/591#issuecomment-1708695907 | https://api.github.com/repos/simonw/sqlite-utils/issues/591 | IC_kwDOCGYnMM5l2KFj | simonw 9599 | 2023-09-06T16:15:59Z | 2023-09-06T16:19:14Z | OWNER | The test failure was while installing
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test against Python 3.12 preview 1884335789 | |
1707570378 | https://github.com/simonw/datasette/pull/2173#issuecomment-1707570378 | https://api.github.com/repos/simonw/datasette/issues/2173 | IC_kwDOBm6k_c5lx3TK | simonw 9599 | 2023-09-06T02:40:31Z | 2023-09-06T02:40:31Z | OWNER | Surprising error:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
click-default-group>=1.2.3 1883055640 | |
1707565495 | https://github.com/simonw/datasette/pull/2173#issuecomment-1707565495 | https://api.github.com/repos/simonw/datasette/issues/2173 | IC_kwDOBm6k_c5lx2G3 | simonw 9599 | 2023-09-06T02:33:56Z | 2023-09-06T02:33:56Z | OWNER | Running tests to see if Pyodide works - that was the reason I switched to my |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
click-default-group>=1.2.3 1883055640 | |
1704387161 | https://github.com/simonw/sqlite-utils/issues/590#issuecomment-1704387161 | https://api.github.com/repos/simonw/sqlite-utils/issues/590 | IC_kwDOCGYnMM5lluJZ | simonw 9599 | 2023-09-03T19:50:36Z | 2023-09-03T19:50:36Z | OWNER | Maybe just populate |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to tell if a Database is an in-memory one 1879214365 | |
1704384393 | https://github.com/simonw/sqlite-utils/issues/589#issuecomment-1704384393 | https://api.github.com/repos/simonw/sqlite-utils/issues/589 | IC_kwDOCGYnMM5llteJ | simonw 9599 | 2023-09-03T19:36:34Z | 2023-09-03T19:36:34Z | OWNER | Here's a prototype: https://github.com/simonw/sqlite-utils/commit/62f673835c4a66f87cf6f949eaff43c8b014619b Still needs tests and documentation (and some more thought to make sure it's doing the right thing). |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for de-registering registered SQL functions 1879209560 | |
1704384111 | https://github.com/simonw/sqlite-utils/issues/589#issuecomment-1704384111 | https://api.github.com/repos/simonw/sqlite-utils/issues/589 | IC_kwDOCGYnMM5lltZv | simonw 9599 | 2023-09-03T19:35:03Z | 2023-09-03T19:35:03Z | OWNER | Normally in Python/ You can't do that with |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for de-registering registered SQL functions 1879209560 | |
1704383901 | https://github.com/simonw/sqlite-utils/issues/589#issuecomment-1704383901 | https://api.github.com/repos/simonw/sqlite-utils/issues/589 | IC_kwDOCGYnMM5lltWd | simonw 9599 | 2023-09-03T19:34:05Z | 2023-09-03T19:34:05Z | OWNER | For that particular case I realized I'd quite like to have a mechanism for applying functions for a block of code and then de-registering them at the end - a context manager. I played with this idea a bit:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for de-registering registered SQL functions 1879209560 | |
1701894468 | https://github.com/simonw/datasette/issues/1765#issuecomment-1701894468 | https://api.github.com/repos/simonw/datasette/issues/1765 | IC_kwDOBm6k_c5lcNlE | simonw 9599 | 2023-08-31T23:08:24Z | 2023-08-31T23:08:24Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document plugins providing new plugin hook- 1292370469 | ||
1701831013 | https://github.com/simonw/datasette/issues/2168#issuecomment-1701831013 | https://api.github.com/repos/simonw/datasette/issues/2168 | IC_kwDOBm6k_c5lb-Fl | simonw 9599 | 2023-08-31T21:51:12Z | 2023-08-31T21:52:15Z | OWNER | Need to make sure the design of this takes streaming responses into account. Those could be pretty tricky here. I nice thing about |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Consider a request/response wrapping hook slightly higher level than asgi_wrapper() 1876353656 | |
1701830241 | https://github.com/simonw/datasette/issues/2168#issuecomment-1701830241 | https://api.github.com/repos/simonw/datasette/issues/2168 | IC_kwDOBm6k_c5lb95h | simonw 9599 | 2023-08-31T21:50:18Z | 2023-08-31T21:50:18Z | OWNER | The hook could be called ```python @hookspec def register_middleware(datasette): """Register middleware: returns a list of async def middleware functions""" ``` |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Consider a request/response wrapping hook slightly higher level than asgi_wrapper() 1876353656 | |
1701828197 | https://github.com/simonw/datasette/issues/2168#issuecomment-1701828197 | https://api.github.com/repos/simonw/datasette/issues/2168 | IC_kwDOBm6k_c5lb9Zl | simonw 9599 | 2023-08-31T21:48:00Z | 2023-08-31T21:48:57Z | OWNER | A pattern like this could be interesting:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Consider a request/response wrapping hook slightly higher level than asgi_wrapper() 1876353656 | |
1701826521 | https://github.com/simonw/datasette/issues/2168#issuecomment-1701826521 | https://api.github.com/repos/simonw/datasette/issues/2168 | IC_kwDOBm6k_c5lb8_Z | simonw 9599 | 2023-08-31T21:46:13Z | 2023-08-31T21:46:13Z | OWNER | This could even be a pair of hooks - Or could take a leaf from Django, which redesigned middleware to use this pattern instead:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Consider a request/response wrapping hook slightly higher level than asgi_wrapper() 1876353656 | |
1701823609 | https://github.com/simonw/datasette/issues/2168#issuecomment-1701823609 | https://api.github.com/repos/simonw/datasette/issues/2168 | IC_kwDOBm6k_c5lb8R5 | simonw 9599 | 2023-08-31T21:43:06Z | 2023-08-31T21:44:13Z | OWNER | Not sure what to call this. Maybe Or perhaps it's simpler than that, something like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Consider a request/response wrapping hook slightly higher level than asgi_wrapper() 1876353656 | |
1699926384 | https://github.com/simonw/datasette/issues/1092#issuecomment-1699926384 | https://api.github.com/repos/simonw/datasette/issues/1092 | IC_kwDOBm6k_c5lUtFw | simonw 9599 | 2023-08-30T22:17:42Z | 2023-08-30T22:17:42Z | OWNER | This is implemented now: - https://docs.datasette.io/en/stable/internals.html#await-ensure-permissions-actor-permissions |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make cascading permission checks available to plugins 742041667 | |
1699925224 | https://github.com/simonw/datasette/issues/1190#issuecomment-1699925224 | https://api.github.com/repos/simonw/datasette/issues/1190 | IC_kwDOBm6k_c5lUszo | simonw 9599 | 2023-08-30T22:16:38Z | 2023-08-30T22:16:38Z | OWNER | This is going to happen in this tool instead: - https://github.com/simonw/dclient |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`datasette publish upload` mechanism for uploading databases to an existing Datasette instance 787098146 | |
1699910555 | https://github.com/simonw/datasette/pull/2165#issuecomment-1699910555 | https://api.github.com/repos/simonw/datasette/issues/2165 | IC_kwDOBm6k_c5lUpOb | simonw 9599 | 2023-08-30T22:05:14Z | 2023-08-30T22:05:14Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins 1874327336 | ||
1699884314 | https://github.com/simonw/datasette/pull/2165#issuecomment-1699884314 | https://api.github.com/repos/simonw/datasette/issues/2165 | IC_kwDOBm6k_c5lUi0a | simonw 9599 | 2023-08-30T21:38:29Z | 2023-08-30T21:39:51Z | OWNER | Here's the reason for that name disparity: Note how the And that's looking things up in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins 1874327336 | |
1699811810 | https://github.com/simonw/datasette/pull/2165#issuecomment-1699811810 | https://api.github.com/repos/simonw/datasette/issues/2165 | IC_kwDOBm6k_c5lURHi | simonw 9599 | 2023-08-30T20:42:41Z | 2023-08-30T20:42:41Z | OWNER | The
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins 1874327336 | |
1699809688 | https://github.com/simonw/datasette/pull/2165#issuecomment-1699809688 | https://api.github.com/repos/simonw/datasette/issues/2165 | IC_kwDOBm6k_c5lUQmY | simonw 9599 | 2023-08-30T20:41:06Z | 2023-08-30T20:41:06Z | OWNER | Slight weirdness: I noticed that the output from the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins 1874327336 | |
1699802028 | https://github.com/simonw/datasette/pull/2165#issuecomment-1699802028 | https://api.github.com/repos/simonw/datasette/issues/2165 | IC_kwDOBm6k_c5lUOus | simonw 9599 | 2023-08-30T20:35:02Z | 2023-08-30T20:35:02Z | OWNER | Testing this is going to be a bit of a pain. I think I'll add a whole separate test block to CI which installs a couple of plugins and then exercises this feature using I'll use |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
DATASETTE_LOAD_PLUGINS environment variable for loading specific plugins 1874327336 | |
1699728102 | https://github.com/simonw/datasette/issues/2164#issuecomment-1699728102 | https://api.github.com/repos/simonw/datasette/issues/2164 | IC_kwDOBm6k_c5lT8rm | simonw 9599 | 2023-08-30T19:35:32Z | 2023-08-30T19:35:47Z | OWNER | Figured this out so far with the help of GPT-4: https://chat.openai.com/share/0e785865-621b-4fb3-ba05-7449e57c8496 Now this works:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to only load a specific list of plugins 1874255116 | |
1697818917 | https://github.com/simonw/datasette/issues/2163#issuecomment-1697818917 | https://api.github.com/repos/simonw/datasette/issues/2163 | IC_kwDOBm6k_c5lMqkl | simonw 9599 | 2023-08-29T16:56:20Z | 2023-08-29T16:56:20Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename core_X to catalog_X in the internals 1872043170 | ||
1697725150 | https://github.com/simonw/datasette/pull/2154#issuecomment-1697725150 | https://api.github.com/repos/simonw/datasette/issues/2154 | IC_kwDOBm6k_c5lMTre | simonw 9599 | 2023-08-29T15:54:12Z | 2023-08-29T15:54:12Z | OWNER | In that last commit I also upgraded Last step is to refactor the code to use that new property. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cascade for restricted token view-table/view-database/view-instance operations 1865281760 | |
1697612168 | https://github.com/simonw/datasette/pull/2154#issuecomment-1697612168 | https://api.github.com/repos/simonw/datasette/issues/2154 | IC_kwDOBm6k_c5lL4GI | simonw 9599 | 2023-08-29T14:57:54Z | 2023-08-29T14:57:54Z | OWNER | The code to refactor is this: https://github.com/simonw/datasette/blob/d64a9896f743f87b673d58859a0ec16685594e79/datasette/default_permissions.py#L181-L280 I'm going to turn that into a more general |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cascade for restricted token view-table/view-database/view-instance operations 1865281760 | |
1696710911 | https://github.com/simonw/datasette/pull/2162#issuecomment-1696710911 | https://api.github.com/repos/simonw/datasette/issues/2162 | IC_kwDOBm6k_c5lIcD_ | simonw 9599 | 2023-08-29T03:23:44Z | 2023-08-29T03:23:44Z | OWNER | I'm going to merge this so we can see how it feels. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add new `--internal internal.db` option, deprecate legacy `_internal` database 1870672704 | |
1696709110 | https://github.com/simonw/datasette/pull/2162#issuecomment-1696709110 | https://api.github.com/repos/simonw/datasette/issues/2162 | IC_kwDOBm6k_c5lIbn2 | simonw 9599 | 2023-08-29T03:20:40Z | 2023-08-29T03:22:47Z | OWNER |
I'm completely happy for the I don't think it causes any harm, and it could even be quite useful to have them visible on disk - other applications could read the Having those tables stick around in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add new `--internal internal.db` option, deprecate legacy `_internal` database 1870672704 | |
1696707458 | https://github.com/simonw/datasette/pull/2162#issuecomment-1696707458 | https://api.github.com/repos/simonw/datasette/issues/2162 | IC_kwDOBm6k_c5lIbOC | simonw 9599 | 2023-08-29T03:17:54Z | 2023-08-29T03:17:54Z | OWNER | Documentation preview: https://datasette--2162.org.readthedocs.build/en/2162/internals.html#datasette-s-internal-database |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add new `--internal internal.db` option, deprecate legacy `_internal` database 1870672704 | |
1696644066 | https://github.com/simonw/datasette/pull/2154#issuecomment-1696644066 | https://api.github.com/repos/simonw/datasette/issues/2154 | IC_kwDOBm6k_c5lILvi | simonw 9599 | 2023-08-29T01:37:47Z | 2023-08-29T03:00:25Z | OWNER | Code for this might be cleaner with a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cascade for restricted token view-table/view-database/view-instance operations 1865281760 | |
1696642671 | https://github.com/simonw/datasette/pull/2154#issuecomment-1696642671 | https://api.github.com/repos/simonw/datasette/issues/2154 | IC_kwDOBm6k_c5lILZv | simonw 9599 | 2023-08-29T01:35:37Z | 2023-08-29T01:35:37Z | OWNER | Reminder that I also need to confirm that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cascade for restricted token view-table/view-database/view-instance operations 1865281760 | |
1696618784 | https://github.com/simonw/datasette/pull/2154#issuecomment-1696618784 | https://api.github.com/repos/simonw/datasette/issues/2154 | IC_kwDOBm6k_c5lIFkg | simonw 9599 | 2023-08-29T00:58:34Z | 2023-08-29T00:58:34Z | OWNER | Should this have |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cascade for restricted token view-table/view-database/view-instance operations 1865281760 | |
1696595326 | https://github.com/simonw/datasette/pull/2160#issuecomment-1696595326 | https://api.github.com/repos/simonw/datasette/issues/2160 | IC_kwDOBm6k_c5lH_1- | simonw 9599 | 2023-08-29T00:20:08Z | 2023-08-29T00:20:08Z | OWNER | Cog failed! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump sphinx, furo, blacken-docs dependencies 1869807874 | |
1696592763 | https://github.com/simonw/datasette/pull/2160#issuecomment-1696592763 | https://api.github.com/repos/simonw/datasette/issues/2160 | IC_kwDOBm6k_c5lH_N7 | simonw 9599 | 2023-08-29T00:16:38Z | 2023-08-29T00:16:38Z | OWNER | Since this bumps Sphinx I'm manually reviewing the ReadTheDocs preview a bit, looks good to me: https://datasette--2160.org.readthedocs.build/en/2160/ |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump sphinx, furo, blacken-docs dependencies 1869807874 | |
1696591943 | https://github.com/simonw/datasette/pull/2148#issuecomment-1696591943 | https://api.github.com/repos/simonw/datasette/issues/2148 | IC_kwDOBm6k_c5lH_BH | simonw 9599 | 2023-08-29T00:15:27Z | 2023-08-29T00:15:27Z | OWNER | Now solving this here: - #2160 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump sphinx, furo, blacken-docs dependencies 1859415334 | |
1696586767 | https://github.com/simonw/datasette/pull/2160#issuecomment-1696586767 | https://api.github.com/repos/simonw/datasette/issues/2160 | IC_kwDOBm6k_c5lH9wP | simonw 9599 | 2023-08-29T00:08:26Z | 2023-08-29T00:08:35Z | OWNER | https://github.com/simonw/datasette/issues/2148#issuecomment-1689177556
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump sphinx, furo, blacken-docs dependencies 1869807874 | |
1696586213 | https://github.com/simonw/datasette/pull/2160#issuecomment-1696586213 | https://api.github.com/repos/simonw/datasette/issues/2160 | IC_kwDOBm6k_c5lH9nl | simonw 9599 | 2023-08-29T00:07:46Z | 2023-08-29T00:07:46Z | OWNER | I figured out why this was failing in: - https://github.com/simonw/datasette/pull/2148 It's because Sphinx dropped support for Python 3.8. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Bump sphinx, furo, blacken-docs dependencies 1869807874 | |
1696378239 | https://github.com/simonw/datasette/issues/2102#issuecomment-1696378239 | https://api.github.com/repos/simonw/datasette/issues/2102 | IC_kwDOBm6k_c5lHK1_ | simonw 9599 | 2023-08-28T20:38:01Z | 2023-08-28T20:38:01Z | OWNER | I want to test "for this set of restrictions, does a GET/POST to this path return 200 or 403"? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
API tokens with view-table but not view-database/view-instance cannot access the table 1805076818 | |
1696361304 | https://github.com/simonw/datasette/issues/2102#issuecomment-1696361304 | https://api.github.com/repos/simonw/datasette/issues/2102 | IC_kwDOBm6k_c5lHGtY | simonw 9599 | 2023-08-28T20:23:47Z | 2023-08-28T20:24:35Z | OWNER | Here's an existing relevant test: It's not quite right for this new set of tests though, since they need to be exercising actual endpoints ( |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
API tokens with view-table but not view-database/view-instance cannot access the table 1805076818 | |
1696355634 | https://github.com/simonw/datasette/issues/2153#issuecomment-1696355634 | https://api.github.com/repos/simonw/datasette/issues/2153 | IC_kwDOBm6k_c5lHFUy | simonw 9599 | 2023-08-28T20:19:15Z | 2023-08-28T20:19:15Z | OWNER | Documentation: - https://docs.datasette.io/en/latest/cli-reference.html#datasette-get |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette --get --actor option 1865232341 | |
1696260446 | https://github.com/simonw/datasette/issues/2156#issuecomment-1696260446 | https://api.github.com/repos/simonw/datasette/issues/2156 | IC_kwDOBm6k_c5lGuFe | simonw 9599 | 2023-08-28T19:33:05Z | 2023-08-28T19:33:05Z | OWNER | Now a PR: - #2161 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette -s/--setting option for setting nested configuration options 1865649347 | |
1694823972 | https://github.com/simonw/sqlite-utils/issues/588#issuecomment-1694823972 | https://api.github.com/repos/simonw/sqlite-utils/issues/588 | IC_kwDOCGYnMM5lBPYk | simonw 9599 | 2023-08-28T00:41:54Z | 2023-08-28T00:41:54Z | OWNER | Tips on typing |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`table.get(column=value)` option for retrieving things not by their primary key 1868713944 | |
1692494455 | https://github.com/simonw/datasette/issues/950#issuecomment-1692494455 | https://api.github.com/repos/simonw/datasette/issues/950 | IC_kwDOBm6k_c5k4Wp3 | simonw 9599 | 2023-08-24T22:26:08Z | 2023-08-24T22:26:08Z | OWNER | Closing this issue in favour of this one: - #2157 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Private/secret databases: database files that are only visible to plugins 685806511 | |
1692465763 | https://github.com/simonw/datasette/issues/2157#issuecomment-1692465763 | https://api.github.com/repos/simonw/datasette/issues/2157 | IC_kwDOBm6k_c5k4Ppj | simonw 9599 | 2023-08-24T21:54:29Z | 2023-08-24T21:54:29Z | OWNER | But yes, I'm a big +1 on this whole plan. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proposal: Make the `_internal` database persistent, customizable, and hidden 1865869205 | |
1692465334 | https://github.com/simonw/datasette/issues/2157#issuecomment-1692465334 | https://api.github.com/repos/simonw/datasette/issues/2157 | IC_kwDOBm6k_c5k4Pi2 | simonw 9599 | 2023-08-24T21:54:09Z | 2023-08-24T21:54:09Z | OWNER | We discussed this in-person this morning and these notes reflect what we talked about perfectly. I've had so many bugs with plugins that I've written myself that have forgotten to special-case the Just one tiny disagreement: for Show me all rows in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Proposal: Make the `_internal` database persistent, customizable, and hidden 1865869205 | |
1692210044 | https://github.com/simonw/datasette/issues/2143#issuecomment-1692210044 | https://api.github.com/repos/simonw/datasette/issues/2143 | IC_kwDOBm6k_c5k3RN8 | simonw 9599 | 2023-08-24T18:28:27Z | 2023-08-24T18:28:27Z | OWNER | Just spotted this: https://github.com/simonw/datasette/blob/17ec309e14f9c2e90035ba33f2f38ecc5afba2fa/datasette/app.py#L328-L332 Looks to me like that second bit of code doesn't yet handle This code does though:
https://github.com/simonw/datasette/blob/d97e82df3c8a3f2e97038d7080167be9bb74a68d/datasette/utils/init.py#L980-L990 That So we should rename it to something better like |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
De-tangling Metadata before Datasette 1.0 1855885427 | |
1692206200 | https://github.com/simonw/datasette/issues/2156#issuecomment-1692206200 | https://api.github.com/repos/simonw/datasette/issues/2156 | IC_kwDOBm6k_c5k3QR4 | simonw 9599 | 2023-08-24T18:25:23Z | 2023-08-24T18:25:23Z | OWNER | Ran out of time for this, I'll look at the next step next week. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette -s/--setting option for setting nested configuration options 1865649347 | |
1692201647 | https://github.com/simonw/datasette/issues/2156#issuecomment-1692201647 | https://api.github.com/repos/simonw/datasette/issues/2156 | IC_kwDOBm6k_c5k3PKv | simonw 9599 | 2023-08-24T18:21:53Z | 2023-08-24T18:21:53Z | OWNER | Oops, that was meant to be a PR. It's just a utility function though so it's safe to land already. I'll do a PR for the actual integration of it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette -s/--setting option for setting nested configuration options 1865649347 | |
1692186522 | https://github.com/simonw/datasette/issues/2156#issuecomment-1692186522 | https://api.github.com/repos/simonw/datasette/issues/2156 | IC_kwDOBm6k_c5k3Lea | simonw 9599 | 2023-08-24T18:10:04Z | 2023-08-24T18:10:04Z | OWNER | I have an implementation in https://github.com/simonw/datasette/issues/2143#issuecomment-1690792514 too - I'm going to land that as a PR. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette -s/--setting option for setting nested configuration options 1865649347 | |
1692182910 | https://github.com/simonw/datasette/issues/2143#issuecomment-1692182910 | https://api.github.com/repos/simonw/datasette/issues/2143 | IC_kwDOBm6k_c5k3Kl- | simonw 9599 | 2023-08-24T18:06:57Z | 2023-08-24T18:08:17Z | OWNER | The other thing that could work is something like this:
I quite like this, because it could replace the really ugly |
{ "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
De-tangling Metadata before Datasette 1.0 1855885427 | |
1692180683 | https://github.com/simonw/datasette/issues/2143#issuecomment-1692180683 | https://api.github.com/repos/simonw/datasette/issues/2143 | IC_kwDOBm6k_c5k3KDL | simonw 9599 | 2023-08-24T18:05:17Z | 2023-08-24T18:05:17Z | OWNER | That's a really good call, thanks @rclement - environment variable configuration totally makes sense here. Need to figure out the right syntax for that. Something like this perhaps:
I checked and |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
De-tangling Metadata before Datasette 1.0 1855885427 | |
1691845306 | https://github.com/simonw/datasette/pull/2154#issuecomment-1691845306 | https://api.github.com/repos/simonw/datasette/issues/2154 | IC_kwDOBm6k_c5k14K6 | simonw 9599 | 2023-08-24T14:57:39Z | 2023-08-24T14:57:39Z | OWNER | Notes on manual testing so far - it looks like this might be working! - https://github.com/simonw/datasette/issues/2102#issuecomment-1691824713 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cascade for restricted token view-table/view-database/view-instance operations 1865281760 | |
1691842259 | https://github.com/simonw/datasette/issues/2102#issuecomment-1691842259 | https://api.github.com/repos/simonw/datasette/issues/2102 | IC_kwDOBm6k_c5k13bT | simonw 9599 | 2023-08-24T14:55:54Z | 2023-08-24T14:55:54Z | OWNER | So what's needed to finish this is:
- Tests that demonstrate that nothing is revealed that shouldn't be by tokens restricted in this way
- Similar tests for other permissions like |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
API tokens with view-table but not view-database/view-instance cannot access the table 1805076818 | |
1691824713 | https://github.com/simonw/datasette/issues/2102#issuecomment-1691824713 | https://api.github.com/repos/simonw/datasette/issues/2102 | IC_kwDOBm6k_c5k1zJJ | simonw 9599 | 2023-08-24T14:45:49Z | 2023-08-24T14:45:49Z | OWNER | I tested this out against a Datasette Cloud instance. I created a restricted token and tested it like this:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
API tokens with view-table but not view-database/view-instance cannot access the table 1805076818 | |
1691788400 | https://github.com/simonw/datasette/pull/2154#issuecomment-1691788400 | https://api.github.com/repos/simonw/datasette/issues/2154 | IC_kwDOBm6k_c5k1qRw | simonw 9599 | 2023-08-24T14:25:56Z | 2023-08-24T14:25:56Z | OWNER | Can be tested with:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Cascade for restricted token view-table/view-database/view-instance operations 1865281760 | |
1691779180 | https://github.com/simonw/datasette/issues/2153#issuecomment-1691779180 | https://api.github.com/repos/simonw/datasette/issues/2153 | IC_kwDOBm6k_c5k1oBs | simonw 9599 | 2023-08-24T14:21:03Z | 2023-08-24T14:21:03Z | OWNER |
Which is a good argument for moving this functionality to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette --get --actor option 1865232341 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issue_comments] ( [html_url] TEXT, [issue_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [user] INTEGER REFERENCES [users]([id]), [created_at] TEXT, [updated_at] TEXT, [author_association] TEXT, [body] TEXT, [reactions] TEXT, [issue] INTEGER REFERENCES [issues]([id]) , [performed_via_github_app] TEXT); CREATE INDEX [idx_issue_comments_issue] ON [issue_comments] ([issue]); CREATE INDEX [idx_issue_comments_user] ON [issue_comments] ([user]);
updated_at (date) >30 ✖