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
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
4683d8a077
fix: update comment and export rateLimiter
2021-04-19 10:40:58 -07:00
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
df6bfbbeaf
feat: bump ts-node to 9.1.1
2021-03-30 16:46:49 -07:00
e4db80667e
refactor: use stdio correctly in wrapper
2021-03-29 14:05:59 -07:00
18ace7b906
Don't send permessage-deflate header if not supported ( #2993 )
2021-03-29 12:59:36 -05:00
b04104cafe
Merge branch 'main' into jsjoeio/upgrade-vscode-1.54
2021-03-22 10:43:39 -07:00
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
071c8e15fc
Merge branch 'main' into jsjoeio/upgrade-vscode-1.54
2021-03-17 13:51:27 -07:00
45a1713767
Merge pull request #2906 from bpmct/rename-cloud
...
rename references of "coder could"
2021-03-17 18:28:14 +00:00
a097713829
remove references of coder could
2021-03-16 22:59:30 -04:00
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
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
5a1f62a8fb
Support permessage-deflate web socket extension ( #2846 )
2021-03-10 13:14:24 -06:00
4d3d1b844d
Handle permessage-deflate on sockets
...
With this the extension host is working again.
2021-03-02 17:18:49 -06: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