issues
18 rows where comments = 11, repo = 107914493, state = "closed" and type = "issue" sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: user, milestone, author_association, created_at (date), updated_at (date), closed_at (date)
id | node_id | number | title | user | state | locked | assignee | milestone | comments | created_at | updated_at ▲ | closed_at | author_association | pull_request | body | repo | type | active_lock_reason | performed_via_github_app | reactions | draft | state_reason |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1497909798 | I_kwDOBm6k_c5ZSEom | 1958 | datasette --root running in Docker doesn't reliably show the magic URL | davidhaley 11729897 | closed | 0 | 11 | 2022-12-13T16:29:13Z | 2022-12-16T00:59:12Z | 2022-12-16T00:55:19Z | NONE | I followed these steps:
Visited: http://127.0.0.1:8001/-/plugins Visited: http://localhost:8001/-/upload-csvs I may have missed a step? Thank you. Ubuntu 22.04.1 LTS |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/1958/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1373595927 | I_kwDOBm6k_c5R32kX | 1809 | `prepare_jinja2_environment()` hook should take `datasette` argument | simonw 9599 | closed | 0 | 11 | 2022-09-14T21:15:46Z | 2022-09-17T03:39:05Z | 2022-09-17T03:38:33Z | OWNER | That plugin hook's current signature is: As a result in the first alpha release of
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/1809/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
1175854982 | I_kwDOBm6k_c5GFh-G | 1679 | Research: how much overhead does the n=1 time limit have? | simonw 9599 | closed | 0 | Datasette 1.0 3268330 | 11 | 2022-03-21T19:27:46Z | 2022-03-21T21:55:57Z | 2022-03-21T21:55:56Z | OWNER | https://github.com/simonw/datasette/blob/1a7750eb29fd15dd2eea3b9f6e33028ce441b143/datasette/utils/init.py#L181-L200 ```python @contextmanager def sqlite_timelimit(conn, ms): deadline = time.perf_counter() + (ms / 1000) # n is the number of SQLite virtual machine instructions that will be # executed between each check. It's hard to know what to pick here. # After some experimentation, I've decided to go with 1000 by default and # 1 for time limits that are less than 50ms n = 1000 if ms < 50: n = 1
``` How often do I set a time limit of 50 or less? How much slower does it go thanks to this code? |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/1679/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
1099723916 | I_kwDOBm6k_c5BjHSM | 1590 | Table+query JSON and CSV links broken when using `base_url` setting | eelkevdbos 1001306 | closed | 0 | Datasette 0.60 7571612 | 11 | 2022-01-11T23:46:39Z | 2022-01-14T01:16:34Z | 2022-01-14T01:16:08Z | NONE | Datasette appends the prefix found in the In the follow asgi example, I'm hosting a custom Datasette instance: ```python asgi.pyimport pathlib from asgi_cors import asgi_cors from channels.routing import URLRouter from django.urls import re_path from datasette.app import Datasette datasette_ = Datasette( files=[], settings={ "base_url": "/datasettes/", "plugins": {} }, config_dir=pathlib.Path('.'), ) application = URLRouter([ re_path(r"^datasettes/.*", asgi_cors(datasette_.app(), allow_all=True)), ]) ``` Running it with:
Using a simple query on the http://localhost:8002/datasettes/_memory?sql=select+sqlite_version%28%29 It renders the following upon inspection: I am using datasette version |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/1590/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
963528457 | MDU6SXNzdWU5NjM1Mjg0NTc= | 1425 | render_cell() hook should support returning an awaitable | simonw 9599 | closed | 0 | 11 | 2021-08-08T22:32:29Z | 2021-08-09T07:14:35Z | 2021-08-09T03:00:37Z | OWNER | Many of the plugin hooks can return an awaitable - e.g. https://docs.datasette.io/en/stable/plugin_hooks.html#plugin-hook-extra-template-vars - but I recently found myself wanting to execute an additional SQL query from that hook, but it wasn't possible to do that since I couldn't use |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/1425/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
959999095 | MDU6SXNzdWU5NTk5OTkwOTU= | 1421 | "Query parameters" form shows wrong input fields if query contains "03:31" style times | j4mie 6988 | closed | 0 | 11 | 2021-08-04T07:29:04Z | 2021-08-09T03:41:07Z | 2021-08-09T03:33:02Z | NONE | Datasette version I'm guessing this is a bug in the code that looks for |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/1421/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
811367257 | MDU6SXNzdWU4MTEzNjcyNTc= | 1231 | Race condition errors in new refresh_schemas() mechanism | simonw 9599 | closed | 0 | 11 | 2021-02-18T18:49:54Z | 2021-07-16T19:44:59Z | 2021-07-16T19:44:59Z | OWNER | I tried running a Locust load test against Datasette and hit an error message about a failure to create tables because they already existed. I think this means there are race conditions in the new |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/1231/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
770448622 | MDU6SXNzdWU3NzA0NDg2MjI= | 1151 | Database class mechanism for cross-connection in-memory databases | simonw 9599 | closed | 0 | Datasette 0.54 6346396 | 11 | 2020-12-17T23:25:43Z | 2021-01-26T19:07:44Z | 2020-12-18T01:01:26Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/datasette/issues/1150#issuecomment-747768112 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/1151/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
644582921 | MDU6SXNzdWU2NDQ1ODI5MjE= | 865 | base_url doesn't seem to work when adding criteria and clicking "apply" | tballison 6739646 | closed | 0 | 0.51 6026070 | 11 | 2020-06-24T12:39:57Z | 2020-11-12T23:49:24Z | 2020-10-20T05:22:59Z | NONE | Over on Apache Tika, we're using datasette to allow users to make sense of the metadata for our file regression testing corpus. This could be user error in how I've set up the reverse proxy! I started datasette like so:
I then reverse proxied like so: ProxyPreserveHost On ProxyPass /datasette http://x.y.z.q:xxxx ProxyPassReverse /datasette http://x.y.z.q:xxx Regular sql works perfectly: https://corpora.tika.apache.org/datasette/corpora-metadata?sql=select+mime_string%2C+count%281%29+as+cnt%0D%0Afrom+profiles+p%0D%0Ajoin+mimes+m+on+p.mime_id%3Dm.mime_id%0D%0Agroup+by+mime_string%0D%0Aorder+by+cnt+desc However, adding criteria and clicking 'Apply' https://corpora.tika.apache.org/datasette/corpora-metadata/tika_1_24_1_mimes?_sort=file&mime__exact=text%2Fplain bounces back to: https://corpora.tika.apache.org/corpora-metadata/tika_1_24_1_mimes?_sort=file&file__contains=bug&mime__exact=text%2Fplain |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/865/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
573755726 | MDU6SXNzdWU1NzM3NTU3MjY= | 690 | Mechanism for plugins to add action menu items for various things | simonw 9599 | closed | 0 | 0.51 6026070 | 11 | 2020-03-02T06:48:36Z | 2020-10-30T05:20:43Z | 2020-10-30T05:20:42Z | OWNER | Now that we have support for plugins that can write I'm seeing all sorts of places where a plugin might need to add UI to the table page. Some examples:
The challenge here is that multiple plugins may want to do this, so simply overriding templates and populating names blocks doesn't entirely work as templates may override each other. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/690/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
663228985 | MDU6SXNzdWU2NjMyMjg5ODU= | 904 | datasette.urls.table() / .instance() / .database() methods for constructing URLs, also exposed to templates | simonw 9599 | closed | 0 | 0.51 6026070 | 11 | 2020-07-21T18:42:52Z | 2020-10-23T19:44:05Z | 2020-10-20T00:51:51Z | OWNER | I tried using this block of template in a plugin and got an error:
That's because |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/904/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
702069429 | MDU6SXNzdWU3MDIwNjk0Mjk= | 967 | Writable canned queries with magic parameters fail if POST body is empty | simonw 9599 | closed | 0 | 11 | 2020-09-15T16:14:43Z | 2020-09-15T20:13:10Z | 2020-09-15T20:13:10Z | OWNER | When I try to use the new
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/967/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
648637666 | MDU6SXNzdWU2NDg2Mzc2NjY= | 880 | POST to /db/canned-query that returns JSON should be supported (for API clients) | simonw 9599 | closed | 0 | Datasette 0.49 5818042 | 11 | 2020-07-01T03:14:43Z | 2020-09-14T21:28:21Z | 2020-09-14T21:25:01Z | OWNER | Now that CSRF is solved for API requests (#835) it would be good to support API requests to the |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/880/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
572896293 | MDU6SXNzdWU1NzI4OTYyOTM= | 687 | Expand plugins documentation to multiple pages | simonw 9599 | closed | 0 | Datasette 0.45 5533512 | 11 | 2020-02-28T17:26:21Z | 2020-06-22T03:55:20Z | 2020-06-22T03:53:54Z | OWNER | I think the plugins docs need to extend beyond a single page now. I want to add a whole section on writing tests for plugins, showing how |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/687/reactions", "total_count": 1, "+1": 1, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
628025100 | MDU6SXNzdWU2MjgwMjUxMDA= | 785 | Datasette secret mechanism - initially for signed cookies | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 11 | 2020-05-31T19:14:52Z | 2020-06-06T00:43:40Z | 2020-06-01T00:18:40Z | OWNER | See comment in https://github.com/simonw/datasette/issues/784#issuecomment-636514974 Datasette needs to be able to set signed cookies - which means it needs a mechanism for safely handling a signing secret. Since Datasette is a long-running process the default behaviour here can be to create a random secret on startup. This means that if the server restarts any signed cookies will be invalidated. If the user wants a persistent secret they'll have to generate it themselves - maybe by setting an environment variable? |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/785/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
565518772 | MDU6SXNzdWU1NjU1MTg3NzI= | 673 | Mechanism for checking if a SQLite database file is safe to open | simonw 9599 | closed | 0 | 11 | 2020-02-14T19:36:04Z | 2020-02-14T20:13:59Z | 2020-02-14T20:13:59Z | OWNER | Opening a SpatiaLite database file without SpatiaLite will result in errors later on. Same for database files which use custom extensions, like the Apple Photos database. I've figured out how to tell if a database is safe to open or not:
Run this against a SpatiaLite database and you get the following:
Originally posted by @simonw in https://github.com/simonw/datasette/pull/672#issuecomment-586441484 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/673/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
316444720 | MDU6SXNzdWUzMTY0NDQ3MjA= | 233 | Option to expose expanded foreign keys in JSON/CSV | simonw 9599 | closed | 0 | 11 | 2018-04-21T00:18:25Z | 2018-06-16T22:26:21Z | 2018-06-16T22:20:14Z | OWNER | https://datasette-cluster-map-demo.datasettes.com/sf-trees-02c8ef1/Street_Tree_List?qCareAssistant=1 It would be nice if the info bubbles there could expose more than just the IDs, and if the title showed the expanded name of the selected qCareAssistant. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/233/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
268470572 | MDU6SXNzdWUyNjg0NzA1NzI= | 40 | Implement command-line tool interface | simonw 9599 | closed | 0 | Ship first public release 2857392 | 11 | 2017-10-25T16:47:15Z | 2017-11-11T07:27:33Z | 2017-11-11T07:27:33Z | OWNER | The first version needs to take one or more file names or URLs, then generate and deploy an app to Now. It will assume you already have the now command installed and configured. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/40/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [issues] ( [id] INTEGER PRIMARY KEY, [node_id] TEXT, [number] INTEGER, [title] TEXT, [user] INTEGER REFERENCES [users]([id]), [state] TEXT, [locked] INTEGER, [assignee] INTEGER REFERENCES [users]([id]), [milestone] INTEGER REFERENCES [milestones]([id]), [comments] INTEGER, [created_at] TEXT, [updated_at] TEXT, [closed_at] TEXT, [author_association] TEXT, [pull_request] TEXT, [body] TEXT, [repo] INTEGER REFERENCES [repos]([id]), [type] TEXT , [active_lock_reason] TEXT, [performed_via_github_app] TEXT, [reactions] TEXT, [draft] INTEGER, [state_reason] TEXT); CREATE INDEX [idx_issues_repo] ON [issues] ([repo]); CREATE INDEX [idx_issues_milestone] ON [issues] ([milestone]); CREATE INDEX [idx_issues_assignee] ON [issues] ([assignee]); CREATE INDEX [idx_issues_user] ON [issues] ([user]);