mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: extend workspace build reasons to track connection types (#18827)
This PR introduces new build reason values to identify what type of connection triggered a workspace build, helping to troubleshoot workspace-related issues. ## Database Migration Added migration 000349_extend_workspace_build_reason.up.sql that extends the build_reason enum with new values: ``` dashboard, cli, ssh_connection, vscode_connection, jetbrains_connection ``` ## Implementation The build reason is specified through the API when creating new workspace builds: - Dashboard: Automatically sets reason to `dashboard` when users start workspaces via the web interface - CLI `start` command: Sets reason to `cli` when workspaces are started via the command line - CLI `ssh` command: Sets reason to ssh_connection when workspaces are started due to SSH connections - VS Code connections: Will be set to `vscode_connection` by the VS Code extension through CLI hidden flag (https://github.com/coder/vscode-coder/pull/550) - JetBrains connections: Will be set to `jetbrains_connection` by the Jetbrains Toolbox (https://github.com/coder/coder-jetbrains-toolbox/pull/150) and Jetbrains Gateway extension (https://github.com/coder/jetbrains-coder/pull/561) ## UI Changes: * Tooltip with reason in Build history <img width="309" height="457" alt="image" src="https://github.com/user-attachments/assets/bde8440b-bf3b-49a1-a244-ed7e8eb9763c" /> * Reason in Audit Logs Row tooltip <img width="906" height="237" alt="image" src="https://github.com/user-attachments/assets/ebbb62c7-cf07-4398-afbf-323c83fb6426" /> <img width="909" height="188" alt="image" src="https://github.com/user-attachments/assets/1ddbab07-44bf-4dee-8867-b4e2cd56ae96" />
This commit is contained in:
Generated
+6
-1
@@ -51,7 +51,12 @@ CREATE TYPE build_reason AS ENUM (
|
||||
'autostop',
|
||||
'dormancy',
|
||||
'failedstop',
|
||||
'autodelete'
|
||||
'autodelete',
|
||||
'dashboard',
|
||||
'cli',
|
||||
'ssh_connection',
|
||||
'vscode_connection',
|
||||
'jetbrains_connection'
|
||||
);
|
||||
|
||||
CREATE TYPE connection_status AS ENUM (
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
-- It's not possible to delete enum values.
|
||||
@@ -0,0 +1,5 @@
|
||||
ALTER TYPE build_reason ADD VALUE IF NOT EXISTS 'dashboard';
|
||||
ALTER TYPE build_reason ADD VALUE IF NOT EXISTS 'cli';
|
||||
ALTER TYPE build_reason ADD VALUE IF NOT EXISTS 'ssh_connection';
|
||||
ALTER TYPE build_reason ADD VALUE IF NOT EXISTS 'vscode_connection';
|
||||
ALTER TYPE build_reason ADD VALUE IF NOT EXISTS 'jetbrains_connection';
|
||||
@@ -349,12 +349,17 @@ func AllAutomaticUpdatesValues() []AutomaticUpdates {
|
||||
type BuildReason string
|
||||
|
||||
const (
|
||||
BuildReasonInitiator BuildReason = "initiator"
|
||||
BuildReasonAutostart BuildReason = "autostart"
|
||||
BuildReasonAutostop BuildReason = "autostop"
|
||||
BuildReasonDormancy BuildReason = "dormancy"
|
||||
BuildReasonFailedstop BuildReason = "failedstop"
|
||||
BuildReasonAutodelete BuildReason = "autodelete"
|
||||
BuildReasonInitiator BuildReason = "initiator"
|
||||
BuildReasonAutostart BuildReason = "autostart"
|
||||
BuildReasonAutostop BuildReason = "autostop"
|
||||
BuildReasonDormancy BuildReason = "dormancy"
|
||||
BuildReasonFailedstop BuildReason = "failedstop"
|
||||
BuildReasonAutodelete BuildReason = "autodelete"
|
||||
BuildReasonDashboard BuildReason = "dashboard"
|
||||
BuildReasonCli BuildReason = "cli"
|
||||
BuildReasonSshConnection BuildReason = "ssh_connection"
|
||||
BuildReasonVscodeConnection BuildReason = "vscode_connection"
|
||||
BuildReasonJetbrainsConnection BuildReason = "jetbrains_connection"
|
||||
)
|
||||
|
||||
func (e *BuildReason) Scan(src interface{}) error {
|
||||
@@ -399,7 +404,12 @@ func (e BuildReason) Valid() bool {
|
||||
BuildReasonAutostop,
|
||||
BuildReasonDormancy,
|
||||
BuildReasonFailedstop,
|
||||
BuildReasonAutodelete:
|
||||
BuildReasonAutodelete,
|
||||
BuildReasonDashboard,
|
||||
BuildReasonCli,
|
||||
BuildReasonSshConnection,
|
||||
BuildReasonVscodeConnection,
|
||||
BuildReasonJetbrainsConnection:
|
||||
return true
|
||||
}
|
||||
return false
|
||||
@@ -413,6 +423,11 @@ func AllBuildReasonValues() []BuildReason {
|
||||
BuildReasonDormancy,
|
||||
BuildReasonFailedstop,
|
||||
BuildReasonAutodelete,
|
||||
BuildReasonDashboard,
|
||||
BuildReasonCli,
|
||||
BuildReasonSshConnection,
|
||||
BuildReasonVscodeConnection,
|
||||
BuildReasonJetbrainsConnection,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user