Settings page — secret management and SSH key management #38

Open
opened 2026-03-18 13:16:51 +00:00 by mahmoud · 0 comments
Owner

Add a dedicated Settings page to the UI.
Currently secret management is only in the
navbar modal. SSH keys are not supported yet.

SECTION 1 — Secret Management
Move the existing secret flow here (keep navbar
indicator but clicking opens Settings page).

Features:

  • Set secret (first time)
  • Change secret with VM migration workflow
    (existing modal logic, moved here)
  • Clear secret (with warning)
  • Visual indicator: secret strength warning
    if too short/simple

SECTION 2 — SSH Keys
Allow users to manage SSH public keys that
get injected into deployed VMs.

Each SSH key has:

  • Label/name (e.g. "MacBook", "Work laptop")
  • Public key value (ssh-ed25519 or ssh-rsa)
  • Enabled/disabled toggle
    (disabled keys are not passed to new VMs)

Storage: SSH keys stored in localStorage
(hc_ssh_keys) as JSON array.

When deploying a VM, all ENABLED keys are
passed to the deploy_vm() call.

Research needed:

  • Does chvm/cloud-hypervisor support SSH key
    injection at VM creation time?
  • Is it via cloud-init, a kernel param, or
    another mechanism?
  • Check chvm-lib and chvm-cli for any
    --ssh-key or cloud-init support

If chvm supports it: wire keys into deploy_vm
If not: open a separate issue for chvm to
add SSH key injection support

UI layout:
Settings
├── Secret
│ ├── Current secret status
│ ├── Change secret (with migration)
│ └── Clear secret
└── SSH Keys
├── [+ Add SSH Key] button
├── Key list:
│ ☑ MacBook ssh-ed25519 AAAA... [Edit][Delete]
│ ☐ Work ssh-rsa AAAA... [Edit][Delete]
└── Note: "Enabled keys are injected
into new VMs at deploy time"

Add Settings to sidebar nav and routing.

Add a dedicated Settings page to the UI. Currently secret management is only in the navbar modal. SSH keys are not supported yet. SECTION 1 — Secret Management Move the existing secret flow here (keep navbar indicator but clicking opens Settings page). Features: - Set secret (first time) - Change secret with VM migration workflow (existing modal logic, moved here) - Clear secret (with warning) - Visual indicator: secret strength warning if too short/simple SECTION 2 — SSH Keys Allow users to manage SSH public keys that get injected into deployed VMs. Each SSH key has: - Label/name (e.g. "MacBook", "Work laptop") - Public key value (ssh-ed25519 or ssh-rsa) - Enabled/disabled toggle (disabled keys are not passed to new VMs) Storage: SSH keys stored in localStorage (hc_ssh_keys) as JSON array. When deploying a VM, all ENABLED keys are passed to the deploy_vm() call. Research needed: - Does chvm/cloud-hypervisor support SSH key injection at VM creation time? - Is it via cloud-init, a kernel param, or another mechanism? - Check chvm-lib and chvm-cli for any --ssh-key or cloud-init support If chvm supports it: wire keys into deploy_vm If not: open a separate issue for chvm to add SSH key injection support UI layout: Settings ├── Secret │ ├── Current secret status │ ├── Change secret (with migration) │ └── Clear secret └── SSH Keys ├── [+ Add SSH Key] button ├── Key list: │ ☑ MacBook ssh-ed25519 AAAA... [Edit][Delete] │ ☐ Work ssh-rsa AAAA... [Edit][Delete] └── Note: "Enabled keys are injected into new VMs at deploy time" Add Settings to sidebar nav and routing.
mahmoud self-assigned this 2026-03-18 13:17:12 +00:00
mahmoud added this to the ACTIVE project 2026-03-18 13:17:14 +00:00
mahmoud added this to the now milestone 2026-03-18 13:17:18 +00:00
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_compute#38
No description provided.