{"action":"created","issue":{"url":"https://api.github.com/repos/openshift/origin/issues/3699","labels_url":"https://api.github.com/repos/openshift/origin/issues/3699/labels{/name}","comments_url":"https://api.github.com/repos/openshift/origin/issues/3699/comments","events_url":"https://api.github.com/repos/openshift/origin/issues/3699/events","html_url":"https://github.com/openshift/origin/pull/3699","id":95000571,"number":3699,"title":"Load UI extensions outside the OpenShift binary","user":{"login":"spadgett","id":1167259,"avatar_url":"https://avatars.githubusercontent.com/u/1167259?v=3","gravatar_id":"","url":"https://api.github.com/users/spadgett","html_url":"https://github.com/spadgett","followers_url":"https://api.github.com/users/spadgett/followers","following_url":"https://api.github.com/users/spadgett/following{/other_user}","gists_url":"https://api.github.com/users/spadgett/gists{/gist_id}","starred_url":"https://api.github.com/users/spadgett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spadgett/subscriptions","organizations_url":"https://api.github.com/users/spadgett/orgs","repos_url":"https://api.github.com/users/spadgett/repos","events_url":"https://api.github.com/users/spadgett/events{/privacy}","received_events_url":"https://api.github.com/users/spadgett/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/openshift/origin/labels/lgtm","name":"lgtm","color":"009800"}],"state":"open","locked":false,"assignee":{"login":"liggitt","id":980082,"avatar_url":"https://avatars.githubusercontent.com/u/980082?v=3","gravatar_id":"","url":"https://api.github.com/users/liggitt","html_url":"https://github.com/liggitt","followers_url":"https://api.github.com/users/liggitt/followers","following_url":"https://api.github.com/users/liggitt/following{/other_user}","gists_url":"https://api.github.com/users/liggitt/gists{/gist_id}","starred_url":"https://api.github.com/users/liggitt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liggitt/subscriptions","organizations_url":"https://api.github.com/users/liggitt/orgs","repos_url":"https://api.github.com/users/liggitt/repos","events_url":"https://api.github.com/users/liggitt/events{/privacy}","received_events_url":"https://api.github.com/users/liggitt/received_events","type":"User","site_admin":false},"milestone":null,"comments":52,"created_at":"2015-07-14T17:50:45Z","updated_at":"2015-09-01T21:21:55Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/openshift/origin/pulls/3699","html_url":"https://github.com/openshift/origin/pull/3699","diff_url":"https://github.com/openshift/origin/pull/3699.diff","patch_url":"https://github.com/openshift/origin/pull/3699.patch"},"body":"@smarterclayton @liggitt \r\n\r\nLoad JS and CSS files when the Web Console loads and serve extension files under a sub context without needing to rebuild the OpenShift binary.\r\n\r\nExample configuration:\r\n\r\n```yaml\r\nassetConfig:\r\n  extensionScripts:\r\n   - \"/home/vagrant/extensions/java/js/javaLink.js\"\r\n   - \"/home/vagrant/extensions/extension1/js/ext1.js\"\r\n  extensionStylesheets:\r\n   - \"/home/vagrant/extensions/extension1/css/ext1.css\"\r\n  extensions:\r\n   - sourceDirectory: \"/home/vagrant/extensions/java/files/\"\r\n     name: \"java\"\r\n     html5Mode: true\r\n   - sourceDirectory: \"/home/vagrant/extensions/extension1/files/\"\r\n     name: \"ext1\"\r\n```\r\n\r\n**What's left:**\r\n\r\n- [x] Handle HTTP cache headers\r\n- [x] Flat mux instead of chaining handlers\r\n- [x] Rewrite `<base>` element in HTML files if set to `/`\r\n- [x] Separate configuration stanzas for each extension\r\n- [x] Generate different ETags based on Vary headers\r\n- [x] Generate asset configuration only once\r\n- [x] Handle relative paths for extension files\r\n- [x] Add a development mode for writing extensions\r\n- [x] Gruntfile updates, dummy extension files\r\n- [x] Add cache headers for index.html\r\n- [x] Update configuration property names\r\n- [x] Check that no two extensions have the same name/subcontext\r\n"},"comment":{"url":"https://api.github.com/repos/openshift/origin/issues/comments/136864654","html_url":"https://github.com/openshift/origin/pull/3699#issuecomment-136864654","issue_url":"https://api.github.com/repos/openshift/origin/issues/3699","id":136864654,"user":{"login":"openshift-bot","id":1779249,"avatar_url":"https://avatars.githubusercontent.com/u/1779249?v=3","gravatar_id":"","url":"https://api.github.com/users/openshift-bot","html_url":"https://github.com/openshift-bot","followers_url":"https://api.github.com/users/openshift-bot/followers","following_url":"https://api.github.com/users/openshift-bot/following{/other_user}","gists_url":"https://api.github.com/users/openshift-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/openshift-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openshift-bot/subscriptions","organizations_url":"https://api.github.com/users/openshift-bot/orgs","repos_url":"https://api.github.com/users/openshift-bot/repos","events_url":"https://api.github.com/users/openshift-bot/events{/privacy}","received_events_url":"https://api.github.com/users/openshift-bot/received_events","type":"User","site_admin":false},"created_at":"2015-09-01T21:21:55Z","updated_at":"2015-09-01T21:21:55Z","body":"Evaluated for origin merge up to a8dd903fd5b631da83ad84e7c2c99002604f105a"}}