Commit Graph

655 Commits

Author SHA1 Message Date
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
Asher a7c43a8eb6
Remove CSP tag from VS Code html
This matches with the html in the VS Code repo and also fixes a problem
with the worker which loads HTML using data: and then can't load any
scripts because 'self' doesn't work.
2020-10-14 17:11:24 -05:00
Asher 30d05aeb4b
Update require base URL for VS Code loader
It needs to have the scheme otherwise when resolving these modules the
loader will default to the file scheme and fail to fetch.
2020-10-14 17:11:24 -05:00
Asher 07580e1fcb
Add path to loader for tas-client-umd
It's a new module used by 1.50.0.
2020-10-14 17:11:23 -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 ffe6a663aa
Add /vscode to nls fetch
A plugin may modify the root endpoint which will make /resource no
longer work so always use /vscode/resource instead.
2020-09-09 12:05:44 -05:00
Asher 938b460685
Add trailing slash to service worker scope
This will ensure it always matches or is underneath the allowed service
worker scope.

Fixes #2076.
2020-09-09 12:05:04 -05:00
Asher fef619aef8
Fix incorrect login script src path 2020-09-08 14:06:41 -05: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 e44e574ce1
Fix language packs (#2058)
* Fix incorrect nls.json fetch

When moving this out of the HTML I didn't remove {{BASE}}.

* Fix language package installation

Updates #2046.
2020-09-04 10:10:40 -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 a839da34d7
Remove custom offline text (#2007)
We need the handler to be recognized as a PWA but we can just let the
original offline browser message show instead of our own message.

See #1925 and #1979.
2020-08-27 11:33:34 -05: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 d6d24966be
Move vscode JS to a separate file
Mostly to match everything else.
2020-08-13 17:10:59 -05:00
Asher 751a5ea3ad
Move login JS to a separate file
Mostly so the base URL resolution code can be shared.
2020-08-13 17:10:54 -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 a0ff2014c3
Add Callback type
Adds a reusable Callback type that is applied to emitter.ts for improved
readability/simplicity.
2020-08-10 21:41:46 -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 3badf6bf7b
Use ?? for base default 2020-08-05 13:00:36 -05:00
Asher 10c2b956ac
Remove leading slash trim in base resolver
It's not necessary since we return early if the path starts with a
slash.
2020-08-05 13:00:35 -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
Asher de8e9804ad
Update to VS Code 1.47.2 2020-07-21 13:16:44 -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 4875f6aa87
Update VS Code to fix infinite refresh
Fixes #1581.
2020-05-05 12:33:09 -05: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
Asher 4cfd7c50ad
Remove unused class
I managed to lose this deletion in a merge.
2020-04-28 17:57:54 -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 dcde596002
Document debugging process
Closes #1465.
2020-04-20 18:55:14 -05:00
Asher ee14db20f1
Allow data: in CSP for font-src
Closes #1530.
2020-04-20 18:10:07 -05: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 7954656610
Set background color using VS Code theme 2020-03-27 16:58:50 -05:00
Asher 0a5687bacf
Fix crash when unable to request an update 2020-03-25 15:00:35 -05:00
Asher 216652fb31
Merge pull request #1446 from maksimr/fix-apple-touch-icon
Returns back apple touch icon
2020-03-25 14:12:44 -05:00
Asher 0f066d30b4
Add data-cfasync="false" to script tags
This prevents Cloudflare's Rocket Loader from acting on them.

Fixes #1451.
2020-03-25 14:04:36 -05:00
Asher d1687c1533
Catch error when SSH server fails to start 2020-03-24 17:38:46 -05:00
Maksim Ryzhikov 5887c1d339 Returns back apple touch icon 2020-03-23 14:44:31 +03:00
Asher cfebf2c67f
Removed unused CSS 2020-03-17 10:36:19 -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 5f63d2b822
Fix custom socket path 2020-03-16 15:14:52 -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 aeb6261189
Update VS Code to 1.43.0 2020-03-13 17:42:10 -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
Kyle Carberry c54450941c
Update favicon 2020-03-03 02:25:53 +00: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
Kyle Carberry eef2ed0e78
Update PWA icons 2020-02-27 20:43:31 +00:00
Asher 0e3720169f
Add spacing between items
Also fix padding not being respected when blocks exceed container
height.
2020-02-27 12:58:40 -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 c147711ade
Remind user that generated password is in logs
Closes #446
2020-02-21 15:22:13 -05: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
Anmol Sethi 9b7a203fe5
Make login page pretty 2020-02-20 20:08:25 -05: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
Anmol Sethi 65690fca65
Fix CSP for Safari 2020-02-20 18:24:32 -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
Anmol Sethi 76831f11fc
Merge branch 'fix-ci' into restructure 2020-02-18 19:07:34 -05:00
Anmol Sethi 5681c87e33
Fix bugs in CI 2020-02-18 19:06:35 -05: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 bdb189a9bb
Allow https images
Fixes extension icons not loading.
2020-02-18 14:57:12 -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 61d1af0413
Add macOS release step 2020-02-14 21:16:23 -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 efaeb3b110
Add hidden username field for accessibility 2020-02-06 10:26:53 -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
Asher 4cc181cedc
Make routing base path agnostic 2020-02-05 17:38:21 -06:00
Asher 6e809b6a31
Handle when VS Code fails to load
This is mostly for development where VS Code might not have finished
compiling yet.
2020-02-05 14:23:42 -06:00
Asher 7c6fe56043
Add logo to background 2020-02-05 13:30:29 -06:00
Asher 8cc11d1688
Improve routing 2020-02-05 13:07:07 -06:00
Asher dbc5c065f8
Improve HTTP provider registration 2020-02-04 16:55:27 -06:00
Asher b30aefcfb1
Add linting steps and improve testing steps 2020-02-04 15:42:55 -06:00
Asher b29346ecdf
Implement new structure 2020-02-04 14:31:44 -06:00
Anmol Sethi e6117decd0 Revert "Set display property in manifest to fullscreen"
This reverts commit c7127cb248.
2020-02-04 11:30:00 -06:00
TheHllm c7127cb248
Set display property in manifest to fullscreen 2020-02-04 11:23:21 -06:00
Asher 8122b7f69e
Remove unused upload service
No longer needed since VS Code has their own now.
2020-01-17 12:23:36 -06:00
Asher e2d354c8f2
Move manifest icon to the root as well 2020-01-16 12:11:56 -06:00
Asher 7c178805ea
Add comment about the manifest's served location
Also for #1278.
2020-01-16 11:44:17 -06:00
Asher 45f70e741f
Move manifest to the root
Fixes #1278.
2020-01-16 11:36:17 -06:00
Asher 1474a82c7d
Add insecure access notification 2020-01-16 11:15:22 -06:00
Asher e6d1f2a7c8
Update VS Code to 1.41.0 2019-12-16 16:52:29 -06:00
Asher e5fc63f2c8
Fix accessing manifest behind basic auth
Apparently the manifest spec doesn't include sending credentials in an
attempt to be secure by default.

Fixes #1212.
2019-12-09 11:25:59 -06:00
Asher e14362f322
Pass along Node options 2019-11-14 17:20:23 -06:00
Asher 2018024810
Hash password
Fixes issues with unexpected characters breaking things when setting the
cookie (like semicolons).

This change as-is does not affect the security of code-server
itself (we've just replaced the static password with a static hash) but
if we were to add a salt in the future it would let us invalidate keys
by rehashing with a new salt which could be handy.
2019-11-07 15:57:57 -06:00
Asher a1d6bcb8e5
Handle cookies more robustly
If you visit /login/ instead of /login the cookie will be set at /login
instead of / which means the cookie can't be read at the root. It will
redirect to the login page which *can* read the cookie at /login and
redirect back resulting in an infinite loop.

The previous solution relied on setting the cookie at / (any invalid
value works) which then overrode the login page cookie since
parseCookies only kept a single value. So the login page would see the
same cookie the root was seeing and not redirect back. However, that
behavior depends on the cookies being in the right order which I'm not
sure is guaranteed.

This new method tests all available cookies and always sets the cookie
so the root path will be able to read it in case the login page is
seeing a cookie the root can't.

It also goes a step further and explicitly sets the path on the cookie
which fixes the case where there is a permanent misconfiguration
redirecting /login to /login/. Otherwise the cookie would continually be
set on /login only and you'd have another loop. It also means you only
need to delete one cookie to log out.

Lastly add some properties to make the cookies a bit more secure.
2019-11-07 13:36:18 -06:00
ecrode 727ac6483b Clear password when redirecting to login
Should prevent endless redirects when the cookie is set on a different path or domain (like with a dot prefix).
2019-11-07 11:38:10 -06:00
Asher 2c15c09fc0
Add missing telemetry option 2019-11-06 15:47:34 -06:00
Asher 780a673017
Add meta tag to allow full screen app on iOS
Fixes #933.
2019-11-04 16:01:01 -06:00
Asher af71203955
Fix relaunching during an update 2019-11-01 10:51:23 -05:00
Asher fc3acfabb2
Fix update check 2019-10-30 17:35:50 -05:00
Asher 73cf8f34e3
Fix outgoing scheme transformation
Accidentally used local instead of remote.

Fixes #1127.
2019-10-30 10:32:57 -05:00
Asher 87485948ad
Kill inner process if parent process dies
Fixes #1076.
2019-10-29 14:43:27 -05:00
Asher 2f0878d9b7
Revert remote scheme change
It doesn't show in the explorer anymore so there's no point. Also remove
the local scheme transform which is no longer required with the latest
client-side extension implementation.
2019-10-29 11:26:50 -05:00
Asher e22964915a
Support opening workspaces from command line
Partly addresses #1121.
2019-10-28 16:25:51 -05:00
Asher 422503ef98
Proxy child exit code when exiting parent process
This fixes code-server exiting with zero on errors.
2019-10-28 14:57:01 -05:00
Asher ea36345d2c
Allow fetching any resource
Fixes #1118.
2019-10-28 14:29:51 -05:00
Asher a89d83cbba
Fix other incorrect usages of `split` 2019-10-28 14:03:13 -05:00
Asher 83ff31b620
Fix passwords that contain `=`
Fixes #1119.

Apparently `split` does not work the way I'd expect.
2019-10-28 13:47:31 -05:00
Asher 3a9b032c72
Add heartbeat file (#1115)
Fixes #1050.
2019-10-28 09:59:34 -05:00
Asher f73e9225b4
Remove directory restrictions for /webview/vscode-resource
This makes viewing images work. Fixes #1111.
2019-10-25 15:52:39 -05:00
Asher 58f7f5b769
Properly fix blank --cert flag
See #1109.
2019-10-25 12:04:43 -05:00
Asher b8e6369fbe
Fix empty --cert not generating self-signed certificate
Fixes #1101.
2019-10-25 11:01:42 -05:00
Asher 95693fb58e
Handle /webview/vscode-resource/file urls
See #1103.
2019-10-24 14:35:25 -05:00
Asher e7945bea94
Enable password authentication by default
Fixes #1062.
2019-10-24 12:35:26 -05:00
Asher eea9c1618c
Move client-side extension code out of patch 2019-10-23 13:12:11 -05:00
Asher ece840834d
Move login page to browser directory
Fixes it not being included in the optimized build as well as making it
more consistent.
2019-10-21 15:02:41 -05:00
Asher 76f6ff4145
Fix alpine check 2019-10-21 14:09:04 -05:00
Asher bdd11f741b
Update to 1.39.2
Also too the opportunity to rewrite the build script since there was a
change in the build steps (mainly how the product JSON is inserted) and
to get the build changes out of the patch. It also no longer relies on
external caching (we'll want to do this within CI instead).
2019-10-18 18:20:02 -05:00
Asher 56ce780522
Prevent process.exit() 2019-10-11 17:00:17 -05:00
Asher 567010e163
Cache extension tar requests 2019-10-11 14:28:02 -05:00
Asher 4ae2c81157
Remember last workspace or directory 2019-10-11 14:26:20 -05:00
Asher ae43e2016f
Handle up/down on server 2019-10-10 17:05:30 -05:00
Asher 3f6cbfa4dd
Handle up/down/close on client 2019-10-10 16:12:38 -05:00
Asher 1c50b5285e
Resolve bundling issues with node-browser 2019-10-10 15:36:56 -05:00
Asher ea9c511db8
Check major version when getting latest version 2019-10-08 16:23:39 -05:00
Adam Vernon e1e3f32643 Add missing PWA icon (#1060)
- Copy old icon back into repository
- Update path to icon from manifest file
- Add link metadata tag for iOS PWA icon to workbench.html
- Add link metadata tag for iOS PWA icon to login page
2019-10-07 12:55:02 -05:00
Asher 548d095611
Add support for running extensions in the browser 2019-10-04 18:14:19 -05:00
Asher 65caa26d40
Pass log level to extension host 2019-09-23 16:57:48 -05:00
Asher 7812f6b75a
Fix uncaught errors when extracting zips
Fixes #966.
2019-09-23 16:57:48 -05:00
Asher 637e58f255
Prevent opening invalid paths 2019-09-23 16:57:47 -05:00
Asher 616bdb35f3
Fix using port zero 2019-09-18 11:39:16 -05:00
Asher 6a864f9f47
Make websocket upgrade check case-insensitive
Fixes #925.
2019-09-16 15:05:45 -05:00
Asher 5c16399810
Fix accessing versioned resource using file service
Fixes #986.
2019-09-16 15:05:44 -05:00
Asher 1bd5eca73d
Don't terminate extension host on a timeout
We will clean it up on our end if necessary. This allows reconnections
after any length of time.
2019-09-13 11:24:15 -05:00
Asher f8635a124f
Add tar endpoint
This will be used to load extensions into the browser using requirefs.
2019-09-12 12:17:16 -05:00
Asher 1164801376
Keep a maximum number of connections instead of a timeout
There's no way to actually know if those clients have gone away, so it
seems it might be better to base it on whether the user has connected
again with new clients to determine if the old clients are now invalid.
2019-09-09 16:41:04 -05:00
Asher 12e608468b
Add caching 2019-09-06 17:46:32 -05:00
Asher 44000459da
Add environment variable for telemetry endpoint 2019-09-05 15:26:35 -05:00
Asher 9d8906d250
Add version format flag 2019-09-04 17:01:06 -05:00
Asher a26844ea45
Add package.json for publishing API types 2019-09-04 11:47:50 -05:00
Asher da7d8b04a8
Update VS Code 2019-09-03 17:24:14 -05:00
Asher 12bc26b6b4
Implement status bar API 2019-09-03 16:38:53 -05:00
Asher b901043bfc
Target a recent commit for VS Code
This is so we can try out the web worker extension host.
2019-08-29 19:11:11 -05:00
Asher a3ee7c96a0
Don't open cwd by default
Fixes #889. Previous it would use the cwd. In some cases that's the
path of where the binary is located which is a weird place to open.
2019-08-27 14:26:54 -05:00
Asher d33b2d2af9
Fix web view sometimes not loading correctly
Fixes #929.
2019-08-27 14:03:27 -05:00
Asher 78b6b3afdf
Add check for missing reconnection token
This means something is misconfigured.
2019-08-23 13:44:14 -05:00
Asher ddd5a9ae79
Update data and extension paths to match version one
To ensure users don't lose their extensions when updating.
2019-08-21 17:02:31 -05:00
Asher 80050d0d9d
Detect target automatically
This removes the potential for a bad build because the native Node
modules currently can only be built on the target system, so specifying
a target for something other than the system your are building on will
not work.
2019-08-21 12:45:09 -05:00
Asher 534600c1ff
Don't error when scanning nonexistent extension dir 2019-08-20 19:16:44 -05:00
Asher 6737384d27
Handle existing query when opening folder 2019-08-15 17:28:02 -05:00
Asher f61a0ae78a
Set unexpected error handler on startup
Fixes #911.
2019-08-15 16:02:14 -05:00
Asher a48c2fb119
Handle webview service worker resource requests 2019-08-15 14:30:41 -05:00
Asher 83f86a45b6
Load language bundles on the client 2019-08-14 10:25:31 -05:00
Asher 2470081789
Exit when pipe closes
This allows piping to things like `head` without SIGPIPE errors.
2019-08-12 15:39:04 -05:00
Asher 90e8714e71
Preserve query variables when redirecting 2019-08-12 11:55:33 -05:00
Asher b566b66590
Fix service worker scope when there is a base path 2019-08-12 11:24:05 -05:00
Asher 7389d9e2cb
Use current URL for webview 2019-08-12 10:23:08 -05:00
Asher 2807ce495e
Add tar-stream dependency
It's no longer included by the remote dependencies.
2019-08-09 19:23:44 -05:00
Asher ba7285192c
Update VS Code to 1.37.0 2019-08-09 19:23:41 -05:00
Asher 6b579d65ef
Fix webview address when using a proxy 2019-08-08 11:39:06 -05:00
Asher d4ed2efa71
Change default port to 8080 2019-08-08 11:21:45 -05:00
Asher f5a6f14ade
Implement update service 2019-08-07 16:18:17 -05:00
Asher dde683d911
Fix login submission when using a base path 2019-08-05 10:38:55 -05:00
Asher 5b64cb3400
Fix login page 2019-08-02 19:54:56 -05:00
Asher 712274d912
Groundwork for language support
- Implement the localization service.
- Use the proper build process which generates the require JSON files.
- Implement getting the locale and language configuration.
2019-08-02 19:29:00 -05:00
Asher bd0f1d024b
Support vscode-resource requests in webview 2019-07-31 17:22:18 -05:00
Asher 5944b842de
Make it clearer what the tar code does 2019-07-31 17:22:17 -05:00
Asher 12af311ce7
Use our logger instead of raw console.log 2019-07-31 17:22:16 -05:00
Asher 62719ab544
Clean up client API
- Don't use "any" for the API type.
- Remove everything from the Coder API that can eventually be done
  through the VS Code API.
- Move the event emission to our own client to minimize patching.
2019-07-31 17:22:15 -05:00
Asher 011530e11b
Proxy TLS sockets 2019-07-30 18:16:08 -05:00
Asher 8ded89e8d4
Firefox fixes 2019-07-26 17:33:26 -05:00
Asher 4c4a179bce
TLS socket still doesn't work 2019-07-26 17:26:45 -05:00
Asher 329acbb251
Combine main and webview servers 2019-07-23 19:22:10 -05:00
Asher fd55139c82
Make flags additive and clean up docs
This means that you have to turn on features now instead of disabling
them like auth and https.

In addition:
- Allow multiple options for auth (only password for now).
- Combine the install docs since they had many commonalities and
- generally simplified them (hopefully not too much).
- Move all example configs into docs/examples.
2019-07-23 18:59:39 -05:00
Asher 7b7f5b542e
Add base path argument
It's only used for the login redirect.
2019-07-23 15:17:25 -05:00
Asher 09cd1e8540
Make sub-paths work 2019-07-22 18:01:03 -05:00
Asher cd54aec2f9
Fix login redirect when not using https 2019-07-22 11:09:26 -05:00
Asher 9fdfacb314
Quality check 2019-07-19 17:43:54 -05:00
Asher e8cb6ffaa0
Implement file uploads 2019-07-19 15:45:12 -05:00
Asher 2be452d83e
Fix rg extraction in Docker build 2019-07-18 18:09:24 -05:00
Asher b0e6c1cc4e
Fix favicon 2019-07-18 18:09:23 -05:00
Asher 45d348b03d
Expose API on the client 2019-07-18 18:09:22 -05:00
Asher 4b0cceb91a
Extract ripgrep when inside binary 2019-07-18 18:09:21 -05:00
Asher db41f106bc
Fix open flag when using 0.0.0.0 2019-07-18 18:09:20 -05:00
Asher b6fdb7d0e7
Telemetry 2019-07-18 18:09:20 -05:00
Asher 1a3fc86894
Reconnection works 2019-07-18 18:09:19 -05:00
Asher 9b0b337dc0
Implement open flag 2019-07-18 18:09:16 -05:00