issue_comments
38 rows where author_association = "OWNER", issue = 582526961 and user = 9599 sorted by updated_at descending
This data as json, CSV (advanced)
issue 1
- Authentication (and permissions) as a core concept · 38 ✖
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
640108763 | https://github.com/simonw/datasette/issues/699#issuecomment-640108763 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDY0MDEwODc2Mw== | simonw 9599 | 2020-06-06T19:42:11Z | 2020-06-06T19:42:11Z | OWNER | I landed canned query writes. This feature can now be considered complete: https://datasette.readthedocs.io/en/latest/authentication.html |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
640106668 | https://github.com/simonw/datasette/issues/699#issuecomment-640106668 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDY0MDEwNjY2OA== | simonw 9599 | 2020-06-06T19:22:36Z | 2020-06-06T19:22:36Z | OWNER | The canned queries feature is gaining permissions support in #800. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
637819025 | https://github.com/simonw/datasette/issues/699#issuecomment-637819025 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNzgxOTAyNQ== | simonw 9599 | 2020-06-02T21:34:31Z | 2020-06-02T21:34:31Z | OWNER | I can close this issue once I've expanded out this page of documentation https://datasette.readthedocs.io/en/latest/authentication.html - and published at least one plugin and/or feature that takes advantage of this new mechanism. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636576603 | https://github.com/simonw/datasette/issues/699#issuecomment-636576603 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjU3NjYwMw== | simonw 9599 | 2020-06-01T02:13:26Z | 2020-06-01T03:13:31Z | OWNER | Debugging tool idea: Bonus: if you're logged in as the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636576252 | https://github.com/simonw/datasette/issues/699#issuecomment-636576252 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjU3NjI1Mg== | simonw 9599 | 2020-06-01T02:11:40Z | 2020-06-01T02:11:40Z | OWNER | Plugin idea: |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636566616 | https://github.com/simonw/datasette/issues/699#issuecomment-636566616 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjU2NjYxNg== | simonw 9599 | 2020-06-01T01:23:48Z | 2020-06-01T01:23:48Z | OWNER | https://latest.datasette.io/-/actor is now live (it returns |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636566433 | https://github.com/simonw/datasette/issues/699#issuecomment-636566433 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjU2NjQzMw== | simonw 9599 | 2020-06-01T01:22:59Z | 2020-06-01T01:22:59Z | OWNER | Some next steps:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636565610 | https://github.com/simonw/datasette/issues/699#issuecomment-636565610 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjU2NTYxMA== | simonw 9599 | 2020-06-01T01:19:45Z | 2020-06-01T01:19:45Z | OWNER | I rebased in #783 so all of this is on master now. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636562999 | https://github.com/simonw/datasette/issues/699#issuecomment-636562999 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjU2Mjk5OQ== | simonw 9599 | 2020-06-01T01:09:47Z | 2020-06-01T01:09:47Z | OWNER | I should add an entire page to the documentation describing Datasette authentication. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636562658 | https://github.com/simonw/datasette/issues/699#issuecomment-636562658 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjU2MjY1OA== | simonw 9599 | 2020-06-01T01:08:20Z | 2020-06-01T01:08:54Z | OWNER | OK, the implementation in PR #783 is in a good state now - it implements the new plugin hooks with tests and documentation, plus it implements this:
That URL, when clicked, will set a cookie for the I'm going to merge that pull request and continue working on this stuff on master. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636510761 | https://github.com/simonw/datasette/issues/699#issuecomment-636510761 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjUxMDc2MQ== | simonw 9599 | 2020-05-31T18:38:30Z | 2020-05-31T18:38:30Z | OWNER | I quite like |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636510647 | https://github.com/simonw/datasette/issues/699#issuecomment-636510647 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjUxMDY0Nw== | simonw 9599 | 2020-05-31T18:37:39Z | 2020-05-31T18:37:39Z | OWNER | Maybe the default single account should be called something other than |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636510398 | https://github.com/simonw/datasette/issues/699#issuecomment-636510398 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjUxMDM5OA== | simonw 9599 | 2020-05-31T18:35:57Z | 2020-05-31T18:36:05Z | OWNER | Again I will use exploratory prototyping to inform a decision on the minimum subset design for the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636510303 | https://github.com/simonw/datasette/issues/699#issuecomment-636510303 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjUxMDMwMw== | simonw 9599 | 2020-05-31T18:35:17Z | 2020-05-31T18:35:17Z | OWNER | Keeping the structure of the actor dictionary completely undefined doesn't make sense if Datasette is going to ship with a default authentication mechanism for admin users. I'm going to define a small set of required keys for the actor dictionary, and enforce them in code. But which keys? I feel I need a unique key representing the identity of the actor, plus a key that can be displayed in the "You are logged in as X" navigation. Maybe these are the same key? So the single required key could be Maybe |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636498913 | https://github.com/simonw/datasette/issues/699#issuecomment-636498913 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjQ5ODkxMw== | simonw 9599 | 2020-05-31T17:04:50Z | 2020-05-31T17:06:40Z | OWNER | This also means some writable canned queries can allow writes from unauthenticated users (for stuff like feedback forms), while others can require an authenticated user - all with core Datasette without any plugins needed. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636499075 | https://github.com/simonw/datasette/issues/699#issuecomment-636499075 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjQ5OTA3NQ== | simonw 9599 | 2020-05-31T17:06:09Z | 2020-05-31T17:06:09Z | OWNER | I believe that this plugin hook design is flexible enough that role-based permissions could be built on top of it as a separate plugin. Would be good to check that with a proof of concept though. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636498770 | https://github.com/simonw/datasette/issues/699#issuecomment-636498770 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjQ5ODc3MA== | simonw 9599 | 2020-05-31T17:03:38Z | 2020-05-31T17:03:38Z | OWNER | I'm going to draw the line here: default Datasette supports authentication but only for a single user account ("admin"). Plugins can then add support for multiple user accounts, social auth, SSO etc. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636495124 | https://github.com/simonw/datasette/issues/699#issuecomment-636495124 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjQ5NTEyNA== | simonw 9599 | 2020-05-31T16:36:08Z | 2020-05-31T16:36:08Z | OWNER | HTTP Basic auth would be a good default option. No need to build a custom login UI for it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636495005 | https://github.com/simonw/datasette/issues/699#issuecomment-636495005 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjQ5NTAwNQ== | simonw 9599 | 2020-05-31T16:35:10Z | 2020-05-31T16:35:26Z | OWNER | I think I want to keep full username/password authentication against a database table as a plugin. I'll experiment with Jupyter-style URLs as a starting point. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636494374 | https://github.com/simonw/datasette/issues/699#issuecomment-636494374 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjQ5NDM3NA== | simonw 9599 | 2020-05-31T16:29:48Z | 2020-05-31T16:29:48Z | OWNER | If Datasette were to support authentication out-of-the-box, without plugins (which makes more sense with writable canned queries, #698) what would that look like? Some options:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636395263 | https://github.com/simonw/datasette/issues/699#issuecomment-636395263 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM5NTI2Mw== | simonw 9599 | 2020-05-30T22:54:09Z | 2020-05-30T22:54:09Z | OWNER | Idea: add a |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636393204 | https://github.com/simonw/datasette/issues/699#issuecomment-636393204 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM5MzIwNA== | simonw 9599 | 2020-05-30T22:29:44Z | 2020-05-30T22:30:15Z | OWNER | Robust testing of permissions is really important. I should think about utilities I may be able to add to Datasette's unit testing tools that make it as easy as possible to confirm which permission checks were carried out on a specific HTTP request. That way I can set a good example that any Datasette plugin which makes permission checks can follow. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636392850 | https://github.com/simonw/datasette/issues/699#issuecomment-636392850 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM5Mjg1MA== | simonw 9599 | 2020-05-30T22:25:19Z | 2020-05-30T22:25:19Z | OWNER | The branch is now usable! Next step: write some experimental plugins that exercise some real authentication use-cases with it. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636391331 | https://github.com/simonw/datasette/issues/699#issuecomment-636391331 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM5MTMzMQ== | simonw 9599 | 2020-05-30T22:08:21Z | 2020-05-30T22:08:21Z | OWNER | I'm going to add an awaitable utility method to the Datasette class for checking permissions:
The second two arguments will be optional. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636388288 | https://github.com/simonw/datasette/issues/699#issuecomment-636388288 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM4ODI4OA== | simonw 9599 | 2020-05-30T21:34:50Z | 2020-05-30T21:34:50Z | OWNER | Debugging permissions is going to be important. Optional tooling that supports the following would be useful:
That last one is tricky if permissions are just strings that might be passed to |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636379067 | https://github.com/simonw/datasette/issues/699#issuecomment-636379067 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM3OTA2Nw== | simonw 9599 | 2020-05-30T20:12:47Z | 2020-05-30T20:40:42Z | OWNER | I could bake some permission checks into default Datasette, which are all treated as allow by default but can then be locked down by plugins. Maybe the following:
Checks that current user can execute arbitrary SQL queries against a specific database (or use the
Can the user download the database file? Like allow_download. Maybe one for allow_csv_stream too. Having a permission check (defaulting to True) on every single "view" would be useful:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636381732 | https://github.com/simonw/datasette/issues/699#issuecomment-636381732 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM4MTczMg== | simonw 9599 | 2020-05-30T20:32:11Z | 2020-05-30T20:39:11Z | OWNER | I started sketching this out in the authentication branch. Here's the documentation so far: https://github.com/simonw/datasette/blob/8871c20/docs/plugins.rst#actor_from_requestdatasette-request |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636376209 | https://github.com/simonw/datasette/issues/699#issuecomment-636376209 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM3NjIwOQ== | simonw 9599 | 2020-05-30T19:53:28Z | 2020-05-30T20:09:10Z | OWNER | I think there are two hooks here:
A non-None value means the request is authenticated in some way. The shape of that dictionary is entirely undefined. The second hook is for checking permissions. It can look something like this:
I don't know if Datasette should provide default implementations of these hooks. It may be that leaving them completely up to plugins is the way to go. I think I need to prototype this quickly to start feeling for how well it might work. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636376893 | https://github.com/simonw/datasette/issues/699#issuecomment-636376893 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM3Njg5Mw== | simonw 9599 | 2020-05-30T19:57:54Z | 2020-05-30T20:09:05Z | OWNER |
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636376974 | https://github.com/simonw/datasette/issues/699#issuecomment-636376974 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM3Njk3NA== | simonw 9599 | 2020-05-30T19:58:40Z | 2020-05-30T20:08:59Z | OWNER | Maybe call that |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636378228 | https://github.com/simonw/datasette/issues/699#issuecomment-636378228 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM3ODIyOA== | simonw 9599 | 2020-05-30T20:07:25Z | 2020-05-30T20:07:25Z | OWNER | I like "actor" better than "entity" to mean "the user or API key that is authenticated for this request". I'm going to use "resource" instead of "subject" - updating the design comment again. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636378121 | https://github.com/simonw/datasette/issues/699#issuecomment-636378121 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM3ODEyMQ== | simonw 9599 | 2020-05-30T20:06:47Z | 2020-05-30T20:06:47Z | OWNER | In AWS IAM world the following terminology is used: https://aws.amazon.com/iam/features/manage-permissions/
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636377755 | https://github.com/simonw/datasette/issues/699#issuecomment-636377755 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM3Nzc1NQ== | simonw 9599 | 2020-05-30T20:04:23Z | 2020-05-30T20:04:23Z | OWNER | My usage of the term |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
636377235 | https://github.com/simonw/datasette/issues/699#issuecomment-636377235 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYzNjM3NzIzNQ== | simonw 9599 | 2020-05-30T20:00:42Z | 2020-05-30T20:01:35Z | OWNER | I'm changing |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
626945281 | https://github.com/simonw/datasette/issues/699#issuecomment-626945281 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYyNjk0NTI4MQ== | simonw 9599 | 2020-05-11T20:32:33Z | 2020-05-11T20:32:33Z | OWNER | I did have a bit of trouble with this one-off plugin getting it to load in the correct order - since I need authentication to work if EITHER the one-off plugin spots a token or my That's why I want authentication as a core Datasette concept - so plugins like these can easily play together in a predictable manner. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
626943809 | https://github.com/simonw/datasette/issues/699#issuecomment-626943809 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYyNjk0MzgwOQ== | simonw 9599 | 2020-05-11T20:30:07Z | 2020-05-11T20:31:18Z | OWNER | I implemented bearer tokens in a private project of mine as a one-off plugin. I'm going to extract that out into a installable plugin soon. For the moment, my class TokenAuth: def init( self, app, secret, auth, ): self.app = app self.secret = secret self.auth = auth
@hookimpl(trylast=True) def asgi_wrapper(datasette): config = datasette.plugin_config("token-auth") or {} secret = config.get("secret") auth = config.get("auth")
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
611880250 | https://github.com/simonw/datasette/issues/699#issuecomment-611880250 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYxMTg4MDI1MA== | simonw 9599 | 2020-04-10T05:08:54Z | 2020-04-10T05:08:54Z | OWNER | So maybe this is all handled by plugin hooks?
How would a permissions hook work though? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 | |
611879821 | https://github.com/simonw/datasette/issues/699#issuecomment-611879821 | https://api.github.com/repos/simonw/datasette/issues/699 | MDEyOklzc3VlQ29tbWVudDYxMTg3OTgyMQ== | simonw 9599 | 2020-04-10T05:06:56Z | 2020-04-10T05:06:56Z | OWNER | Another problem this would solve: if you want multiple authentication mechanisms - GitHub auth for users, I dealt with this a bit in https://github.com/simonw/datasette-auth-github/issues/59 But having an authentication plugin hook - where playing get to decide if a user should be authenticated based on the incoming ASGI scopes - would be neater. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Authentication (and permissions) as a core concept 582526961 |
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]);
user 1