issue_comments
8,358 rows where author_association = "OWNER" sorted by body
This data as json, CSV (advanced)
Suggested facets: created_at (date)
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
- Server hang on parallel execution of queries to named in-memory databases 30
- 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
- DeprecationWarning: pkg_resources is deprecated as an API 25
- Support cross-database joins 24
- Redesign register_output_renderer callback 24
- "datasette insert" command and plugin hook 23
- …
reactions 16 ✖
- {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 8,096
- {"total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 147
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0} 36
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 30
- {"total_count": 2, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 13
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 1, "eyes": 0} 10
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 1, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 6
- {"total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 1} 5
- {"total_count": 3, "+1": 3, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 5
- {"total_count": 2, "+1": 1, "-1": 0, "laugh": 0, "hooray": 1, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 3
- {"total_count": 2, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0} 2
- {"total_count": 2, "+1": 0, "-1": 0, "laugh": 0, "hooray": 2, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 1
- {"total_count": 2, "+1": 0, "-1": 0, "laugh": 1, "hooray": 0, "confused": 0, "heart": 0, "rocket": 1, "eyes": 0} 1
- {"total_count": 2, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 1, "eyes": 0} 1
- {"total_count": 3, "+1": 0, "-1": 0, "laugh": 0, "hooray": 3, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} 1
- {"total_count": 5, "+1": 2, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 3, "eyes": 0} 1
user 1
- simonw 8,358
id | html_url | issue_url | node_id | user | created_at | updated_at | author_association | body ▼ | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
1759947021 | https://github.com/simonw/datasette/pull/2190#issuecomment-1759947021 | https://api.github.com/repos/simonw/datasette/issues/2190 | IC_kwDOBm6k_c5o5qkN | simonw 9599 | 2023-10-12T16:19:38Z | 2023-10-12T16:19:38Z | OWNER | This looks good and works well. The error from this currently looks like:
I think we should link directly to documentation that tells people how to perform this upgrade. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Raise an exception if a "plugins" block exists in metadata.json 1901483874 | |
697047591 | https://github.com/simonw/sqlite-utils/issues/170#issuecomment-697047591 | https://api.github.com/repos/simonw/sqlite-utils/issues/170 | MDEyOklzc3VlQ29tbWVudDY5NzA0NzU5MQ== | simonw 9599 | 2020-09-23T00:14:52Z | 2020-09-23T00:14:52Z | OWNER | @simonw @db.register_function decorator, closes #162 4824775 @simonw table.transform() method - closes #114 987dd12 @simonw Keyword only arguments for transform() f8e10df Also renamed columns= to types= Closes #165 Commits on Sep 22, 2020 @simonw Implemented sqlite-utils transform command, closes #164 752d261 @simonw Applied Black f29f682 @simonw table.extract() method, refs #42 f855379 @simonw Docstring for sqlite-utils transform c755f28 @simonw Added table.extract(rename=) option, refs #42 c3210f2 @simonw Applied Black 317071a @simonw New .rows_where(select=) argument 7178231 @simonw table.extract() now works with rowid tables, refs #42 2db6c5b @simonw sqlite-utils extract, closes #42 55cf928 @simonw Progress bar for "sqlite-utils extract", closes #169 5c4d58d @simonw Fixed PRAGMA foreign_keys handling for .transform, closes #167 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release notes for 2.20 706768798 | |
1499457291 | https://github.com/simonw/datasette/issues/2054#issuecomment-1499457291 | https://api.github.com/repos/simonw/datasette/issues/2054 | IC_kwDOBm6k_c5ZX-cL | simonw 9599 | 2023-04-06T18:26:45Z | 2023-04-06T18:26:45Z | OWNER | Here's It has methods for the Also adds CORS headers to anything if CORS mode is on: And adds the And has special code for setting the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make detailed notes on how table, query and row views work right now 1657861026 | |
769453074 | https://github.com/simonw/datasette/issues/1205#issuecomment-769453074 | https://api.github.com/repos/simonw/datasette/issues/1205 | MDEyOklzc3VlQ29tbWVudDc2OTQ1MzA3NA== | simonw 9599 | 2021-01-28T22:54:49Z | 2021-01-28T22:55:02Z | OWNER | I also checked that the following works:
Sure enough, it results in the following Datasette homepage - thanks to #509 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rename /:memory: to /_memory 793027837 | |
343690060 | https://github.com/simonw/datasette/issues/47#issuecomment-343690060 | https://api.github.com/repos/simonw/datasette/issues/47 | MDEyOklzc3VlQ29tbWVudDM0MzY5MDA2MA== | simonw 9599 | 2017-11-11T19:56:08Z | 2017-11-11T19:56:08Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Create neat example database 271831408 | |
508955449 | https://github.com/simonw/datasette/issues/543#issuecomment-508955449 | https://api.github.com/repos/simonw/datasette/issues/543 | MDEyOklzc3VlQ29tbWVudDUwODk1NTQ0OQ== | simonw 9599 | 2019-07-06T21:41:28Z | 2019-07-06T21:41:50Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
datasette publish option for setting plugin configuration secrets 464868844 | |
641538799 | https://github.com/simonw/datasette/issues/804#issuecomment-641538799 | https://api.github.com/repos/simonw/datasette/issues/804 | MDEyOklzc3VlQ29tbWVudDY0MTUzODc5OQ== | simonw 9599 | 2020-06-09T20:01:08Z | 2020-06-09T20:01:08Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
python tests/fixtures.py command has a bug 632673972 | |
338854988 | https://github.com/simonw/datasette/issues/23#issuecomment-338854988 | https://api.github.com/repos/simonw/datasette/issues/23 | MDEyOklzc3VlQ29tbWVudDMzODg1NDk4OA== | simonw 9599 | 2017-10-24T02:40:12Z | 2017-10-25T00:05:46Z | OWNER |
Note that if there's a column called "sort" you can still do sort__exact=blah |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support Django-style filters in querystring arguments 267788884 | |
877835171 | https://github.com/simonw/datasette/issues/511#issuecomment-877835171 | https://api.github.com/repos/simonw/datasette/issues/511 | MDEyOklzc3VlQ29tbWVudDg3NzgzNTE3MQ== | simonw 9599 | 2021-07-11T17:23:05Z | 2021-07-11T17:23:05Z | OWNER |
https://github.com/simonw/datasette/runs/3038188870?check_suite_focus=true Full copy of log here: https://gist.github.com/simonw/4b1fdd24496b989fca56bc757be345ad |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Get Datasette tests passing on Windows in GitHub Actions 456578474 | |
350507155 | https://github.com/simonw/datasette/issues/170#issuecomment-350507155 | https://api.github.com/repos/simonw/datasette/issues/170 | MDEyOklzc3VlQ29tbWVudDM1MDUwNzE1NQ== | simonw 9599 | 2017-12-09T21:35:30Z | 2017-12-09T21:35:30Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Custom template for named canned query 280745470 | |
1008338186 | https://github.com/simonw/sqlite-utils/issues/375#issuecomment-1008338186 | https://api.github.com/repos/simonw/sqlite-utils/issues/375 | IC_kwDOCGYnMM48GgUK | simonw 9599 | 2022-01-09T17:13:33Z | 2022-01-09T17:13:54Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite-utils bulk` command 1097251014 | |
343715915 | https://github.com/simonw/datasette/issues/25#issuecomment-343715915 | https://api.github.com/repos/simonw/datasette/issues/25 | MDEyOklzc3VlQ29tbWVudDM0MzcxNTkxNQ== | simonw 9599 | 2017-11-12T06:08:28Z | 2017-11-12T06:08:28Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Endpoint that returns SQL ready to be piped into DB 267857622 | |
642754589 | https://github.com/simonw/datasette/pull/809#issuecomment-642754589 | https://api.github.com/repos/simonw/datasette/issues/809 | MDEyOklzc3VlQ29tbWVudDY0Mjc1NDU4OQ== | simonw 9599 | 2020-06-11T15:45:25Z | 2020-06-11T15:45:25Z | OWNER |
https://datasette-publish-secret-j7hipcg4aq-uw.a.run.app/-/messages |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Publish secrets 632919570 | |
642750790 | https://github.com/simonw/datasette/pull/809#issuecomment-642750790 | https://api.github.com/repos/simonw/datasette/issues/809 | MDEyOklzc3VlQ29tbWVudDY0Mjc1MDc5MA== | simonw 9599 | 2020-06-11T15:42:23Z | 2020-06-11T15:42:23Z | OWNER |
https://datasette-publish-secret.herokuapp.com/-/messages - Heroku works. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Publish secrets 632919570 | |
1461074526 | https://github.com/simonw/datasette/pull/1999#issuecomment-1461074526 | https://api.github.com/repos/simonw/datasette/issues/1999 | IC_kwDOBm6k_c5XFjpe | simonw 9599 | 2023-03-09T00:23:06Z | 2023-03-09T00:23:06Z | OWNER |
Currently 44 failed, 24 passed in 7.53s Failures here: https://gist.github.com/simonw/df0a52cd7d820b776dc3dfc50e7cb778 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
?_extra= support (draft) 1551694938 | |
647890619 | https://github.com/simonw/datasette/issues/859#issuecomment-647890619 | https://api.github.com/repos/simonw/datasette/issues/859 | MDEyOklzc3VlQ29tbWVudDY0Nzg5MDYxOQ== | simonw 9599 | 2020-06-23T03:48:21Z | 2020-06-23T03:48:21Z | OWNER |
Looks like that will take 35 minutes to run (it's not a particularly fast tool). |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Database page loads too slowly with many large tables (due to table counts) 642572841 | |
877308310 | https://github.com/simonw/datasette/issues/1390#issuecomment-877308310 | https://api.github.com/repos/simonw/datasette/issues/1390 | MDEyOklzc3VlQ29tbWVudDg3NzMwODMxMA== | simonw 9599 | 2021-07-09T16:29:48Z | 2021-07-09T16:29:48Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mention restarting systemd in documentation 940891698 | |
338530480 | https://github.com/simonw/datasette/issues/4#issuecomment-338530480 | https://api.github.com/repos/simonw/datasette/issues/4 | MDEyOklzc3VlQ29tbWVudDMzODUzMDQ4MA== | simonw 9599 | 2017-10-23T02:16:33Z | 2017-10-23T02:16:33Z | OWNER | How about when the service starts up it checks for a compile.json file and, if it is missing, creates it using the same code we run at compile time normally |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Make URLs immutable 267515836 | |
991827468 | https://github.com/simonw/datasette/issues/1518#issuecomment-991827468 | https://api.github.com/repos/simonw/datasette/issues/1518 | IC_kwDOBm6k_c47HhYM | simonw 9599 | 2021-12-12T03:15:00Z | 2021-12-12T03:15:00Z | OWNER | I don't think this code is necessary any more: https://github.com/simonw/datasette/blob/492f9835aa7e90540dd0c6324282b109f73df71b/datasette/views/table.py#L396-L399 That dates back from when Datasette was built on top of Sanic and Sanic didn't preserve those query parameters the way I needed it to: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Complete refactor of TableView and table.html template 1058072543 | |
349027974 | https://github.com/simonw/datasette/issues/20#issuecomment-349027974 | https://api.github.com/repos/simonw/datasette/issues/20 | MDEyOklzc3VlQ29tbWVudDM0OTAyNzk3NA== | simonw 9599 | 2017-12-04T17:01:19Z | 2017-12-04T17:01:19Z | OWNER | This is also a good opportunity to re-factor out a separate query.html template - right now the database.html template is doing two jobs. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Config file with support for defining canned queries 267759136 | |
379936068 | https://github.com/simonw/datasette/issues/199#issuecomment-379936068 | https://api.github.com/repos/simonw/datasette/issues/199 | MDEyOklzc3VlQ29tbWVudDM3OTkzNjA2OA== | simonw 9599 | 2018-04-10T00:32:37Z | 2018-04-10T00:32:37Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to apply sort on mobile in portrait mode 312620566 | ||
392605574 | https://github.com/simonw/datasette/issues/142#issuecomment-392605574 | https://api.github.com/repos/simonw/datasette/issues/142 | MDEyOklzc3VlQ29tbWVudDM5MjYwNTU3NA== | simonw 9599 | 2018-05-28T21:25:05Z | 2018-05-28T21:25:05Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Show extra instructions with the interrupted 275917760 | ||
500220646 | https://github.com/simonw/datasette/issues/506#issuecomment-500220646 | https://api.github.com/repos/simonw/datasette/issues/506 | MDEyOklzc3VlQ29tbWVudDUwMDIyMDY0Ng== | simonw 9599 | 2019-06-09T15:22:12Z | 2019-06-09T15:22:12Z | OWNER | New idea: show essentially this but differentiate the escape sequences in some way. Maybe wrap them in |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Option to display binary data 453846217 | |
629050775 | https://github.com/simonw/datasette/issues/729#issuecomment-629050775 | https://api.github.com/repos/simonw/datasette/issues/729 | MDEyOklzc3VlQ29tbWVudDYyOTA1MDc3NQ== | simonw 9599 | 2020-05-15T06:17:12Z | 2020-05-15T06:17:12Z | OWNER | I don't like how the column headers themselves are no longer black in mobile view. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Visually distinguish integer and text columns 603295970 | |
782462049 | https://github.com/simonw/datasette/issues/1236#issuecomment-782462049 | https://api.github.com/repos/simonw/datasette/issues/1236 | MDEyOklzc3VlQ29tbWVudDc4MjQ2MjA0OQ== | simonw 9599 | 2021-02-19T23:51:12Z | 2021-02-19T23:51:12Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to increase size of the SQL editor window 812228314 | ||
638188196 | https://github.com/simonw/datasette/pull/796#issuecomment-638188196 | https://api.github.com/repos/simonw/datasette/issues/796 | MDEyOklzc3VlQ29tbWVudDYzODE4ODE5Ng== | simonw 9599 | 2020-06-03T13:13:27Z | 2020-06-03T14:32:27Z | OWNER | "Query executed" is the default message, but it's pretty bland: How about letting queries define custom success messages in their metadata configuration?
How can the system tell if an "update" query was actually successful? Maybe I should expose |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
New WIP writable canned queries 629595228 | |
345497534 | https://github.com/simonw/datasette/issues/86#issuecomment-345497534 | https://api.github.com/repos/simonw/datasette/issues/86 | MDEyOklzc3VlQ29tbWVudDM0NTQ5NzUzNA== | simonw 9599 | 2017-11-19T07:23:33Z | 2017-11-19T07:23:33Z | OWNER | "Tablename: 3,567 rows where status = 3 (published) and n > 55" |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Filter UI on table page 273703829 | |
722082874 | https://github.com/simonw/sqlite-utils/issues/196#issuecomment-722082874 | https://api.github.com/repos/simonw/sqlite-utils/issues/196 | MDEyOklzc3VlQ29tbWVudDcyMjA4Mjg3NA== | simonw 9599 | 2020-11-05T02:19:18Z | 2020-11-05T02:19:18Z | OWNER | "any other character larger than u007f." Need to figure that out! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Introspect if table is FTS4 or FTS5 736520310 | |
787175126 | https://github.com/simonw/sqlite-utils/issues/242#issuecomment-787175126 | https://api.github.com/repos/simonw/sqlite-utils/issues/242 | MDEyOklzc3VlQ29tbWVudDc4NzE3NTEyNg== | simonw 9599 | 2021-02-27T21:55:05Z | 2021-02-27T21:55:05Z | OWNER | "how to use some new tools to more easily maintain a codebase that supports both async and synchronous I/O and multiple async libraries" - yeah that's exactly what I need, thank you! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Async support 817989436 | |
1095675839 | https://github.com/simonw/datasette/issues/1708#issuecomment-1095675839 | https://api.github.com/repos/simonw/datasette/issues/1708 | IC_kwDOBm6k_c5BTq-_ | simonw 9599 | 2022-04-11T23:06:30Z | 2022-11-15T19:57:53Z | OWNER | Datasette 1.0 alpha 1This alpha release is a preview of Datasette 1.0. Datasette 1.0 marks a significant milestone in the project: it is the point from which various aspects of Datasette can be considered "stable", in that code developed against them should expect not to be broken by future releases in the 1.x series. This will hold true until the next major version release, Datasette 2.0 - which we hope to hold off releasing for as long as possible. The following Datasette components should be be considered stable after 1.0:
Note that none of these components will cease to introduce new features. New plugin hooks, new JSON APIs and new template context variables can be introduced without breaking existing code. Since this alpha release previews features that will be frozen for 1.0, please test this thoroughly against your existing Datasette projects. You can install the alpha using:
JSON API changesThe most significant changes introduced in this new alpha concern Datasette's JSON API. The default JSON returned by the
Use ?_extra= to retrieve extra fieldsThe default format can be expanded using one or more For example:
This adds a [ Question: if you do |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette 1.0 alpha upcoming release notes 1200649124 | |
590399600 | https://github.com/simonw/datasette/issues/682#issuecomment-590399600 | https://api.github.com/repos/simonw/datasette/issues/682 | MDEyOklzc3VlQ29tbWVudDU5MDM5OTYwMA== | simonw 9599 | 2020-02-24T15:56:10Z | 2020-02-24T15:56:23Z | OWNER | Implementation planMethod on Database class called Which calls Throws an error of database isn't mutable. Add We write to that queue with Have a This should be enough to get it all working. MVP can skip the .5s timeout entirely But... what about that progress bar supporting stretch goal? For that let's have each write operation that's currently in progress have total and done integer properties. So I guess we can add those to the Should we have the ability to see what the currently executing write is? Seems useful. Hopefully I can integrate https://github.com/tqdm/tqdm such that it calculates ETAs without actually trying to print to the console. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for writing to database via a queue 569613563 | |
1095687566 | https://github.com/simonw/datasette/issues/1708#issuecomment-1095687566 | https://api.github.com/repos/simonw/datasette/issues/1708 | IC_kwDOBm6k_c5BTt2O | simonw 9599 | 2022-04-11T23:24:30Z | 2022-04-11T23:24:30Z | OWNER | Redesigned template contextWarning: if you use any custom templates with your Datasette instance they are likely to break when you upgrade to 1.0. The template context has been redesigned to be based on the documented JSON API. This means that the template context can be considered stable going forward, so any custom templates you implement should continue to work when you upgrade Datasette in the future. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette 1.0 alpha upcoming release notes 1200649124 | |
752257666 | https://github.com/simonw/datasette/issues/1160#issuecomment-752257666 | https://api.github.com/repos/simonw/datasette/issues/1160 | MDEyOklzc3VlQ29tbWVudDc1MjI1NzY2Ng== | simonw 9599 | 2020-12-29T22:09:18Z | 2020-12-29T22:09:18Z | OWNER | Figuring out the API designI want to be able to support different formats, and be able to parse them into tables either streaming or in one go depending on if the format supports that. Ideally I want to be able to pull the first 1,024 bytes for the purpose of detecting the format, then replay those bytes again later. I'm considering this a stretch goal though. CSV is easy to parse as a stream - here’s how sqlite-utils does it:
Problem: using |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"datasette insert" command and plugin hook 775666296 | |
719959754 | https://github.com/simonw/datasette/issues/1026#issuecomment-719959754 | https://api.github.com/repos/simonw/datasette/issues/1026 | MDEyOklzc3VlQ29tbWVudDcxOTk1OTc1NA== | simonw 9599 | 2020-10-31T16:56:35Z | 2020-10-31T16:56:35Z | OWNER | 1041 can also benefit from the string subclass that shows that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
How should datasette.client interact with base_url 722738988 | |
749750995 | https://github.com/simonw/datasette/issues/1152#issuecomment-749750995 | https://api.github.com/repos/simonw/datasette/issues/1152 | MDEyOklzc3VlQ29tbWVudDc0OTc1MDk5NQ== | simonw 9599 | 2020-12-22T20:05:30Z | 2020-12-22T20:05:30Z | OWNER | 1150 is landed now, which means there's a new, hidden |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Efficiently calculate list of databases/tables a user can view 770598024 | |
804261610 | https://github.com/simonw/datasette/issues/1269#issuecomment-804261610 | https://api.github.com/repos/simonw/datasette/issues/1269 | MDEyOklzc3VlQ29tbWVudDgwNDI2MTYxMA== | simonw 9599 | 2021-03-22T17:40:41Z | 2021-03-22T17:40:41Z | OWNER | 1270 looks promising, and I don't want to leave open a security hole where someone could potentially hang Datasette with a nasty |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Don't attempt to run count(*) against virtual tables 837348479 | |
504852873 | https://github.com/simonw/datasette/issues/520#issuecomment-504852873 | https://api.github.com/repos/simonw/datasette/issues/520 | MDEyOklzc3VlQ29tbWVudDUwNDg1Mjg3Mw== | simonw 9599 | 2019-06-24T04:28:22Z | 2019-06-24T04:28:22Z | OWNER | 272 is closed now! This hook is next on the priority list. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
asgi_wrapper plugin hook 459598080 | |
720700065 | https://github.com/simonw/datasette/issues/830#issuecomment-720700065 | https://api.github.com/repos/simonw/datasette/issues/830 | MDEyOklzc3VlQ29tbWVudDcyMDcwMDA2NQ== | simonw 9599 | 2020-11-02T20:15:36Z | 2020-11-02T20:15:36Z | OWNER | 427 had a bunch of ambitious plans for faceting that I haven't realized yet:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign register_facet_classes plugin hook 636511683 | |
552276237 | https://github.com/simonw/datasette/pull/595#issuecomment-552276237 | https://api.github.com/repos/simonw/datasette/issues/595 | MDEyOklzc3VlQ29tbWVudDU1MjI3NjIzNw== | simonw 9599 | 2019-11-11T03:12:56Z | 2019-11-11T03:12:56Z | OWNER | 622 |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
bump uvicorn to 0.9.0 to be Python-3.8 friendly 506300941 | |
552276247 | https://github.com/simonw/datasette/issues/594#issuecomment-552276247 | https://api.github.com/repos/simonw/datasette/issues/594 | MDEyOklzc3VlQ29tbWVudDU1MjI3NjI0Nw== | simonw 9599 | 2019-11-11T03:13:00Z | 2019-11-11T03:13:00Z | OWNER | 622 |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 1, "rocket": 0, "eyes": 0 } |
upgrade to uvicorn-0.9 to be Python-3.8 friendly 506297048 | |
552276277 | https://github.com/simonw/datasette/pull/404#issuecomment-552276277 | https://api.github.com/repos/simonw/datasette/issues/404 | MDEyOklzc3VlQ29tbWVudDU1MjI3NjI3Nw== | simonw 9599 | 2019-11-11T03:13:09Z | 2019-11-11T03:13:09Z | OWNER | 622 will drop 3.5 support. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Experiment: run Jinja in async mode 403499298 | |
981172801 | https://github.com/simonw/datasette/issues/1518#issuecomment-981172801 | https://api.github.com/repos/simonw/datasette/issues/1518 | IC_kwDOBm6k_c46e4JB | simonw 9599 | 2021-11-28T23:23:51Z | 2021-11-28T23:23:51Z | OWNER | (I could experiment with merging the two tables by adding a temporary undocumented |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Complete refactor of TableView and table.html template 1058072543 | |
1214414320 | https://github.com/simonw/datasette/issues/1779#issuecomment-1214414320 | https://api.github.com/repos/simonw/datasette/issues/1779 | IC_kwDOBm6k_c5IYn3w | simonw 9599 | 2022-08-14T16:54:32Z | 2022-08-14T16:54:32Z | OWNER | (I deleted my |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
google cloudrun updated their limits on maxscale based on memory and cpu count 1334628400 | |
987349633 | https://github.com/simonw/sqlite-utils/issues/349#issuecomment-987349633 | https://api.github.com/repos/simonw/sqlite-utils/issues/349 | IC_kwDOCGYnMM462cKB | simonw 9599 | 2021-12-06T23:19:28Z | 2021-12-06T23:19:28Z | OWNER | (I ended up not needing this here since |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
A way of creating indexes on newly created tables 1071531082 | |
1112717745 | https://github.com/simonw/datasette/issues/1729#issuecomment-1112717745 | https://api.github.com/repos/simonw/datasette/issues/1729 | IC_kwDOBm6k_c5CUrmx | simonw 9599 | 2022-04-28T22:38:39Z | 2022-04-28T22:39:05Z | OWNER | (I remain keen on the idea of shipping a plugin that restores the old default API shape to people who have written pre-Datasette-1.0 code against it, but I'll tackle that much later. I really like how jQuery has a culture of doing this.) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement ?_extra and new API design for TableView 1219385669 | |
782747164 | https://github.com/simonw/datasette/issues/782#issuecomment-782747164 | https://api.github.com/repos/simonw/datasette/issues/782 | MDEyOklzc3VlQ29tbWVudDc4Mjc0NzE2NA== | simonw 9599 | 2021-02-20T20:47:16Z | 2021-02-20T20:47:16Z | OWNER | (I started a thread on Twitter about this: https://twitter.com/simonw/status/1363220355318358016) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign default .json format 627794879 | |
691526489 | https://github.com/simonw/datasette/issues/782#issuecomment-691526489 | https://api.github.com/repos/simonw/datasette/issues/782 | MDEyOklzc3VlQ29tbWVudDY5MTUyNjQ4OQ== | simonw 9599 | 2020-09-12T18:17:16Z | 2020-09-12T18:17:16Z | OWNER | (I think I may have been over-thinking the details of this is for a couple of years now.) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign default .json format 627794879 | |
634946319 | https://github.com/simonw/datasette/issues/581#issuecomment-634946319 | https://api.github.com/repos/simonw/datasette/issues/581 | MDEyOklzc3VlQ29tbWVudDYzNDk0NjMxOQ== | simonw 9599 | 2020-05-27T21:18:50Z | 2020-05-27T21:18:50Z | OWNER | (I used GitHub code search to find code using this plugin hook: https://github.com/search?q=register_output_renderer&type=Code ) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign register_output_renderer callback 502993509 | |
634964457 | https://github.com/simonw/datasette/issues/581#issuecomment-634964457 | https://api.github.com/repos/simonw/datasette/issues/581 | MDEyOklzc3VlQ29tbWVudDYzNDk2NDQ1Nw== | simonw 9599 | 2020-05-27T21:57:35Z | 2020-05-27T21:57:35Z | OWNER | (I wonder if this would be enough to allow really smart plugins to implement ETag/conditional get) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesign register_output_renderer callback 502993509 | |
1045027067 | https://github.com/simonw/datasette/issues/1439#issuecomment-1045027067 | https://api.github.com/repos/simonw/datasette/issues/1439 | IC_kwDOBm6k_c4-Sdj7 | simonw 9599 | 2022-02-18T19:03:26Z | 2022-02-18T19:03:26Z | OWNER | (If I make this change it may break some existing Datasette installations when they upgrade - I could try and build a plugin for them which triggers on 404s and checks to see if the old format would return a 200 response, then returns that.) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rethink how .ext formats (v.s. ?_format=) works before 1.0 973139047 | |
869075395 | https://github.com/simonw/datasette/issues/1384#issuecomment-869075395 | https://api.github.com/repos/simonw/datasette/issues/1384 | MDEyOklzc3VlQ29tbWVudDg2OTA3NTM5NQ== | simonw 9599 | 2021-06-26T23:54:21Z | 2021-06-26T23:59:21Z | OWNER | (It may well be that implementing #1168 involves a switch to async metadata) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Plugin hook for dynamic metadata 930807135 | |
970770304 | https://github.com/simonw/datasette/issues/1513#issuecomment-970770304 | https://api.github.com/repos/simonw/datasette/issues/1513 | IC_kwDOBm6k_c453MeA | simonw 9599 | 2021-11-16T22:55:19Z | 2021-11-16T22:55:19Z | OWNER | (One thing I really like about this pattern is that it should work exactly the same when used to facet the results of arbitrary SQL queries as it does when faceting results from the table page.) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Research: CTEs and union all to calculate facets AND query at the same time 1055469073 | |
849788412 | https://github.com/simonw/datasette/issues/1344#issuecomment-849788412 | https://api.github.com/repos/simonw/datasette/issues/1344 | MDEyOklzc3VlQ29tbWVudDg0OTc4ODQxMg== | simonw 9599 | 2021-05-27T16:53:28Z | 2021-05-27T16:53:28Z | OWNER | (Should also update https://docs.datasette.io/en/stable/contributing.html#release-process with notes on how this works) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Test Datasette Docker images built for different architectures 903986178 | |
1008151884 | https://github.com/simonw/sqlite-utils/issues/364#issuecomment-1008151884 | https://api.github.com/repos/simonw/sqlite-utils/issues/364 | IC_kwDOCGYnMM48Fy1M | simonw 9599 | 2022-01-08T20:59:21Z | 2022-01-08T20:59:21Z | OWNER | (That Heroku example doesn't record the timestamp, which limits its usefulness) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`--batch-size 1` doesn't seem to commit for every item 1095570074 | |
997508728 | https://github.com/simonw/sqlite-utils/issues/356#issuecomment-997508728 | https://api.github.com/repos/simonw/sqlite-utils/issues/356 | IC_kwDOCGYnMM47dMZ4 | simonw 9599 | 2021-12-20T01:14:43Z | 2021-12-20T01:14:43Z | OWNER | (This makes me want |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`sqlite-utils insert --convert` option 1077431957 | |
347735724 | https://github.com/simonw/datasette/issues/153#issuecomment-347735724 | https://api.github.com/repos/simonw/datasette/issues/153 | MDEyOklzc3VlQ29tbWVudDM0NzczNTcyNA== | simonw 9599 | 2017-11-29T02:47:14Z | 2017-11-29T02:47:14Z | OWNER | (This only addresses point 2 in your issue description - points 1 and point 3 are still to come) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to customize presentation of specific columns in HTML view 276842536 | |
804406675 | https://github.com/simonw/datasette/issues/1249#issuecomment-804406675 | https://api.github.com/repos/simonw/datasette/issues/1249 | MDEyOklzc3VlQ29tbWVudDgwNDQwNjY3NQ== | simonw 9599 | 2021-03-22T21:26:27Z | 2021-03-22T21:26:27Z | OWNER | (Without the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Updated Dockerfile with SpatiaLite version 5.0 824064069 | |
407269243 | https://github.com/simonw/datasette/issues/320#issuecomment-407269243 | https://api.github.com/repos/simonw/datasette/issues/320 | MDEyOklzc3VlQ29tbWVudDQwNzI2OTI0Mw== | simonw 9599 | 2018-07-24T03:30:32Z | 2018-07-24T03:30:32Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Need unit tests covering the different states for the advanced export box 334169932 | |
504782618 | https://github.com/simonw/datasette/pull/518#issuecomment-504782618 | https://api.github.com/repos/simonw/datasette/issues/518 | MDEyOklzc3VlQ29tbWVudDUwNDc4MjYxOA== | simonw 9599 | 2019-06-23T20:05:44Z | 2019-06-23T20:05:59Z | OWNER | Replacement for @app.listener("before_server_start") - this is what the ASGI lifespan protocol is for. I know Uvicorn supports this because it keeps saying I think the solution here will be to introduce another ASGI wrapper class similar to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Port Datasette from Sanic to ASGI + Uvicorn 459587155 | |
636332183 | https://github.com/simonw/datasette/issues/576#issuecomment-636332183 | https://api.github.com/repos/simonw/datasette/issues/576 | MDEyOklzc3VlQ29tbWVudDYzNjMzMjE4Mw== | simonw 9599 | 2020-05-30T13:37:51Z | 2020-05-30T13:38:35Z | OWNER | __init__(self, files, immutables=None, cache_headers=True, cors=False, inspect_data=None, metadata=None, sqlite_extensions=None, template_dir=None, plugins_dir=None, static_mounts=None, memory=False, config=None, version_note=None, config_dir=None)
absolute_url(self, request, path) add_database(self, name, db) app(self)
app_css_hash(self) config(self, key) config_dict(self) connected_databases(self) execute(self, db_name, sql, params=None, truncate=False, custom_time_limit=None, page_size=None, log_sql_errors=True) expand_foreign_keys(self, database, table, column, values)
get_canned_queries(self, database_name) get_canned_query(self, database_name, query_name) metadata(self, key=None, database=None, table=None, fallback=True)
plugin_config(self, plugin_name, database=None, table=None, fallback=True)
plugins(self, show_all=False) prepare_connection(self, conn, database) register_custom_units(self)
register_renderers(self)
remove_database(self, name) render_template(self, templates, context=None, request=None, view_name=None) table_metadata(self, database, table)
threads(self) update_with_inherited_metadata(self, metadata) versions(self) |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documented internals API for use in plugins 497170355 | |
683528149 | https://github.com/simonw/sqlite-utils/issues/147#issuecomment-683528149 | https://api.github.com/repos/simonw/sqlite-utils/issues/147 | MDEyOklzc3VlQ29tbWVudDY4MzUyODE0OQ== | simonw 9599 | 2020-08-31T03:17:26Z | 2020-08-31T03:17:26Z | OWNER | +1 to making this something that users can customize. An optional argument to the I think there's a terrifying way that we could find this value... we could perform a binary search for it! Open up a memory connection and try running different bulk inserts against it and catch the exceptions - then adjust and try again. My hunch is that we could perform just 2 or 3 probes (maybe against carefully selected values) to find the highest value that works. If this process took less than a few ms to run I'd be happy to do it automatically when the class is instantiated (and let users disable that automatic proving by setting a value using the constructor argument). |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
SQLITE_MAX_VARS maybe hard-coded too low 688670158 | |
1095672127 | https://github.com/simonw/datasette/issues/1711#issuecomment-1095672127 | https://api.github.com/repos/simonw/datasette/issues/1711 | IC_kwDOBm6k_c5BTqE_ | simonw 9599 | 2022-04-11T23:00:58Z | 2022-04-11T23:00:58Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Template context powered entirely by the JSON API format 1200650491 | |
1095671940 | https://github.com/simonw/datasette/issues/1709#issuecomment-1095671940 | https://api.github.com/repos/simonw/datasette/issues/1709 | IC_kwDOBm6k_c5BTqCE | simonw 9599 | 2022-04-11T23:00:39Z | 2022-04-11T23:01:41Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Redesigned JSON API with ?_extra= parameters 1200649502 | |
1229320114 | https://github.com/simonw/sqlite-utils/issues/476#issuecomment-1229320114 | https://api.github.com/repos/simonw/sqlite-utils/issues/476 | IC_kwDOCGYnMM5JRe-y | simonw 9599 | 2022-08-27T23:26:48Z | 2022-08-27T23:26:48Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release notes for 3.29 1353196970 | |
1671753753 | https://github.com/simonw/datasette/issues/2135#issuecomment-1671753753 | https://api.github.com/repos/simonw/datasette/issues/2135 | IC_kwDOBm6k_c5jpPAZ | simonw 9599 | 2023-08-09T16:26:17Z | 2023-08-09T16:28:19Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release notes for 1.0a3 1843600087 | |
1291203911 | https://github.com/simonw/sqlite-utils/issues/505#issuecomment-1291203911 | https://api.github.com/repos/simonw/sqlite-utils/issues/505 | IC_kwDOCGYnMM5M9jVH | simonw 9599 | 2022-10-25T22:21:02Z | 2022-10-25T22:21:02Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release sqlite-utils 3.30 1423182778 | |
1012664607 | https://github.com/simonw/datasette/issues/1595#issuecomment-1012664607 | https://api.github.com/repos/simonw/datasette/issues/1595 | IC_kwDOBm6k_c48XAkf | simonw 9599 | 2022-01-14T01:22:58Z | 2022-01-14T01:22:58Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release notes for 0.60 1102484126 | |
343781030 | https://github.com/simonw/datasette/issues/71#issuecomment-343781030 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MTAzMA== | simonw 9599 | 2017-11-13T00:21:05Z | 2017-11-13T02:09:32Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
1347768549 | https://github.com/simonw/datasette/issues/1947#issuecomment-1347768549 | https://api.github.com/repos/simonw/datasette/issues/1947 | IC_kwDOBm6k_c5QVVDl | simonw 9599 | 2022-12-13T05:25:56Z | 2022-12-13T22:29:12Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
UI to create reduced scope tokens from the `/-/create-token` page 1493390939 | |
343780671 | https://github.com/simonw/datasette/issues/71#issuecomment-343780671 | https://api.github.com/repos/simonw/datasette/issues/71 | MDEyOklzc3VlQ29tbWVudDM0Mzc4MDY3MQ== | simonw 9599 | 2017-11-13T00:15:21Z | 2017-11-13T00:17:37Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Set up some example datasets on a Cloudflare-backed domain 273278840 | |
894864616 | https://github.com/simonw/datasette/issues/1424#issuecomment-894864616 | https://api.github.com/repos/simonw/datasette/issues/1424 | IC_kwDOBm6k_c41Vozo | simonw 9599 | 2021-08-08T22:26:08Z | 2021-08-08T22:26:08Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Document exceptions that can be raised by db.execute() and friends 963527045 | |
993794247 | https://github.com/simonw/datasette/issues/1518#issuecomment-993794247 | https://api.github.com/repos/simonw/datasette/issues/1518 | IC_kwDOBm6k_c47PBjH | simonw 9599 | 2021-12-14T17:09:40Z | 2021-12-14T17:09:40Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Complete refactor of TableView and table.html template 1058072543 | |
1045086033 | https://github.com/simonw/datasette/issues/1439#issuecomment-1045086033 | https://api.github.com/repos/simonw/datasette/issues/1439 | IC_kwDOBm6k_c4-Sr9R | simonw 9599 | 2022-02-18T19:47:43Z | 2022-02-18T19:51:11Z | OWNER |
Do both of those survive the round-trip to populate No! In both cases the It looks like this might even be a client issue - ``` ~ % curl -vv -i 'https://datasette.io/-/asgi-scope/db/./db./table-..csv..csv' * Trying 216.239.32.21:443... * Connected to datasette.io (216.239.32.21) port 443 (#0) * ALPN, offering http/1.1 * TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 * Server certificate: datasette.io * Server certificate: R3 * Server certificate: ISRG Root X1
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rethink how .ext formats (v.s. ?_format=) works before 1.0 973139047 | |
1258692555 | https://github.com/simonw/datasette/issues/1821#issuecomment-1258692555 | https://api.github.com/repos/simonw/datasette/issues/1821 | IC_kwDOBm6k_c5LBh_L | simonw 9599 | 2022-09-26T22:06:39Z | 2022-09-26T22:06:39Z | OWNER | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release Datasette 0.63a0 1386734383 | ||
672287754 | https://github.com/simonw/datasette/issues/923#issuecomment-672287754 | https://api.github.com/repos/simonw/datasette/issues/923 | MDEyOklzc3VlQ29tbWVudDY3MjI4Nzc1NA== | simonw 9599 | 2020-08-11T21:25:33Z | 2020-08-11T21:25:33Z | OWNER | .. and confirm if |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Add homebrew installation to documentation 677037043 | |
342030075 | https://github.com/simonw/datasette/issues/40#issuecomment-342030075 | https://api.github.com/repos/simonw/datasette/issues/40 | MDEyOklzc3VlQ29tbWVudDM0MjAzMDA3NQ== | simonw 9599 | 2017-11-06T02:25:48Z | 2017-11-06T02:25:48Z | OWNER | ... I tried that, I don't like it. I'm going to bring back "directory serving" by allowing you to pass a directory as an argument to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Implement command-line tool interface 268470572 | |
805042880 | https://github.com/simonw/datasette/issues/1153#issuecomment-805042880 | https://api.github.com/repos/simonw/datasette/issues/1153 | MDEyOklzc3VlQ29tbWVudDgwNTA0Mjg4MA== | simonw 9599 | 2021-03-23T16:24:32Z | 2021-03-23T16:24:32Z | OWNER | ... actually I think I would do that conversion in Python. The client-side YAML parsers all look a little bit heavy to me in terms of additional page weight. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Use YAML examples in documentation by default, not JSON 771202454 | |
636538298 | https://github.com/simonw/datasette/issues/785#issuecomment-636538298 | https://api.github.com/repos/simonw/datasette/issues/785 | MDEyOklzc3VlQ29tbWVudDYzNjUzODI5OA== | simonw 9599 | 2020-05-31T22:14:43Z | 2020-05-31T22:15:01Z | OWNER | ... actually no I'll do it using a CLI option that can also be in an environment variable: https://click.palletsprojects.com/en/7.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 } |
Datasette secret mechanism - initially for signed cookies 628025100 | |
996077053 | https://github.com/simonw/datasette/issues/1552#issuecomment-996077053 | https://api.github.com/repos/simonw/datasette/issues/1552 | IC_kwDOBm6k_c47Xu39 | simonw 9599 | 2021-12-16T18:36:41Z | 2021-12-16T18:36:41Z | OWNER | ... actually no, I WILL document this, because not documenting this is what got us to this point in the first place! |
{ "total_count": 1, "+1": 0, "-1": 0, "laugh": 1, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Allow to set `facets_array` in metadata (like current `facets`) 1078702875 | |
766536076 | https://github.com/simonw/datasette/issues/983#issuecomment-766536076 | https://api.github.com/repos/simonw/datasette/issues/983 | MDEyOklzc3VlQ29tbWVudDc2NjUzNjA3Ng== | simonw 9599 | 2021-01-25T04:43:53Z | 2021-01-25T04:43:53Z | OWNER | ... actually not going to include this in 0.54, I need to write a couple of plugins myself using it before I even make it available in preview. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
JavaScript plugin hooks mechanism similar to pluggy 712260429 | |
586623462 | https://github.com/simonw/datasette/issues/674#issuecomment-586623462 | https://api.github.com/repos/simonw/datasette/issues/674 | MDEyOklzc3VlQ29tbWVudDU4NjYyMzQ2Mg== | simonw 9599 | 2020-02-15T17:36:53Z | 2020-03-26T17:19:23Z | OWNER | ... actually we don't need to do that, we have a mechanism for that already: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Rethink how sanity checks work 565552217 | |
1289774183 | https://github.com/simonw/datasette/issues/1852#issuecomment-1289774183 | https://api.github.com/repos/simonw/datasette/issues/1852 | IC_kwDOBm6k_c5M4GRn | simonw 9599 | 2022-10-24T23:25:52Z | 2022-10-24T23:25:52Z | OWNER | ... also, maybe there should be a UI (perhaps on that page) for resetting the Datasette secret? Useful for emergency invalidation of all tokens. No, I'm not going to build that unless someone asks for it. Restarting the server with a fresh secret should be easy enough. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Default API token authentication mechanism 1421552095 | |
504662987 | https://github.com/simonw/datasette/issues/514#issuecomment-504662987 | https://api.github.com/repos/simonw/datasette/issues/514 | MDEyOklzc3VlQ29tbWVudDUwNDY2Mjk4Nw== | simonw 9599 | 2019-06-22T12:46:39Z | 2019-06-22T12:46:39Z | OWNER | ... and @russss also suggested systemd 21 seconds before I posted that! |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documentation with recommendations on running Datasette in production without using Docker 459397625 | |
640157216 | https://github.com/simonw/datasette/issues/808#issuecomment-640157216 | https://api.github.com/repos/simonw/datasette/issues/808 | MDEyOklzc3VlQ29tbWVudDY0MDE1NzIxNg== | simonw 9599 | 2020-06-07T04:58:40Z | 2020-06-07T04:58:40Z | OWNER | ... and I want a unit test which confirms that all permissions are documented. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Permission check for every view in Datasette (plus docs) 632918799 | |
1271803298 | https://github.com/simonw/datasette/pull/1838#issuecomment-1271803298 | https://api.github.com/repos/simonw/datasette/issues/1838 | IC_kwDOBm6k_c5Lzi2i | simonw 9599 | 2022-10-07T16:28:41Z | 2022-10-07T16:28:41Z | OWNER | ... and here's @ocdtrekkie's plugin! https://github.com/ocdtrekkie/datasette-external-links-new-tabs |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Open Datasette link in new tab 1400494162 | |
1356610089 | https://github.com/simonw/datasette/issues/1955#issuecomment-1356610089 | https://api.github.com/repos/simonw/datasette/issues/1955 | IC_kwDOBm6k_c5Q3Dop | simonw 9599 | 2022-12-18T01:12:39Z | 2022-12-18T01:12:39Z | OWNER | ... and it turns out those tests saved me. Because I forgot to check if
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
invoke_startup() is not run in some conditions, e.g. gunicorn/uvicorn workers, breaking lots of things 1496652622 | |
603600553 | https://github.com/simonw/datasette/issues/705#issuecomment-603600553 | https://api.github.com/repos/simonw/datasette/issues/705 | MDEyOklzc3VlQ29tbWVudDYwMzYwMDU1Mw== | simonw 9599 | 2020-03-25T02:11:56Z | 2020-03-25T02:12:09Z | OWNER | ... and set up the CNAME record:
Got an error:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
latest.datasette.io is no longer updating 585626199 | |
803774518 | https://github.com/simonw/datasette/issues/1268#issuecomment-803774518 | https://api.github.com/repos/simonw/datasette/issues/1268 | MDEyOklzc3VlQ29tbWVudDgwMzc3NDUxOA== | simonw 9599 | 2021-03-22T05:34:57Z | 2021-03-22T05:34:57Z | OWNER | ... and sure enough, adding this code fixed the problem:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Figure out why SpatiaLite 5.0 hangs the database page on Linux 837308703 | |
973700549 | https://github.com/simonw/datasette/issues/1518#issuecomment-973700549 | https://api.github.com/repos/simonw/datasette/issues/1518 | IC_kwDOBm6k_c46CX3F | simonw 9599 | 2021-11-19T03:31:20Z | 2021-11-19T03:31:26Z | OWNER | ... and while I'm doing all of this I can rewrite the templates to not use those cheating magical functions AND document the template context at the same time, refs: - #1510. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Complete refactor of TableView and table.html template 1058072543 | |
1356640463 | https://github.com/simonw/datasette/issues/1955#issuecomment-1356640463 | https://api.github.com/repos/simonw/datasette/issues/1955 | IC_kwDOBm6k_c5Q3LDP | simonw 9599 | 2022-12-18T02:45:18Z | 2022-12-18T02:45:18Z | OWNER | ... and with this change, the following now works correctly:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
invoke_startup() is not run in some conditions, e.g. gunicorn/uvicorn workers, breaking lots of things 1496652622 | |
779446652 | https://github.com/simonw/sqlite-utils/issues/147#issuecomment-779446652 | https://api.github.com/repos/simonw/sqlite-utils/issues/147 | MDEyOklzc3VlQ29tbWVudDc3OTQ0NjY1Mg== | simonw 9599 | 2021-02-15T21:04:19Z | 2021-02-15T21:04:19Z | OWNER | ... but it looks like And |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
SQLITE_MAX_VARS maybe hard-coded too low 688670158 | |
1224283367 | https://github.com/simonw/sqlite-utils/issues/467#issuecomment-1224283367 | https://api.github.com/repos/simonw/sqlite-utils/issues/467 | IC_kwDOCGYnMM5I-RTn | simonw 9599 | 2022-08-23T16:05:55Z | 2022-08-23T16:05:55Z | OWNER | ... but that's what the So maybe this is actually a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for ensuring a table has all the columns 1348169997 | |
1331204360 | https://github.com/simonw/datasette/issues/1913#issuecomment-1331204360 | https://api.github.com/repos/simonw/datasette/issues/1913 | IC_kwDOBm6k_c5PWJEI | simonw 9599 | 2022-11-29T19:47:40Z | 2022-11-29T19:47:40Z | OWNER | ... but the last step of the deploy failed, when it was meant to push to PyPI!
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Release Datasette 1.0a0 1468603401 | |
586109784 | https://github.com/simonw/datasette/pull/672#issuecomment-586109784 | https://api.github.com/repos/simonw/datasette/issues/672 | MDEyOklzc3VlQ29tbWVudDU4NjEwOTc4NA== | simonw 9599 | 2020-02-14T05:53:50Z | 2020-02-14T05:54:21Z | OWNER | ... cheating like this seems to work:
Seems to work in my testing. Wish I could prove it with a unit test though. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
--dirs option for scanning directories for SQLite databases 565064079 | |
803748469 | https://github.com/simonw/datasette/issues/1249#issuecomment-803748469 | https://api.github.com/repos/simonw/datasette/issues/1249 | MDEyOklzc3VlQ29tbWVudDgwMzc0ODQ2OQ== | simonw 9599 | 2021-03-22T04:17:51Z | 2021-03-22T04:17:51Z | OWNER | ... except my clever image using SpatiaLite installed for Ubuntu doesn't actually work:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Updated Dockerfile with SpatiaLite version 5.0 824064069 | |
997472509 | https://github.com/simonw/datasette/issues/1565#issuecomment-997472509 | https://api.github.com/repos/simonw/datasette/issues/1565 | IC_kwDOBm6k_c47dDj9 | simonw 9599 | 2021-12-19T22:24:50Z | 2021-12-19T22:24:50Z | OWNER | ... huh, it could even expose a JavaScript function that can be called to execute a SQL query.
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Documented JavaScript variables on different templates made available for plugins 1083657868 | |
696302020 | https://github.com/simonw/datasette/issues/971#issuecomment-696302020 | https://api.github.com/repos/simonw/datasette/issues/971 | MDEyOklzc3VlQ29tbWVudDY5NjMwMjAyMA== | simonw 9599 | 2020-09-21T18:49:09Z | 2020-09-21T18:49:09Z | OWNER | ... made harder to work on because I apparently don't have the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Support the dbstat table 705827457 | |
1068445412 | https://github.com/simonw/datasette/issues/1509#issuecomment-1068445412 | https://api.github.com/repos/simonw/datasette/issues/1509 | IC_kwDOBm6k_c4_ry7k | simonw 9599 | 2022-03-15T20:37:50Z | 2022-03-15T20:38:56Z | OWNER | ... maybe Datasette itself should include interactive API documentation, in addition to documenting it in the manual?
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Datasette 1.0 JSON API (and documentation) 1054243511 | |
1185931417 | https://github.com/simonw/datasette/issues/1770#issuecomment-1185931417 | https://api.github.com/repos/simonw/datasette/issues/1770 | IC_kwDOBm6k_c5Gr-CZ | simonw 9599 | 2022-07-15T20:59:25Z | 2022-07-15T20:59:25Z | OWNER | ... maybe it should take |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
`handle_exception` plugin hook for custom error handling 1306492437 | |
719810533 | https://github.com/simonw/datasette/issues/1072#issuecomment-719810533 | https://api.github.com/repos/simonw/datasette/issues/1072 | MDEyOklzc3VlQ29tbWVudDcxOTgxMDUzMw== | simonw 9599 | 2020-10-30T21:34:38Z | 2020-10-30T21:34:38Z | OWNER | ... no wait, my comments above assume that I'm just building the This may mean I need to delay the whole feature. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
load_template hook doesn't work for include/extends 733499930 |
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 ✖