Commit Graph
419 Commits
Author SHA1 Message Date
Joe Previte d8e45057c7 refactor: update rateLimiter to check try
This changes adds a new method called `.canTry` to the rate limiter to check if
there are tokens remaining in the bucket.

It also adds suggestions from @oxy to make sure the user can brute force past
the rate limiter.
2021-04-19 10:40:59 -07:00
Joe Previte 08521077f0 refactor(login): move rate limiter after successful login
Before, we weren't checking if a login was successful before counting it
against the rate limiter.

With this change, we only count unsuccessful logins against the rate limiter.

We did this because this was a bug but also because it caused problems with our
e2e tests hitting the rate limit.
2021-04-19 10:40:59 -07:00
Joe Previte 4683d8a077 fix: update comment and export rateLimiter 2021-04-19 10:40:58 -07:00
Asher 101c2a01f1 Fix tsc watch restarting when it shouldn't
It seems reaching into lib/vscode for the types caused tsc to establish
watches that caused it to restart over and over while vscode was
building.

The strategy used here is to symlink it instead which is the same thing
we do for the proxy agent.
2021-04-01 10:58:56 -05:00
Joe Previte df6bfbbeaf feat: bump ts-node to 9.1.1 2021-03-30 16:46:49 -07:00
Joe Previte e4db80667e refactor: use stdio correctly in wrapper 2021-03-29 14:05:59 -07:00
Asher 18ace7b906 Don't send permessage-deflate header if not supported (#2993) 2021-03-29 12:59:36 -05:00
Joe Previte b04104cafe Merge branch 'main' into jsjoeio/upgrade-vscode-1.54 2021-03-22 10:43:39 -07:00
dependabot[bot]andAkash Satheesan a8e2ede4f5 chore(deps): bump js-yaml from 3.14.0 to 4.0.0 (#2920)
* chore(deps): bump js-yaml from 3.14.0 to 4.0.0

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.0 to 4.0.0.
- [Release notes](https://github.com/nodeca/js-yaml/releases)
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.0...4.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

* fix(src/node): replace yaml.safeLoad with load

Also update @types/yaml to ^4.0.0.

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Akash Satheesan <akash@coder.com>
2021-03-18 16:30:10 -05:00
Joe Previte 071c8e15fc Merge branch 'main' into jsjoeio/upgrade-vscode-1.54 2021-03-17 13:51:27 -07:00
repo-ranger[bot] 45a1713767 Merge pull request #2906 from bpmct/rename-cloud
rename references of "coder could"
2021-03-17 18:28:14 +00:00
Ben Potter a097713829 remove references of coder could 2021-03-16 22:59:30 -04:00
Joe Previte 0c2708302d refactor: remove --home flag/feature
We are removing this because it was removed upstream in PR~115599.
2021-03-16 14:25:28 -07:00
Asher 964ebe8d0a Replace fs-extra with fs.promises
Remove the Mac directory copy instead of refactoring it since we've had
this for a long time now and I think it's safe to assume that users
running code-server on Mac don't have the old directory anymore.
2021-03-16 12:51:08 -05:00
Asher 5a1f62a8fb Support permessage-deflate web socket extension (#2846) 2021-03-10 13:14:24 -06:00
Asher 4d3d1b844d Handle permessage-deflate on sockets
With this the extension host is working again.
2021-03-02 17:18:49 -06:00
Joe Previte b02d2fb3cc feat: add cookie utils for e2e tests 2021-02-22 13:41:10 -07:00
Asher 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
Asher 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
Asher 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
Asher 619934dc29 Authenticate plugin routes (#2720) 2021-02-12 14:56:39 -06:00
Justin Poehnelt 97c1399401 feat: use compression in express server (#2680) 2021-02-12 14:27:33 -06:00
Asher 8344e2062a Merge pull request #2622 from cdr/plugin-additions 2021-02-10 16:45:00 -06:00
Asher e4e0ac43b0 Don't load plugins in tests
This can affect the test behavior and results.
2021-02-09 15:39:57 -06:00
Asher e098df0766 Fix code-server module not being provided in Jest 2021-02-09 15:23:08 -06:00
Asher 2879bd4c22 Add type alias for required modules 2021-02-09 13:09:41 -06:00
Asher 3226d50747 Rename papi to pluginApi 2021-02-09 13:09:40 -06:00
Asher 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
Asher c78f56b334 Expose HttpError to plugins
This will let them throw and show nice errors more easily.
2021-02-09 13:09:38 -06:00
Asher 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
Asher 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
Asher 5505959f7e Expose websocket server to plugins
Same reasoning used when exposing Express.
2021-02-09 13:09:34 -06:00
Asher b13db3124b Add health websocket
This is used by some of our services.
2021-02-09 13:09:33 -06:00
Asher f136a60093 Note that we immediately pause websockets 2021-02-09 13:09:32 -06:00
Asher 00cfd9bdf1 Add working directory to plugin config 2021-02-09 13:09:31 -06:00
Asher 3211eb1ce5 Expose log level to plugins
In case they need to map it to something else.
2021-02-09 13:09:30 -06:00
Asher 017b1cc633 Add deinit for plugins 2021-02-09 13:09:29 -06:00
Asher 3c6fac9ce4 Wait for inner process to exit 2021-02-09 13:09:28 -06:00
Asher 055e0ef9ec Provide WsRouter to plugins 2021-02-09 13:09:27 -06:00
Asher 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
Asher f6b04c7c29 Expose proxy server to plugins 2021-02-09 12:19:39 -06:00
Asher a8e928798b Re-export express for plugins 2021-02-09 12:19:38 -06:00
Asher 5f1fab7d27 Re-export logger field for plugins 2021-02-09 12:19:36 -06:00
Joe Previte 719481e84e refactor: add getPackageJson fn in constants 2021-02-08 16:21:30 -07:00
Anmol Sethi 05a0f213a7 Update proxy path passthrough documentation
Includes updated create-react-app docs.

Closes #2565
2021-02-05 11:44:38 -05:00
Anmol Sethi 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
Anmol Sethi 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
Anmol Sethi 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
Joe Previte 646ee3ad7f refactor: correct type signature in app.ts 2021-01-21 10:11:56 -07:00
Joe Previte 6bf51caa17 fix(app.ts): resolve with server 2021-01-21 10:11:10 -07:00