Commit Graph
100 Commits
Author SHA1 Message Date
Kyle Carberry a6b8f381f0 feat: support windows containers in bootstrap script (#12662)
Fixes #7462.
2024-03-22 14:48:51 +00:00
Kyle Carberry d3c9aaf57b chore: update hero image for refreshed dashboard (#12712)
* chore: update hero image for refreshed dashboard

I used html.to.figma for this. It's in the following Figma:
https://www.figma.com/file/m4zkIU7e64BNyRlUShuluq/README-Screenshot?type=design&node-id=13-1993&mode=design&t=o2AhL8y7u8uFMVPI-0

I couldn't take screenshots directly, because I'm on Linux and the macOS
browser with the icons look much better.

* Try stacked images

* Try stacked inverted
2024-03-21 16:28:02 -04:00
Kyle Carberry 4ae1f40eee chore: add docs for adding e2e tests (#12677) 2024-03-19 18:25:05 +00:00
Kyle Carberry 8a2f38a746 chore: simplify readme (#12639)
* chore: simplify readme

Closes #12628.

* Add link to module registry
2024-03-18 09:40:47 -04:00
Kyle Carberry 895df54051 fix: separate signals for passive, active, and forced shutdown (#12358)
* fix: separate signals for passive, active, and forced shutdown

`SIGTERM`: Passive shutdown stopping provisioner daemons from accepting new
jobs but waiting for existing jobs to successfully complete.

`SIGINT` (old existing behavior): Notify provisioner daemons to cancel in-flight jobs, wait 5s for jobs to be exited, then force quit.

`SIGKILL`: Untouched from before, will force-quit.

* Revert dramatic signal changes

* Rename

* Fix shutdown behavior for provisioner daemons

* Add test for graceful shutdown
2024-03-15 13:16:36 +00:00
Kyle Carberry b2a5e2f4c0 fix: Increase license key rows (#12352)
It was pretty hard to tell when you pasted something in
this box with only displaying a single line.

This should help!
2024-02-28 21:57:10 +00:00
Kyle Carberry 30afe43f8a fix: create tempdir prior to cleanup (#11394)
See https://github.com/coder/coder/actions/runs/7399827933/job/20132407700

Seems like this happened because the test was being cleaned up
while the tempdir was being made.
2024-01-03 19:18:15 +00:00
Kyle Carberry 2cf2904515 fix: improve language of latest build error (#10593) 2023-11-08 18:38:46 +00:00
Kyle Carberry 7162dc7e14 fix: use DefaultTransport in exchangeWithClientSecret if nil (#10551) 2023-11-06 16:55:00 +00:00
Kyle Carberry 23f02651f9 chore: migrate CLI tests to use dbfake (#10500) 2023-11-03 12:22:32 -05:00
Kyle Carberry bb4ce87242 fix: add support for custom auth header with client secret (#10513)
This fixes OAuth2 with JFrog Artifactory.
2023-11-03 16:26:30 +00:00
Kyle Carberry 21dc93c8a3 feat: add log-dir flag to vscodessh for debuggability (#10514) 2023-11-03 16:21:31 +00:00
Kyle Carberry 839a16e299 feat: add dbfake for workspace builds and resources (#10426)
* feat: add dbfakedata for workspace builds and resources

This creates `coderdtest.NewWithDatabase` and adds a series of
helper functions to `dbfake` that insert structured fake data
for resources into the database.

It allows us to remove provisionerd from a significant amount of
tests which should speed them up and reduce flakes.

* Rename dbfakedata to dbfake

* Migrate workspaceagents_test.go to use the new dbfake

* Migrate agent_test.go to use the new fakes

* Fix comments
2023-11-02 17:15:07 +00:00
Kyle Carberry 7fc1a65b14 fix: add new aws regions to instance identity (#10434)
Fixes #10433
2023-10-30 19:44:29 +00:00
Kyle Carberry 5abfe5afd0 chore: rename dbfake to dbmem (#10432) 2023-10-30 17:42:20 +00:00
Kyle Carberry b0d2828f9e fix: append external auth env vars (#10201) 2023-10-11 05:17:08 +00:00
Kyle Carberry 652e1a7d43 feat: add slackme module to dogfood (#10198) 2023-10-10 22:46:47 +00:00
Kyle Carberry 9c098b218f feat: allow external auth providers to expose extra metadata (#10157) 2023-10-09 23:02:16 -05:00
Kyle Carberry 3eb9a43190 fix: use query to get external-auth by id (#10156) 2023-10-09 22:25:50 -05:00
Kyle Carberry a61f8ee45c fix: apply default ExtraTokenKeys to oauth (#10155) 2023-10-09 22:11:05 -05:00
Kyle Carberry 863c2e7b64 feat: allow storing extra oauth token properties in the database (#10152) 2023-10-09 18:49:30 -05:00
Kyle Carberry 35538e1051 feat: add external-auth cli (#10052)
* feat: add `external-auth` cli

* Add subcommands

* Improve descriptions

* Add external-auth subcommand

* Fix docs

* Fix gen

* Fix comment

* Fix golden file
2023-10-09 23:04:35 +00:00
Kyle Carberry 54648b90ca fix: properly trim spaces so multi-line shebang executes (#10146) 2023-10-09 19:19:57 +00:00
Kyle Carberry b402f2a816 feat: add shebang support to scripts (#10134)
This enables much greater portability!
2023-10-09 10:57:57 -05:00
Kyle Carberry 2d2bea79a7 fix: convert the new dashboard theme to be an experiment (#10108) 2023-10-06 09:46:52 -05:00
Kyle Carberry 69b65693c9 fix: make the dark mode a bit less dark (#10107)
We got feedback from our Discord that it was a bit too dark,
so this brightens it up a little!
2023-10-06 14:09:21 +00:00
Kyle Carberry 23425d36a1 fix: invert the favicon on dark mode (#10097) 2023-10-06 07:55:11 -05:00
Kyle Carberry d24d2d2c8d fix: use proper react hook for favicon theme (#10094)
I was using `useState` before, which didn't re-render on load.
2023-10-05 18:23:56 -05:00
Kyle Carberry 4ad080c3b9 fix: apply the same border for button groups (#10092) 2023-10-05 17:44:45 -05:00
Kyle Carberry 14c8824c83 fix: use proper state in system theme (#10090) 2023-10-05 17:32:52 -05:00
Kyle Carberry fa0a597530 fix: add build status favicons based on system theme (#10089) 2023-10-05 22:23:11 +00:00
Kyle Carberry f270d9d351 feat: make the dashboard darker (#10084)
* feat: make the dashboard darker

Coder is a the internal software development platform. It is not
designed to be opinionated on colors, but it should look great.

Focusing on neutrality for our default dashboard theme is great
for our ICP. Some organizations may lean towards colors more or
less, and that shouldn't influence their decision when exploring
Coder.

* Make it a lil more dark

* Improve button outline

* Lower the red brightness

* Improve the divider contrast
2023-10-05 16:46:38 -05:00
Kyle Carberry 1eb21d247b feat: adjust favicon based on system color-scheme (#10087)
This will still default to light-theme, but support showing
a white favicon when the system-theme is dark.
2023-10-05 16:11:15 -05:00
Kyle Carberry ad47ef17e8 feat: allow reading the agent token from a file (#10080)
Adds `CODER_AGENT_TOKEN_FILE` which will read the agent token from
a file if `CODER_AGENT_TOKEN` is not provided. Using a Kubernetes
Secret with a volume-mounted file is a more secure way to provide
the agent token instead of an environment variable.
2023-10-05 15:41:05 -05:00
Kyle Carberry 888b97fd86 chore: use JobStatus computed from the db (#10079)
Fixes `main`
2023-10-05 18:25:06 +00:00
Kyle Carberry df8e10cc4c chore: increase ForceCancelInterval for test flakes (#10066)
See https://github.com/coder/coder/actions/runs/6411239320/job/17406394658
2023-10-04 21:16:39 +00:00
Kyle Carberry bca7416069 fix: add --version flag to the root to support migrating customers (#10063) 2023-10-04 15:37:15 -05:00
Kyle Carberry fd06b7f7a0 fix: allow all environment variables to fallback prefix to HOMEBREW_ (#10050)
See the customer use-case in the code docs.
2023-10-04 18:57:49 +00:00
Kyle Carberry 252ec14556 fix: update the validation url for github enterprise (#10061)
This was wrong... not sure why.
2023-10-04 18:49:40 +00:00
Kyle Carberry 7f9b4ad9a8 fix: allow auditors to query deployment stats and insights (#10058)
This is a customer request.
2023-10-04 18:37:25 +00:00
Kyle Carberry 64692f0b69 chore: update docs for external-auth (#10046) 2023-10-04 11:38:41 -05:00
Kyle Carberry defef4671c fix: silence bash deprecation warning on macOS runners (#10051)
See https://github.com/coder/coder/actions/runs/6407839577/job/17395535790?pr=10050
2023-10-04 15:36:27 +00:00
Kyle Carberry 8e44dce5b3 chore: fix external-auth.mp4 docs video (#10048) 2023-10-04 14:39:13 +00:00
Kyle Carberry b468415a81 chore: revert docs for git-auth until release (#10044) 2023-10-04 14:33:28 +00:00
Kyle Carberry 5e3bf275da chore: check for valid regex in git auth configs (#10020) 2023-10-03 16:45:07 +00:00
Kyle Carberry f16eb1331f chore: update multiple git providers docs (#10017)
* chore: update multiple git providers docs

* Improve var name

* Fix fmt
2023-10-03 15:27:02 +00:00
Kyle Carberry eeab33b1c3 fix: do not require client_secret for external auth providers (#10016)
Device-based auth does not need a client secret.
2023-10-03 14:29:34 +00:00
Kyle Carberry 45b53c285f feat: allow external services to be authable (#9996)
* feat: allow external services to be authable

* Refactor external auth config structure for defaults

* Add support for new config properties

* Change the name of external auth

* Move externalauth -> external-auth

* Run gen

* Fix tests

* Fix MW tests

* Fix git auth redirect

* Fix lint

* Fix name

* Allow any ID

* Fix invalid type test

* Fix e2e tests

* Fix comments

* Fix colors

* Allow accepting any type as string

* Run gen

* Fix href
2023-10-03 14:04:39 +00:00
Kyle Carberry 5596fb20b5 chore: move /gitauth to /externalauth on the frontend (#9954)
* chore: move `/gitauth` to `/externalauth` on the frontend

This actually took a lot more jank than anticipated,
so I wanted to split this up before adding the ability
to embed new providers.

* Rename FE

* Fix em' up

* Fix linting error

* Fix e2e tests

* chore: update helm golden files
2023-09-30 14:30:01 -05:00
Kyle Carberry c1cd93da30 chore: update helm golden files (#9959) 2023-09-30 18:36:34 +00:00
Kyle Carberry 8abca9bea7 chore: rename git_auth to external_auth in our schema (#9935)
* chore: rename `git_auth` to `external_auth` in our schema

We're changing Git auth to be external auth. It will support
any OAuth2 or OIDC provider.

To split up the larger change I want to contribute the schema
changes first, and I'll add the feature itself in another PR.

* Fix names

* Fix outdated view

* Rename some additional places

* Fix sort order

* Fix template versions auth route

* Fix types

* Fix dbauthz
2023-09-29 19:13:20 +00:00
Kyle Carberry de6d0b9a1a fix: only specify vscode proxy uri if app subdomains enabled (#9891)
Otherwise this generates an invalid URI that breaks code-server!
2023-09-27 15:13:47 +00:00
Kyle Carberry 726a4dadf2 feat: allow magic string to generate session token for external apps (#9878)
* fix: make non-http external app links open in the current window

* Allow magic string to be replaced with a session token for external apps

* Improve readibility
2023-09-26 16:04:24 -05:00
Kyle Carberry c4718fd747 fix: remove pinned version for dogfood (#9872) 2023-09-26 02:23:42 +00:00
Kyle Carberry f7c89082d2 chore: swap dogfood to use modules (#9870) 2023-09-25 19:41:45 -05:00
Kyle Carberry 442fb105c9 chore: add git svg icon (#9869) 2023-09-26 00:15:55 +00:00
Kyle Carberry 20bfe6e9e5 fix: allow expansion from log_path for coder_script (#9868) 2023-09-25 23:45:55 +00:00
Kyle Carberry 6e6b808143 fix: add case for logs without a source (#9866)
This is to support legacy logs!
2023-09-25 22:19:51 +00:00
Kyle Carberry d3220c5db9 fix: resolve flake in log sender by checking context (#9865)
See: https://github.com/coder/coder/actions/runs/6305051172/job/17117693579
2023-09-25 22:19:27 +00:00
Kyle CarberryandMuhammad Atif Ali 1262eef2c0 feat: add support for coder_script (#9584)
* Add basic migrations

* Improve schema

* Refactor agent scripts into it's own package

* Support legacy start and stop script format

* Pipe the scripts!

* Finish the piping

* Fix context usage

* It works!

* Fix sql query

* Fix SQL query

* Rename `LogSourceID` -> `SourceID`

* Fix the FE

* fmt

* Rename migrations

* Fix log tests

* Fix lint err

* Fix gen

* Fix story type

* Rename source to script

* Fix schema jank

* Uncomment test

* Rename proto to TimeoutSeconds

* Fix comments

* Fix comments

* Fix legacy endpoint without specified log_source

* Fix non-blocking by default in agent

* Fix resources tests

* Fix dbfake

* Fix resources

* Fix linting I think

* Add fixtures

* fmt

* Fix startup script behavior

* Fix comments

* Fix context

* Fix cancel

* Fix SQL tests

* Fix e2e tests

* Interrupt on Windows

* Fix agent leaking script process

* Fix migrations

* Fix stories

* Fix duplicate logs appearing

* Gen

* Fix log location

* Fix tests

* Fix tests

* Fix log output

* Show display name in output

* Fix print

* Return timeout on start context

* Gen

* Fix fixture

* Fix the agent status

* Fix startup timeout msg

* Fix command using shared context

* Fix timeout draining

* Change signal type

* Add deterministic colors to startup script logs

---------

Co-authored-by: Muhammad Atif Ali <atif@coder.com>
2023-09-25 16:47:17 -05:00
Kyle Carberry 82e238b0c6 chore: exclude generated files from vscode search by default (#9530)
Anyone can feel free to revert some of these, but they were constantly
annoying when searching for symbols in our code.
2023-09-05 15:05:46 +00:00
Kyle Carberry da0ef92f77 Revert "feat: add boringcrypto builds for linux (#9528)" (#9529)
This reverts commit 79cd6047dc.
2023-09-05 08:37:07 -05:00
Kyle Carberry 05439d2c1b fix: generate username with uuid to prevent collision (#9496)
See https://github.com/coder/coder/actions/runs/6052801777/job/16426982174
2023-09-03 18:02:28 +00:00
Kyle Carberry 61634d482f fix: truncate websocket close error (#9360)
Related #9324
2023-08-27 16:26:31 +00:00
Kyle Carberry c3ac55ff42 feat: add template_active_version_id to workspaces (#9226)
* feat: add `template_active_version_id` to workspaces

This reduces a fetch in the VS Code extension when getting the
active version update message!

* Fix entities.ts

* Fix golden gen
2023-08-27 16:26:20 +00:00
Kyle Carberry 707a0a2d95 fix: resolve deadlock when fetching everyone group for in-memory db (#9277) 2023-08-23 16:54:16 +00:00
Kyle Carberry 2a04d15c6d chore: downgrade dogfood image to postgres 13 (#9228) 2023-08-21 19:26:31 +00:00
Kyle Carberry 07188b123a chore: add dependencies for js-test to our nix flake (#9224) 2023-08-21 15:03:33 +00:00
Kyle Carberry 7404ee9b21 chore: add name to top-level package.json to allow importing (#9209) 2023-08-20 00:35:38 +00:00
Kyle Carberry 4d85d56327 chore: add version to top-level package.json to allow importing (#9208) 2023-08-20 00:10:53 +00:00
Kyle Carberry 2c83bfdfa5 fix: set the location of locale_archive (#9207)
See https://nixos.wiki/wiki/Locales
2023-08-19 22:37:44 +00:00
Kyle Carberry 40ef9ff779 fix: add sapling to the nix flake (#9202) 2023-08-18 16:41:03 -05:00
Kyle Carberry 22e781eced chore: add /v2 to import module path (#9072)
* chore: add /v2 to import module path

go mod requires semantic versioning with versions greater than 1.x

This was a mechanical update by running:
```
go install github.com/marwan-at-work/mod/cmd/mod@latest
mod upgrade
```

Migrate generated files to import /v2

* Fix gen
2023-08-18 18:55:43 +00:00
Kyle Carberry 9e9c79dbd3 fix: remove nix bash from the dogfood image (#9195)
This was unnecessary.
2023-08-18 17:59:25 +00:00
Kyle Carberry 4c133e7058 fix: add yarn to the dogfood image (#9193) 2023-08-18 17:15:33 +00:00
Kyle Carberry c93782aba6 fix: allow chsh in dev image (#9191) 2023-08-18 16:15:05 +00:00
Kyle Carberry 9725ec0713 fix: separate dev shell and dev image nix deps (#9189)
* fix: separate dev shell and dev image nix deps

* Add less
2023-08-18 15:58:52 +00:00
Kyle Carberry e94ebea5e9 fix: add gh cli to the dogfood image (#9184) 2023-08-18 14:49:54 +00:00
Kyle CarberryandMathias Fredriksson 88de63f891 fix: add locale to dogfood image (#9181)
* fix: add locale to dogfood image

* Update flake.nix

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>

* Add gcc

---------

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2023-08-18 09:16:16 -05:00
Kyle Carberry c0a78533bf chore: reduce build time by converting docker image to build with nix (#9099)
* Add Docker image

* Try building the container in CI

* Uncomment testing lines

* Trim image step

* Hit 'em with a Docker load

* Oopsie!

* Add a tag and push!

* Fix image name 🤦

* Fix sudo

* Fix target name

* Build and push

* Fix login to docker hub

* Revert to Docker push

* Fix PATH

* Fix SHA

* Fix ca certs

* Fix ca certs

* Fix coping files in

* Fix docker init

* Fix Docker group and init

* Add comments to our Nix

* Fix build stage

* Add some more comments

* Remove old dogfood image files

* Tag and push with branch name

* Fix tag passing

* Fix tag passing

* Remove old pull triggers

* Convert gen to use Nix

* Add protobuf to the flake

* Add prettier to the dev shell

* Swap to the faster Nix cache action

* Add the correct yq

* Fix gen

* Add make to the flake

* Update extensions
2023-08-17 21:19:36 -05:00
Kyle Carberry 594b9797dd fix: change dashboard route /settings/deployment to /deployment (#9070)
It felt unnecessary to nest this.
2023-08-13 16:58:04 +00:00
Kyle Carberry 0d01d022f7 fix: remove unnecessary newlines from the end of cli output (#9068)
`Infof` already adds a newline, so we don't need to as well!
2023-08-13 11:48:11 -05:00
Kyle Carberry 9a13814b46 fix: remove duplication from language of query param error (#9069) 2023-08-13 11:47:44 -05:00
Kyle Carberry abe17b1164 chore: update speakeasy to fix stty path bug on nixos (#9022)
Prompts failed on NixOS due to /bin/stty being hardcoded for turning
off echo in the terminal prompt. See:
https://github.com/bgentry/speakeasy/commit/760eaf8b681647364e7a400b856e0921248728a5
2023-08-13 15:10:58 +00:00
Kyle Carberry 4d3230c9ad fix: default to executing e2e ssh without args (#8975)
This was causing the test to fail consistently!
2023-08-08 14:35:34 +00:00
Kyle Carberry bac3a588b3 chore: add e2e test for backwards client ssh compatibility (#8958)
* chore: add e2e test for backwards client ssh compatibility

This was discussed as part of our regression review for outdated
agents, so here is the reverse with an extremely old client.

* fmt
2023-08-08 05:36:46 +00:00
Kyle Carberry 73b136e3f0 fix: add exp backoff to validate fresh git auth tokens (#8956)
A customer using GitHub in Australia reported that validating immediately
after refreshing the token would intermittently fail with a 401. Waiting
a few milliseconds with the exact same token on the exact same request
would resolve the issue. It seems likely that the write is not propagating
to the read replica in time.
2023-08-08 04:29:35 +00:00
Kyle Carberry bd944e0d21 chore: rename startup logs to agent logs (#8649)
* chore: rename startup logs to agent logs

This also adds a `source` property to every agent log. It
should allow us to group logs and display them nicer in
the UI as they stream in.

* Fix migration order

* Fix naming

* Rename the frontend

* Fix tests

* Fix down migration

* Match enums for workspace agent logs

* Fix inserting log source

* Fix migration order

* Fix logs tests

* Fix psql insert
2023-07-28 15:57:23 +00:00
Kyle Carberry 91a0c7abe0 fix: improve the language of the template insights page (#8777) 2023-07-27 21:04:28 +00:00
Kyle Carberry ff794e4b23 chore: add e2e test for backwards ssh compatibility (#8761)
* chore: add e2e test for backwards ssh compatibility

* Use the SSH client directly

* fmt
2023-07-27 10:42:11 -05:00
Kyle Carberry 131babfb00 fix: request trial after password is validated (#8750) 2023-07-26 22:04:15 +00:00
Kyle CarberryandMathias Fredriksson 98164f687e fix!: remove startup logs eof for streaming (#8528)
* fix: remove startup logs eof for streaming

We have external utilities like logstream-kube that may send
logs after an agent shuts down unexpectedly to report additional
information. In a recent change we stopped accepting these logs,
which broke these utilities.

In the future we'll rename startup logs to agent logs or something
more generalized so this is less confusing in the future.

* fix(cli/cliui): handle never ending startup log stream in Agent

---------

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2023-07-18 09:57:29 -06:00
Kyle Carberry b4a7fe3221 fix: use expires_in field for git device refresh (#8411)
This was causing git auth to never refresh after the token
became expired after 8hrs.
2023-07-11 09:28:52 +00:00
Kyle Carberry 34467a3289 feat: add github device flow for authentication (#8232)
* feat: add github device flow for authentication

This will allow us to add a GitHub OAuth provider out-of-the-box
to reduce setup requirements.

* Improve askpass view

* Add routes to improve clarity of git auth

* Redesign the git auth page

* Refactor to add a page view

* Fix sideways layout

* Remove legacy notify

* Fix git auth redirects

* Add E2E tests

* Fix route documentation

* Fix imports

* Remove unused imports

* Fix E2E web test

* Fix friendly message appearance

* Fix layout shifting for full-screen sign-in

* Fix height going to 100%

* Fix comments
2023-06-29 18:58:01 +00:00
Kyle Carberry f40865bc2f chore: use mutex around blockEndpoints (#8209)
https://github.com/coder/coder/actions/runs/5378950122/jobs/9759972142
2023-06-26 10:01:50 -05:00
Kyle Carberry d434181941 feat: add cohesive e2e tests for the web terminal, apps, and workspaces (#8140)
* feat: add cohesive e2e tests for the web terminal, apps, and workspaces

* Fix web terminal flake
2023-06-22 00:21:40 +00:00
Kyle Carberry 2a492b7008 chore: improve the setup experience with various fixes (#8130)
* Move updatecheck logs to debug mode

This was causing logs to be emitted immediately after
initial setup, which seemed odd for the user.

* Fix setup page text to say "Create" instead of "Setup" account

* Improve copy on the empty workspaces page

- This view can be seen after the user creates their first workspace, so saying first is bad.
- It should describe what a workspace is, so I modified the description.
- The create from template button wasn't helpful!

* Improve the copy for the empty templates view

- This didn't describe what a template actually is.
- The title had the same problem as workspaces, where first makes no sense.

* Improve text consistency on the Create Template page

* Fix "View activity" displaying for non-Enterprise users

This was causing an exception to be thrown.

* Improve messaging of empty groups view

* Appropriately capitalize Workspace and Template

* Improve Docker template taglines

* Fix types
2023-06-21 18:23:59 -05:00
Kyle Carberry 69f911dfd5 feat: add queue_position and queue_size to provisioner jobs (#8074) 2023-06-20 15:07:18 -05:00
Kyle Carberry bbb0fab1de chore: merge database gen scripts (#8073)
* chore: merge database gen scripts

* Fix type params gen

* Merge enum into dbgen
2023-06-20 16:24:33 +00:00
Kyle Carberry f3b2009499 chore: reorder helm chart to improve ux (#8108)
It makes no sense that the primary option `env` was so far
below infrequently used options.
2023-06-20 16:23:56 +00:00