Archived
1
0
Commit Graph

590 Commits

Author SHA1 Message Date
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
Asher
f4e5855318
Simplify update request 2020-11-03 14:35:23 -06:00
Asher
3a074fd844
Skip unnecessary auth type check when using --link 2020-11-03 14:30:34 -06:00
Asher
8a9e61defb
Use Addr interface everywhere and loop over arg sources 2020-11-03 14:28:49 -06:00
Asher
1067507c41
Proxy to 0.0.0.0 instead of localhost 2020-11-03 14:28:48 -06:00
Anmol Sethi
f9e0990594
Merge pull request #2255 from cdr/self-signed-3b2c
Fix self signed certificate for iPad
2020-11-03 14:04:47 -05:00
Asher
9ad7d0b7a3
Fix potential 500 when loading in parallel 2020-10-30 16:16:46 -05:00
Asher
07e7c38ea2
Immediately pause web socket
This will buffer any data sent to it until something is ready to listen
on it.
2020-10-30 16:16:46 -05:00
Anmol Sethi
a1b61d1659
src/node/util.ts: Mark generated certificates as CA
Required for access under iPad.
2020-10-30 13:36:53 -04:00
Anmol Sethi
bae28727bd
src/node/cli.ts: Add --cert-host to configure generated certificate hostname 2020-10-30 13:36:53 -04:00
Anmol Sethi
8b85006996
src/node/util.ts: Make certificate generation "modern"
Now we add a subject alt name, set extendedKeyUsage and use the
correct certificate extension.

The above allow it to be properly trusted by iOS.

See https://support.apple.com/en-us/HT210176

*.cert isn't a real extension for certificates, *.crt is correct
for it to be recognized by e.g. keychain or when importing as a profile
into iOS.

Updates #1566

I've been able to successfully connect from my iPad Pro now to my
code-server instance with a self signed certificate! Next commit
will be docs.
2020-10-30 13:36:53 -04:00
Anmol Sethi
10b3028196
util: Generate self signed certificate into data directory
Closes #1778
2020-10-30 13:36:53 -04:00
Asher
f2f1fee6f1
Short-circuit heartbeat when alive 2020-10-27 17:48:37 -05:00
Asher
504d89638b
Fix open line being printed when open fails
Opening the URL can fail if the user doesn't have something appropriate
installed to handle it.
2020-10-27 17:43:11 -05:00
Asher
dc177ab505
Unambiguify address replacement
Co-authored-by: Teffen Ellis <TeffenEllis@users.noreply.github.com>
2020-10-27 17:38:54 -05:00
Asher
cde94d5ed4
Remove redundant serverAddress check
We now guarantee there is an address.
2020-10-27 17:35:42 -05:00
Asher
305348f0ac
Improve proxy fallthrough logic
- Use accept header.
- Match /login and /login/ exactly.
- Match /static/ (trailing slash).
- Use req.path. Same result but feels more accurate to me.
2020-10-27 17:31:37 -05:00
Asher
6ab6cb4f07
Fix error handler types 2020-10-27 17:20:13 -05:00
Asher
6422a8d74b
Fix webview resource path 2020-10-27 17:17:05 -05:00
Asher
257d9a4fa4
Make authentication work with sub-domain proxy 2020-10-26 17:56:14 -05:00
Asher
112eda4605
Convert routes to Express 2020-10-26 17:56:13 -05:00
Asher
4b6cbacbad
Add file for global constants 2020-10-26 17:56:12 -05:00
Asher
71dc5c7542
Switch to Express
It doesn't do anything yet.
2020-10-26 17:56:11 -05:00
Asher
8e93e28162
Strip config file password from debug log 2020-10-20 16:18:28 -05:00
Asher
9f25cc6d5d
Move providers from app to routes 2020-10-20 16:18:27 -05:00
Asher
2928d362fa
Move heart and AuthType out of http
This file is going to get blasted in favor of Express.
2020-10-20 16:18:24 -05:00
Asher
dcb303a437
Move argument defaults into setDefaults 2020-10-20 16:15:13 -05:00
Anmol Sethi
00383b79b9
Merge pull request #2099 from cdr/open-in
Make opening in an existing instance work outside code-server
2020-10-12 01:14:15 -04:00
Asher
c6ba12942c
Filter blank plugin directories (#2187)
I neglected to realize that "".split(":") is an array with "" in it.
2020-10-11 02:14:43 -04:00
Asher
26c735b434
Remove tryParse
Now that the exception handling happens further up there doesn't seem to
be an advantage in having this in a separate method.
2020-10-09 17:05:21 -05:00
Asher
466a04f874
Remove pointless use of openInFlagCount
It'll always be zero here.
2020-10-09 16:57:45 -05:00
Asher
e0769dc13a
Move config file info log
Otherwise it outputs when trying to open a file in an existing instance
externally. Externally there isn't an environment variable to branch on
to skip this line so instead output it with the other info lines in the
child process.
2020-10-09 16:57:44 -05:00
Asher
fe19391c03
Read most recent socket path from file 2020-10-09 16:57:43 -05:00
Asher
021c084e43
Move log level defaults into setDefaults
This will allow cliArgs to be only the actual arguments the user passed
which will be used for some logic around opening in existing instances.
2020-10-09 16:57:42 -05:00
Asher
1902296702
Remove references to --open-in flag 2020-10-09 16:57:41 -05:00
Asher
bb1bf88439
Fix wrapper.start not actually waiting for anything 2020-10-09 16:57:41 -05:00
Asher
0a8e71c647
Refactor wrapper
- Immediately create ipcMain so it doesn't have to be a function which I
  think feels cleaner.
  - Move exit handling to a separate function to compensate (otherwise
    the VS Code CLI for example won't be able to exit on its own).
- New isChild prop that is clearer than checking for parentPid (IMO).
- Skip all the checks that aren't necessary for the child process (like
  --help, --version, etc).
  - Since we check if we're the child in entry go ahead and move the
    wrap code into entry as well since that's basically what it does.
- Use a single catch at the end of the entry.
- Split out the VS Code CLI and existing instance code into separate
  functions.
2020-10-09 16:57:40 -05:00
Asher
6bdaada689
Move uncaught exception handler to wrapper
Feels more appropriate there to me.
2020-10-09 16:50:24 -05:00
Anmol Sethi
1e4e72aa5b
Merge pull request #2184 from nhooyr/link-flag-1547
cloud: Rename --coder-bind to --link
2020-10-09 13:53:55 -04:00
Anmol Sethi
fcfb03382a
cloud: Add mention of cloud repo 2020-10-09 12:57:48 -04:00
Anmol Sethi
d67bd3f604
cloud: Rename --coder-bind to --link 2020-10-09 12:57:20 -04:00
Anmol Sethi
2d1de749f4
Unlink socket before using (#2181)
See https://stackoverflow.com/a/34881585/4283659

Closes #1538
2020-10-09 12:34:52 -04:00
Asher
c6c293d53a
Merge pull request #2147 from cdr/multi-plugin 2020-10-09 11:02:25 -05:00
Anmol Sethi
a5b6d080bd
Add CS_BETA and note --coder-bind is in beta 2020-10-09 07:50:51 -04:00
Anmol Sethi
9ff37977a8
Make --coder-bind disable HTTPS 2020-10-09 07:39:10 -04:00
Anmol Sethi
f5489cd3a0
Hide -coder-bind for now 2020-10-09 07:38:38 -04:00
Asher
c86d7398ab
Use system data directory for plugins 2020-10-08 16:18:31 -05:00
Anmol Sethi
3e28ab85a0
Add debug log for options passed to the agent 2020-10-07 17:40:19 -04:00
Anmol Sethi
85b0804be5
Remove cliArgs from main
No purpose when all the args are in the args parameter.

We only need configArgs for bindAddrFromAllSources.
2020-10-07 17:40:19 -04:00
Anmol Sethi
df3089f3ad
coder-cloud: Use consolidated bind command 2020-10-07 17:40:19 -04:00
Anmol Sethi
bfe731f4f3
Ensure socket is undefined with --coder-bind 2020-10-07 16:16:01 -04:00
Anmol Sethi
c4f1c053bf
Show valid values for --auth in --help
See https://github.com/nhooyr/code-server/pull/1/files#r485847134
2020-10-07 15:58:30 -04:00
Anmol Sethi
4b3c089630
Remove dead code 2020-10-07 15:58:30 -04:00
Anmol Sethi
1c16814a89
Update coder-bind docs 2020-10-07 15:58:30 -04:00
Anmol Sethi
c3c24fe4d2
Fixes for @ammarb 2020-10-07 15:58:30 -04:00
Anmol Sethi
22c4a7e10f
Make linking and starting code-server to the cloud a single command 2020-10-07 15:58:30 -04:00
Anmol Sethi
0aa98279d6
Fixes for CI 2020-10-07 15:58:30 -04:00
Anmol Sethi
55a7e8b56f
Implement automatic cloud proxying 2020-10-07 15:58:30 -04:00
Anmol Sethi
916e24e109
Add support for multiline descriptions 2020-10-07 15:58:30 -04:00
Anmol Sethi
c7c62daa67
Remove unused code in optionDescriptions 2020-10-07 15:58:30 -04:00
Anmol Sethi
579bb94a6c
Add coder cloud expose command 2020-10-07 15:58:30 -04:00
Asher
a44b4455f5
Read plugin name from package.json 2020-10-07 12:54:48 -05:00
Asher
c2ac126a50
Log all plugin errors as errors 2020-10-07 12:25:42 -05:00
Asher
ddda280df4
Rename plugin vars and make both colon-separated
Only one was colon separated but now they both are.
2020-10-07 12:18:57 -05:00
Asher
7a982555a8
Add version to plugin load log 2020-09-30 15:52:40 -05:00
Asher
e64b186527
Add variables to better customize plugin directories 2020-09-30 15:52:39 -05:00
Asher
11eaf0b470
Fix being unable to use [::] for the host
Fixes #1582.
2020-09-30 12:49:36 -05:00
Asher
8b5deac92b
Fix 80 getting dropped from bind-addr 2020-09-30 11:57:23 -05:00
Asher
9d87c5328c
Add robots.txt (#2080)
Closes #1886.
2020-09-14 17:34:48 -05:00
Anmol Sethi
cc5ed1eb57
Allow installing extensions from the CLI while $VSCODE_IPC_HOOK_CLI
Closes #2083
2020-09-11 11:49:22 -04:00
Asher
0a2328c1f6
Don't require auth for healthz (#2055)
* Don't require authentication for healthz endpoint

* Add FAQ entry for /healthz
2020-09-08 13:59:01 -05:00
Asher
617cd38c71
Fix my bad conflict resolution from the github ui 2020-08-31 11:10:12 -05:00
Jacob Goldman
75c8fdeed2
Added /healthz JSON response for heartbeat data. #1940 (#1984) 2020-08-31 10:29:12 -05:00
Asher
ce8577b1c3
Remove open-in flag (#2013) 2020-08-27 15:04:37 -05:00
shayne
ceb2265b14
Allow opening files, folders, and workspaces in existing code-server from CLI (#1994)
Add initial support for opening files / folders in running code-server instance.

Current limitations:

- unable to open a file in a new window, only folders
- unable to use addMode feature
- others...
2020-08-27 13:06:21 -05:00
Anmol Sethi
864a9e7bd6
Merge pull request #1999 from cdr/update
Update dependencies in package.json
2020-08-27 13:17:18 -04:00
Asher
eebb8bb314
Add proposed API flag (#2002)
Co-authored-by: giddyuptiger <65830808+giddyuptiger@users.noreply.github.com>
2020-08-26 14:18:40 -05:00
Anmol Sethi
ebbb1187da
Update remaining dependencies 2020-08-26 14:27:30 -04:00
Anmol Sethi
c8f63b61c4
Fix fmt and lint 2020-08-26 14:21:37 -04:00
Asher
e237589f2e
Update VS Code to 1.48.0 (#1982) 2020-08-25 13:06:41 -05:00
Asher
74910ffcdf
Hotswap on SIGUSR1 (#1970) 2020-08-17 14:17:55 -05:00
Asher
3c90b1e327
Merge pull request #1969 from cdr/qol
qol changes
2020-08-17 14:17:29 -05:00
Asher
0dcf469725
Add @version information to --help
This mimics a recent change in VS Code's help. See #1965.
2020-08-13 18:08:35 -05:00
Asher
d8568ebaa9
Enforce import order 2020-08-13 17:11:35 -05:00
Asher
f7790c9719
Remove unused deep merge code 2020-08-13 17:11:34 -05:00
Asher
150d37868a
Enforce strict equals 2020-08-13 17:11:33 -05:00
Asher
de568d446b
Add cookie domain debug logs
To help debug login issues.
2020-08-13 17:06:32 -05:00
Asher
7d02f34f71
Merge pull request #1934 from cdr/plugin
Add plugin system for adding http endpoints
2020-08-13 16:59:44 -05:00
G r e y
6e27869c09
Add str param to plural util
Adds a str param to common/util::plural for pluralizing a string.
Applies plural to entry.ts.
2020-08-09 00:06:18 -05:00
Asher
9b979ac869
Document code-server injection 2020-08-05 13:00:37 -05:00
Asher
543d64268d
Simplify valid path check 2020-08-05 13:00:34 -05:00
Asher
fd36f8c168
Use error log level for plugin load failure 2020-08-05 13:00:33 -05:00
Asher
361e7103ea
Enable loading external plugins 2020-07-31 17:42:48 -05:00
Asher
bac948ea6f
Add plugin system 2020-07-31 15:08:02 -05:00
Asher
5370f7876d
Merge pull request #1927 from cdr/dead-code
Remove dead code
2020-07-31 12:25:56 -05:00
futengda
ecb9bb2428 refactor: write lastVisited and query at the same time
In addition, the `settings.write` method now uses shallow merge by default
2020-07-31 12:25:20 +08:00
Asher
e86c066438
Add helper functions to make some code clearer 2020-07-30 12:14:31 -05:00
futengda
b6e791f7d0 refactor: write route.query via settings.write
I added a shallow parameter, because the query should not be extends, but should be replaced directly.
2020-07-30 16:54:02 +08:00
Asher
2fa5037859
Log output to disk 2020-07-29 18:48:07 -05:00
Asher
7c2ca7d03e
Add the ability to prepend to the proxy path
This is for applications like Jupyter that aren't base path agnostic.
2020-07-29 18:48:06 -05:00
Asher
c67d31580f
Include details if any in JSON requests 2020-07-29 18:48:05 -05:00
Asher
58bd7008b4
Make dispose async 2020-07-29 18:48:04 -05:00
Asher
554b6d6fcf
Remove apply portion of update endpoint
It can still be used to check for updates but will not apply them.

For now also remove the update check loop in VS Code since it's
currently unused (update check is hardcoded off right now) and won't
work anyway since it also applies the update which now won't work. In
the future we should integrate the check into the browser update
service.
2020-07-29 18:48:02 -05:00
fxxjdedd
5ba650bb6f
feat: persist route query to local
Provide a way for the shell script running in the docker container to get the url query.
2020-07-28 20:14:52 +08:00
Asher
e8f6d30055
Make providers endpoint-agnostic
A provider can now be registered on multiple endpoints (or potentially
moved if needed).
2020-07-27 12:00:48 -05:00
Asher
2819fd51e2
Remove unused endpoints
- dashboard
- app api
2020-07-27 12:00:42 -05:00
Anmol Sethi
c00f931500
Remove zip library dependency 2020-06-03 18:24:59 -04:00
Anmol Sethi
85ad7e4fb4
Remove duplicate log
Also confirmed that #1750 is fixed.
2020-06-03 15:45:17 -04:00
Anmol Sethi
11d7932968
Stop bundling libraries in release
- Instead we now use CentOS 7 for the static build to guarantee
  that we only depend on libc v2.17

- For macOS we now pull in a static node binary and bundle that instead.
2020-06-03 15:45:16 -04:00
Anmol Sethi
2c2a6498af
Parse config file in entry
This way setting --data-dir and --extension-dir in the config file
will work for --install--extension and whatnot.
2020-06-03 15:45:16 -04:00
Anmol Sethi
7ab47b3d83
Trim LD_LIBRARY_PATH on startup 2020-06-03 15:45:16 -04:00
Anmol Sethi
9d0dcf3c44
Fix extension install path for CLI
Closes #1713
2020-05-27 14:28:40 -04:00
Anmol Sethi
8053ec6872
Allow user-data-dir and extension-dir in config.yaml
Closes #1676
2020-05-19 00:41:27 -04:00
Asher
f7f11ad6c2
Fix paths from Windows client to non-Windows server
Fixes #1659
Fixes #1642
2020-05-18 15:06:11 -05:00
Anmol Sethi
6a25b3bfa0
Document structure better
Closes #1648
2020-05-17 16:53:08 -04:00
Anmol Sethi
73b2ff0945
$PORT should always override port in --bind-addr 2020-05-14 22:33:12 -04:00
Anmol Sethi
40778b15ca
Add code-server version into VS Code about
Closes #1506
2020-05-14 22:33:12 -04:00
Anmol Sethi
c69346a9a7
Add FAQ entry on the config file 2020-05-14 18:35:35 -04:00
Anmol Sethi
5651201643
Copy old macOS data directory if applicable 2020-05-14 06:12:33 -04:00
Anmol Sethi
a0a77e379e
Add doc/guide.md 2020-05-14 05:24:23 -04:00
Anmol Sethi
c0d6eb4664
Improve password handling
- Error out if auth is enabled but no password is passed in
- Indicate password location on login page
2020-05-12 19:59:55 -04:00
Anmol Sethi
1e432b25ea
Comment on hash(password) 2020-05-12 19:59:54 -04:00
Anmol Sethi
d6ea9d78f6
Configuration file bug fixes based on @code-asher's review 2020-05-12 19:59:54 -04:00
Anmol Sethi
d288131a33
Fix lint errors 2020-05-12 19:59:54 -04:00
Anmol Sethi
e02d94ad2f
Allow password authentication in the config file 2020-05-12 19:59:54 -04:00
Anmol Sethi
4f67f4e096
Disable automatic updates 2020-05-12 19:59:54 -04:00
Anmol Sethi
00d164b67f
Add default config file and improve config/data directory detection 2020-05-12 19:59:54 -04:00
Anmol Sethi
c5179c2a06
Add support for a YAML config file 2020-05-12 19:59:53 -04:00
Anmol Sethi
be032cf735
Add NPM package, debs, rpms and refactor CI/build process
Closes many issues that I'll prune after adding more docs
for users.
2020-05-06 20:25:52 -04:00
Asher
0a2f06b296
Update diff command in readme 2020-05-05 12:33:08 -05:00
Anmol Sethi
1898dea314
Unset $PASSWORD after grabbing it
Closes #1583
2020-05-04 22:41:21 -04:00
Asher
fd36a99a4c
Update vscode patch notes and bump version 2020-04-29 15:22:11 -05:00
Asher
a2b69c8f3f
Fix inconsistencies in log flags and env var
- Fix priority to match the commented behavior.
- Ignore bogus LOG_LEVEL values.
2020-04-28 17:57:55 -05:00
Anmol Sethi
a96606e589
Fix mention of host/port in docs 2020-04-28 18:29:25 -04:00
Anmol Sethi
37184f456c
Merge pull request #1562 from cdr/bindaddr
Deprecate --host and --port in favour of --bind-addr
2020-04-28 14:33:38 -04:00
Anmol Sethi
5accf3fe5f
Add basic rate limiting to login endpoint
Closes #1320
2020-04-28 14:21:08 -04:00
Anmol Sethi
af28885ea6
Deprecate --host and --port in favour of --bind-addr 2020-04-28 14:19:24 -04:00
Anmol Sethi
d0d5461a67
Remove SSH server
Closes #1502
2020-04-27 09:27:45 -04:00
Asher
27ba64c7e4
Improve request error handling
See #1532 for more context.

- Errored JSON requests will get back the error in JSON instead of using
  the status text. This seems better to me because it seems more correct
  to utilize the response body over hijacking the status text. The
  caller is expecting JSON anyway. Worst of all I never actually set the
  status text like I thought I did so it wasn't working to begin with.
- Allow the update error to propagate for JSON update requests. It was
  caught to show the error inline instead of an error page when using
  the update page but for JSON requests it meant there was no error and
  no error code so it looked like it succeeded.
- Make errors for failed requests to GitHub less incomprehensible.
  Previously they would just be the code which is no context at all.
2020-04-17 15:16:10 -05:00
Asher
974d4cb8fc
Allow specifying a workspace on the command line
Fixes #1535.
2020-04-16 11:56:46 -05:00
Asher
28e91ba70c
Fix domain issues when setting the cookie
Fixes #1507.
2020-04-13 16:14:40 -05:00
Asher
5aded14b87
Merge pull request #1453 from cdr/proxy
HTTP proxy
2020-04-08 12:44:29 -05:00
Asher
a288351ad4
Respond when proxy errors
Otherwise the request will just hang.
2020-04-08 11:54:18 -05:00
Asher
a5c35af81b
Fix encoding issues with folder and workspace params
The raw value is now passed back to VS Code so it can do the parsing
with its own URI class rather than trying to parse using Node's url
module first since that has no guarantee of working the same way. It
also lets us keep the vscode-remote bit internal to VS Code.

Removed the logic that keeps trying paths until it finds a valid one
because it seems confusing to open a path and silently get some other
path instead of an error for the one you tried to open. Now it'll just
use exactly what you specified or fail trying.

Fixes #1488. The problem here was that url.parse was encoding the spaces
then the validation failed looking for a literal %20.
2020-04-07 15:18:19 -05:00
Asher
d1445a8135
Back up code-server directory when updating 2020-04-02 16:21:48 -05:00
Asher
a5d1d3b90e
Move proxy logic into main HTTP server
This makes the code much more internally consistent (providers just
return payloads, include the proxy provider).
2020-04-02 13:40:29 -05:00
Asher
aaa6c279a1
Use Set for proxy domains 2020-04-02 13:40:28 -05:00
Asher
498becd11f
Use route.fullPath when adding trailing slash
There's no need to specially construct the path.
2020-04-02 13:40:27 -05:00
Asher
411c61fb02
Create helper for determining if route is the root 2020-04-02 13:40:26 -05:00
Asher
74a0bacdcf
Rename hxxp to isHttp 2020-04-02 13:40:25 -05:00
Asher
e7e7b0ffb7
Fix redirects through subpath proxy 2020-04-02 13:40:25 -05:00
Asher
fd339a7433
Include query parameters when proxying 2020-04-02 13:40:24 -05:00
Asher
561b6343c8
Ensure a trailing slash on subpath proxy 2020-04-02 13:40:23 -05:00
Asher
737a8f5965
Catch proxy errors
Otherwise they'll crash code-server.
2020-04-02 13:40:21 -05:00
Asher
c0dd29c591
Fix domains with ports & localhost subdomains 2020-04-02 13:40:20 -05:00
Asher
8aa5675ba2
Implement the actual proxy 2020-04-02 13:40:19 -05:00
Asher
2086648c87
Only handle exact domain matches
This simplifies the logic a bit.
2020-04-02 13:40:18 -05:00
Asher
3a98d856a5
Handle authentication with proxy
The cookie will be set for the proxy domain so it'll work for all of its
subdomains.
2020-04-02 13:40:17 -05:00
Asher
90fd1f7dd1
Add proxy provider
It'll be able to handle /proxy requests as well as subdomains.
2020-04-02 13:40:16 -05:00
Asher
77ad73d579
Set domain on cookie
This allows it to be used in subdomains.
2020-04-02 13:40:15 -05:00
Asher
13534fa0c0
Add proxy-domain flag
This will be used for proxying ports.
2020-04-02 13:40:14 -05:00
Asher
37299abcc9
Minor startup code improvements
- Add type to HTTP options.
- Fix certificate message always saying it was generated.
- Dedent output not directly related to the HTTP server.
- Remove unnecessary comma.
2020-04-02 13:40:13 -05:00
Asher
a4c0fd1fdc
Run ssh server listen after http
That way if they happen to conflict code-server doesn't crash.
2020-03-30 17:43:11 -05:00
Asher
6c104c016e
Prevent exiting when an exception is uncaught 2020-03-30 17:43:10 -05:00
Asher
599670136d
Output commit along with the version 2020-03-30 17:43:09 -05:00
Asher
ce637d318d
Add descriptions to SSH flags 2020-03-30 17:43:08 -05:00
Asher
0a5687bacf
Fix crash when unable to request an update 2020-03-25 15:00:35 -05:00
Asher
d1687c1533
Catch error when SSH server fails to start 2020-03-24 17:38:46 -05:00
Asher
b52fbb4cb9
Catch error when openssl isn't installed 2020-03-16 15:14:54 -05:00
Will O'Beirne
3463d56114
SSH server & endpoint 2020-03-16 15:14:53 -05:00
Asher
d192726e80
Simplify dashboard 2020-03-16 15:14:50 -05:00
Asher
d832f61d5b
Make client-side extensions work at any base 2020-03-16 12:04:09 -05:00
Asher
6cb228037b
Add base path to update endpoint from VS Code
This will make it work regardless of what the current URL happens to be.

Also move the telemetry setting into the options since we might as well
make use of it seeing as how we have to parse it for the base path
anyway.
2020-03-13 16:44:56 -05:00
Asher
a00fa85d77
Qualify extensions in help output as VS Code extensions
Also add a description for uninstall-extension and force.
2020-03-13 13:23:30 -05:00
Asher
57de78e12a
Add show-versions flag and add help for list-extensions
Closes #1417.
2020-03-13 13:17:59 -05:00
Asher
2342443368
Set telemetry setting based on disable-telemetry flag
By design the disable-telemetry flag does not affect extension
telemetry, only the setting does, so disabling the setting when the flag
is set should cause extensions to also stop sending telemetry.

Fixes #1116.
2020-03-13 12:36:57 -05:00
Asher
253cf1c438
Remove unnecessary return types 2020-03-11 16:06:32 -05:00
Asher
0b9a478289
Add connection type to websocket query parameters
This allows external services to distinguish between them.
2020-03-05 15:49:37 -06:00
Asher
1f6ff2f763
Show --install-extension in help menu
Also add --force so extensions can be updated without prompts.

Closes #1392.
2020-03-05 10:42:49 -06:00
Asher
04542c99fd
Resolve passed-in directory
Makes relative paths work correctly.
2020-03-05 10:38:13 -06:00
Asher
308a84e6ec
Fix centos image for arm64 2020-03-04 13:12:03 -06:00
Asher
e0e019fbd5
Fix mime type for compressed client-side extensions
In Firefox using the gzip mime type will (probably correctly) cause it
not to decompress while in Chromium it still will (incorrectly).
2020-03-02 18:24:35 -06:00
Asher
77af2a5b0e
Fix worker require paths when behind proxy 2020-03-02 18:04:27 -06:00
Asher
ccd01c49b9
Integrate update notifications into VS Code 2020-03-02 15:01:24 -06:00
Asher
069c5230cd
Move VS Code to the root 2020-03-02 12:55:34 -06:00
Asher
c146457de4
Add recents section 2020-03-02 11:52:39 -06:00
Asher
88cab27165
Compress when sending client-side extension tars 2020-02-28 14:25:28 -06:00
Asher
a8914b025f
Output code-server version on startup 2020-02-28 13:30:21 -06:00
Asher
0f87798ed6
Don't write bad password back out to input
Closes #1379.
2020-02-28 10:49:43 -06:00
Asher
963ebaca5b
Register a service worker
To make installing as a PWA possible. Fixes #1181.
2020-02-27 16:37:00 -06:00
Asher
21cfeb9da0
Add the ability to kill running VS Code instance 2020-02-27 12:04:23 -06:00
Asher
b00f6bf078
Improve error display when VS Code fails to load
Was looking a bit janky with the style changes.
2020-02-26 14:57:07 -06:00
Asher
595ce6f5e3
Update styling
Just sort of winging it.
2020-02-26 14:25:12 -06:00
Asher
c870398c86
Switch to loose files
For #1306.
2020-02-25 18:23:35 -06:00
Asher
4c6e4bedeb
Fix port being randomized
Also make it a number.
2020-02-24 16:49:10 -06:00
Asher
04e449c546
Require cert-key with cert
Fixes #1312.
2020-02-24 15:01:59 -06:00
Anmol Sethi
bd7583a254
Obey process.env.PORT 2020-02-21 14:49:58 -05:00
Asher
33b3523bf4
Prefer command-line directory to last visited directory
If you want to use the last visited directory you should omit the
directory from the command line.

Fixes #1132.
2020-02-21 12:45:57 -06:00
Asher
cf0f11105b
Handle upgrade from binary to loose files
As best we can, anyway.
2020-02-21 12:32:58 -06:00
Asher
e44ac0a30e
Use last positional argument as working directory
Instead of the first.
2020-02-20 18:48:17 -06:00
Asher
319cd3f7ab
Make updating work for both binary and loose releases 2020-02-20 18:48:16 -06:00
Anmol Sethi
3a2644a2bc
Fix vscode.sh 2020-02-20 18:36:38 -05:00
Asher
288e794c99
Update locale file location
Should make language packs work again.
2020-02-20 12:52:23 -06:00
Asher
c567a06ff5
Fix HTTPS redirects and TLS sockets
It still won't work behind a base path, but if you're using a reverse
proxy you can just redirect to HTTPS yourself. And should probably
handle TLS termination there too.

For sockets I just needed to add back the proxy call.
2020-02-19 17:59:12 -06:00
Asher
51a5c77cb8
Add binary extraction
I temporarily removed this during the refactor so it needed to be added
back. This time I bundled it with the nbin loader code since it's all
related (will also make it easier to remove).
2020-02-19 14:15:01 -06:00
Asher
80b2d9481f
Don't display stack trace for cli parse failures
Just display the error message and exit. The stack trace isn't necessary
(since it's likely user error) and is potentially confusing.
2020-02-19 11:15:39 -06:00
Asher
0e2eaa9b34
Add valid values for --log 2020-02-19 11:11:29 -06:00
Asher
0263188431
Handle --long=value format in the cli parser 2020-02-19 10:54:23 -06:00
Asher
46d6e17508
Prepare for release
- Add VS Code icon
- Trim dashboard to just display dedicated VS Code section
- Version was getting unset during build
- Add back nbin shim which I temporarily took out earlier
- Update tests for log level env var changes
2020-02-18 17:31:23 -06:00
Asher
8793110941
Implement endpoint for getting recent directories 2020-02-18 14:13:22 -06:00
Asher
f6b092b12d
Merge branch 'restructure' 2020-02-18 13:30:37 -06:00
Asher
d47591e253
Inject base path into manifest
Might fix #1181, although not for the reasons I initially
thought (because the URLs are resolved from the manifest path, not the
path of the current page). This should ensure that the URLs used by the
manifest are always correct regardless of the manifest's path.
2020-02-18 13:01:18 -06:00
Asher
39a57700bc
Enable access to vscode cli 2020-02-18 12:24:12 -06:00
Anmol Sethi
1a54f6b7ef
Merge remote-tracking branch 'origin/restructure' into anmol-restructure 2020-02-18 12:52:29 -05:00
Anmol Sethi
4aa15401c3
Format and lint 2020-02-14 20:00:19 -05:00
Asher
0ec83f8736
Check updates daily instead of every time
Also add a way to force a check.
2020-02-14 16:46:22 -06:00
Asher
db54f78e8e
Implement automatic updates 2020-02-14 15:58:39 -06:00
Asher
b8fa7da972
Simplify frontend
Just a login form and a list of applications. No modals or anything like
that.
2020-02-13 20:10:14 -06:00
Asher
bf1be16d11
Fix base path
Now it should work whether you have a trailing slash or not.
2020-02-13 12:41:58 -06:00
Asher
cc79edb312
Fix duplicate files opening with folder parameter
Reworked from d574012871 to fit in the
new structure.
2020-02-13 12:04:22 -06:00
Asher
5baf16622f
Fix VS Code product configuration not loading 2020-02-07 16:47:51 -06:00
Asher
256419004d
Implement cli parser 2020-02-07 14:43:08 -06:00
Asher
26f8216ec8
Un-nest a switch 2020-02-06 14:00:38 -06:00
Asher
63f3c04c57
Move user data directory logic out of patch 2020-02-06 13:12:00 -06:00
Asher
8a0f1d846e
Move start path logic out of patch and fix it 2020-02-06 12:29:38 -06:00
Asher
6cebfa469d
Generalize initial app logic 2020-02-05 18:47:00 -06:00
Asher
205775ac97
Only serve HTML on specific index.html requests
Otherwise there is risk of an infinite loop through the iframe where the
fallback keeps loading the root HTML which itself has an iframe...
2020-02-05 17:45:24 -06:00