Skip to content

feat(vault): Secret Managers UI — connections + canary secrets#264

Open
LiorFink00 wants to merge 1 commit into
feat/vault-pollerfrom
feat/vault-ui
Open

feat(vault): Secret Managers UI — connections + canary secrets#264
LiorFink00 wants to merge 1 commit into
feat/vault-pollerfrom
feat/vault-ui

Conversation

@LiorFink00

Copy link
Copy Markdown
Collaborator

What

The operator-facing UI for the vault feature (Task 7, epic #255) — a new Secret Managers sidebar section with two tabbed pages, wired to the API from #262/#263.

VaultConnections (/vault)

List / add / edit / test / remove secret-manager connections. The add/edit modal renders each vault plugin's config_schema — masked secret fields, leave-blank-to-keep on edit — mirroring the existing Integrations config form. A connection shows configured once its test passes.

CanarySecrets (/vault/secrets)

  • Table of planted canaries: template, manager, path, state badge, last read.
  • Plant modal: pick a configured connection + template + path (the template's suggested_paths render as one-click fills; a fake value is generated server-side).
  • Reads modal: recorded access-log entries (GET /vault/secrets/{id}/access-logs).

Approach

Built fresh against public-thumper UI conventions (the Integrations.tsx config-form pattern, Topbar/Modal/TimeAgo, the existing badge/table classes) rather than ported from the enterprise pages — those are 850+ lines entangled with the excluded cockpit subsystem.

Details

  • httpApi vault + canary methods; vault types; "vault" added to PluginKind so /manifests vault entries type-check (verified public_manifests() returns both plugins as kind: "vault").
  • New .nav-tabs CSS for the horizontal page tabs.
  • vault.test.ts covers the new API methods (request path/method/body + auth header).

Testing

tsc -b && vite build clean; 22 vitest tests pass (5 new). No Python changed.

Stacked

Based on #263#262#261#260#259#257. Merge those first; this rebases to just the UI.

🤖 Generated with Claude Code

Adds the operator-facing UI for the vault feature, under a new "Secret Managers"
sidebar section with two tabbed pages:

- VaultConnections: list/add/edit/test/remove secret-manager connections. The
  add/edit modal renders each vault plugin's config_schema (masked secret fields,
  leave-blank-to-keep on edit), mirroring the Integrations config form.
- CanarySecrets: table of planted canaries (template, manager, path, state, last
  read); a Plant modal (pick a configured connection + template + path, with the
  template's suggested paths as one-click fills); a Reads modal showing recorded
  access-log entries.

- api client: vault + canary methods on httpApi; vault types; "vault" added to
  PluginKind so /manifests vault entries type-check.
- .nav-tabs style for the horizontal page tabs.
- vault.test.ts covers the new api methods (request shape + auth header).

Built fresh against the public-thumper UI conventions rather than ported from the
enterprise pages (which are entangled with the excluded cockpit subsystem).
tsc + vite build clean; 22 vitest tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018DARDAxeg4NM8FKoyGMQZy
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.

1 participant