Commit Graph
3121 Commits
Author SHA1 Message Date
Edward AngertandEdwardAngert 5cdc13ba9e docs: fix broken links in feature-stages (#16727)
fix broken links introduced by #16719

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-02-26 22:42:46 +00:00
Jaayden Halko 6b69635140 chore: warn user without permissions to view org members (#16721)
resolves coder/internal#392

In situations where a user accesses the org members without any
permissions beyond that of a normal member, they will only be able to
see themselves in the list of members.

This PR shows a warning to users who arrive at the members page in this
situation.

<img width="1145" alt="Screenshot 2025-02-26 at 18 36 59"
src="https://github.com/user-attachments/assets/16ad6ce1-2aa9-4719-bdae-914aff0fcd52"
/>
2025-02-26 17:03:23 -05:00
Jaayden Halko 1cb864bc1b fix: allow viewOrgRoles for custom roles page (#16722)
Users with viewOrgRoles should be able to see customs roles page as this
matches the left sidebar permissions.
2025-02-26 14:39:08 -05:00
Bruno Quaresma 7c035a4d98 fix: remove provisioners from deployment sidebar (#16717)
Provisioners should be only under orgs. This is a left over from a
previous provisioner refactoring.
2025-02-26 14:20:47 -03:00
Bruno QuaresmaandMathias Fredriksson f1b357d6f2 feat: support session audit log (#16703)
Related to https://github.com/coder/coder/issues/15139

Demo:
<img width="1213" alt="Screenshot 2025-02-25 at 16 27 12"
src="https://github.com/user-attachments/assets/9995a68d-5cd4-4b95-9523-dfd5bf4ff48d"
/>

---------

Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
2025-02-26 14:13:11 -03:00
Marcin Tojek a2cc1b896f fix: display premium banner on audit page when license inactive (#16713)
Fixes: https://github.com/coder/coder/issues/14798
2025-02-26 14:16:48 +01:00
ケイラ a3223397cb chore: use tighter permissions in e2e workspace tests (#16687) 2025-02-25 11:13:44 -07:00
Jaayden Halko b5ff9faa34 fix: update create template button styling (#16701)
resolves #16697 

Fix styling of create template button for non-premium users to match new
template button for premium users.

## Previous behavior
With premium license

![image](https://github.com/user-attachments/assets/41a55a3b-0d4d-4b11-bbda-ae31c09f64b9)

Without license

![image](https://github.com/user-attachments/assets/7439d139-9514-4f05-aa93-3701105b2776)
2025-02-25 13:03:09 -05:00
Bruno Quaresma 38ad8d1f3a feat: add provisioner tags field on template creation (#16656)
Close https://github.com/coder/coder/issues/15426

Demo:


https://github.com/user-attachments/assets/a7901908-8714-4a55-8d4f-c27bf7743111
2025-02-25 14:27:51 -03:00
Bruno Quaresma 64984648d3 refactor: rollback provisioners page to its previous version (#16699)
There is still some points to be aligned related to provisioners. I'm
going to rollback the latest changes until we are more confident on the
design changes so we don't block releases.

<img width="1512" alt="Screenshot 2025-02-25 at 13 46 35"
src="https://github.com/user-attachments/assets/4bb3719c-4659-4442-b7b7-b647a9c0a916"
/>
2025-02-25 14:21:38 -03:00
brettkolodny 33c9aa0703 fix: require permissions to view pages related to organization roles (#16688)
Closes [this issue](https://github.com/coder/internal/issues/393)

This PR adds the`<RequirePermissions />` component to the following
routes:
- _/organizations/\<org\>/roles_
- _/organizations/\<org\>/roles/create_
2025-02-25 12:16:02 -05:00
Hugo Dutka d3a56ae3ef feat: enable GitHub OAuth2 login by default on new deployments (#16662)
Third and final PR to address
https://github.com/coder/coder/issues/16230.

This PR enables GitHub OAuth2 login by default on new deployments.
Combined with https://github.com/coder/coder/pull/16629, this will allow
the first admin user to sign up with GitHub rather than email and
password.

We take care not to enable the default on deployments that would upgrade
to a Coder version with this change.

To disable the default provider an admin can set the
`CODER_OAUTH2_GITHUB_DEFAULT_PROVIDER` env variable to false.
2025-02-25 16:31:33 +01:00
Hugo Dutka 67d89bb102 feat: implement sign up with GitHub for the first user (#16629)
Second PR to address https://github.com/coder/coder/issues/16230. See
the issue for more context and discussion.

It adds a "Continue with GitHub" button to the `/setup` page, so the
deployment's admin can sign up with it. It also removes the "Username"
and "Full Name" fields to make signing up with email faster. In the
email flow, the username is now auto-generated based on the email, and
full name is left empty.

<img width="1512" alt="Screenshot 2025-02-21 at 17 51 22"
src="https://github.com/user-attachments/assets/e7c6986b-c05e-458b-bb01-c3aea3b74c0e"
/>

There's a separate, follow up issue to visually align the `/setup` page
with the new design system: https://github.com/coder/coder/issues/16653
2025-02-25 15:54:38 +01:00
Marcin Tojek b419b36ada fix: display banner when no matching templates found (#16696)
Fixes: https://github.com/coder/coder/issues/16077
2025-02-25 14:30:50 +01:00
Marcin Tojek a2d4b9984e fix: hide app icon if not found (#16684)
Fixes: https://github.com/coder/coder/issues/14759
2025-02-25 10:30:17 +00:00
Hugo Dutka c8abf58e29 chore: reduce prominence of Scratch starter and emphasize Docker in UI (#16665) 2025-02-24 20:59:21 +01:00
Steven Masley 658825cad2 feat: add sourcing secondary claims from access_token (#16517)
Niche edge case, assumes access_token is jwt. 

Some `access_token`s are JWT's with potential useful claims.
These claims would be nearly equivalent to `user_info` claims.
This is not apart of the oauth spec, so this feature should not be
loudly advertised. If using this feature, alternate solutions are preferred.
2025-02-24 13:38:20 -06:00
Steven Masley e005e4e51d chore: merge provisioner key and provisioner permissions (#16628)
Provisioner key permissions were never any different than provisioners.
Merging them for a cleaner permission story until they are required (if
ever) to be seperate.

This removed `ResourceProvisionerKey` from RBAC and just uses the
existing `ResourceProvisioner`.
2025-02-24 13:31:11 -06:00
546a549dcf feat: enable soft delete for organizations (#16584)
- Add deleted column to organizations table
- Add trigger to check for existing workspaces, templates, groups and
members in a org before allowing the soft delete

---------

Co-authored-by: Steven Masley <stevenmasley@gmail.com>
Co-authored-by: Steven Masley <Emyrk@users.noreply.github.com>
2025-02-24 12:59:41 -05:00
Hugo Dutka ac88c9ba17 fix: ensure the web UI doesn't break when license telemetry required check fails (#16667)
Addresses https://github.com/coder/coder/issues/16455.

## Changes

- Initialize default entitlements in a Set to include all features
- Initialize entitlements' `Warnings` and `Errors` fields to arrays
rather than `nil`s.
- Minor changes in formatting on the frontend

## Reasoning

I had to change how entitlements are initialized to match the `codersdk`
[generated
types](https://github.com/coder/coder/blob/33d62619225702257fa2542f40ecc26bfd0d1fa6/site/src/api/typesGenerated.ts#L727),
which the frontend assumes are correct, and doesn't run additional
checks on.

- `features: Record<FeatureName, Feature>`: this type signifies that
every `FeatureName` is present in the record, but on `main`, that's not
true if there's a telemetry required error
- `warnings: readonly string[];` and `errors: readonly string[];`: these
types mean that the fields are not `null`, but that's not always true

With a valid license, the [`LicensesEntitlements`
function](https://github.com/coder/coder/blob/33d62619225702257fa2542f40ecc26bfd0d1fa6/enterprise/coderd/license/license.go#L92)
ensures that all features are present in the entitlements. It's called
by the [`Entitlements`
function](https://github.com/coder/coder/blob/33d62619225702257fa2542f40ecc26bfd0d1fa6/enterprise/coderd/license/license.go#L42),
which is called by
[`api.updateEnittlements`](https://github.com/coder/coder/blob/33d62619225702257fa2542f40ecc26bfd0d1fa6/enterprise/coderd/coderd.go#L687).
However, when a license requires telemetry and telemetry is disabled,
the entitlements with all features [are
discarded](https://github.com/coder/coder/blob/33d62619225702257fa2542f40ecc26bfd0d1fa6/enterprise/coderd/coderd.go#L704)
in an early exit from the same function. By initializing entitlements
with all the features from the get go, we avoid this problem.

## License issue banner after the changes

<img width="1512" alt="Screenshot 2025-02-23 at 20 25 42"
src="https://github.com/user-attachments/assets/ee0134b3-f745-45d9-8333-bfa1661e33d2"
/>
2025-02-24 16:02:33 +01:00
Marcin Tojek ab5c9f7e0c fix: display notification on schedule update (#16672)
Fixes: https://github.com/coder/coder/issues/15214
2025-02-24 13:27:16 +00:00
brettkolodny 39f42bc11d feat: show dialog with a redirect if permissions are required (#16661)
Closes [this
issue](https://github.com/coder/internal/issues/385#issuecomment-2667061358)

## New behavior

When a user ends up on a page they don't have permission to view instead
of being redirected back to _/workspaces_ they'll be met with the
un-closeable dialog below with a link to _/workspaces_.

This is similar to [this PR](https://github.com/coder/coder/pull/16644)
but IMO we should be making sure we are using `<RequirePermissions />`
wherever applicable and only relying on `<ErrorAlert />` as a fallback
in case there is some page we missed or endpoint we're accidentally
using.

![Screenshot 2025-02-21 at 4 50
58 PM](https://github.com/user-attachments/assets/1f986e28-d99b-425d-b67a-80bb08d5111f)
2025-02-21 17:43:32 -05:00
brettkolodny ce49ce4f41 fix: redirect users lacking create permissions to /workspaces (#16659)
Closes [this issue](https://github.com/coder/internal/issues/394).

At the moment this behavior can be a bit confusing, but after [this
issue is
closed](https://github.com/coder/internal/issues/385#issuecomment-2667061358)
it should be more obvious what's going on here.
2025-02-21 16:33:54 -05:00
ケイラ a85a220816 chore: clean up built-in role permissions (#16645) 2025-02-21 14:33:34 -07:00
brettkolodny a376e8dbfe fix: include a link and more useful error details for 403 response codes (#16644)
Currently if a user gets to a page they don't have permission to view
they're greeted with a vague error alert and no actionable items. This
PR adds a link back to _/workspaces_ within the alert as well as more
helpful error details.

Before:
![Screenshot 2025-02-20 at 11 06
06 AM](https://github.com/user-attachments/assets/cea5b86d-673b-482b-ac0b-f132eb518910)

After:
![Screenshot 2025-02-20 at 11 06
19 AM](https://github.com/user-attachments/assets/6bf0e9fd-fc51-4d9a-afbc-fea9f0439aff)
2025-02-21 16:26:07 -05:00
Hugo Dutka 8c5e7007cd feat: support the OAuth2 device flow with GitHub for signing in (#16585)
First PR in a series to address
https://github.com/coder/coder/issues/16230.

Introduces support for logging in via the [GitHub OAuth2 Device
Flow](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#device-flow).

It's previously been possible to configure external auth with the device
flow, but it's not been possible to use it for logging in. This PR
builds on the existing support we had to extend it to sign ins.

When a user clicks "sign in with GitHub" when device auth is configured,
they are redirected to the new `/login/device` page, which makes the
flow possible from the client's side. The recording below shows the full
flow.


https://github.com/user-attachments/assets/90c06f1f-e42f-43e9-a128-462270c80fdd

I've also manually tested that it works for converting from
password-based auth to oauth.

Device auth can be enabled by a deployment's admin by setting the
`CODER_OAUTH2_GITHUB_DEVICE_FLOW` env variable or a corresponding config
setting.
2025-02-21 18:42:16 +01:00
Marcin Tojek e8a7b7e8cb feat: add notifications troubleshooting tab (#16650) 2025-02-21 14:34:48 +01:00
brettkolodny 54b09d9878 fix: show an error banner if the user does not have permission to view the audit page (#16637) 2025-02-20 09:56:57 -05:00
Marcin Tojek f670559a5d fix: change validation error for workspace name (#16643)
Fixes: https://github.com/coder/coder/issues/14824
2025-02-20 14:34:31 +01:00
Dean Sheather 9469b78290 fix!: enforce regex for agent names (#16641)
Underscores and double hyphens are now blocked. The regex is almost the
exact same as the `coder_app` `slug` regex, but uppercase characters are
still permitted.
2025-02-20 05:09:26 +00:00
brettkolodny 570e42b7f7 fix: rearrange render logic (#16631)
Change the render logic so that we always show an error message if the
error is available
2025-02-19 15:09:37 -05:00
ケイラ deadac0b91 fix: fix loading states and permissions checks in organization settings (#16465) 2025-02-19 11:48:13 -07:00
Marcin Tojek e59c54a539 fix: center proxy spinner (#16621)
Fixes: https://github.com/coder/coder/issues/16615
2025-02-19 19:07:10 +01:00
brettkolodny 4732f08588 fix: show an error when a user doesn't have permission to view the health page (#16580) 2025-02-19 10:54:35 -05:00
Kira PilotandJaayden Halko 2c6df5a9ae fix: sort orgs alphabetically in dropdown (#16583)
resolves https://github.com/coder/internal/issues/352
<img width="312" alt="Screenshot 2025-02-18 at 12 16 09 PM"
src="https://github.com/user-attachments/assets/c7863bfd-c7cc-4fa6-be88-68a03cd19c1f"
/>

---------

Co-authored-by: Jaayden Halko <jaayden.halko@gmail.com>
2025-02-19 10:20:14 -05:00
Marcin Tojek 22fa71d15c fix: open link with search params (#16617)
Fixes: https://github.com/coder/coder/issues/16501
2025-02-19 12:55:55 +01:00
Bruno Quaresma 0f3858ecc9 feat: display provisioner jobs and daemons for an organization (#16532)
**Jobs:**
<img width="1624" alt="Screenshot 2025-02-13 at 09 26 31"
src="https://github.com/user-attachments/assets/dc1f24de-48e8-4f91-b128-8e4f3b109328"
/>
[Figma
Link](https://www.figma.com/design/JYW69pbgOMr21fCMiQsPXg/Provisioners?node-id=10-2005&m=dev)

**Daemons:**
<img width="1624" alt="Screenshot 2025-02-13 at 09 26 53"
src="https://github.com/user-attachments/assets/429d77ee-2b4f-45d1-924f-796145901fd8"
/>
[Figma
Link](https://www.figma.com/design/JYW69pbgOMr21fCMiQsPXg/Provisioners?node-id=26-4038&m=dev)

Close https://github.com/coder/coder/issues/15192 and
https://github.com/coder/coder/issues/15193
2025-02-18 11:27:51 -03:00
Sas Swart a17cf03980 feat(site): add support for presets to the create workspace page (#16567)
This pull request adds support for presets to the create workspace page.
This behaviour can be seen in the storybook. This will not be visible in
dogfood until we merge support for presets in the provisioners.

There is more frontend work to be done before this is ready for a
general release, but this should be sufficient for dogfood testing
2025-02-18 15:26:55 +02:00
Danielle Maywood d6b9806098 chore: implement oom/ood processing component (#16436)
Implements the processing logic as set out in the OOM/OOD RFC.
2025-02-17 16:56:52 +00:00
Mathias Fredriksson b5329ae1cd feat: add workspace agent connect and app open audit types (#16493)
This commit adds new audit resource types for workspace agents and
workspace apps, as well as connect/disconnect and open/close actions.

The idea is that we will log new audit events for connecting to the
agent via SSH/editor.

Likewise, we will log openings of `coder_app`s.

This change also introduces support for filtering by `request_id`.

Updates #15139
2025-02-17 13:02:30 +00:00
Marcin Tojek 42f6b716f2 fix: add link to troubleshooting (#16592)
Fixes: https://github.com/coder/coder/issues/14933
2025-02-17 14:00:51 +01:00
Sas Swart 46e04c68e3 feat(provisioner): add support for presets to coder provisioners (#16574)
This pull request adds support for presets to coder provisioners.
If a template defines presets using a compatible version of the
provider, then this PR will allow those presets to be persisted to the
control plane database for use in workspace creation.
2025-02-17 13:00:44 +02:00
brettkolodny 1ce4dfe058 fix: stop text from overflowing on delete org button (#16549)
Closes #16433 

I also took the opportunity to convert the components to tailwind. Since
there aren't designs for this piece of UI yet I tried to match it as
closely as possible using the existing tailwind config

![Screenshot 2025-02-12 at 5 03
58 PM](https://github.com/user-attachments/assets/71d66269-9440-4692-91ba-fed2e5cb5821)
2025-02-14 11:13:28 -05:00
Mathias Fredriksson 77306f3de1 feat(coderd): add filters and fix template for provisioner daemons (#16558)
This change adds provisioner daemon ID filter to the provisioner daemons
endpoint, and also implements the limiting to 50 results.

Test coverage is greatly improved and template information for jobs
associated to the daemon was also fixed.

Updates #15084
Updates #15192
Related #16532
2025-02-14 17:26:46 +02:00
Marcin Tojek 5ce4cc07de fix: switch engagement chart to linear (#16576)
Fixes: https://github.com/coder/internal/issues/363
2025-02-14 13:13:32 +00:00
Marcin Tojek 1c5a0425c5 fix: include origin in support link (#16572)
Fixes: https://github.com/coder/coder/issues/15542
2025-02-14 13:07:59 +00:00
M Atif Ali b1d53b091c feat(site): add Keycloak icon (#16569)
https://www.keycloak.org/
2025-02-14 09:37:12 +00:00
brettkolodny b23e3f9132 fix: change resource icon colors in the delete modal based on the set theme (#16550) 2025-02-13 17:41:02 -05:00
Jaayden Halko 00e76b881f chore: migrate to tailwind (#16543)
Moving styles to Tailwind
2025-02-13 14:45:38 -05:00
Mathias Fredriksson e38bd27183 feat(coderd): add support for provisioner job id and tag filter (#16556)
This change adds to new filters to the provisionerjobs endpoint, id
(array) and tags (map).

Updates #15084
Updates #15192
Related #16532
2025-02-13 18:24:27 +02:00