Files
headquarter/openspec/changes/ssh-key-mounting/.openspec.yaml
Alex Blank e9364fa70f feat: instance-level SSH key selection for container mounting
- Revert mistaken ssh_key_id from ConfigProfile (model, API, resolver, frontend)
- Add ssh_key_ids JSON column to tool_instances via migration
- Update create_instance to accept and store ssh_key_ids
- Update start_instance to mount selected SSH keys to {home_dir}/.ssh
- Update list_instances to return ssh_key_ids
- Frontend CreateSessionForm: multi-select SSH key checkboxes
- Frontend instance-list: SSH key selector for start/restart actions
- Maintain separate SSH key dirs per key to avoid conflicts

Quality gates: pytest (231 passed, 6 pre-existing), tsc --noEmit clean
2026-05-29 13:30:53 +02:00

28 lines
1.1 KiB
YAML

name: ssh-key-mounting
status: implemented
priority: high
created_at: 2026-05-28
updated_at: 2026-05-29
labels:
- feature
- ssh
- instances
stories:
- title: Select SSH keys when creating/starting instances
description: |
Add ssh_key_ids to ToolInstance so users can select multiple SSH keys
from a list when creating or starting a tool instance. Selected keys
are mounted into the container user's home directory (~/.ssh).
acceptance_criteria:
- ToolInstance model has nullable ssh_key_ids JSON column
- create_instance endpoint accepts ssh_key_ids list
- start_instance endpoint accepts ssh_key_ids override
- start_instance mounts all selected SSH keys to {home_dir}/.ssh
- Frontend CreateSessionForm shows multi-select SSH key checkboxes
- Frontend instance-list shows SSH key multi-select for start/restart
- SSH keys are validated (existence, user ownership) before mounting
tests:
- unit: test_tool_instances_legacy.py (existing baseline)
- integration: manual verification of mount behavior
estimated_effort: small