issue_comments
4 rows where issue = 1154399841
This data as json, CSV (advanced)
Suggested facets: reactions, created_at (date), updated_at (date)
id ▼ | html_url | issue_url | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
1059633902 | https://github.com/simonw/datasette/issues/1645#issuecomment-1059633902 | https://api.github.com/repos/simonw/datasette/issues/1645 | IC_kwDOBm6k_c4_KLru | simonw 9599 | 2022-03-05T01:03:06Z | 2022-03-05T01:03:06Z | OWNER | I agree: this is bad. Ideally, content served from `/static/` would apply best practices for static content serving - which to my mind means the following: - Where possible, serve with a far-future cache expiry header and use an asset URL that changes when the file itself changes - For assets without that, support conditional GET to avoid transferring the whole asset if it hasn't changed - Some kind of sensible mechanism for setting cache TTLs on assets that don't have a unique-file-per-version - in particular assets that might be served from plugins. Datasette half-implemented the first of these: if you view source on https://latest.datasette.io/ you'll see it links to `/-/static/app.css?cead5a` - which in the template looks like this: https://github.com/simonw/datasette/blob/dd94157f8958bdfe9f45575add934ccf1aba6d63/datasette/templates/base.html#L5 I had forgotten I had implemented this! Here is how it is calculated: https://github.com/simonw/datasette/blob/458f03ad3a454d271f47a643f4530bd8b60ddb76/datasette/app.py#L510-L516 So `app.css` right now could be safely served with a far-future cache header... only it isn't: ``` ~ % curl -i 'https://latest.datasette.io/-/static/app.css?cead5a' HTTP/2 200 content-type: text/css x-databases: _memory, _internal, fixtures, extra_database x-cloud-trace-context: 9ddc825620eb53d30fc127d1c750f342 date: Sat, 05 Mar 2022 01:01:53 GMT server: Google Frontend content-length: 16178 ``` The larger question though is what to do about other assets. I'm particularly interested in plugin assets, since visualization plugins like `datasette-vega` and `datasette-cluster-map` ship with large amounts of JavaScript and I'd really like that to be sensibly cached by default. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Sensible `cache-control` headers for static assets, including those served by plugins 1154399841 | |
1059634412 | https://github.com/simonw/datasette/issues/1645#issuecomment-1059634412 | https://api.github.com/repos/simonw/datasette/issues/1645 | IC_kwDOBm6k_c4_KLzs | simonw 9599 | 2022-03-05T01:04:53Z | 2022-03-05T01:04:53Z | OWNER | The existing `app_css_hash` already isn't good enough, because I built that before `table.js` existed, and that file should obviously be smartly cached too. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Sensible `cache-control` headers for static assets, including those served by plugins 1154399841 | |
1059634688 | https://github.com/simonw/datasette/issues/1645#issuecomment-1059634688 | https://api.github.com/repos/simonw/datasette/issues/1645 | IC_kwDOBm6k_c4_KL4A | simonw 9599 | 2022-03-05T01:06:08Z | 2022-03-05T01:06:08Z | OWNER | It sounds like you can workaround this with Varnish configuration for the moment, but I'm going to bump this up the list of things to fix - it's particularly relevant now as I'd like to get a solution in place before Datasette 1.0, since it's likely to be beneficial to plugins and hence should be part of the stable, documented plugin interface. | {"total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Sensible `cache-control` headers for static assets, including those served by plugins 1154399841 | |
1061355871 | https://github.com/simonw/datasette/issues/1645#issuecomment-1061355871 | https://api.github.com/repos/simonw/datasette/issues/1645 | IC_kwDOBm6k_c4_QwFf | simonw 9599 | 2022-03-08T02:59:28Z | 2022-03-08T02:59:28Z | OWNER | Hah, found a TODO about this: https://github.com/simonw/datasette/blob/c5791156d92615f25696ba93dae5bb2dcc192c98/datasette/app.py#L997-L999 | {"total_count": 1, "+1": 0, "-1": 0, "laugh": 1, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0} | Sensible `cache-control` headers for static assets, including those served by plugins 1154399841 |
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]);