Skip to content

web: Secrets page for the computer's organization secrets (095 step 3) - #987

Merged
motatoes merged 4 commits into
mainfrom
sp/095-secrets-page
Nov 1, 2026
Merged

motatoes merged 4 commits into
mainfrom
sp/095-secrets-page

Conversation

@opencomputer-app

@opencomputer-app opencomputer-app Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Step 3 of 095: the dashboard page for the computer's organization secrets. It uses the API from diggerhq/blue#332 and #986, both merged and deployed.

Requested by @mohamed Habib in Slack.

Scope: per review, the page only lists secret names and lets members add, replace and delete them, with a short note below the list: these are organization-wide, and a Slack thread or person can override a value in Slack. It leaves out override counts, history, variable and file options, and updated or last-used columns. The API still supports those.

Decisions and risks

  • No edge change. The page calls the public /api/managed-agents/computer/secrets… routes, which already accept a dashboard session cookie (same-origin check included). apiFetch gains a base parameter (/api or the default /api/dashboard).
  • Any member can add, replace and delete, as the v1 plan says.
  • Values are write-only. The value field is a password input, and Replace never prefills it.
  • Navigation: a sidebar item, Secrets, under Computer at /computer/secrets.

Review map: ComputerSecrets.tsx (page and dialogs), computer-secrets-api.ts, small edits to client.ts, App.tsx and app-shell-nav.ts, and preview mocks in mock.ts (?secrets=none for the empty state).

Verification: tsc -b clean, eslint clean on the changed files, the new ComputerSecrets.test.tsx passes 5/5 (list, empty, add with a refused name, replace, delete confirm), and app-shell.test.ts passes. The screenshots come from preview mode, with no real data.

list light list dark
add empty

…tep 3)

Lists the organization layer from GET /computer/secrets with who last set
each name, when a session last got it, and how many Slack thread or personal
copies override it. Add, replace (never prefilled) and delete call the public
Computer API routes, which already accept a dashboard session; History reads
the per-name events. apiFetch gains a base so the dashboard can call /api.
Drops the overridden warning, history, kind and file options, and the
updated/last-used columns, per review: v1 shows the name and lets the
organization set it.
@motatoes
motatoes merged commit 010987c into main Nov 1, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants