github
html_url | issue_url | id | node_id | user | created_at | updated_at | author_association | body | reactions | issue | performed_via_github_app |
---|---|---|---|---|---|---|---|---|---|---|---|
https://github.com/simonw/datasette/issues/712#issuecomment-604193362 | https://api.github.com/repos/simonw/datasette/issues/712 | 604193362 | MDEyOklzc3VlQ29tbWVudDYwNDE5MzM2Mg== | 9599 | 2020-03-26T02:32:57Z | 2020-03-26T02:32:57Z | OWNER | Weird... the unit test I just added passes. So suggested facets look like they're OK. And yet the demo in https://mybinder.org/v2/gh/wragge/datasette-test/master?urlpath=lab doesn't work. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
588108428 | |
https://github.com/simonw/datasette/issues/712#issuecomment-604194598 | https://api.github.com/repos/simonw/datasette/issues/712 | 604194598 | MDEyOklzc3VlQ29tbWVudDYwNDE5NDU5OA== | 9599 | 2020-03-26T02:37:46Z | 2020-03-26T02:37:46Z | OWNER | Here's the truncatted HTML for https://hub.gke.mybinder.org/user/wragge-datasette-test-czqms2oy/proxy/8001/results/articles ```html <!DOCTYPE html> <html> <head> <title>results: articles: 400 rows </title> <link rel="stylesheet" href="/user/wragge-datasette-test-czqms2oy/proxy/8001/-/static/app.css?4434ab"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> /head> <body class="table db-results table-articles"> <nav class="hd"> <p class="crumbs"> <a href="/user/wragge-datasette-test-czqms2oy/proxy/8001/">home</a> / <a href="/user/wragge-datasette-test-czqms2oy/proxy/8001/results">results</a> </p> </nav> <div class="bd"> <h1 style="padding-left: 10px; border-left: 10px solid #ff0000">articles</h1> <h3>400 rows</h3> <form class="filters" action="/user/wragge-datasette-test-czqms2oy/proxy/8001/results/articles" method="get"> ... <input type="submit" value="Apply"> </form> <p><a class="not-underlined" title="select rowid, article_id, title, newspaper_id, newspaper_title, page, date, category, words, illustrated, corrections, url, page_url from articles order by rowid limit 101" href="/user/wragge-datasette-test-czqms2oy/proxy/8001/results?sql=select+rowid%2C+article_id%2C+title%2C+newspaper_id%2C+newspaper_title%2C+page%2C+date%2C+category%2C+words%2C+illustrated%2C+corrections%2C+url%2C+page_url+from+articles+order+by+rowid+limit+101">✎ <span class="underlined">View and edit SQL</span></a></p> <p class="export-links">This data as <a href="/results/articles.json">json</a>, <a href="/results/articles.csv?_size=max">CSV</a> (<a href="#export">advanced</a>)</p> <p class="suggested-facets"> Suggested facets: <a href="/results/articles?_facet=newspaper_id#facet-newspaper_id">newspaper_id</a>, <a href="/results/articles?_facet=newspaper_title#facet-newspaper_title">newspaper_title</a>, <a href="/results/articles?_facet=page#facet-page">page</a>, <a href="/results/article… | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
588108428 | |
https://github.com/simonw/datasette/issues/712#issuecomment-604194872 | https://api.github.com/repos/simonw/datasette/issues/712 | 604194872 | MDEyOklzc3VlQ29tbWVudDYwNDE5NDg3Mg== | 9599 | 2020-03-26T02:38:48Z | 2020-03-26T04:04:04Z | OWNER | I have a hunch about this: maybe the URLs that work are the ones that use `{{ base_url }}` directly in the template, while the ones that break are the ones that reconstruct the URL based on the incoming path? | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
588108428 | |
https://github.com/simonw/datasette/issues/712#issuecomment-604195244 | https://api.github.com/repos/simonw/datasette/issues/712 | 604195244 | MDEyOklzc3VlQ29tbWVudDYwNDE5NTI0NA== | 9599 | 2020-03-26T02:40:23Z | 2020-03-26T04:17:57Z | OWNER | Here's the output of the `/-/asgi-scope` plugin: ``` {'client': ('10.12.3.15', 0), 'headers': [(b'cookie', b''), (b'upgrade-insecure-requests', b'1'), (b'dnt', b'1'), (b'accept-encoding', b'gzip'), (b'accept-language', b'en-US,en;q=0.5'), (b'accept', b'text/html,application/xhtml+xml,application/xml;q=0.9,image/' b'webp,*/*;q=0.8'), (b'user-agent', b'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:74.0) Gecko' b'/20100101 Firefox/74.0'), (b'x-scheme', b'https'), (b'x-original-uri', b'/user/wragge-datasette-test-czqms2oy/proxy/8001/-/asgi-scope'), (b'x-forwarded-proto', b'https,http'), (b'x-forwarded-port', b'443,80'), (b'x-forwarded-host', b'hub.gke.mybinder.org'), (b'x-forwarded-for', b'148.64.98.14,10.12.3.15'), (b'x-real-ip', b'148.64.98.14'), (b'connection', b'close'), (b'host', b'hub.gke.mybinder.org'), (b'x-forwarded-context', b'/user/wragge-datasette-test-czqms2oy/proxy/8001'), (b'x-proxycontextpath', b'/user/wragge-datasette-test-czqms2oy/proxy/8001')], 'http_version': '1.1', 'method': 'GET', 'path': '/-/asgi-scope', 'query_string': b'', 'raw_path': b'/-/asgi-scope', 'root_path': '', 'scheme': 'https,http', 'server': ('127.0.0.1', 8001), 'type': 'http'} ``` From this output... it looks like the `path` being passed through to Datasette is still `/-/asgi-scope` here when I though it would be `/user/wragge-datasette-test-czqms2oy/proxy/8001/-/asgi-scope` The original URL path (the one I want) is passed in the `x-original-uri` HTTP header. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
588108428 | |
https://github.com/simonw/datasette/issues/712#issuecomment-604195577 | https://api.github.com/repos/simonw/datasette/issues/712 | 604195577 | MDEyOklzc3VlQ29tbWVudDYwNDE5NTU3Nw== | 9599 | 2020-03-26T02:41:40Z | 2020-03-26T02:41:40Z | OWNER | Aha! It turns out my demo at https://github.com/simonw/jupyterserverproxy-datasette-demo suffers from the same bug. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
588108428 | |
https://github.com/simonw/datasette/issues/712#issuecomment-604196158 | https://api.github.com/repos/simonw/datasette/issues/712 | 604196158 | MDEyOklzc3VlQ29tbWVudDYwNDE5NjE1OA== | 9599 | 2020-03-26T02:43:47Z | 2020-03-26T04:20:15Z | OWNER | I think the solution here may be to let the incoming `x-original-uri` header over-ride the `raw_path` used by Datasette. This may require a new Datasette setting - maybe this: --config path_from_header:x-original-uri | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
588108428 | |
https://github.com/simonw/datasette/issues/712#issuecomment-604218449 | https://api.github.com/repos/simonw/datasette/issues/712 | 604218449 | MDEyOklzc3VlQ29tbWVudDYwNDIxODQ0OQ== | 9599 | 2020-03-26T04:12:59Z | 2020-03-26T04:15:18Z | OWNER | I'm running this latest release like so: Launch this binder: https://mybinder.org/v2/gh/wragge/datasette-test/master?urlpath=lab Open the notebook. In the notebook run this: !pip install datasette-debug-asgi https://github.com/simonw/datasette/archive/7b205af0b53c92d17b69f8c95d70a24a0c06ebce.zip And use this block to run Datasette: ``` # Get current running servers servers = list_running_servers() # Get the current base url base_url = next(servers)['base_url'] # Create a base url for Datasette suing the proxy path proxy_url = f'{base_url}proxy/8001/' # Display a link to Datasette display(HTML(f'<p><a href="{proxy_url}">View Datasette</a> (Click on the stop button to close the Datasette server)</p>')) # Launch Datasette !datasette -- results.db --port 8001 --config base_url:$proxy_url --config path_from_header:x-original-uri --config template_debug:1 ``` | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
588108428 | |
https://github.com/simonw/datasette/issues/712#issuecomment-604219753 | https://api.github.com/repos/simonw/datasette/issues/712 | 604219753 | MDEyOklzc3VlQ29tbWVudDYwNDIxOTc1Mw== | 9599 | 2020-03-26T04:18:13Z | 2020-03-26T04:18:13Z | OWNER | Woohoo that worked! <img width="1386" alt="results__articles__400_rows" src="https://user-images.githubusercontent.com/9599/77609678-db0b4c80-6edd-11ea-947b-1f7b1f14f56e.png"> | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
588108428 | |
https://github.com/simonw/datasette/issues/712#issuecomment-604466523 | https://api.github.com/repos/simonw/datasette/issues/712 | 604466523 | MDEyOklzc3VlQ29tbWVudDYwNDQ2NjUyMw== | 9599 | 2020-03-26T14:35:43Z | 2020-03-26T14:35:43Z | OWNER | Hooray! This is a really great fix, thanks. | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
588108428 | |
https://github.com/simonw/datasette/issues/712#issuecomment-604486651 | https://api.github.com/repos/simonw/datasette/issues/712 | 604486651 | MDEyOklzc3VlQ29tbWVudDYwNDQ4NjY1MQ== | 9599 | 2020-03-26T15:11:49Z | 2020-03-26T15:11:49Z | OWNER | And for https://github.com/simonw/jupyterserverproxy-datasette-demo setting `"absolute_url": True` appears to fix the bug as well (it previously caused an infinite redirect loop but that seems not to happen any more with the latest `base_url` setting): https://github.com/simonw/jupyterserverproxy-datasette-demo/commit/880f9d50566357160b793557f145c99e74ad759a | { "total_count": 0, "+1": 0, "-1": 0, "laugh": 0, "hooray": 0, "confused": 0, "heart": 0, "rocket": 0, "eyes": 0 } |
588108428 |