1
0
mirror of https://github.com/coder/coder.git synced 2025-03-15 19:19:58 +00:00

430 Commits

Author SHA1 Message Date
7171d52279 fix: replace both colons and slashes in SBOM filename for Docker image ()
This PR fixes the SBOM filename generation in the Docker build script to
properly handle image tags that contain slashes. The current
implementation only replaces colons with underscores, but fails when
image tags include slashes (common in registry paths).

The fix updates the string replacement to handle both colons and slashes
in the image tag when generating the SBOM filename.

Change-Id: Ifd7bad6d165393e11202e5bf070a4cb26eaa6a6a
Signed-off-by: Thomas Kosiewski <tk@coder.com>

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-03-13 23:01:03 +05:00
389af22dac chore: replace colons in SBOM filename for Docker image attestation ()
This PR fixes an issue in the Docker build script where the SBOM file path used the image tag directly, which could contain colons. Since colons are not valid characters in filenames on many filesystems, this replaces colons with underscores in the output filename.

Change-Id: I887f4fc255d9bfa19b6c5d23ad0a5db7352aa2af
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-03-13 18:20:43 +01:00
4987de654e chore: enable SBOM attestations for docker images ()
- Enable SBOM and provenance attestations in Docker builds
- Installs `cosign` and `syft` in dogfood image
- Adds [github
attestations](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations/using-artifact-attestations-to-establish-provenance-for-builds)

Signed-off-by: Thomas Kosiewski <tk@coder.com>

---------

Signed-off-by: Thomas Kosiewski <tk@coder.com>
Co-authored-by: Thomas Kosiewski <tk@coder.com>
2025-03-13 21:45:11 +05:00
09dd69a7e8 chore(dogfood): include multiple templates under dogfood/ ()
* Renames `dogfood/contents` to `dogfood/coder`.
* Moves `coder-envbuilder` to `dogfood/coder-envbuilder`.
* Updates `dogfood/main.tf` to push `coder-envbuilder` template.
* Replaces hard-coded organization IDs with
`data.coderd_organization.default.id`.
2025-03-11 13:17:40 +00:00
e817713dc0 revert: "chore: enable SBOM attestation for image builds" ()
Reverts 

The CI failed to create the multi-arch manifest.

https://github.com/coder/coder/actions/runs/13773079355/job/38516182819#step:18:341

I personally think we should move to a [multi-arch
Dockerfile](https://docs.docker.com/build/building/multi-platform/#cross-compilation)
instead of creating the manifest manually.
2025-03-10 19:55:03 +00:00
05ebece03a chore: enable SBOM attestation for image builds ()
- Added SBOM (Software Bill of Materials) generation during Docker build
to enhance traceability. Refer to Docker documentation on SBOM:
https://docs.docker.com/build/metadata/attestations/sbom/
- Updated Docker build scripts to use BuildKit for provenance and SBOM
support: https://docs.docker.com/build/metadata/attestations/
- Configured Docker daemon in dogfood image to support the Containerd
snapshotter feature to improve performance:
https://docs.docker.com/engine/storage/containerd/

> [!Important]
> We also need to enable `containerd` on depot runners.
> <img width="587" alt="image"
src="https://github.com/user-attachments/assets/1d7f87c7-fdcc-462a-babe-87ac6486ad09"
/>



## Testing

- Tested locally with ` docker buildx build --sbom=true --output
type=local,dest=out -f Dockerfile .` to verify that an SBOM file is
generated.
- Tested in
[CI](https://github.com/coder/coder/actions/runs/13731162662/job/38408790980?pr=16852#step:17:1)
to ensure the image builds without any errors.


Also closes 
2025-03-11 00:24:14 +05:00
10f1e0b39a chore: update terraform to 1.11.0 () 2025-03-04 14:28:41 -05:00
64fec8bf0b feat: include winres metadata in Windows binaries ()
Adds information like product/file version, description, product name
and copyright to compiled Windows binaries in dogfood and release
builds. Also adds an icon to the executable.

This is necessary for Coder Desktop to be able to check the version on
binaries.

### Before:

![image](https://github.com/user-attachments/assets/82351b63-6b23-4ef8-ab89-7f9e6dafeabd)

![image](https://github.com/user-attachments/assets/d17d8098-e330-4ac0-b104-31163f84279f)

### After:

![image](https://github.com/user-attachments/assets/0ba50afa-ad53-4ad2-b5e2-557358cda037)

![image](https://github.com/user-attachments/assets/d305cc27-e3f3-41a8-9098-498b71344faa)

![image](https://github.com/user-attachments/assets/42f74ace-bda1-414f-b514-68d4d928c958)

Closes https://github.com/coder/coder/issues/16693
2025-02-28 16:03:08 +11:00
5cdc13ba9e docs: fix broken links in feature-stages ()
fix broken links introduced by 

---------

Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
2025-02-26 22:42:46 +00:00
658825cad2 feat: add sourcing secondary claims from access_token ()
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
a777c2694e chore: upgrade terraform to 1.10.5 ()
- Updates `terraform` to
[v1.10.5](https://github.com/hashicorp/terraform/blob/v1.10.5/CHANGELOG.md#1105-january-22-2025)
- Updates provider to >=2.0.0 in provider testdata fixtures
- Fixes provider to required release version for resource monitors
- Fixes missing leading / in volumes in resource monitor tests
---------

Co-authored-by: Cian Johnston <cian@coder.com>
2025-02-18 11:45:22 +00:00
d5595f86f8 chore: ignore commit metadata check in release script ()
The `scripts/release/check_commit_metadata.sh` check was too strict for
our new cherry-picking process. This turns the error into a warning log.
2025-02-07 13:37:28 -06:00
6a67e2ede6 feat(cli/server.go): allow the use of public OIDC clients ()
Support public OIDC clients

- Enables support for public OIDC clients by only checking for a client
ID being set. This allows for confidential and public clients to be used
with Coder's OIDC authentication.
- Also adds a public client configuration to the development OIDC setup
script.

Fixes 

Change-Id: Iadd85d40c2faa595a0498e25d3407a1f94b5c8a8
Signed-off-by: Thomas Kosiewski <tk@coder.com>

Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-02-07 14:06:38 +01:00
1336925c9f feat(flake.nix): switch dogfood dev image to buildNixShellImage from dockerTools ()
Replace Depot build action with Nix for Nix dogfood image builds

The dogfood Nix image is now built using Nix's native container tooling instead of Depot. This change:

- Adds Nix setup steps to the GitHub Actions workflow
- Removes the Dockerfile.nix in favor of a Nix-native container build
- Updates the flake.nix to support building Docker images
- Introduces a hash file to track Nix-related changes
- Updates the vendorHash for Go dependencies

Change-Id: I4e011fe3a19d9a1375fbfd5223c910e59d66a5d9
Signed-off-by: Thomas Kosiewski <tk@coder.com>
2025-01-28 16:38:37 +01:00
9bb3319f3a chore: bump alpine from 3.21.0 to 3.21.2 in /scripts ()
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-15 18:40:43 +05:00
d7809ecf3f fix(scripts/coder-dev.sh): silence output if stdout is not a TTY ()
The `make -j` output was sometimes emitting non-JSON output from `go
generate`, resulting in errors like the below:

```
++ /home/coder/src/coder/coder/scripts/coder-dev.sh organizations show me -o json
++ jq -r '.[] | select(.is_default) | .name'
parse error: Invalid numeric literal at line 1, column 3
```

This PR modifies `coder-dev.sh` to silence the output of `make` if the
output is not a TTY.
2025-01-14 14:34:23 +00:00
d0037670b0 chore: only run pnpm when node_modules are out of date in Makefile ()
Co-authored-by: Muhammad Atif Ali <atif@coder.com>
2025-01-03 18:37:25 +05:00
94f5d52fdc chore: adopt markdownlint and markdown-table-formatter for *.md ()
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2025-01-03 13:12:59 +00:00
cc98bab30f chore(scripts): remove unused ci-report () 2024-12-31 14:05:36 +00:00
13bb4492c9 chore: remove apitypings specific go.mod ()
Keeping the deps in sync between this and the primary go.mod is
a headache. 


adds Tailscale generated types
2024-12-18 07:18:31 -06:00
01f2ac0a09 chore: embed Info.plist in dylib ()
Relates to https://github.com/coder/coder-desktop-macos/issues/2
2024-12-18 11:08:33 +00:00
50bb13ca7d chore: bump golang.org/x/crypto from 0.30.0 to 0.31.0 in /scripts/apitypings () 2024-12-16 16:03:52 +09:00
077e594856 chore: switch to guts for typescript types generation ()
switch to guts for typescript type generation
omitempty vs null must now be explicit
2024-12-11 14:39:21 -06:00
033c476302 chore: bump alpine from 3.20.3 to 3.21.0 in /scripts () 2024-12-09 22:43:27 +10:00
ce573b9faa fix: add agent exec abstraction () 2024-12-04 23:30:25 +02:00
c7c35ef4d7 chore: run macOS, windows, and race tests with Postgres in CI ()
This PR is the second in a series aimed at closing
https://github.com/coder/coder/issues/15109.

## Changes

- adds `scripts/embedded-pg/main.go`, which can start a native Postgres
database. This is used to set up PG on Windows and macOS, as these
platforms don't support Docker in Github Actions.
- runs the `test-go-pg` job on macOS and Windows too
- adds the `test-go-race-go` job, which runs race tests with Postgres on
Linux
2024-12-03 13:33:17 +01:00
1f238fed59 feat: integrate new agentexec pkg ()
- Integrates the `agentexec` pkg into the agent and removes the
legacy system of iterating over the process tree. It adds some linting
rules to hopefully catch future improper uses of `exec.Command` in the package.
2024-11-27 20:12:15 +02:00
e3082f1bdc chore: bump cross-spawn from 6.0.5 to 6.0.6 in /scripts/apidocgen ()
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 17:46:44 +05:00
f38f746f5d chore: ensure coder is logged before querying orgs () 2024-11-21 16:04:21 +01:00
593d659ec8 chore(scripts/develop.sh): auto determine first org name and run terraform init ()
Updates `develop.sh` to automatically determine the name of the 'first
org' when pushing the initial template.

Also runs `terraform init` before running `coder templates push` (pet
peeve).
2024-11-20 14:01:13 +00:00
32fc844b47 chore: support building Coder Desktop .dylib ()
Relates to .
2024-11-20 14:13:03 +11:00
4cb807670d chore: generate countries.tsx from Go code ()
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
7982ad7659 feat: expose premium trial form via CLI ()
This PR closes https://github.com/coder/coder/issues/14856
2024-10-29 13:02:20 +00:00
074faec7d7 chore: update Terraform to 1.9.8 () 2024-10-28 15:24:57 -05:00
ccfffc6911 chore: add tx metrics and logs for serialization errors ()
Before db_metrics were all or nothing. Now `InTx` metrics are always recorded, and query metrics are opt in.


Adds instrumentation & logging around serialization failures in the database.
2024-10-25 12:14:15 -04:00
419eba5fb6 docs: restructure docs ()
Closes  
Supersedes 

---------

Co-authored-by: Ethan <39577870+ethanndickson@users.noreply.github.com>
Co-authored-by: Ethan Dickson <ethan@coder.com>
Co-authored-by: Ben Potter <ben@coder.com>
Co-authored-by: Stephen Kirby <58410745+stirby@users.noreply.github.com>
Co-authored-by: Stephen Kirby <me@skirby.dev>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
2024-10-05 10:52:04 -05:00
d04eaf8392 docs: add organizations, provisioners, and premium license docs ()
- [x] Mention Orgs is beta and add a link to get feedback
- [x] Add docs on new provisioner authentication architecture and
deprecate the old one
- [x] Add/update docs for IdP sync
  - [x] Organization Sync
  - [x] Group Sync
  - [x] Role Sync
- [x] Modify `coder.com` codebase to add `Premium` and `Beta` pill, and
allow multiple pills: https://github.com/coder/coder.com/pull/638
- [x] Replace all mentions of "Enterprise" with "Premium" in docs
  - [x] edit: change it to "Licensing"
- [x] Remove the enterprise page and change all links to
coder.com/pricing
- [x] Merge 
- [x] Add redirects for coder.com to redirect the `using-organizations`
guide to the new orgs one and /enterprise to /premium
https://github.com/coder/coder.com/pull/645
- [x] Custom roles
- [x] https://github.com/coder/coder/pull/14786
- [x] Remove all mentions of orgs experiment
- [x] Update in-product copy & links to link to the new docs pages

Anything I am missing?

---

[Preview
this](https://coder.com/docs/@orgs-licenses/admin/organizations)

---------

Co-authored-by: Edward Angert <EdwardAngert@users.noreply.github.com>
Co-authored-by: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com>
Co-authored-by: Jaayden Halko <jaayden.halko@gmail.com>
2024-10-01 12:34:16 -05:00
ca80dd657b chore(site): update @playwright/test to version 1.47.2 ()
Playwright version detection in `scripts/remote_playwright.sh` was also fixed.
2024-10-01 13:59:49 +00:00
fb28979537 fix(docs): add coderd_workspace_latest_build_status prometheus metric () 2024-09-27 02:55:24 +10:00
c127d90efc chore: add ability to include custom protoc-gen-go dependency in nix flake () 2024-09-24 12:57:07 +00:00
bf87c97ede fix(scripts): allow docs_update_experiments.sh to be run on macOS () 2024-09-12 21:28:07 +00:00
c44d013519 chore: bump alpine from 3.20.2 to 3.20.3 in /scripts ()
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 00:01:57 +05:00
33e896d404 chore: add lint for codersdk dependencies () 2024-09-12 15:34:03 +10:00
c8580a415a feat: expose current agent connections by type via prometheus () 2024-09-11 14:13:30 +10:00
92b81c4164 test: add some default group/roles claims to testidp ()
Allows testing group/role sync with the fake
2024-09-06 12:35:17 -05:00
bcf9bc3c90 feat(cli): add --provisioner-log-debug option ()
Allows starting a build in debug mode from the CLI without needing
to have the build fail first by adding `--provisioner-log-debug`.
2024-09-04 14:39:35 +01:00
0b2ba96065 feat(cli): add shell completions () 2024-08-20 14:47:46 +10:00
6f9b3c1592 chore: sign the windows installer () 2024-08-19 20:33:37 -04:00
1c3dc8392e chore: remove dangling eslint-ignore comments () 2024-08-19 16:08:53 -06:00
cba6e93176 chore: update docs links () 2024-08-17 11:51:13 +00:00