Commit Graph
2899 Commits
Author SHA1 Message Date
Jaayden Halko 6c9ccca687 feat: implement CRUD UI for IDP organization sync settings (#15503)
resolves coder/internal#205

The goal is to create a new page located in deployment settings to allow
users to create and update organization IDP sync settings.

- [x] Use shadcn button for export policy button
- [x] Disable save button if form is not dirty
- [x] Disable "Add IdP organization" button if idp org name or coder
orgs are empty
- [x] Add footnote label below organization sync field input
- [x] Add button to Delete rows in mapping table
- [x] Create Multi-select combox box component to select coder org to
map to idp org
- [x] Storybook tests
- [x] Tooltip for assign default org switch
- [x] Display success/error toast on form submission

<img width="1181" alt="Screenshot 2024-12-02 at 20 33 07"
src="https://github.com/user-attachments/assets/86877d3b-82ec-4ed2-b239-bf8497352a9e">
2024-12-04 14:23:18 -05:00
Bruno Quaresma ebfc133641 fix: display build timings when all timings are loaded (#15728)
- [Refetch timings until script timings are
present](https://github.com/coder/coder/commit/2181bec72b5334e5e15dc575d2234860be02920b)
- [Stay on loading state when agent script timings are
empty](https://github.com/coder/coder/commit/b16fad165c8733c60150b0dfce5df73ab2669e36)

Fix https://github.com/coder/coder/issues/15273
2024-12-03 13:28:32 -03:00
ケイラ e4f6c9ac15 chore: upgrade storybook (#15720) 2024-12-02 15:59:19 -07:00
Danielle Maywood e21a301682 fix: make GetWorkspacesEligibleForTransition return even less false positives (#15594)
Relates to https://github.com/coder/coder/issues/15082

Further to https://github.com/coder/coder/pull/15429, this reduces the
amount of false-positives returned by the 'is eligible for autostart'
part of the query. We achieve this by calculating the 'next start at'
time of the workspace, storing it in the database, and using it in our
`GetWorkspacesEligibleForTransition` query.

The prior implementation of the 'is eligible for autostart' query would
return _all_ workspaces that at some point in the future _might_ be
eligible for autostart. This now ensures we only return workspaces that
_should_ be eligible for autostart.

We also now pass `currentTick` instead of `t` to the
`GetWorkspacesEligibleForTransition` query as otherwise we'll have one
round of workspaces that are skipped by `isEligibleForTransition` due to
`currentTick` being a truncated version of `t`.
2024-12-02 21:02:36 +00:00
Cian JohnstonandDanny Kopping 2b57dcc68c feat(coderd): add matched provisioner daemons information to more places (#15688)
- Refactors `checkProvisioners` into `db2sdk.MatchedProvisioners`
- Adds a separate RBAC subject just for reading provisioner daemons
- Adds matched provisioners information to additional endpoints relating to
  workspace builds and templates
-Updates existing unit tests for above endpoints
-Adds API endpoint for matched provisioners of template dry-run job
-Updates CLI to show warning when creating/starting/stopping/deleting
 workspaces for which no provisoners are available

---------

Co-authored-by: Danny Kopping <danny@coder.com>
2024-12-02 20:54:32 +00:00
Sas Swartandケイラ 7e1ac2e22b feat(site): show license utilization in general settings (#15683)
This PR is the first iteration towards #15297

We cannot yet show license utilization over time, so we show current
license utilization.
This is because we don't track user states over time. We only track the
current user state. A graph over time filtering by active users would
therefore not account for day to day changes in user state and be
inaccurate.
DB schema migrations and related updates will follow that allow us to
show license utilization over time.


![image](https://github.com/user-attachments/assets/91bd6e8c-e74c-4ef5-aa6b-271fd245da37)

---------

Co-authored-by: ケイラ <mckayla@hey.com>
2024-12-02 21:27:43 +02:00
dependabot[bot] c47e7afae0 chore: bump prettier from 3.3.3 to 3.4.1 in /site (#15706)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-02 15:00:35 +05:00
Ethan abb3df7e35 fix(site): avoid constructing invalid apps url (#15711)
In Firefox, parsing a URL containing a `*` returns an error:
```
new URL("https://*--apps.sydney.fly.dev.coder.com") 
```
```
Uncaught TypeError: URL constructor: https://*--apps.sydney.fly.dev.coder.com is not a valid URL.
    <anonymous> debugger eval code:1
```

In Chrome and Node, this same URL does not produce an error.

This causes a workspace dashboard with apps to fail to load on Firefox.

![image](https://github.com/user-attachments/assets/eeea4fe5-3759-432b-b7ce-22dfad5f8218)
2024-12-02 08:45:38 +00:00
Sas Swart 56c792ab52 feat(site): warn on provisioner health during builds (#15589)
This PR adds warning alerts to log drawers for templates and template
versions. warning alerts for workspace builds to follow in a subsequent
PR. Phrasing to be finalised. Stories added and manually verified. See
screenshots below.

Updating a template version with no provisioners:
<img width="1250" alt="Screenshot 2024-11-27 at 11 06 28"
src="https://github.com/user-attachments/assets/47aa0940-57a8-44e1-b9a3-25a638fa2c8d">
Build Errors for template versions now show tags as well:
<img width="1250" alt="Screenshot 2024-11-27 at 11 07 01"
src="https://github.com/user-attachments/assets/566e5339-0fe1-4cf7-8eab-9bf4892ed28a">
Updating a template version with provisioners that are busy or
unresponsive:
<img width="1250" alt="Screenshot 2024-11-27 at 11 06 40"
src="https://github.com/user-attachments/assets/71977c8c-e4ed-457f-8587-2154850e7567">
Creating a new template with provisioners that are busy or unresponsive:
<img width="819" alt="Screenshot 2024-11-27 at 11 08 55"
src="https://github.com/user-attachments/assets/bda11501-b482-4046-95c5-feabcd1ad7f5">
Creating a new template when there are no provisioners to do the build:
<img width="819" alt="Screenshot 2024-11-27 at 11 08 45"
src="https://github.com/user-attachments/assets/e4279ebb-399e-4c6e-86e2-ead8f3ac7605">
2024-11-28 16:58:32 +02:00
Jon Ayers a16f877c5b fix: update portforward storybook tests to include host (#15680) 2024-11-28 15:22:36 +02:00
Jon Ayers ffb0ebb5b6 fix: use url-parse for url construction (#15670)
This fixes some CodeQL-flagged issues. They're not real issues but the
refactor is small and it'll keep the analysis tools quiet.
2024-11-27 23:52:11 +02:00
Muhammad Atif Ali a9195bfe74 docs: add Amazon DCV Windows module to guides (#15610) 2024-11-26 21:41:22 +05:00
Cian JohnstonandMathias Fredriksson 1cdc3e8921 feat!: extract provisioner tags from coder_workspace_tags data source (#15578)
Relates to https://github.com/coder/coder/issues/15087 and
https://github.com/coder/coder/issues/15427

- Extracts provisioner job tags from `coder_workspace_tags` on template
version creation using `provisioner/terraform/tfparse` added in
https://github.com/coder/coder/pull/15236
- Drops a WARN log in coderd if no matching provisioners found.
- Also drops a warning message in the CLI if no provisioners are found.
- To support both CLI and UI warnings, added a
`codersdk.MatchedProvisioners` struct to the `TemplateVersion` response
containing details of how many provisioners were around at the time of
the insert.

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2024-11-25 11:19:14 +00:00
Kayla Washburn-Love 32b4b77c45 fix: use ExternalImage for external auth providers (#15572) 2024-11-22 15:24:18 -07:00
Bruno Quaresma f3e1dd8d1c fix: deduplicate agent script timings (#15631)
Related to https://github.com/coder/coder/issues/15413
2024-11-22 14:29:31 -03:00
Toshiki ShimomuraandMuhammad Atif Ali e87b0bb455 fix(site): set min and max attributes for workspace number parameters (#15182)
Implements #14532.

This PR sets `min` and `max` attributes for workspace number parameter
`<input>` elements using
[inputProps](https://mui.com/material-ui/api/text-field/#text-field-prop-inputProps).

Note: When we update MUI to v6 or later, it is better to use
`slotProps.htmlInput` instead.

---------

Co-authored-by: Muhammad Atif Ali <atif@coder.com>
2024-11-22 09:50:22 -06:00
Ethan 45f7d77d6f fix(site): remove hard-coded activity bump label (#15583)
Closes #15536.

The setting description is already dynamically set correctly, and I
don't believe it warrants repeating.


![image](https://github.com/user-attachments/assets/467b2ef3-468a-4634-819f-98f36c86b5ab)
2024-11-22 23:48:23 +11:00
Ethan a35c01de54 fix(site): show error on template upload failure (#15558)
Closes #15441.
2024-11-22 23:46:21 +11:00
Steven Masley 5b7fa78676 chore: add deployment config option to append custom csp directives (#15596)
Allows adding custom static CSP directives to Coder. Niche use case but
makes this easier then creating a reverse proxy that has to replace the
header. We want to preserve our directives, so having an append option
is preferred to a "replace" option via a reverse proxy.


Closes https://github.com/coder/coder/issues/15118
2024-11-21 11:53:53 -06:00
dependabot[bot] c803e7d6f7 chore: bump cross-spawn from 7.0.3 to 7.0.6 in /site (#15567)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-18 19:51:46 +05:00
Marcin TojekandDanny Kopping 8ca8e016fa fix(site): wait until port is available in e2e (#15537)
Related: https://github.com/coder/internal/issues/212

This PR modifies the logic responsible for creating a server in E2E
tests to check if the port is free. Alternatively, we could refactor the
framework to dynamically create server instances, but this solution
might be a cheaper quick win.

Note:

I'll leave it as is now, it might be worth asking somebody with a
frontend skillset to double-check this contribution.

---------

Signed-off-by: Danny Kopping <danny@coder.com>
Co-authored-by: Danny Kopping <danny@coder.com>
2024-11-18 10:28:16 +00:00
Hugo Dutka aa0dc2daa1 chore: track terraform modules in telemetry (#15450)
Addresses https://github.com/coder/nexus/issues/35.

This PR:

- Adds a `workspace_modules` table to track modules used by the
Terraform provisioner in provisioner jobs.
- Adds a `module_path` column to the `workspace_resources` table,
allowing to identify which module a resource originates from.
- Starts pushing this new information into telemetry.

For the person reviewing this PR, do not fret about the 1,500 new lines
- ~1,000 of them are auto-generated.
2024-11-16 21:56:19 +01:00
Joobi S B 4cb807670d chore: generate countries.tsx from Go code (#15274)
Closes https://github.com/coder/coder/issues/15074

We have a hard-coded list of countries at
https://github.com/coder/coder/blob/main/site/src/pages/SetupPage/countries.tsx.
This means Go code in coder/coder doesn't have an easy way of utilizing
it.

## Solution
Generate countries.tsx from Go code. Generated by `scripts/apitypings`
2024-11-15 12:05:21 -06:00
Cian Johnston 4a6b28f5df feat(provisioner): add support for workspace_owner_login_type (#15499)
- Adds support for the `coder_workspace_owner.login_type` attribute.
- Adds a currently disabled test for `coder_workspace_owner.login_type`
2024-11-13 15:34:58 +00:00
Edward AngertandEdwardAngert 56e219b50d docs: update template-from-scratch (#15101)
closes https://github.com/coder/internal/issues/104

- [x] update screenshots
- [x] consistent md
- [x] confirm and update `Dockerfile` and `main.tf`
   - matched up to the Docker Containers starter template
- upload template
   - [x] confirm CLI steps
   - [x] add steps in tab for Dashboard
- [x] ~confirm that the expand works~ it doesn't


<https://coder.com/docs/@template-from-scratch-update/tutorials/template-from-scratch>

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2024-11-12 14:01:51 -05:00
Bruno QuaresmaandJaayden Halko 308df177c9 chore: use hsl for tailwind and shadcn theming (#15453)
Co-authored-by: Jaayden Halko <jaayden.halko@gmail.com>
2024-11-08 14:33:50 -03:00
Steven Masley 782214bcd8 chore: move organizatinon sync to runtime configuration (#15431)
Moves the configuration from environment to database backed, to allow
configuring organization sync at runtime.
2024-11-08 08:44:14 -06:00
Ethan d2e496901f fix: set content type when uploading edited template (#15440)
Fixes a bug where a file produced by `generateVersionFiles` (as used
when uploading a web UI edited template) produced a file where the
`type` field was unset.
This meant the change in #15410 used the unset type value as the content
header when uploading, causing it to always fail.
2024-11-08 05:59:17 +00:00
de2f42eedd fix: enable Tailwind with storybook (#15418)
This adds index.css to the storybook preview file and references to
#storybook-root element in the tailwind config

---------

Co-authored-by: Spike Curtis <spike@coder.com>
Co-authored-by: BrunoQuaresma <bruno_nonato_quaresma@hotmail.com>
2024-11-07 20:56:42 -05:00
Jaayden Halko d4131badb6 feat: implement Premium features page using shadcn/ui and Tailwind (#15094)
resolves coder/internal#176

This is a proof of concept to showcase the use of Tailwind + shadcn/ui.
The goal here was to implement a lower complexity page to reduce the
initial risk and highlight the specific global changes needed.

Changes:

- Create a separate version of Premium features content for Enterprise
and OSS users
- Use shadcn/ui button component and setup styling and variants to match
the buttons defined in the Coder Kit Figma.
https://www.figma.com/design/WfqIgsTFXN2BscBSSyXWF8/Coder-kit?node-id=3-1756
- Setup theming using CSS variables and custom Tailwind colors by using
the dark class name on the root element.
- CSS variable design token naming and colors defined in Figma.
https://www.figma.com/design/WfqIgsTFXN2BscBSSyXWF8/Coder-kit?node-id=1-2


<img width="1199" alt="Screenshot 2024-11-01 at 12 46 03 PM"
src="https://github.com/user-attachments/assets/a251450f-8447-405a-9cc4-9f6aad9cd19f">
<img width="1197" alt="Screenshot 2024-11-01 at 12 45 36 PM"
src="https://github.com/user-attachments/assets/e78a5a40-cbdf-4d85-9ffe-873505800fcc">
2024-11-06 12:53:00 -05:00
Danny Kopping cafb963bf4 chore: clarify section description to indicate that notifications can be disabled (#15381)
The current description of "Configure your notification preferences.
Icons on the right of each notification indicate delivery method, either
SMTP or Webhook." doesn't really say what this page is for.

I've adjusted the wording, and also changed the tooltip of the delivery
method icon to be more clear.

Signed-off-by: Danny Kopping <danny@coder.com>
2024-11-06 18:43:39 +01:00
Marcin Tojek 17363098e2 fix: use correct Content-Type for template archive (#15410)
Fixes: https://github.com/coder/coder/issues/14124
2024-11-06 18:38:48 +01:00
Bruno Quaresma 18c2386e9e chore(site): fix reset password storybook flake (#15380)
Fix https://github.com/coder/internal/issues/69
2024-11-06 14:24:32 -03:00
Jaayden Halko 4ec6871cea chore: update missing RBAC action descriptions (#15389)
Add missing action descriptions so that these appear when in the
frontend when creating/updating custom roles.
2024-11-05 18:16:10 -05:00
Vincent VielleandBrunoQuaresma 4fe2c5f09a fix: improve password validation flow (#15132)
Refers to #14984 

Currently, password validation is done backend side and is not explicit
enough so it can be painful to create first users.
We'd like to make this validation easier - but also duplicate it
frontend side to make it smoother.

Flows involved : 
- First user set password
- New user set password
- Change password

---------

Co-authored-by: BrunoQuaresma <bruno_nonato_quaresma@hotmail.com>
2024-11-05 17:22:32 +01:00
Ethan 8b5a18cade fix(site): watch build logs while job is pending or running (#15341)
Closes #15292.

Currently, if the frontend never sees a build job enter 'running', it'll
never end up watching the logs. If we start watching the logs earlier
we're able to catch cases where the job goes `pending` -> `failed`, such
as when the build fails immediately.
2024-11-06 01:20:27 +11:00
Ethan 3c60dc3bb5 fix(site): show error on duplicate template rename attempt (#15348)
Fixes #15311.
2024-11-06 01:18:38 +11:00
Cian Johnston dc29b81286 fix(site/static/icon): add filebrowser icon (#15367)
Fixes https://github.com/coder/coder/issues/15365

We used to hit
https://raw.githubusercontent.com/filebrowser/logo/master/icon_raw.svg
for the filebrowser icon but coder/modules#334 modified the icon URL to
point to a self-hosted icon.

I simply copied the icon from the `coder/modules` repo.
2024-11-04 18:17:16 +00:00
dependabot[bot] cfc4cb07b6 chore: bump @types/node from 20.16.10 to 20.17.6 in /site (#15351) 2024-11-04 10:56:00 -07:00
dependabot[bot] 735e965bdd chore: bump @types/lodash from 4.17.9 to 4.17.13 in /site (#15334) 2024-11-04 14:35:02 -03:00
dependabot[bot] ffa82659a2 chore: bump the vite group across 1 directory with 2 updates (#15321)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 15:52:11 +05:00
dependabot[bot] cf96d91625 chore: bump dayjs from 1.11.4 to 1.11.13 in /site (#15332)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 11:34:35 +05:00
dependabot[bot] 98bb560f63 chore: bump the react group across 2 directories with 2 updates (#15319)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 06:11:44 +00:00
dependabot[bot] 6153880e9c chore: bump @swc/jest from 0.2.36 to 0.2.37 in /site (#15331)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 11:00:35 +05:00
dependabot[bot] 9f867a48c3 chore: bump typescript from 5.6.2 to 5.6.3 in /site (#15335)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 11:00:27 +05:00
dependabot[bot] 48253581ed chore: bump chromatic from 11.3.0 to 11.16.3 in /site (#15329)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-04 10:54:43 +05:00
Edward AngertandEdwardAngert 1f93b80e09 chore: fix docs/admin links and upgrade notice (#15043)
- Update links to /docs/admin to match the new structure
- TODO: remove the release string from the "upgrade available"
instructions link
- [x]
https://github.com/coder/coder/blob/update-upgrade-config-links/cli/server.go#L646


![2024-10-11_11-35-40](https://github.com/user-attachments/assets/fd95e821-d5ad-4c91-a38a-066046c7072c)

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2024-11-01 19:43:51 +00:00
Bruno QuaresmaandDanny Kopping e232aee011 feat(site): add agent connection timings (#15276)
Local preview:

<img width="1260" alt="Screenshot 2024-10-29 at 16 16 01"
src="https://github.com/user-attachments/assets/10fdb20d-1f2a-4b0a-a8a1-171050ee620d">


Close https://github.com/coder/internal/issues/116

---------

Co-authored-by: Danny Kopping <danny@coder.com>
2024-11-01 13:29:00 -03:00
dependabot[bot] 13b97cf3dc chore: bump @storybook/addon-actions from 8.1.11 to 8.3.5 in /site (#15330) 2024-11-01 09:58:48 -06:00
dependabot[bot] 85f05ad396 chore: bump @types/jest from 29.5.13 to 29.5.14 in /site in the jest group (#15320) 2024-11-01 12:47:47 -03:00