issues
39 rows where milestone = 5512395, repo = 107914493 and state = "closed" sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: comments, 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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
628003707 | MDU6SXNzdWU2MjgwMDM3MDc= | 784 | Ability to sign in to Datasette as a root account | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 5 | 2020-05-31T17:10:15Z | 2020-07-06T19:31:53Z | 2020-06-01T01:18:20Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/datasette/issues/699#issuecomment-636498770 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/784/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
632753851 | MDU6SXNzdWU2MzI3NTM4NTE= | 806 | Release Datasette 0.44 | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 10 | 2020-06-06T21:49:52Z | 2020-06-12T01:20:03Z | 2020-06-12T01:20:03Z | OWNER | See also milestone. This is a pretty big release: flash messaging, writable canned queries, authentication and permissions! I'll want to ship some plugin releases in conjunction with this - |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/806/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
637409144 | MDU6SXNzdWU2Mzc0MDkxNDQ= | 839 | {"$file": ...} mechanism is broken | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 0 | 2020-06-12T00:46:24Z | 2020-06-12T00:48:26Z | 2020-06-12T00:48:26Z | OWNER | https://travis-ci.org/github/simonw/datasette/jobs/697445318 ``` def test_plugin_config_file(app_client): open(TEMP_PLUGIN_SECRET_FILE, "w").write("FROM_FILE")
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/839/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
637370652 | MDU6SXNzdWU2MzczNzA2NTI= | 837 | Plugin $env secrets mechanism doesn't work inside lists | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 0 | 2020-06-11T22:59:54Z | 2020-06-12T00:25:20Z | 2020-06-12T00:25:19Z | OWNER | This didn't work:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/837/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
635108074 | MDU6SXNzdWU2MzUxMDgwNzQ= | 824 | Example authentication plugin | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 4 | 2020-06-09T04:49:53Z | 2020-06-12T00:11:51Z | 2020-06-12T00:11:50Z | OWNER | https://github.com/simonw/datasette-auth-github/issues/62 will work for this. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/824/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
637365801 | MDU6SXNzdWU2MzczNjU4MDE= | 836 | actor_matches_allow fails to consider all keys | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 0 | 2020-06-11T22:46:34Z | 2020-06-11T22:47:25Z | 2020-06-11T22:47:25Z | OWNER | actor: allow block: This should pass, because the |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/836/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
637253789 | MDU6SXNzdWU2MzcyNTM3ODk= | 833 | /-/metadata and so on should respect view-instance permission | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 4 | 2020-06-11T19:07:21Z | 2020-06-11T22:15:32Z | 2020-06-11T22:14:59Z | OWNER | The only URLs that should be available without authentication at all times are the |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/833/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
632919570 | MDExOlB1bGxSZXF1ZXN0NDI5NjEzODkz | 809 | Publish secrets | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 4 | 2020-06-07T02:00:31Z | 2020-06-11T16:02:13Z | 2020-06-11T16:02:03Z | OWNER | simonw/datasette/pulls/809 | Refs #787. Will need quite a bit of manual testing since this involves code which runs against Heroku and Cloud Run. |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/809/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | ||||
628089318 | MDU6SXNzdWU2MjgwODkzMTg= | 787 | "datasette publish" should bake in a random --secret | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 1 | 2020-06-01T01:15:26Z | 2020-06-11T16:02:05Z | 2020-06-11T16:02:05Z | OWNER | To allow signed cookies etc to work reliably (see #785) all of the
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/787/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
634917088 | MDU6SXNzdWU2MzQ5MTcwODg= | 818 | Example permissions plugin | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 9 | 2020-06-08T20:35:56Z | 2020-06-11T05:40:07Z | 2020-06-11T05:40:07Z | OWNER | To show how they work. Also useful to confirm how they interact with the default permissions. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/818/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
636614868 | MDU6SXNzdWU2MzY2MTQ4Njg= | 831 | It would be more intuitive if "allow": none meant "no-one can do this" | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 1 | 2020-06-10T23:43:56Z | 2020-06-10T23:57:25Z | 2020-06-10T23:50:55Z | OWNER | Now that I'm starting to write alternative plugins to control permissions - see #818 - I think I need an easy way to tell Datasette "no-one has permission to do X unless a plugin says otherwise". One relatively intuitive way to do that could be like this:
Right now I think that opens up permissions to everyone, which isn't as obvious. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/831/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
636426530 | MDU6SXNzdWU2MzY0MjY1MzA= | 829 | Ability to set ds_actor cookie such that it expires | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 6 | 2020-06-10T17:31:40Z | 2020-06-10T19:41:35Z | 2020-06-10T19:40:05Z | OWNER | I need this for |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/829/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
635914822 | MDU6SXNzdWU2MzU5MTQ4MjI= | 828 | Horizontal scrollbar on changelog page on mobile | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 3 | 2020-06-10T04:18:54Z | 2020-06-10T04:28:17Z | 2020-06-10T04:28:17Z | OWNER | You can scroll sideways on that page and it looks bad: The cause is these long links: |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/828/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
629541395 | MDU6SXNzdWU2Mjk1NDEzOTU= | 795 | response.set_cookie() method | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 2 | 2020-06-02T21:57:05Z | 2020-06-09T22:33:33Z | 2020-06-09T22:19:48Z | OWNER | Mainly to clean up this code: |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/795/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
635519358 | MDU6SXNzdWU2MzU1MTkzNTg= | 826 | Document the ds_actor signed cookie | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 3 | 2020-06-09T15:06:52Z | 2020-06-09T22:33:12Z | 2020-06-09T22:32:31Z | OWNER | Most authentication plugins (https://github.com/simonw/datasette-auth-github for example) are likely to work by setting the I should document this. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/826/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
632673972 | MDU6SXNzdWU2MzI2NzM5NzI= | 804 | python tests/fixtures.py command has a bug | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 6 | 2020-06-06T19:17:36Z | 2020-06-09T20:01:30Z | 2020-06-09T19:58:34Z | OWNER | This command is meant to write out |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/804/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
635696400 | MDU6SXNzdWU2MzU2OTY0MDA= | 827 | Document CSRF protection (for plugins) | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 1 | 2020-06-09T19:19:10Z | 2020-06-09T19:38:30Z | 2020-06-09T19:35:13Z | OWNER | Plugin authors need to know that if they want to POST a form they should include this:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/827/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
635147716 | MDU6SXNzdWU2MzUxNDc3MTY= | 825 | Way to enable a default=False permission for anonymous users | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 6 | 2020-06-09T06:26:27Z | 2020-06-09T17:19:19Z | 2020-06-09T17:01:10Z | OWNER | I'd like plugins to be able to ship with a default that says "anonymous users cannot do this", but allow site administrators to over-ride that such that anonymous users can use the feature after all. This is tricky because right now the anonymous user doesn't have an actor dictionary at all, so there's no key to match to an allow block. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/825/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
635107393 | MDU6SXNzdWU2MzUxMDczOTM= | 823 | Documentation is inconsistent about "id" as required field on actor | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 3 | 2020-06-09T04:47:58Z | 2020-06-09T14:58:36Z | 2020-06-09T14:58:19Z | OWNER | Docs at https://github.com/simonw/datasette/blob/5a6a73e3190cac103906b479d56129413e5ef190/docs/authentication.rst#actors say:
But the example here returns ```python @hookimpl def actor_from_request(datasette, request): async def inner(): token = request.args.get("_token") if not token: return None # Look up ?_token=xxx in sessions table result = await datasette.get_database().execute( "select count(*) from sessions where token = ?", [token] ) if result.first()[0]: return {"token": token} else: return None
``` |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/823/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
630120235 | MDU6SXNzdWU2MzAxMjAyMzU= | 797 | Documentation for new "params" setting for canned queries | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 3 | 2020-06-03T15:55:11Z | 2020-06-09T04:00:40Z | 2020-06-03T21:04:51Z | OWNER | datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/797/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | ||||||
635077656 | MDU6SXNzdWU2MzUwNzc2NTY= | 822 | request.url_vars helper property | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 2 | 2020-06-09T03:15:53Z | 2020-06-09T03:40:07Z | 2020-06-09T03:40:06Z | OWNER | This example: https://github.com/simonw/datasette/blob/f5e79adf26d0daa3831e3fba022f1b749a9efdee/docs/plugins.rst#register_routes ```python from datasette.utils.asgi import Response import html async def hello_from(scope): name = scope["url_route"]["kwargs"]["name"] return Response.html("Hello from {}".format( html.escape(name) )) @hookimpl
def register_routes():
return [
(r"^/hello-from/(?P<name>.*)$"), hello_from)
]
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/822/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
635076066 | MDU6SXNzdWU2MzUwNzYwNjY= | 821 | Add Response class to internals documentation | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 0 | 2020-06-09T03:11:06Z | 2020-06-09T03:32:16Z | 2020-06-09T03:32:16Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/datasette/issues/215#issuecomment-640971470 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/821/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
314506669 | MDU6SXNzdWUzMTQ1MDY2Njk= | 215 | Allow plugins to define additional URL routes and views | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 14 | 2018-04-16T05:31:09Z | 2020-06-09T03:14:32Z | 2020-06-09T03:12:08Z | OWNER | Might be as simple as having plugins get passed the Refs #14 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/215/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
635037204 | MDExOlB1bGxSZXF1ZXN0NDMxNDc4NzI0 | 819 | register_routes() plugin hook | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 0 | 2020-06-09T01:20:44Z | 2020-06-09T03:12:08Z | 2020-06-09T03:12:07Z | OWNER | simonw/datasette/pulls/819 | Refs #215 |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/819/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | ||||
626171242 | MDU6SXNzdWU2MjYxNzEyNDI= | 777 | Error pages not correctly loading CSS | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 4 | 2020-05-28T02:47:52Z | 2020-06-09T00:35:29Z | 2020-06-09T00:35:29Z | OWNER | e.g. https://latest.datasette.io/fixtures/compound_three_primary_keys.tsv?_size=max The HTML starts like this: ```html <html> <head> <title>Error 404</title> <link rel="stylesheet" href="-/static/app.css?"> ``` |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/777/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
634139848 | MDU6SXNzdWU2MzQxMzk4NDg= | 813 | Mechanism for specifying allow_sql permission in metadata.json | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 6 | 2020-06-08T04:57:19Z | 2020-06-09T00:09:57Z | 2020-06-09T00:07:19Z | OWNER | Split from #811. It would be useful if finely-grained permissions configured in We have a permission check call for this already: https://github.com/simonw/datasette/blob/9397d718345c4b35d2a5c55bfcbd1468876b5ab9/datasette/views/database.py#L159 But there's currently no way to implement this check without writing a plugin. I think a |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/813/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
633578769 | MDU6SXNzdWU2MzM1Nzg3Njk= | 811 | Support "allow" block on root, databases and tables, not just queries | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 16 | 2020-06-07T17:01:09Z | 2020-06-08T19:34:00Z | 2020-06-08T19:32:36Z | OWNER | No reason not to expand the "allow" mechanism described here to the root of Refs #810 and #800.
TODO:
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/811/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
628499086 | MDU6SXNzdWU2Mjg0OTkwODY= | 790 | "flash messages" mechanism | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 20 | 2020-06-01T14:55:44Z | 2020-06-08T19:33:59Z | 2020-06-02T21:14:03Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/datasette/pull/703 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/790/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
634783573 | MDU6SXNzdWU2MzQ3ODM1NzM= | 816 | Come up with a new example for extra_template_vars plugin | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 2 | 2020-06-08T16:57:59Z | 2020-06-08T19:06:44Z | 2020-06-08T19:06:11Z | OWNER | This example is obsolete, it's from a time before |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/816/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
633066114 | MDU6SXNzdWU2MzMwNjYxMTQ= | 810 | Refactor permission check for canned query | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 1 | 2020-06-07T05:33:05Z | 2020-06-07T17:03:15Z | 2020-06-07T17:03:15Z | OWNER | This code here (TODO is follow-on from #808). I can improve this with extra code in https://github.com/simonw/datasette/blob/86dec9e8fffd6c4efec928ae9b5713748dec7e74/datasette/default_permissions.py |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/810/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
631931408 | MDU6SXNzdWU2MzE5MzE0MDg= | 800 | Canned query permissions mechanism | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 14 | 2020-06-05T20:28:21Z | 2020-06-07T16:22:53Z | 2020-06-07T16:22:53Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/datasette/issues/698#issuecomment-639784651 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/800/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
632918799 | MDU6SXNzdWU2MzI5MTg3OTk= | 808 | Permission check for every view in Datasette (plus docs) | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 2 | 2020-06-07T01:59:23Z | 2020-06-07T05:30:49Z | 2020-06-07T05:30:49Z | OWNER | Every view in Datasette should perform a permission check to see if the current user/actor is allowed to view that page. This permission check will default to allowed, but having this check will allow plugins to lock down access selectively or even to everything in a Datasette instance. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/808/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
582517965 | MDU6SXNzdWU1ODI1MTc5NjU= | 698 | Ability for a canned query to write to the database | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 26 | 2020-03-16T18:31:59Z | 2020-06-06T19:43:49Z | 2020-06-06T19:43:48Z | OWNER | Canned queries are currently read-only: https://datasette.readthedocs.io/en/0.38/sql_queries.html#canned-queries Add a Then they can be used as a really quick way to define a writable interface and JSON API! |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/698/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
582526961 | MDU6SXNzdWU1ODI1MjY5NjE= | 699 | Authentication (and permissions) as a core concept | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 40 | 2020-03-16T18:48:00Z | 2020-06-06T19:42:11Z | 2020-06-06T19:42:11Z | OWNER | Right now Datasette authentication is provided exclusively by plugins:
This is an all-or-nothing approach: either your Datasette instance requires authentication at the top level or it does not. But... as I build new plugins like https://github.com/simonw/datasette-configure-fts and https://github.com/simonw/datasette-edit-tables I increasingly have individual features which should be reserved for logged-in users while still wanting other parts of Datasette to be open to all. This is too much for plugins to own independently of Datasette core. Datasette needs to ship a single "user is authenticated" concept (independent of how users actually sign in) so that different plugins can integrate with it. |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/699/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
628087971 | MDU6SXNzdWU2MjgwODc5NzE= | 786 | Documentation page describing Datasette's authentication system | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 2 | 2020-06-01T01:10:06Z | 2020-06-06T19:40:20Z | 2020-06-06T19:40:20Z | OWNER | Originally posted by @simonw in https://github.com/simonw/datasette/issues/699#issuecomment-636562999 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/786/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
629524205 | MDU6SXNzdWU2Mjk1MjQyMDU= | 793 | CSRF protection for /-/messages tool and writable canned queries | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 3 | 2020-06-02T21:22:21Z | 2020-06-06T00:43:41Z | 2020-06-05T19:05:59Z | OWNER |
|
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/793/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
completed | |||||
631300342 | MDExOlB1bGxSZXF1ZXN0NDI4MjEyNDIx | 798 | CSRF protection | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 5 | 2020-06-05T04:22:35Z | 2020-06-06T00:43:41Z | 2020-06-05T19:05:58Z | OWNER | simonw/datasette/pulls/798 | Refs #793 |
datasette 107914493 | pull | { "url": "https://api.github.com/repos/simonw/datasette/issues/798/reactions", "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
0 | ||||
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 | |||||
628121234 | MDU6SXNzdWU2MjgxMjEyMzQ= | 788 | /-/permissions debugging tool | simonw 9599 | closed | 0 | Datasette 0.44 5512395 | 2 | 2020-06-01T03:13:47Z | 2020-06-06T00:43:40Z | 2020-06-01T05:01:01Z | OWNER |
Originally posted by @simonw in https://github.com/simonw/datasette/issues/699#issuecomment-636576603 |
datasette 107914493 | issue | { "url": "https://api.github.com/repos/simonw/datasette/issues/788/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]);