feat(site): show required workspace secrets#24787
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
d1c033e to
bc9d432
Compare
65784a6 to
f4eec23
Compare
f4eec23 to
d0134af
Compare
bc9d432 to
a107410
Compare
d0134af to
e821140
Compare
a107410 to
38a6a00
Compare
631fded to
d04b277
Compare
38a6a00 to
e3033de
Compare
917431f to
b4793e7
Compare
e55e194 to
e760f0b
Compare
b4793e7 to
13f3d49
Compare
9f4db1e to
6605621
Compare
13f3d49 to
04f8a03
Compare
04f8a03 to
56d70e9
Compare
56d70e9 to
295d95d
Compare
|
/coder-agents-review |
There was a problem hiding this comment.
Solid work: the SecretsTable component is clean, accessible (aria-label on table, sr-only status text, focus-visible on tooltip triggers), and the Storybook coverage is thorough with play functions that verify sort order, tooltip content, link targets, and button disabled state. The multi-layer submission blocking (disabled button + formik onSubmit + controller handleSubmit) is the right pattern. The wsResponseId fix is a real correctness improvement applied consistently.
3 P2, 12 P3, 2 Nit, 2 Note. The P2s: auto-create bypasses the new secrets gate, the "account settings" copy misleads every user who sees it, and there is no re-check path after adding a secret via CLI. Most P3s are convergent across multiple reviewers.
The wsResponseId fix is correct and necessary but is a separate concern from the secrets feature. If the secrets feature is reverted, the fix goes with it. Consider extracting it to a separate commit.
"The user sees parameters jump to an intermediate state then back, which is the exact scenario the WorkspaceParametersPage guard was written to prevent." (Knov, on the missing stale-response guard)
site/src/pages/CreateWorkspacePage/CreateWorkspacePage.tsx:248
P2 [DEREM-4] Auto-create path bypasses the new secret requirements check. autoCreateReady checks hasAllRequiredExternalAuth and autoCreateConsented but never checks whether secrets are satisfied. A user (or deep link) hitting ?mode=auto with a template that requires unset secrets submits the build without the frontend gate this PR promises.
The external auth check at lines 255-277 proves the auto-create path is expected to enforce prerequisites. The omission is a gap, not a design boundary.
Could we add
&& !secretsBlocking(or a similar check onlatestResponse?.secret_requirements) to theautoCreateReadycondition, and add an auto-mode abandonment block parallel to the external auth one?
(Mafuuu)
🤖
🤖 This review was automatically generated with Coder Agents.
|
Demo of the this work, showing page updating without reloading on user secret changes |
|
I marked a bunch of non-critical hopefully easy update text items One item I flagged was the warning banner style. I added the correct styling in figma. These should already be present in the frontend.
|
|
@tracyjohnsonux Thanks for the feedback in Chromatic, I addressed all the comments raised and this PR is ready for another review |
|
Closing this PR as we are pivoting away from template secret requirements |


Adds a required secrets table to workspace creation and workspace parameter flows.
Missing required secrets are shown with recovery guidance and block create/update submission until the backend reports the requirements are satisfied.
Also guards dynamic-parameter WebSocket consumers against stale responses so older parameter evaluations do not overwrite newer input.
This PR description update was generated by Coder Agents.