893 Commits
Author SHA1 Message Date
Kyle CarberryandBruno Quaresma 6b1b3a2037 feat: Add deployment settings page (#4590)
* Add base components for the Settings Page

* WIP OIDC page

* Imrove layout

* Add table

* Abstract option

* Refactor badges

* Load settings from the API

* Update deployment page

* feat: Add deployment settings page

This allows deployment admins to view options
set on their deployments.

* Format

* Remove replicas table since it's not used

* Remove references to HA table

* Fix tests

* Improve language

Co-authored-by: Bruno Quaresma <bruno@coder.com>
2022-10-17 12:22:59 -05:00
Kyle CarberryandColin Adler 2ba4a62a0d feat: Add high availability for multiple replicas (#4555)
* feat: HA tailnet coordinator

* fixup! feat: HA tailnet coordinator

* fixup! feat: HA tailnet coordinator

* remove printlns

* close all connections on coordinator

* impelement high availability feature

* fixup! impelement high availability feature

* fixup! impelement high availability feature

* fixup! impelement high availability feature

* fixup! impelement high availability feature

* Add replicas

* Add DERP meshing to arbitrary addresses

* Move packages to highavailability folder

* Move coordinator to high availability package

* Add flags for HA

* Rename to replicasync

* Denest packages for replicas

* Add test for multiple replicas

* Fix coordination test

* Add HA to the helm chart

* Rename function pointer

* Add warnings for HA

* Add the ability to block endpoints

* Add flag to disable P2P connections

* Wow, I made the tests pass

* Add replicas endpoint

* Ensure close kills replica

* Update sql

* Add database latency to high availability

* Pipe TLS to DERP mesh

* Fix DERP mesh with TLS

* Add tests for TLS

* Fix replica sync TLS

* Fix RootCA for replica meshing

* Remove ID from replicasync

* Fix getting certificates for meshing

* Remove excessive locking

* Fix linting

* Store mesh key in the database

* Fix replica key for tests

* Fix types gen

* Fix unlocking unlocked

* Fix race in tests

* Update enterprise/derpmesh/derpmesh.go

Co-authored-by: Colin Adler <colin1adler@gmail.com>

* Rename to syncReplicas

* Reuse http client

* Delete old replicas on a CRON

* Fix race condition in connection tests

* Fix linting

* Fix nil type

* Move pubsub to in-memory for twenty test

* Add comment for configuration tweaking

* Fix leak with transport

* Fix close leak in derpmesh

* Fix race when creating server

* Remove handler update

* Skip test on Windows

* Fix DERP mesh test

* Wrap HTTP handler replacement in mutex

* Fix error message for relay

* Fix API handler for normal tests

* Fix speedtest

* Fix replica resend

* Fix derpmesh send

* Ping async

* Increase wait time of template version jobd

* Fix race when closing replica sync

* Add name to client

* Log the derpmap being used

* Don't connect if DERP is empty

* Improve agent coordinator logging

* Fix lock in coordinator

* Fix relay addr

* Fix race when updating durations

* Fix client publish race

* Run pubsub loop in a queue

* Store agent nodes in order

* Fix coordinator locking

* Check for closed pipe

Co-authored-by: Colin Adler <colin1adler@gmail.com>
2022-10-17 13:43:30 +00:00
Ammar Bandukwala dc3519e973 Support all transitions in build progress bar (#4575)
* Use null types instead of -1 for simplicity

* Fix pgcrypto bug in migration 59

* Add stories

* Fix visual stutter
2022-10-16 23:34:03 -05:00
Phorcys ee2c29d520 Rename the noVNC icon to match the other icons (#4574) 2022-10-16 19:37:02 -05:00
Ammar Bandukwala de5ba47557 site: minor build stats fixes (#4569)
- Correct variable used in the template stats summary
- Don't use dayjs.humanize (it thinks 30 seconds is "a few seconds")
2022-10-15 21:30:51 +00:00
Ammar Bandukwala e456799f1a Add template build time stats (#4557)
- Expose time in Template pages
- Show progress bar when building a workspace
2022-10-15 20:36:50 +00:00
Ben Potter 5b7d204b9d chore: fix tooltip behavior (#4563) 2022-10-15 13:04:52 +00:00
Dean SheatherandJoe Previte 1515d755e1 feat: add app sharing icon and tooltip (#4556)
Co-authored-by: Joe Previte <jjprevite@gmail.com>
2022-10-14 21:49:24 +00:00
Kira Pilot dd8ebf10db fix: duplicate workspace update entries (#4513)
* fix: duplicate workspace update entries

* remove console log

* attempting to fix tests

* keep diffs with 0 changes

* cleaned up test
2022-10-14 14:39:20 -04:00
Dean Sheather a029817d3d feat: allow suffix after wildcard in wildcard access URL (#4524) 2022-10-14 18:25:11 +00:00
Presley Pizzo ccc008eb5e fix: redesign schedule bumper to handle multiple hours of change at once (#4535)
* Start sketching out new design

* Working but ugly

* Highlight chosen mode

* Format

* Set hours field width

* Alignment on desktop

* Use primary button color

* Make 1 the default change

* Add stepper max

* Fix storybook

* Handle undefined deadline

* Access deadline correctly

* Format

* Fix overflow on mobile
2022-10-14 13:23:00 -04:00
Dean Sheather d898737d6d feat: app sharing (now open source!) (#4378) 2022-10-15 02:46:38 +10:00
Joe Previte 88f7505fdf feat: upgrade prettier and add --cache (#4543)
This uses the `--cache` flag with `prettier --check` to cache the
results and speed up subsequent runs.
2022-10-14 12:22:07 -04:00
Joe Previte b1409831a3 refactor: clean up api/error.ts (#4542)
This removes an eslint-disable lint and updates the `err` type to
`unknown` instead of `any` which is more correct.
2022-10-14 09:09:09 -03:00
Joe Previte 94db085b51 chore(site): remove some eslint-disables (#4265)
* fix: await promises in WorkspacePage.test.tsx

* chore: add eventsourcemock to cspell words

* fix: clean up UsersPage.test.tsx

* refactor: clean up eventsource mock

* revert: remove changes from WorkspacePage.test.tsx
2022-10-13 18:09:04 -05:00
Jon Ayers 4e57b9fbdc fix: allow regular users to push files (#4500)
- As part of merging support for Template RBAC
  and user groups a permission check on reading files
  was relaxed.

  With the addition of admin roles on individual templates, regular
  users are now able to push template versions if they have
  inherited the 'admin' role for a template. In order to do so
  they need to be able to create and read their own files. Since
  collisions on hash in the past were ignored, this means that a regular user
  who pushes a template version with a file hash that collides with
  an existing hash will not be able to read the file (since it belongs to
  another user).

  This commit fixes the underlying problem which was that
  the files table had a primary key on the 'hash' column.
  This was not a problem at the time because only template
  admins and other users with similar elevated roles were
  able to read all files regardless of ownership. To fix this
  a new column and primary key 'id' has been introduced to the files
  table. The unique constraint has been updated to be hash+created_by.
  Tables (provisioner_jobs) that referenced files.hash have been updated
  to reference files.id. Relevant API endpoints have also been updated.
2022-10-13 18:02:52 -05:00
Jon Ayers 0fa8f528c2 chore: change view perm to use (#4496) 2022-10-12 14:33:21 -05:00
Dean SheatherandBruno Quaresma abf14d976a chore: rename feature rbac to template_rbac (#4486)
* chore: rename feature rbac to template_rbac

* Fix feature visibility on FE

* fixup! Fix feature visibility on FE

Co-authored-by: Bruno Quaresma <bruno@coder.com>
2022-10-11 13:51:41 -05:00
c13e68248b docs: Add initial docs to groups and rbac (#4455)
* docs: Add initial docs to groups and rbac

* Update manifest

* Apply suggestions from code review

Co-authored-by: Joe Previte <jjprevite@gmail.com>

* use single user icon

* chore: add labels and standardize enterprise messaging

* clarify template role

* add groups role

* fix typo

* rename access to use

Co-authored-by: Joe Previte <jjprevite@gmail.com>
Co-authored-by: Ben <me@bpmct.net>
2022-10-11 13:34:41 -05:00
Ben Potter cc1602ad78 fix: enterprise link for groups (#4491) 2022-10-11 18:19:19 +00:00
Bruno Quaresma c619138ece fix: Display Everyone group in the autocomplete (#4488) 2022-10-11 13:17:19 -05:00
Presley PizzoandColin Adler 62357084ba feat: filter for running workspaces (#4157)
* Refactor workspaces xservice

* Remove layout comment

* Format

* Add comments

* Add running workspaces filter to frontend

* Start on backend - add status to filter

* Update sql and add test - wip

* Attempt to unconvert status for easier querying

* Fix syntax

* Join jobs table, untested

* sql

* Add Status to GetAuthorizedWorkspaces

* Update job tests to have canceled time

* fmt

* add status filter to database fake

Co-authored-by: Colin Adler <colin1adler@gmail.com>
2022-10-11 13:50:41 -04:00
Bruno Quaresma aefb477e21 refactor: Add description to the roles options (#4480) 2022-10-11 14:08:13 -03:00
Garrett Delfosse a70278e0e1 feat: make flags in one place (#4452) 2022-10-11 15:16:19 +00:00
Dean SheatherandBruno Quaresma b1a095e486 feat: show listening ports in port forward popup (#4389)
* feat: show listening ports in port forward popup

* Move fetch logic to a machine

* feat: don't show  app ports and common non-HTTP ports

Co-authored-by: Bruno Quaresma <bruno@coder.com>
2022-10-12 01:10:02 +10:00
Bruno Quaresma a64731eea5 refactor: Add group badge to diff groups from users (#4478) 2022-10-11 14:39:03 +00:00
Bruno Quaresma 934777d9ca refactor: Add enterprise badge to paywalls (#4477) 2022-10-11 11:27:33 -03:00
Joe Previte 8047a3ea61 refactor(site): remove eslint-disable in ResourceAvatar (#4463) 2022-10-10 18:23:23 -07:00
Jon Ayers 3120c94c22 feat: add template RBAC/groups (#4235) 2022-10-10 15:37:06 -05:00
Garrett Delfosse b1faaef482 feat: deployment flags (#4426) 2022-10-10 15:04:15 -04:00
Ammar Bandukwala 85c679597c site: reduce printWidth to 80 (#4437)
Resolves #4435
2022-10-10 10:33:35 -07:00
Bruno Quaresma 5e594adfba refactor: Display tooltip on cancel action (#4421) 2022-10-10 12:34:09 -03:00
Ammar Bandukwala eefc26c108 Hide build logs older than 30 days (#4436) 2022-10-09 20:01:18 +00:00
Bruno Quaresma 50966c4cf7 fix: Fix keyboard focus styles on buttons (#4418) 2022-10-07 14:39:39 -03:00
Bruno Quaresma 34f799257c refactor: Remove user roles from dropdown (#4419) 2022-10-07 14:17:56 -03:00
Kira Pilot 257df81667 chore: replace old ErrorSummary component (#4417)
* replaced error summary

* fixed tests

* positioning caret
2022-10-07 13:14:32 -04:00
Joe Previte 2b6586d542 chore: add ignoreRestSiblings to no-unused-vars ESLint rule (#4404)
* chore: add ignoreRestSiblings to eslint config

* fix(site): remove eslint warning in <Markdown />
2022-10-07 09:55:27 -07:00
Kira Pilot e8e095e2f8 feat: redesign error alert (#4403)
* added a warning summary component

* added warning to workspace page

* consolidated warnings

* prettier

* updated design

* added color scheme

* updated expander component

* cleanup

* fixed tests

* fixed height issue

* prettier

* use theme constants

* increased icon margin
2022-10-07 10:39:27 -04:00
Kyle CarberryandBen Potter 3cc77d96eb feat: Add tunnel by default (#4399)
* feat: Add tunnel by default

If an access URL is not specified, we will always tunnel.

This is from community-member feedback who exclaimed that
it's confusing having the default for `coder server` display
a warning message, and I agree.

There is very little (maybe none) in running `coder server`
without tunnel and without an access URL, so this seems like
overall a much better UX.

* Update install.sh

Co-authored-by: Ben Potter <ben@coder.com>

* Update docs/install/packages.md

Co-authored-by: Ben Potter <ben@coder.com>

* Fix reset pass test

* Fix e2e test

Co-authored-by: Ben Potter <ben@coder.com>
2022-10-07 08:05:56 -05:00
Kyle Carberry 915bb41ea2 feat: Add trial property to licenses (#4372)
* feat: Add trial property to licenses

This allows the frontend to display whether the user is on
a trial license of Coder. This is useful for advertising
Enterprise functionality.

* Improve tests for license enablement code

* Add all features property
2022-10-06 19:28:22 -05:00
Garrett Delfosse f5df54831a feat: tokens (#4380) 2022-10-06 19:02:27 +00:00
Dean Sheather 1386465631 feat: add endpoint to get listening ports in agent (#4260) 2022-10-06 22:38:22 +10:00
Kira Pilot 3ad5e11d22 feat: add warning if workspace page becomes stale (#4375)
* added a warning summary component

* added warning to workspace page

* consolidated warnings

* prettier

* updated design
2022-10-05 18:46:46 -04:00
Presley Pizzo 9a670b90df chore: refactor frontend to use workspace status directly (#4361)
* Add/update copy

* Update mocks

* Handle disabled button labels separately

* Use workspace status directly, use i18n

* Update stories and tests

* Fix optimistic update in xservice to use status, pending

* Rename started to running in story

* Fix deletion banner conditional

* Send label to disabled button

* Refactor workspace actions
2022-10-05 16:20:29 -04:00
Dean Sheather 2a66395fb7 feat: use app wildcards for apps if configured (#4263)
* feat: use app wildcards for apps if configured

* feat: relative_path -> subdomain

- rename relative_path -> subdomain when referring to apps
    - migrate workspace_apps.relative_path to workspace_apps.subdomain
- upgrade coder/coder terraform module to 0.5.0
2022-10-05 19:23:01 +00:00
Garrett Delfosse 8d14076a23 fix: move quotas above inputs (#4376) 2022-10-05 13:44:15 -04:00
Garrett Delfosse ffbaa93722 feat: add experimental flag (#4364) 2022-10-04 19:45:00 +00:00
Joe Previte 78283cf236 fix: add keys to createCtas elements (#4362) 2022-10-04 16:50:15 +00:00
Dean Sheather d165d76338 feat: static error page in applications handlers (#4299) 2022-10-05 02:30:55 +10:00
Joe Previte ce953441fb refactor: clean up types in jest.setup.ts (#4285) 2022-10-04 09:04:23 -07:00