Title: feast ui does not work on proxy subpath · Issue #3481 · feast-dev/feast · GitHub
Open Graph Title: feast ui does not work on proxy subpath · Issue #3481 · feast-dev/feast
X Title: feast ui does not work on proxy subpath · Issue #3481 · feast-dev/feast
Description: Expected Behavior Feast UI should work when it is served behind a proxy, on a subpath e.g. /feast-ui Current Behavior Parts of the feast UI works behind a subpath, but not entirely (nothing is displayed, just the feast logo with a "404" ...
Open Graph Description: Expected Behavior Feast UI should work when it is served behind a proxy, on a subpath e.g. /feast-ui Current Behavior Parts of the feast UI works behind a subpath, but not entirely (nothing is disp...
X Description: Expected Behavior Feast UI should work when it is served behind a proxy, on a subpath e.g. /feast-ui Current Behavior Parts of the feast UI works behind a subpath, but not entirely (nothing is disp...
Opengraph URL: https://github.com/feast-dev/feast/issues/3481
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"feast ui does not work on proxy subpath","articleBody":"## Expected Behavior \r\n\r\nFeast UI should work when it is served behind a proxy, on a subpath e.g. `/feast-ui`\r\n\r\n## Current Behavior\r\n\r\nParts of the feast UI works behind a subpath, but not entirely (nothing is displayed, just the feast logo with a \"404\" text - refer to screenshot). No requests in the network tab of the web browser are hitting 404.\r\n\r\n\r\n\r\n## Steps to reproduce\r\n\r\nServe feast UI as you would e.g. `feature_store.serve_ui()`, optionally passing in the `root_path` parameter (it does not help).\r\n\r\nSet up an nginx pod with the following configuration (i.e. the nginx pod should have `/etc/nginx/conf.d/default.conf` with the following contents - `dummy_project` is the project name, and `http://feast-ui-service:8080` is where the feast UI can be accessed from your nginx pod / container):\r\n\r\n```\r\nserver {\r\n listen 80 default_server;\r\n\r\n location = /feast-ui/ {\r\n rewrite (.*) /feast-ui/p/dummy_project permanent;\r\n }\r\n\r\n location /feast-ui/ {\r\n proxy_pass http://feast-ui-service:8080/;\r\n }\r\n\r\n location / {\r\n proxy_pass http://feast-ui-service:8080/;\r\n }\r\n}\r\n```\r\n\r\nThis configuration works on localhost when nginx can listen on the root path `/`. However, note that the URL after all the redirects is wrong (it does not have the prefix).\r\n\r\n- The first block is required to force a redirect to the `/p/{project_name}`. Without this, the page will display 404 as above.\r\n- The second block is required to strip away `/feast-ui` so the UI app does not receive that path that it is not aware of\r\n- The third block is a trick to make this setup work in a local environment, because the app itself will redirect the user back to `/p/dummy_project` (without the prefix), which we then proxy into the feast UI app. However, in an actual environment, this setup does not work, because when the url does not contain the `/feast-ui` prefix, the ingress will not route it to the nginx pod, so the nginx pod cannot proxy the connection to the right place.\r\n\r\nIdeally, if the feast ui app is capable of being served on a subpath, only the second `location` block should be required in the nginx configuration. The first and third `location` blocks are workarounds.\r\n\r\n### Specifications\r\n\r\n- Version: 0.29.0\r\n\r\n## Possible Solution\r\n\r\nThe app should redirect to relative and not absolute paths","author":{"url":"https://github.com/jiewpeng","@type":"Person","name":"jiewpeng"},"datePublished":"2023-02-04T10:14:26.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":7},"url":"https://github.com/3481/feast/issues/3481"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:bdbd5fb9-784a-ea60-c7be-2def43ef4757 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | E74A:8563B:22309FD:305FD15:6978FD3B |
| html-safe-nonce | 071fe805fb862316144a6208ff72e17254c2fcd650b3049507520e18c59be081 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFNzRBOjg1NjNCOjIyMzA5RkQ6MzA1RkQxNTo2OTc4RkQzQiIsInZpc2l0b3JfaWQiOiI3OTA0NDIyNjQxODQwNzQ5ODgzIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 41c6f925bb2d0d14ced249516d02fe6c6f4f5a86cf01bd2b255f0f0e6d7c5418 |
| hovercard-subject-tag | issue:1570868813 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/feast-dev/feast/3481/issue_layout |
| twitter:image | https://opengraph.githubassets.com/6d619e85c6d6190505801af70c7091d1e502f8504f6331efb3f31c4eeefb1fb0/feast-dev/feast/issues/3481 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/6d619e85c6d6190505801af70c7091d1e502f8504f6331efb3f31c4eeefb1fb0/feast-dev/feast/issues/3481 |
| og:image:alt | Expected Behavior Feast UI should work when it is served behind a proxy, on a subpath e.g. /feast-ui Current Behavior Parts of the feast UI works behind a subpath, but not entirely (nothing is disp... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jiewpeng |
| hostname | github.com |
| expected-hostname | github.com |
| None | 6d9b384ce19e0ac9756580c70eae9a3359939e77ff05c731561090d13085b2b7 |
| turbo-cache-control | no-preview |
| go-import | github.com/feast-dev/feast git https://github.com/feast-dev/feast.git |
| octolytics-dimension-user_id | 57027613 |
| octolytics-dimension-user_login | feast-dev |
| octolytics-dimension-repository_id | 161133770 |
| octolytics-dimension-repository_nwo | feast-dev/feast |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 161133770 |
| octolytics-dimension-repository_network_root_nwo | feast-dev/feast |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 56ad33f6fdc0d0fb49c96b3c46ed74c55d926471 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width