{"html_url": "https://github.com/simonw/datasette/issues/741#issuecomment-744142692", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/741", "id": 744142692, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDE0MjY5Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-12-14T03:28:56Z", "updated_at": "2020-12-14T03:28:56Z", "author_association": "OWNER", "body": "I'm going to try this out on `datasette-publish-vercel` first.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 607223136, "label": "Replace \"datasette publish --extra-options\" with \"--setting\""}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1143#issuecomment-744249157", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1143", "id": 744249157, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDI0OTE1Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-12-14T07:53:15Z", "updated_at": "2020-12-14T07:53:15Z", "author_association": "OWNER", "body": "Does this plugin do everything you need? https://github.com/simonw/datasette-cors\r\n\r\nI'm open to arguments as to why this should be in core rather than in a plugin - I'm on the fence about that at the moment.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 764059235, "label": "More flexible CORS support in core, to encourage good security practices"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1142#issuecomment-744251252", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1142", "id": 744251252, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDI1MTI1Mg==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-12-14T07:56:38Z", "updated_at": "2020-12-14T07:56:38Z", "author_association": "OWNER", "body": "That's a really solid design for this! I'd be very happy to review a pull request - you should be able to implement this with just template edits and some CSS changes I think.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 763361458, "label": "\"Stream all rows\" is not at all obvious"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/276#issuecomment-744461856", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/276", "id": 744461856, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDQ2MTg1Ng==", "user": {"value": 296686, "label": "robintw"}, "created_at": "2020-12-14T14:04:57Z", "updated_at": "2020-12-14T14:04:57Z", "author_association": "NONE", "body": "I'm looking into using datasette with a database with spatialite geometry columns, and came across this issue. Has there been any progress on this since 2018?\r\n\r\nIn one of my tables I'm just storing lat/lon points in a spatialite point geometry, and I've managed to make datasette-cluster-map display the points by extracting the lat and lon in SQL - using something like `select ... ST_X(location) as longitude, ST_Y(location) as latitude from Blah`. Something more 'built-in' would be great though - particularly for the tables I have that store more complex geometries.", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 324835838, "label": "Handle spatialite geometry columns better"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/pull/1145#issuecomment-744475543", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1145", "id": 744475543, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDQ3NTU0Mw==", "user": {"value": 22429695, "label": "codecov[bot]"}, "created_at": "2020-12-14T14:26:25Z", "updated_at": "2020-12-14T14:26:25Z", "author_association": "NONE", "body": "# [Codecov](https://codecov.io/gh/simonw/datasette/pull/1145?src=pr&el=h1) Report\n> Merging [#1145](https://codecov.io/gh/simonw/datasette/pull/1145?src=pr&el=desc) (a8588f9) into [main](https://codecov.io/gh/simonw/datasette/commit/0c616f732cee79db80cad830917666f41b344262?el=desc) (0c616f7) will **not change** coverage.\n> The diff coverage is `n/a`.\n\n[![Impacted file tree graph](https://codecov.io/gh/simonw/datasette/pull/1145/graphs/tree.svg?width=650&height=150&src=pr&token=eSahVY7kw1)](https://codecov.io/gh/simonw/datasette/pull/1145?src=pr&el=tree)\n\n```diff\n@@ Coverage Diff @@\n## main #1145 +/- ##\n=======================================\n Coverage 91.41% 91.41% \n=======================================\n Files 31 31 \n Lines 3881 3881 \n=======================================\n Hits 3548 3548 \n Misses 333 333 \n```\n\n\n\n------\n\n[Continue to review full report at Codecov](https://codecov.io/gh/simonw/datasette/pull/1145?src=pr&el=continue).\n> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)\n> `\u0394 = absolute (impact)`, `\u00f8 = not affected`, `? = missing data`\n> Powered by [Codecov](https://codecov.io/gh/simonw/datasette/pull/1145?src=pr&el=footer). Last update [0c616f7...a8588f9](https://codecov.io/gh/simonw/datasette/pull/1145?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 766494367, "label": "Update pytest requirement from <6.2.0,>=5.2.2 to >=5.2.2,<6.3.0"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1144#issuecomment-744489028", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1144", "id": 744489028, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDQ4OTAyOA==", "user": {"value": 475613, "label": "MarkusH"}, "created_at": "2020-12-14T14:47:11Z", "updated_at": "2020-12-14T14:47:11Z", "author_association": "NONE", "body": "Thanks for opening the issue, @simonw. Let me elaborate on my Tweets.\r\n\r\n[datasette-chartjs](https://github.com/MarkusH/datasette-chartjs) provides drop down lists to pick the chart visualization (e.g. bar, line, doughnut, pie, ...) as well as the column used for the \"x axis\" (e.g. time).\r\n\r\nA user can change the values on-demand. The chart will be redrawn w/o querying the database again.\r\n\r\nHowever, if a user wants to change the underlying query, they will use the SQL field provided by datasette or any of the other datasette built-in features to amend a query. In order to maintain a user's selections for the plugin, datasette-chartjs copies some parts of [datasette-vega](https://github.com/simonw/datasette-vega) which persist the chosen visualization and column in the hash part of a URL (the stuff behind the `#`). The plugin load the config from the hash upon initialization on the next page and use it accordingly.\r\n\r\nAdditionally, datasette-vega and datasette-chartjs need to make sure to include the hash in all links and forms that cause a reload of the page. This is, such that the config persists between clicks.\r\n\r\nThis ticket is about moving thes parts into datasette that provide the functionality to do so. This includes:\r\n\r\n1. a way to load config options with a given prefix from the current URL hash\r\n1. a way to update the current URL hash with a new config value or a bunch of config options\r\n1. updating all necessary links and forms on the current page to include the URL hash whenever its updated\r\n1. to prevent leaking config options to external pages, only \"internal\" links should be updated\r\n\r\nThere's another, optional, feature that we might want to think about during the design phase: the scope of the config. Links within a datasette instance have 1 of 3 scopes:\r\n\r\n1. global, for the whole datasette project\r\n1. database, for all tables in a database\r\n1. table, only for a table within a database\r\n\r\nWhen updating the links and forms as pointed out in 3. above, it might be worth considering which links need to be updated. I could imagine a plugin that wants to persist some setting across all tables within a database but another setting only within a table.", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 765637324, "label": "JavaScript to help plugins interact with the fragment part of the URL"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1142#issuecomment-744522099", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1142", "id": 744522099, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDUyMjA5OQ==", "user": {"value": 6622733, "label": "nitinpaultifr"}, "created_at": "2020-12-14T15:37:47Z", "updated_at": "2020-12-14T15:37:47Z", "author_association": "NONE", "body": "Alright I could give it a try! This might be a stupid question, can you tell me how to run the server from my fork? So that I can test the changes?", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 763361458, "label": "\"Stream all rows\" is not at all obvious"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1142#issuecomment-744563209", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1142", "id": 744563209, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDU2MzIwOQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-12-14T16:41:11Z", "updated_at": "2020-12-14T16:41:11Z", "author_association": "OWNER", "body": "To check out and start the server:\r\n\r\n /tmp % git clone git@github.com:nitinpaul/datasette\r\n Cloning into 'datasette'...\r\n remote: Enumerating objects: 124, done.\r\n # ...\r\n datasette % python3 -m venv venv\r\n datasette % source venv/bin/activate\r\n (venv) datasette % pip install -e '.[test]'\r\n Obtaining file:///private/tmp/datasette\r\n Collecting asgiref<3.4.0,>=3.2.10\r\n Using cached asgiref-3.3.1-py3-none-any.whl (19 kB)\r\n # ...\r\n (venv) datasette % datasette\r\n INFO: Started server process [24002]\r\n INFO: Waiting for application startup.\r\n INFO: Application startup complete.\r\n INFO: Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit)\r\n\r\nAnd to run the tests:\r\n\r\n (venv) datasette % pytest\r\n ======================================================================== test session starts ========================================================================\r\n platform darwin -- Python 3.9.1, pytest-6.1.2, py-1.10.0, pluggy-0.13.1\r\n SQLite: 3.34.0\r\n rootdir: /private/tmp/datasette, configfile: pytest.ini\r\n plugins: asyncio-0.14.0, timeout-1.4.2\r\n collected 841 items \r\n\r\n tests/test_package.py .. [ 0%]\r\n", "reactions": "{\"total_count\": 1, \"+1\": 1, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 763361458, "label": "\"Stream all rows\" is not at all obvious"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1142#issuecomment-744576894", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1142", "id": 744576894, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDU3Njg5NA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-12-14T17:03:13Z", "updated_at": "2020-12-14T17:03:13Z", "author_association": "OWNER", "body": "I'm not sure about the radio boxes for JSON, just because you can't right-click on a radio box and copy it to your clipboard like you can with links. Worth trying it out though.\r\n\r\nThe radio boxes for that CSV option are definitely the right way to go.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 763361458, "label": "\"Stream all rows\" is not at all obvious"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1143#issuecomment-744756861", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1143", "id": 744756861, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDc1Njg2MQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-12-14T22:40:28Z", "updated_at": "2020-12-14T22:40:28Z", "author_association": "OWNER", "body": "That's a very convincing argument. I'm keen on making sure Datasette is \"secure by default\" so you're right, encouraging finely grains CORS rules in core rather than leaving that to a plugin sounds like the right call.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 764059235, "label": "More flexible CORS support in core, to encourage good security practices"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/1143#issuecomment-744757558", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/1143", "id": 744757558, "node_id": "MDEyOklzc3VlQ29tbWVudDc0NDc1NzU1OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-12-14T22:42:10Z", "updated_at": "2020-12-14T22:42:10Z", "author_association": "OWNER", "body": "This may involve a breaking change to the CLI settings interface, so I'm adding this to the 1.0 milestone.", "reactions": "{\"total_count\": 1, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 1, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 764059235, "label": "More flexible CORS support in core, to encourage good security practices"}, "performed_via_github_app": null}