Commit Graph

416 Commits

Author SHA1 Message Date
Anmol Sethi
5c06646f58
Formatting and linting fixes 2021-01-20 02:06:44 -05:00
Anmol Sethi
240c8e266e
test: Implement integration.ts for near full stack integration testing 2021-01-20 02:06:44 -05:00
Anmol Sethi
d3074278ca
app.ts: Fix createApp to log all http server errors
cc @code-asher
2021-01-20 02:06:43 -05:00
Anmol Sethi
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
Anmol Sethi
f169e3ac66
pathProxy.ts: Implement --proxy-path-passthrough
Closes #2222
2021-01-20 02:06:43 -05:00
Anmol Sethi
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
Robert Beach
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
Asher
f763319bc3
Merge pull request #2160 from cdr/github-auth
Fix GitHub auth
2020-12-18 10:54:51 -08:00
Anmol Sethi
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
Asher
5f7f7f1a92
Simplify query concatenation in URL callback
Cases in URLs like ?&a=b or ?a=b& appear to be handled just fine.
2020-12-18 11:31:25 -06:00
Anmol Sethi
60c270aef5
cli: hashedPassword -> hashed-password (#2454)
Capital letters in the CLI are evil.

cc @code-asher
2020-12-18 12:20:38 -05:00
Anmol Sethi
ae902b9dd1
proxy_agent: Use proxy-from-env for robustness
Now we support pretty much every variable under the sun along with
$NO_PROXY all correctly and with minimal code on our end.
2020-12-18 11:10:07 -05:00
Anmol Sethi
94b4ba131e
proxy_agent: Implement $HTTPS_PROXY
Just convention, see https://golang.org/pkg/net/http/#ProxyFromEnvironment
2020-12-18 10:39:31 -05:00
Anmol Sethi
ecb4d07364
proxy_agent: Improve documentation 2020-12-18 10:38:46 -05:00
Anmol Sethi
3efd515cdf
proxy_agent: Fix very embarrassing mistake 2020-12-18 04:24:27 -05:00
Asher
58c1be57fa
Implement callback endpoints
VS Code uses these during the authentication flow.
2020-12-17 15:49:36 -06:00
Asher
f8b782bd68
Move ignore-last-opened to ipc.d.ts
This is so it can be used in VS Code. Don't tell anyone but I forgot to
run `yarn ci`.
2020-12-15 11:14:21 -06:00
Joe Previte
cc584f86b9
Merge pull request #2435 from cdr/issue-2328-customize-go-home
cli: add --home flag to customize "Go Home" button
2020-12-15 09:52:39 -07:00
JammSpread
f4ca41329a
Add --ignore-last-opened option (#2434)
This allows bypassing the last opened behavior for certain cases where that's not desirable.

Fixes #1951
2020-12-15 10:22:58 -06:00
Joe Previte
8daba6ca80
feat: add home as a cli option 2020-12-14 16:23:35 -07:00
Anmol Sethi
244afa402e
routes: Redirect from /login when auth is disabled (#2456)
Sometimes I start with auth but then disable. Now I can just reload the
login page in my browser to be greeted with code-server.
2020-12-14 12:33:36 -05:00
Anmol Sethi
affb92f281
cli: Show beta flags in help output
Looks like

```
   -r --reuse-window         Force to open a file or folder in an already opened window.
 -vvv --verbose              Enable verbose logging.
      --link                 (beta) Securely bind code-server via Coder Cloud with the passed name. You'll get a URL like
                             https://myname.coder-cloud.com at which you can easily access your code-server instance.
                             Authorization is done via GitHub.
```

Based on commits by @JammSpread in #2405

Closes #2396
2020-12-08 19:00:33 -05:00
Anmol Sethi
6c693000eb
Merge pull request #2405 from JammSpread/master
Modify --link arg and README (Cdr Cloud)
2020-12-08 18:30:34 -05:00
SPGoding
1dd7e4b4e1
Add hashedPassword config (#2409)
Resolve #2225.
2020-12-08 14:54:17 -06:00
JK
4d295e3195 Modify link arg and its desc to not be beta 2020-12-05 01:23:48 +00:00
Anmol Sethi
58bbf2584a
proxy_agent.ts: Document why there is no $HTTPS_PROXY support 2020-12-04 13:52:52 -05:00
Anmol Sethi
a021bf5d35
Fix CI 2020-12-04 13:52:52 -05:00
Anmol Sethi
a72c642125
proxy_agent.ts: Document that no other code passes in explicit agent
From my inspection as of this date anyway.
2020-12-04 02:34:43 -05:00
Anmol Sethi
691d44d4a8
Use proxy-agent to support $HTTP_PROXY
Closes #124

This works by monkey patching the http and https modules's default agent
at runtime to the one given by the proxy-agent package.
2020-12-04 02:34:43 -05:00
Anmol Sethi
cee88ad637
update.ts: Fix response memory leak 2020-12-04 02:34:43 -05:00
Anmol Sethi
67470f0254
node: coder-cloud -> coder_cloud
File names should not have dashes.
2020-12-04 02:34:43 -05:00
JK
04357ddd88 Remove logs mentioning --link being beta 2020-12-04 01:50:47 +00:00
JK
0d53441950 Add "disabled by --link" note to certificate arg 2020-12-04 01:45:20 +00:00
Anmol Sethi
cc18175ce3
cli: Add --disable-update-check flag
Closes #2361
2020-11-30 15:30:06 -05:00
Anmol Sethi
be37821ab9
update.ts: Simplify comparison 2020-11-24 12:42:26 -05:00
Anmol Sethi
fb63c0cd22
vscode: Show notification when upgrade is available
And link to the release notes.
2020-11-24 12:13:21 -05:00
Asher
4380356e0c
Merge pull request #2334 from cdr/wrappers
Separate process wrappers and pass arguments
2020-11-19 10:28:54 -06:00
Asher
72caafe8b0
Fix service worker not loading (#2335)
I removed this under the impression the default was to allow it anywhere
but that's not the case. Since the service worker was already registered
in my browser I never got the error during testing.
2020-11-19 10:18:15 -06:00
Asher
182791319a
Fix tar authentication
It was checking the request path but for tars the path is in the query
variable so the request path is irrelevant.
2020-11-18 17:15:53 -06:00
Asher
95ef6dbf2f
Remove unused wrapper options
Also move our memory default to the beginning of NODE_OPTIONS so it can
be overidden. The version of the flag with dashes seems to be the more
correct one now so use that instead of underscores.

Related: #2113.
2020-11-18 13:23:06 -06:00
Asher
016daf2fdd
Parse arguments once
Fixes #2316.
2020-11-18 13:01:46 -06:00
Asher
247c4ec776
Move onMessage so it can be used in the wrappers 2020-11-18 12:28:43 -06:00
Asher
d55e06936b
Split child and parent wrappers
I think having them combined and relying on if statements was getting
confusing especially if we want to add additional messages with
different payloads (which will soon be the case).
2020-11-18 12:28:42 -06:00
Asher
2a3608df53
Skip heartbeat on /healthz endpoint (#2333)
I managed to lose this in the rewrite.

Fixes #2327.
2020-11-18 12:19:08 -06:00
piousdeer
c6062c3d0a
Fix log message (#2331) 2020-11-18 10:41:32 -06:00
Anmol Sethi
9917da068a
v3.7.0 2020-11-16 11:11:50 -05:00
Anmol Sethi
40a7c11ce3
node/routes: Fix error handling
We should always send HTML if the user agent expects it.

If they do not, they should clearly indicate such via the Accept header.

Closes #2297
2020-11-13 18:44:28 -05:00
Asher
6f14b8b8dd
Add separate handler for error
Feels like it parallels better with the other handlers.
2020-11-12 12:07:45 -06:00
Asher
b73ea2fea2
Unbind message handler itself after getting message
Also switch `once` to `on` since we `off` them later anyway so no point
in making Node do it twice.
2020-11-12 12:03:28 -06:00
Asher
e1702a1d21
Merge branch master into code-asher/ch1385 2020-11-12 11:52:02 -06:00
Asher
5499a3d125
Use baseUrl when redirecting from domain proxy
This will make the route more robust since it'll work under more than
just the root.
2020-11-12 11:23:52 -06:00
Asher
31b67062b0
Remove <type> from onMessage
Turns out that while Typescript can't infer the callback return type
from it, Typescript can do the opposite and infer it from the callback
return type.
2020-11-12 11:17:45 -06:00
Asher
72931edcf0
Fix cleanup after getting message from vscode 2020-11-12 11:16:21 -06:00
Asher
79478eb89f
Clarify some points around the cookie domain
Also add a check that the domain has a dot. This covers the localhost
case as well, so remove that.
2020-11-10 18:53:38 -06:00
Asher
4574593664
Refactor vscode init to use async
Hopefully is a bit easier to read.
2020-11-10 18:21:20 -06:00
Asher
71850e312b
Avoid setting ?to=/
That's the default so it's extra visual noise.
2020-11-10 18:14:18 -06:00
Asher
b8340a2ae9
Close sockets correctly 2020-11-10 17:55:04 -06:00
Asher
f706039a9d
Re-add TLS socket proxy 2020-11-10 17:55:03 -06:00
Asher
de4949571c
Document getFirstPath better 2020-11-10 17:02:39 -06:00
Asher
0a01338edd
Deduplicate child process message dance 2020-11-10 16:36:46 -06:00
Anmol Sethi
fe399ff0fe
Fix formatting 2020-11-06 14:47:08 -05:00
Anmol Sethi
277211c4ce
plugin: Make init and applications callbacks optional 2020-11-06 14:47:08 -05:00
Anmol Sethi
9453f891df
plugin.ts: Fix usage of routerPath in mount 2020-11-06 10:13:01 -05:00
Anmol Sethi
14f408a837
plugin: Plugin modules now export a single top level identifier
Makes typing much easier. Addresse's Will's last comment.
2020-11-06 10:13:01 -05:00
Anmol Sethi
8a8159c683
plugin: More review fixes
Next commit will address Will's comments about the typings being weird.
2020-11-06 10:13:01 -05:00
Anmol Sethi
706bc23f04
plugin: Fixes for CI 2020-11-06 10:13:01 -05:00
Anmol Sethi
af73b96313
routes/apps.ts: Add example output 2020-11-06 10:12:47 -05:00
Anmol Sethi
2a13d003d3
plugin.ts: Add homepageURL to plugin and application 2020-11-06 10:12:47 -05:00
Anmol Sethi
687094802e
plugin.ts: Make application endpoint paths absolute 2020-11-06 10:12:46 -05:00
Anmol Sethi
139a28e0ea
plugin.ts: Describe private counterpart functions
Addresses Will's comments.
2020-11-06 10:12:46 -05:00
Anmol Sethi
e03bbe3149
routes/apps.ts: Implement /api/applications endpoint 2020-11-06 10:12:46 -05:00
Anmol Sethi
afff86ae9c
plugin.ts: Adjust to implement pluginapi.d.ts correctly 2020-11-06 10:12:46 -05:00
Anmol Sethi
fed545e67d
plugin.d.ts -> pluginapi.d.ts
More clear.
2020-11-06 10:12:46 -05:00
Anmol Sethi
8d3a7721fe
plugin.d.ts: Document plugin priority correctly 2020-11-06 10:12:46 -05:00
Anmol Sethi
75e52a3774
plugin.ts: Fixes for @code-asher 2020-11-06 10:12:46 -05:00
Anmol Sethi
f4d7f00033
plugin.ts: Fixes for @wbobeirne 2020-11-06 10:12:46 -05:00
Anmol Sethi
30d2962e21
src/node/plugin.ts: Warn on duplicate plugin and only load first 2020-11-06 10:12:46 -05:00
Anmol Sethi
82e8a00a0d
Fix CI 2020-11-06 10:12:46 -05:00
Anmol Sethi
e08a55d44a
src/node/plugin.ts: Implement new plugin API 2020-11-06 10:12:45 -05:00
Asher
f7076247f9
Move domain proxy to routes
This matches better with the other routes.

Also add a missing authentication check to the path proxy web socket.
2020-11-05 17:07:32 -06:00
Asher
f6c4434191
Tweak proxy fallthrough behavior
It will now redirect all HTML requests. Also it avoids req.accepts since
that's always truthy.
2020-11-05 16:49:30 -06:00
Asher
cb991a9143
Handle errors for JSON requests
Previously it would have just given them the error HTML.
2020-11-05 15:19:56 -06:00
Asher
3f1750cf83
Fix destroying response in update again
I added another reject that doesn't destroy the response.
2020-11-05 15:08:10 -06:00
Asher
7b2752a62c
Move websocket routes into a separate app
This is mostly so we don't have to do any wacky patching but it also
makes it so we don't have to keep checking if the request is a web
socket request every time we add middleware.
2020-11-05 15:08:09 -06:00
Asher
9e09c1f92b
Upgrade to Express 5
Now async routes are handled!
2020-11-05 15:08:08 -06:00
Asher
8252c372af
Provide a way to tell when event handlers are finished
This lets us actually wait for disposal before a graceful exit.
2020-11-05 15:08:07 -06:00
Asher
396af23842
Kill VS Code when process exits
This is to ensure it doesn't hang around.
2020-11-04 17:07:41 -06:00
Asher
34225e2bdf
Use ensureAuthenticated as middleware 2020-11-04 17:07:40 -06:00
Asher
476379a77e
Fix cookie domain
Had double Domain=
2020-11-04 17:07:39 -06:00
Asher
210fc049c4
Document VS Code endpoints 2020-11-04 17:07:39 -06:00
Asher
e5c8e0aad1
Remove useless || 2020-11-04 17:07:38 -06:00
Asher
c5ce365482
Use query variable to force update check 2020-11-04 17:07:37 -06:00
Asher
a653b93ce2
Include protocol on printed address
This makes it clickable from the terminal.
2020-11-04 17:07:36 -06:00
Asher
e2c35facdb
Remove invalid comment on maybeProxy
It no longer handles authentication.
2020-11-04 17:07:35 -06:00
Asher
75b93f9dc5
Fix bind address priority
Broke when converting to a loop.
2020-11-04 17:07:24 -06:00
Asher
8066da12fe
Remove unused Locals interface 2020-11-03 15:37:22 -06:00
Asher
03e0013112
Unbind error/exit events once handshakes resolve 2020-11-03 15:27:21 -06:00
Asher
e243f6e369
Return early when forking to reduce indentation 2020-11-03 15:27:21 -06:00
Asher
c10450c4c5
Move isFile into util
That allows its use in entry.ts as well.
2020-11-03 15:27:20 -06:00
Asher
c72c53f64d
Fix not being able to dispose vscode after failed disposal 2020-11-03 14:36:27 -06:00