feat: add tooltip field to workspace app that renders as markdown (#19651)

In this pull request we're adding an optional `tooltip` field. The
`tooltip` field is a string field (with markdown support) that will be
used to display tooltips on hover over app buttons in a workspace
dashboard.

Tooltip screenshot

<img width="816" height="275" alt="Screenshot 2025-08-29 at 4 11 56 PM"
src="https://github.com/user-attachments/assets/52c736a1-f632-465b-89a0-35ca99bd367b"
/>

Tooltip video


https://github.com/user-attachments/assets/21806337-accc-4acf-b8c6-450c031d98f1

Issue: https://github.com/coder/coder/issues/18431
Related provider PR:
https://github.com/coder/terraform-provider-coder/pull/435

### Changes

- Added migration to add `tooltip` column to `workspace_apps` table
- Updated queries to get/set the new `tooltip` column
- Updated frontend to render tooltip as markdown (primary tool tip takes
precedence over template tooltip)

### Testing

- Added storybook test for `Applink` markdown rendering
This commit is contained in:
Rafael Rodriguez
2025-09-10 11:01:54 -05:00
committed by GitHub
parent 4cd0ada0bb
commit e53bc247e9
29 changed files with 495 additions and 388 deletions
+6
View File
@@ -177,6 +177,7 @@ of the template will be used.
],
"subdomain": true,
"subdomain_name": "string",
"tooltip": "string",
"url": "string"
}
],
@@ -466,6 +467,7 @@ curl -X GET http://coder-server:8080/api/v2/users/{user}/workspace/{workspacenam
],
"subdomain": true,
"subdomain_name": "string",
"tooltip": "string",
"url": "string"
}
],
@@ -780,6 +782,7 @@ of the template will be used.
],
"subdomain": true,
"subdomain_name": "string",
"tooltip": "string",
"url": "string"
}
],
@@ -1055,6 +1058,7 @@ curl -X GET http://coder-server:8080/api/v2/workspaces \
"statuses": [],
"subdomain": true,
"subdomain_name": "string",
"tooltip": "string",
"url": "string"
}
],
@@ -1345,6 +1349,7 @@ curl -X GET http://coder-server:8080/api/v2/workspaces/{workspace} \
],
"subdomain": true,
"subdomain_name": "string",
"tooltip": "string",
"url": "string"
}
],
@@ -1867,6 +1872,7 @@ curl -X PUT http://coder-server:8080/api/v2/workspaces/{workspace}/dormant \
],
"subdomain": true,
"subdomain_name": "string",
"tooltip": "string",
"url": "string"
}
],