Archived
1
0
Commit Graph

580 Commits

Author SHA1 Message Date
3fa460c244 refactor: create helpers.ts & add Cookie 2021-02-22 13:41:10 -07:00
d0eece3d8f refactor: add note to test.sh about --home 2021-02-22 13:41:10 -07:00
b02d2fb3cc feat: add cookie utils for e2e tests 2021-02-22 13:41:10 -07:00
2d8b785fb8 Fix health socket not getting client messages
Forgot to resume. Went ahead and did the same for the test plugin
although it only sends messages and doesn't receive any.
2021-02-16 15:01:46 -06:00
3fc556d4d5 Delegate authentication to plugins
Unfortunately since plugins can now override the root this is necessary
or just can't log in.
2021-02-12 16:50:23 -06:00
0abbc9789e Allow plugins to register at the root
Unfortunately we have existing plugins with routes there which we cannot
move.
2021-02-12 15:19:26 -06:00
619934dc29 Authenticate plugin routes (#2720) 2021-02-12 14:56:39 -06:00
97c1399401 feat: use compression in express server (#2680) 2021-02-12 14:27:33 -06:00
8344e2062a Merge pull request #2622 from cdr/plugin-additions 2021-02-10 16:45:00 -06:00
e4e0ac43b0 Don't load plugins in tests
This can affect the test behavior and results.
2021-02-09 15:39:57 -06:00
e098df0766 Fix code-server module not being provided in Jest 2021-02-09 15:23:08 -06:00
2879bd4c22 Add type alias for required modules 2021-02-09 13:09:41 -06:00
3226d50747 Rename papi to pluginApi 2021-02-09 13:09:40 -06:00
2fe3d57df3 Mount plugins before bodyParser
Otherwise it consumes the body and plugins won't be able to do things
like proxy POST requests.
2021-02-09 13:09:39 -06:00
c78f56b334 Expose HttpError to plugins
This will let them throw and show nice errors more easily.
2021-02-09 13:09:38 -06:00
22d194515a Expose replaceTemplates to plugins
This is mainly so they can get relative paths in their HTML, in
particular code-server's static base so they can use the favicon and
service worker.
2021-02-09 13:09:37 -06:00
36aad9bdab Move global express args definition
This way tests that import the http utilities but not the routes won't
error due to missing types.
2021-02-09 13:09:36 -06:00
5505959f7e Expose websocket server to plugins
Same reasoning used when exposing Express.
2021-02-09 13:09:34 -06:00
b13db3124b Add health websocket
This is used by some of our services.
2021-02-09 13:09:33 -06:00
f136a60093 Note that we immediately pause websockets 2021-02-09 13:09:32 -06:00
00cfd9bdf1 Add working directory to plugin config 2021-02-09 13:09:31 -06:00
3211eb1ce5 Expose log level to plugins
In case they need to map it to something else.
2021-02-09 13:09:30 -06:00
017b1cc633 Add deinit for plugins 2021-02-09 13:09:29 -06:00
3c6fac9ce4 Wait for inner process to exit 2021-02-09 13:09:28 -06:00
055e0ef9ec Provide WsRouter to plugins 2021-02-09 13:09:27 -06:00
fb37473e72 Load only test plugin during tests
The other plugins in my path were causing the tests to fail.
2021-02-09 12:20:30 -06:00
f6b04c7c29 Expose proxy server to plugins 2021-02-09 12:19:39 -06:00
a8e928798b Re-export express for plugins 2021-02-09 12:19:38 -06:00
5f1fab7d27 Re-export logger field for plugins 2021-02-09 12:19:36 -06:00
719481e84e refactor: add getPackageJson fn in constants 2021-02-08 16:21:30 -07:00
05a0f213a7 Update proxy path passthrough documentation
Includes updated create-react-app docs.

Closes #2565
2021-02-05 11:44:38 -05:00
c08e3bb06d Add /absproxy to remove --proxy-path-passthrough
See https://github.com/cdr/code-server/issues/2222#issuecomment-765235938

Makes way more sense.
2021-02-05 11:44:34 -05:00
58d72d53a1 routes/index.ts: register proxy routes before body-parser
Any json or urlencoded request bodies were being consumed by body-parser
before they could be proxied. That's why requests without Content-Type
were proxied correctly as body-parser would not consume their body.

This allows the http-proxy package to passthrough the request body correctly
in all instances.

Closes #2377
2021-02-01 11:08:40 -05:00
f5cf3fd331 proxy.ts: Do not always rewrite redirects against the base path
This breaks --proxy-path-passthrough

However, we still need this when that code is disabled as many apps will
issue absolute redirects and expect the proxy to rewrite as appropriate.

e.g. Go's http.Redirect will rewrite relative redirects as absolute!
See https://golang.org/pkg/net/http/#Redirect
2021-02-01 11:08:40 -05:00
646ee3ad7f refactor: correct type signature in app.ts 2021-01-21 10:11:56 -07:00
6bf51caa17 fix(app.ts): resolve with server 2021-01-21 10:11:10 -07:00
f13ba9401b fix(TS error): add void to promise in util 2021-01-21 10:11:10 -07:00
28e98c0ee0 Merge pull request #2563 from cdr/proxy-path-passthrough-0bb9
pathProxy.ts: Implement --proxy-path-passthrough
2021-01-20 02:44:29 -05:00
c32d8b155f heart.ts: Fix leak when server closes
This had me very confused for quite a while until I did a binary search
inspection on route/index.ts. Only with the heart.beat line commented
out did my tests pass without leaking.

They weren't leaking fds but just this heartbeat timer and node of
course prints just fds that are active when it detects some sort of leak
I guess and that made the whole thing very confusing. These fds are not
leaked and will close when node's event loop detects there are no more
callbacks to run.

no of handles 3

tcp stream {
  fd: 20,
  readable: false,
  writable: true,
  address: {},
  serverAddr: null
}

tcp stream {
  fd: 22,
  readable: false,
  writable: true,
  address: {},
  serverAddr: null
}

tcp stream {
  fd: 23,
  readable: true,
  writable: false,
  address: {},
  serverAddr: null
}

It kept printing the above text again and again for 60s and then the
test binary times out I think. I'm not sure if it was node printing the
stuff above or if it was a mocha thing. But it was really confusing...

cc @code-asher for thoughts on what was going on.

edit: It was the leaked-handles import in socket.test.ts!!!
Not sure if we should keep it, this was really confusing and misleading.
2021-01-20 02:06:44 -05:00
5c06646f58 Formatting and linting fixes 2021-01-20 02:06:44 -05:00
240c8e266e test: Implement integration.ts for near full stack integration testing 2021-01-20 02:06:44 -05:00
d3074278ca app.ts: Fix createApp to log all http server errors
cc @code-asher
2021-01-20 02:06:43 -05:00
ba4a24809c routes/index.ts: Correctly register wsErrorHandler
express requires all 4 arguments to be declared for a error handler.
It's very unfortunate that our types do not handle this.
2021-01-20 02:06:43 -05:00
f169e3ac66 pathProxy.ts: Implement --proxy-path-passthrough
Closes #2222
2021-01-20 02:06:43 -05:00
d234ddc1e1 vscode.ts: Fix close current folder
Fixes VscodeProvider to correctly obey the ew parameter.

Based on changes by @rdbeach. See the previous commit.
2021-01-18 11:29:18 -05:00
28c7340608 Fix Close Folder/Workspace (#2532)
When you choose to close the current folder, it doesn't close properly
because the lastVisiited setting is still use. This fixes that.
2021-01-18 11:28:29 -05:00
f15580b28a favicon: Add dark mode support
Closes #2538

Works as expected on latest Firefox and Chromium.
2021-01-11 12:54:25 -05:00
693fdbefb4 browser: Add favicon.afdesign
It requires git-lfs to pull down if you want to adjust the favicon and
also the affinity designer software available only on Windows and Mac.

Might be a good idea to switch to Figma at some point and commit a
.fig file.
2021-01-08 23:03:34 -05:00
f763319bc3 Merge pull request #2160 from cdr/github-auth
Fix GitHub auth
2020-12-18 10:54:51 -08:00
cb446666fa Merge pull request #2487 from cdr/proxy-docs-86d4
proxy-agent: Use proxy-from-env and add docs
2020-12-18 13:06:47 -05:00