issue_comments
33 rows where author_association = "OWNER" and "updated_at" is on date 2020-06-01 sorted by updated_at descending
This data as json, CSV (advanced)
Suggested facets: issue_url, created_at (date), updated_at (date)
user 1
- simonw 33
id | html_url | issue_url | node_id | user | created_at | updated_at ▲ | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
637066496 | https://github.com/simonw/datasette/issues/790#issuecomment-637066496 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNzA2NjQ5Ng== | simonw 9599 | 2020-06-01T19:48:20Z | 2020-06-01T19:48:20Z | OWNER | I'm going to stash these on the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
637009509 | https://github.com/simonw/datasette/issues/790#issuecomment-637009509 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNzAwOTUwOQ== | simonw 9599 | 2020-06-01T17:44:55Z | 2020-06-01T17:46:18Z | OWNER | Problem with Solution: call it |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636978065 | https://github.com/simonw/datasette/issues/790#issuecomment-636978065 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjk3ODA2NQ== | simonw 9599 | 2020-06-01T16:42:59Z | 2020-06-01T17:44:12Z | OWNER |
Then later:
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636973355 | https://github.com/simonw/datasette/issues/791#issuecomment-636973355 | https://api.github.com/repos/simonw/datasette/issues/791 | MDEyOklzc3VlQ29tbWVudDYzNjk3MzM1NQ== | simonw 9599 | 2020-06-01T16:33:33Z | 2020-06-01T16:33:33Z | OWNER | A fun thing about this tutorial is that it can start with a classic, basic todo list - and then start growing all kinds of outlandish features to help demonstrate various Datasette plugins and approaches. Your TODOs on a map. URLs in TODOs that have been unfurled. Tag your TODOs and browse them with facets. Vega graphs showing your progress. Etc etc etc. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Tutorial: building a something-interesting with writable canned queries 628572716 | |
636959774 | https://github.com/simonw/datasette/issues/790#issuecomment-636959774 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjk1OTc3NA== | simonw 9599 | 2020-06-01T16:15:33Z | 2020-06-01T16:15:33Z | OWNER | It would be neat if this was driven by a method on |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636934016 | https://github.com/simonw/datasette/issues/790#issuecomment-636934016 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkzNDAxNg== | simonw 9599 | 2020-06-01T15:49:26Z | 2020-06-01T15:49:26Z | OWNER | Flask and Django both support "types" of message - info, warning etc. I think I should do the same. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636925354 | https://github.com/simonw/datasette/issues/790#issuecomment-636925354 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkyNTM1NA== | simonw 9599 | 2020-06-01T15:32:02Z | 2020-06-01T15:32:02Z | OWNER | If The problem then is how do I know to clean up the memory used by that dictionary when the request flows out of the system? I guess the code that updates the cookies in the response could do that. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636922104 | https://github.com/simonw/datasette/issues/790#issuecomment-636922104 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkyMjEwNA== | simonw 9599 | 2020-06-01T15:25:39Z | 2020-06-01T15:25:39Z | OWNER | What if I use a mutable key on ASGI spec says this: https://asgi.readthedocs.io/en/latest/specs/main.html#middleware
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636920304 | https://github.com/simonw/datasette/issues/790#issuecomment-636920304 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkyMDMwNA== | simonw 9599 | 2020-06-01T15:22:15Z | 2020-06-01T15:22:15Z | OWNER | Here's how the Django stuff works: https://github.com/django/django/blob/master/django/contrib/messages/storage/base.py Notably the messages are mostly dealt with on the request object, with a piece of middleware that reads from the request and modifies the response (to set or clear cookies) right at the end: https://github.com/django/django/blob/master/django/contrib/messages/middleware.py |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636916107 | https://github.com/simonw/datasette/issues/790#issuecomment-636916107 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkxNjEwNw== | simonw 9599 | 2020-06-01T15:14:30Z | 2020-06-01T15:15:52Z | OWNER | Alternative: Maybe use a request correlation ID that gets added to the scope? This is all getting a bit messy. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636915499 | https://github.com/simonw/datasette/issues/790#issuecomment-636915499 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkxNTQ5OQ== | simonw 9599 | 2020-06-01T15:13:40Z | 2020-06-01T15:13:40Z | OWNER | Maybe two utility functions:
Problem: the |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636912730 | https://github.com/simonw/datasette/issues/790#issuecomment-636912730 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkxMjczMA== | simonw 9599 | 2020-06-01T15:08:13Z | 2020-06-01T15:08:13Z | OWNER | I'm going to build the first version of this with signed cookies. I'm inclined to do this all on the request object, since it's the object representing the current request as it flows through the application. I need the ability to remember which messages were set and which need to be cleared, so I need to do that on something that is available for the lifetime of the request. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636908972 | https://github.com/simonw/datasette/issues/790#issuecomment-636908972 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkwODk3Mg== | simonw 9599 | 2020-06-01T15:01:00Z | 2020-06-01T15:01:00Z | OWNER | Setting messages just needs access to the response. Reading messages needs access to both request AND response, since it needs to clear the messages that are being displayed. That's if the messages are persisted exclusively in cookies - which makes sense for Django since it's designed to run as many different load-balanced processes. Since Datasette is a single process which can access an on-file database, maybe consider storing the flash messages within Datasette memory itself - a sort of session mechanism? |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636906773 | https://github.com/simonw/datasette/issues/790#issuecomment-636906773 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkwNjc3Mw== | simonw 9599 | 2020-06-01T14:57:02Z | 2020-06-01T14:58:14Z | OWNER | Actually I'm inclined to use cookies now, ala Django: https://docs.djangoproject.com/en/3.0/ref/contrib/messages/
|
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636906581 | https://github.com/simonw/datasette/issues/790#issuecomment-636906581 | https://api.github.com/repos/simonw/datasette/issues/790 | MDEyOklzc3VlQ29tbWVudDYzNjkwNjU4MQ== | simonw 9599 | 2020-06-01T14:56:42Z | 2020-06-01T14:56:42Z | OWNER | I can use the new signed values support from #785 to help build this. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
"flash messages" mechanism 628499086 | |
636617140 | https://github.com/simonw/datasette/issues/698#issuecomment-636617140 | https://api.github.com/repos/simonw/datasette/issues/698 | MDEyOklzc3VlQ29tbWVudDYzNjYxNzE0MA== | simonw 9599 | 2020-06-01T05:14:39Z | 2020-06-01T05:14:39Z | OWNER | Here's the new |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for a canned query to write to the database 582517965 | |
636616638 | https://github.com/simonw/datasette/issues/788#issuecomment-636616638 | https://api.github.com/repos/simonw/datasette/issues/788 | MDEyOklzc3VlQ29tbWVudDYzNjYxNjYzOA== | simonw 9599 | 2020-06-01T05:12:30Z | 2020-06-01T05:12:30Z | OWNER | Looks like this (at the moment): |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
/-/permissions debugging tool 628121234 | |
636616307 | https://github.com/simonw/datasette/issues/789#issuecomment-636616307 | https://api.github.com/repos/simonw/datasette/issues/789 | MDEyOklzc3VlQ29tbWVudDYzNjYxNjMwNw== | simonw 9599 | 2020-06-01T05:11:03Z | 2020-06-01T05:11:03Z | OWNER | Or I could get fancy and implement my own |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for enabling pluggy tracing 628156527 | |
636616155 | https://github.com/simonw/datasette/issues/789#issuecomment-636616155 | https://api.github.com/repos/simonw/datasette/issues/789 | MDEyOklzc3VlQ29tbWVudDYzNjYxNjE1NQ== | simonw 9599 | 2020-06-01T05:10:27Z | 2020-06-01T05:10:27Z | OWNER | Easiest way to do this would be with an environment variable. |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Mechanism for enabling pluggy tracing 628156527 | |
636614062 | https://github.com/simonw/datasette/issues/786#issuecomment-636614062 | https://api.github.com/repos/simonw/datasette/issues/786 | MDEyOklzc3VlQ29tbWVudDYzNjYxNDA2Mg== | simonw 9599 | 2020-06-01T05:02:18Z | 2020-06-01T05:02:18Z | OWNER | The skeleton of this page now exists at 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 } |
Documentation page describing Datasette's authentication system 628087971 | |
636598949 | https://github.com/simonw/datasette/issues/788#issuecomment-636598949 | https://api.github.com/repos/simonw/datasette/issues/788 | MDEyOklzc3VlQ29tbWVudDYzNjU5ODk0OQ== | simonw 9599 | 2020-06-01T03:53:00Z | 2020-06-01T03:53:00Z | OWNER | I can use a deque with a max length for this: https://docs.python.org/3/library/collections.html#deque-objects |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
/-/permissions debugging tool 628121234 | |
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 | |
636569917 | https://github.com/simonw/datasette/issues/698#issuecomment-636569917 | https://api.github.com/repos/simonw/datasette/issues/698 | MDEyOklzc3VlQ29tbWVudDYzNjU2OTkxNw== | simonw 9599 | 2020-06-01T01:39:44Z | 2020-06-01T01:39:44Z | OWNER | Idea for the authentication piece: I'll have the canned query code execute the following:
This will be the first time the new |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability for a canned query to write to the database 582517965 | |
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 | |
636565242 | https://github.com/simonw/datasette/issues/784#issuecomment-636565242 | https://api.github.com/repos/simonw/datasette/issues/784 | MDEyOklzc3VlQ29tbWVudDYzNjU2NTI0Mg== | simonw 9599 | 2020-06-01T01:18:20Z | 2020-06-01T01:18:20Z | OWNER | I'm considering this done. I'm going to leave it to plugins to implement a web-based sign-in flow for accounts (at least for the moment). |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to sign in to Datasette as a root account 628003707 | |
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 | |
636554258 | https://github.com/simonw/datasette/issues/784#issuecomment-636554258 | https://api.github.com/repos/simonw/datasette/issues/784 | MDEyOklzc3VlQ29tbWVudDYzNjU1NDI1OA== | simonw 9599 | 2020-06-01T00:21:33Z | 2020-06-01T00:21:33Z | OWNER | The URL for this will be:
The token will be generated by Datasette on startup and will only be valid for a single request, at which point it will be used to set a signed |
{ "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
Ability to sign in to Datasette as a root account 628003707 | |
636553736 | https://github.com/simonw/datasette/issues/785#issuecomment-636553736 | https://api.github.com/repos/simonw/datasette/issues/785 | MDEyOklzc3VlQ29tbWVudDYzNjU1MzczNg== | simonw 9599 | 2020-06-01T00:18:40Z | 2020-06-01T00:18:40Z | OWNER | { "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 | ||
636541827 | https://github.com/simonw/datasette/issues/785#issuecomment-636541827 | https://api.github.com/repos/simonw/datasette/issues/785 | MDEyOklzc3VlQ29tbWVudDYzNjU0MTgyNw== | simonw 9599 | 2020-05-31T22:46:34Z | 2020-06-01T00:17:35Z | OWNER | This is nearly ready to close. I'm going to add documentation for |
{ "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 |
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]);
issue 9