Commit Graph

540 Commits

Author SHA1 Message Date
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
Anmol Sethi f15580b28a
favicon: Add dark mode support
Closes #2538

Works as expected on latest Firefox and Chromium.
2021-01-11 12:54:25 -05:00
Anmol Sethi 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
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
Asher d14c2e5bb7
Swap negative check for positive check 2020-12-18 11:21:06 -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 eb4864f9a5
Merge pull request #2400 from cdr/HTTP_PROXY-7e1f
Use proxy-agent to support $HTTP_PROXY
2020-12-04 16:12:45 -05: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 6738cff544
media: Improve icon size (#2401)
See https://github.com/cdr/code-server/pull/2383#issuecomment-738024951
2020-12-04 11:31:45 -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 7e1bb8fc96
browser: Fix HTML formatting 2020-11-30 19:16:00 -05:00
Anmol Sethi ebe4d7ef29
Revamp icons (#2383)
I took our website's SVG favicon and plopped it on a round
white rectangle in Affinity Designer. The I exported it as an SVG and
wrote a script that uses imagemagick to convert to the various sizes and
formats we need.

Closes #2307
2020-11-30 19:11:26 -05: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 fb835838db
Remove semver-umd link
This is included in the bundle now.
2020-11-20 15:35:18 -06:00
Anmol Sethi b540737b10
Merge pull request #2339 from cdr/ios-input-3cf7
login.css: Disable webkit appearance for input elements
2020-11-19 11:31:07 -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
Anmol Sethi 2dc7863ec3
login.css: Disable webkit appearance for input elements
Not sure why Safari does these things...

Closes #2247
2020-11-19 10:43:26 -05:00
Anmol Sethi 30100caf0c
Revert "login.css: Fix button styling on iOS"
This reverts commit f79bb210ec.
2020-11-19 10:41:37 -05:00
Jacky f79bb210ec
login.css: Fix button styling on iOS 2020-11-19 10:37:51 -05: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 959497067c
Document HttpError
Also type the status.
2020-11-05 17:07:58 -06: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