`",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/998/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
713209404,MDU6SXNzdWU3MTMyMDk0MDQ=,988,Mechanism for plugins to construct URLs that respect base_url,9599,closed,0,,6026070,2,2020-10-01T21:54:15Z,2020-10-23T19:44:05Z,2020-10-15T23:01:02Z,OWNER,,"> Had a thought: this is likely to break in plugins too, such as `datasette-edit-schema` which constructs URLs for redirects e.g. here: https://github.com/simonw/datasette-edit-schema/blob/dbd0abee6dd3385b114cfe9671f7ead1c4855b60/datasette_edit_schema/__init__.py#L46-L48
_Originally posted by @simonw in https://github.com/simonw/datasette/issues/865#issuecomment-702418045_",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/988/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
663228985,MDU6SXNzdWU2NjMyMjg5ODU=,904,"datasette.urls.table() / .instance() / .database() methods for constructing URLs, also exposed to templates",9599,closed,0,,6026070,11,2020-07-21T18:42:52Z,2020-10-23T19:44:05Z,2020-10-20T00:51:51Z,OWNER,,"I tried using this block of template in a plugin and got an error:
```html
{% block nav %}
home /
{{ database }} /
{{ table }}
{{ super() }}
{% endblock %}
```
Error: `'database_url' is undefined`
That's because `database_url` is only made available by the BaseView template here:
https://github.com/simonw/datasette/blob/d6e03b04302a0852e7133dc030eab50177c37be7/datasette/views/base.py#L110-L125",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/904/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
661605489,MDU6SXNzdWU2NjE2MDU0ODk=,900,Some links don't honor base_url,50220,closed,0,,6026070,3,2020-07-20T09:40:50Z,2020-10-23T19:44:04Z,2020-10-15T22:57:55Z,NONE,,"Hi,
I've been playing with Datasette behind Nginx (awesome tool, thanks !). It seems some URLs are OK but some aren't. For instance in https://github.com/simonw/datasette/blob/master/datasette/templates/query.html#L61 it seems that `url_csv` includes a `/` prefix, resulting in the `base_url` not beeing honored.
Actually here, it seems that dropping the prefix `/` to make the link relative is enough (so it may not be strictly related to `base_url`).
Additional information:
```
datasette, version 0.45+0.gf1f581b.dirty
```
Relevant Nginx configuration (note that all the trailing slashes have some effect):
```
location /datasette/ {
proxy_pass http://127.0.0.1:9001/;
proxy_set_header Host $host;
}
```
Relelvant Datasette configuration (slashes matter too):
```
--config base_url:/datasette/
```",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/900/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
644582921,MDU6SXNzdWU2NDQ1ODI5MjE=,865,"base_url doesn't seem to work when adding criteria and clicking ""apply""",6739646,closed,0,,6026070,11,2020-06-24T12:39:57Z,2020-11-12T23:49:24Z,2020-10-20T05:22:59Z,NONE,,"Over on Apache Tika, we're using datasette to allow users to make sense of the metadata for our file regression testing corpus.
This could be user error in how I've set up the reverse proxy!
I started datasette like so:
`docker run -d -p 8001:8001 -v `pwd`:/mnt datasetteproject/datasette datasette -p 8001 -h 0.0.0.0 /mnt/corpora-metadata.db --config sql_time_limit_ms:60000 --config base_url:/datasette/`
I then reverse proxied like so:
ProxyPreserveHost On
ProxyPass /datasette http://x.y.z.q:xxxx
ProxyPassReverse /datasette http://x.y.z.q:xxx
Regular sql works perfectly:
https://corpora.tika.apache.org/datasette/corpora-metadata?sql=select+mime_string%2C+count%281%29+as+cnt%0D%0Afrom+profiles+p%0D%0Ajoin+mimes+m+on+p.mime_id%3Dm.mime_id%0D%0Agroup+by+mime_string%0D%0Aorder+by+cnt+desc
However, adding criteria and clicking 'Apply'
https://corpora.tika.apache.org/datasette/corpora-metadata/tika_1_24_1_mimes?_sort=file&mime__exact=text%2Fplain
bounces back to:
https://corpora.tika.apache.org/corpora-metadata/tika_1_24_1_mimes?_sort=file&file__contains=bug&mime__exact=text%2Fplain",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/865/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
637395097,MDU6SXNzdWU2MzczOTUwOTc=,838,Incorrect URLs when served behind a proxy with base_url set,79913,closed,0,,6026070,14,2020-06-11T23:58:55Z,2021-11-20T19:35:48Z,2021-11-20T19:35:48Z,NONE,,"I'm running `datasette serve --config base_url:/foo/ …`, proxying to it with this Apache config:
ProxyPass /foo/ http://localhost:8001/
ProxyPassReverse /foo/ http://localhost:8001/
and then accessing it via `https://example.com/foo/`.
Although many of the URLs in the pages are correct (presumably because they either use absolute paths which include `base_url` or relative paths), the faceting and pagination links still use fully-qualified URLs pointing at `http://localhost:8001`.
I looked into this a little in the source code, and it seems to be an issue anywhere `request.url` or `request.path` is used, as these contain the values for the request between the frontend (Apache) and backend (Datasette) server. Those properties are primarily used via the `path_with_…` family of utility functions and the `Datasette.absolute_url` method.",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/838/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
634651079,MDU6SXNzdWU2MzQ2NTEwNzk=,814,Remove --debug option from datasette serve,9599,closed,0,,6026070,1,2020-06-08T14:10:14Z,2020-10-23T19:44:04Z,2020-10-10T23:39:43Z,OWNER,,"It doesn't appear to do anything useful at all:
https://github.com/simonw/datasette/blob/f786033a5f0098371cb1df1ce83959b27c588115/datasette/cli.py#L251-L253
https://github.com/simonw/datasette/blob/f786033a5f0098371cb1df1ce83959b27c588115/datasette/cli.py#L365-L367",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/814/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
573755726,MDU6SXNzdWU1NzM3NTU3MjY=,690,Mechanism for plugins to add action menu items for various things,9599,closed,0,,6026070,11,2020-03-02T06:48:36Z,2020-10-30T05:20:43Z,2020-10-30T05:20:42Z,OWNER,,"Now that we have support for plugins that can write I'm seeing all sorts of places where a plugin might need to add UI to the table page.
Some examples:
- `datasette-configure-fts` needs to add a ""configure search for this table"" link
- a plugin that lets you render or delete tables needs to add a link or button somewhere
- existing plugins like `datasette-vega` and `datasette-cluster-map` already do this with JavaScript
The challenge here is that multiple plugins may want to do this, so simply overriding templates and populating names blocks doesn't entirely work as templates may override each other.",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/690/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed
497162288,MDU6SXNzdWU0OTcxNjIyODg=,575,Plugin documentation should cover how to bundle static/templates in setup.py,9599,closed,0,,6026070,1,2019-09-23T15:15:18Z,2020-10-24T20:06:17Z,2020-10-24T20:03:53Z,OWNER,,"These sections here should cover it: https://datasette.readthedocs.io/en/latest/plugins.html#static-assets
Example: https://github.com/simonw/datasette-auth-github/blob/bf01f8f01b87a6cb09c47380ba0a86e0546ebb38/setup.py#L30
```
package_data={""datasette_auth_github"": [""templates/*.html""]},
```
Also from https://github.com/simonw/datasette-plugin-demos/blob/0ccf9e6189e923046047acd7878d1d19a2cccbb1/setup.py#L18-L22
package_data={
'datasette_plugin_demos': [
'static/plugin.js',
],
},
",107914493,issue,,,"{""url"": ""https://api.github.com/repos/simonw/datasette/issues/575/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed