{"id": 396212021, "node_id": "MDU6SXNzdWUzOTYyMTIwMjE=", "number": 394, "title": "base_url configuration setting", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5234079, "label": "Datasette 0.39"}, "comments": 27, "created_at": "2019-01-05T23:48:48Z", "updated_at": "2020-06-11T09:15:20Z", "closed_at": "2020-03-25T00:18:45Z", "author_association": "OWNER", "pull_request": null, "body": "I've identified a couple of use-cases for running Datasette in a way that over-rides the default way that internal URLs are generated.\r\n\r\n1. Running behind a reverse proxy. I tried running Datasette behind a proxy and found that some of the generated internal links incorrectly referenced `http://127.0.0.1:8001/fixtures/...` - when they should have been referencing `http://my-host.my-domain.com/fixtures/...` - this is a problem both for links within the HTML interface but also for the `toggle_url` keys returned in the JSON as part of the facets datastructure.\r\n2. I would like it to be possible to host a Datasette instance at e.g. `https://www.mynewspaper.com/interactives/2018/election-results/` - either through careful HTTP proxying or, once Datasette has been ported to ASGI, by mounting a Datasette ASGI instance deep within an existing set of URL routes.\r\n\r\nI'm going to add a `url_prefix` configuration option. This will default to `\"\"`, which means Datasette will behave as it does at the moment - it will use `/` for most URL prefixes in the HTML version, and an absolute URL derived from the incoming `Host` header for URLs that are returned as part of the JSON output.\r\n\r\nIf `url_prefix` is set to another value (either a full URL or a path) then this path will be appended to all generated URLs.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/394/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 585390482, "node_id": "MDU6SXNzdWU1ODUzOTA0ODI=", "number": 702, "title": "Option in metadata.json to set default sort order for a table", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5234079, "label": "Datasette 0.39"}, "comments": 5, "created_at": "2020-03-21T00:19:56Z", "updated_at": "2020-03-25T04:19:36Z", "closed_at": "2020-03-22T02:40:35Z", "author_association": "OWNER", "pull_request": null, "body": "If you access the table page without any `?_sort` or `?_sort_desc` arguments it currently defaults to order by primary key - would be neat to be able to change that.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/702/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 587398703, "node_id": "MDU6SXNzdWU1ODczOTg3MDM=", "number": 711, "title": "Release notes for Datasette 0.39", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5234079, "label": "Datasette 0.39"}, "comments": 2, "created_at": "2020-03-25T02:31:13Z", "updated_at": "2020-03-25T04:06:55Z", "closed_at": "2020-03-25T04:06:55Z", "author_association": "OWNER", "pull_request": null, "body": "Then I can ship it.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/711/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 585626199, "node_id": "MDU6SXNzdWU1ODU2MjYxOTk=", "number": 705, "title": "latest.datasette.io is no longer updating", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5234079, "label": "Datasette 0.39"}, "comments": 15, "created_at": "2020-03-22T01:59:30Z", "updated_at": "2020-03-25T02:30:24Z", "closed_at": "2020-03-25T02:30:24Z", "author_association": "OWNER", "pull_request": null, "body": "https://latest.datasette.io/-/versions is stuck on 0.35.", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/705/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 587302139, "node_id": "MDExOlB1bGxSZXF1ZXN0MzkzMjc0NDMz", "number": 708, "title": "base_url configuration setting, refs #394", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5234079, "label": "Datasette 0.39"}, "comments": 2, "created_at": "2020-03-24T21:52:00Z", "updated_at": "2020-03-25T00:18:44Z", "closed_at": "2020-03-25T00:18:44Z", "author_association": "OWNER", "pull_request": "simonw/datasette/pulls/708", "body": "Pull request implementing #394", "repo": {"value": 107914493, "label": "datasette"}, "type": "pull", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/708/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": 0, "state_reason": null} {"id": 583970196, "node_id": "MDU6SXNzdWU1ODM5NzAxOTY=", "number": 701, "title": "Search box CSS doesn't look great on OS X Safari", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5234079, "label": "Datasette 0.39"}, "comments": 3, "created_at": "2020-03-18T20:00:52Z", "updated_at": "2020-03-24T22:57:18Z", "closed_at": "2020-03-24T22:57:18Z", "author_association": "OWNER", "pull_request": null, "body": "\"twitter__tweets__68_773_rows_where_sorted_by_id_descending_and_twitter__tweets__955_rows\"\r\n", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/701/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 585597329, "node_id": "MDU6SXNzdWU1ODU1OTczMjk=", "number": 704, "title": "Add datasette-publish-fly to Datasette Publish documentation", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5234079, "label": "Datasette 0.39"}, "comments": 1, "created_at": "2020-03-21T22:25:10Z", "updated_at": "2020-03-24T22:39:09Z", "closed_at": "2020-03-24T22:39:09Z", "author_association": "OWNER", "pull_request": null, "body": "It's a cool example of a plugin that provides a new publish provider - worth mentioning on https://datasette.readthedocs.io/en/stable/publish.html", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/704/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"} {"id": 587314002, "node_id": "MDU6SXNzdWU1ODczMTQwMDI=", "number": 709, "title": "Each plugin hook should link to example plugins built with it", "user": {"value": 9599, "label": "simonw"}, "state": "closed", "locked": 0, "assignee": null, "milestone": {"value": 5234079, "label": "Datasette 0.39"}, "comments": 1, "created_at": "2020-03-24T22:18:48Z", "updated_at": "2020-03-24T22:30:10Z", "closed_at": "2020-03-24T22:29:43Z", "author_association": "OWNER", "pull_request": null, "body": "", "repo": {"value": 107914493, "label": "datasette"}, "type": "issue", "active_lock_reason": null, "performed_via_github_app": null, "reactions": "{\"url\": \"https://api.github.com/repos/simonw/datasette/issues/709/reactions\", \"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "draft": null, "state_reason": "completed"}