docs: define v1.1 requirements + research
22 requirements across 6 categories: - Security: Socket proxy migration (4) - n8n API: Claude Code workflow access (4) - Telegram Keyboards: Inline buttons + confirmations (5) - Batch Operations: Multi-container updates (6) - Unraid Sync: Clear update badge (1) - Environment Audit: Verify container vars (2) Research: Stack, Features, Architecture, Pitfalls Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,108 @@
|
|||||||
|
# Requirements: Unraid Docker Manager
|
||||||
|
|
||||||
|
**Defined:** 2026-02-02
|
||||||
|
**Core Value:** Immediate container control from your phone
|
||||||
|
|
||||||
|
## v1.1 Requirements
|
||||||
|
|
||||||
|
Requirements for milestone v1.1 — n8n Integration & Polish.
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
- [ ] **SEC-01**: Docker socket proxy deployed and configured
|
||||||
|
- [ ] **SEC-02**: n8n uses socket proxy instead of direct socket mount
|
||||||
|
- [ ] **SEC-03**: Socket proxy blocks dangerous APIs (exec, create, build)
|
||||||
|
- [ ] **SEC-04**: All existing bot commands work through socket proxy
|
||||||
|
|
||||||
|
### n8n API
|
||||||
|
|
||||||
|
- [ ] **API-01**: n8n API key created and accessible
|
||||||
|
- [ ] **API-02**: Claude Code can read workflow via API
|
||||||
|
- [ ] **API-03**: Claude Code can update workflow via API
|
||||||
|
- [ ] **API-04**: Claude Code can view execution history and logs
|
||||||
|
|
||||||
|
### Telegram Keyboards
|
||||||
|
|
||||||
|
- [ ] **KEY-01**: Status command shows container list with inline action buttons
|
||||||
|
- [ ] **KEY-02**: Tapping action button performs start/stop/restart on container
|
||||||
|
- [ ] **KEY-03**: Dangerous actions (stop, restart, update) show confirmation dialog
|
||||||
|
- [ ] **KEY-04**: Progress shown via message edit during operations
|
||||||
|
- [ ] **KEY-05**: Buttons removed after action completes
|
||||||
|
|
||||||
|
### Batch Operations
|
||||||
|
|
||||||
|
- [ ] **BAT-01**: User can update multiple containers in one command
|
||||||
|
- [ ] **BAT-02**: Batch updates execute sequentially with per-container feedback
|
||||||
|
- [ ] **BAT-03**: "Update all" command updates all containers with updates available
|
||||||
|
- [ ] **BAT-04**: "Update all" requires confirmation before executing
|
||||||
|
- [ ] **BAT-05**: One container failure doesn't abort remaining batch
|
||||||
|
- [ ] **BAT-06**: Final summary shows success/failure count
|
||||||
|
|
||||||
|
### Unraid Sync
|
||||||
|
|
||||||
|
- [ ] **UNR-01**: After bot updates a container, Unraid's update badge clears
|
||||||
|
|
||||||
|
### Environment Audit
|
||||||
|
|
||||||
|
- [ ] **ENV-01**: Verify if TELEGRAM_USERID container var is needed (vs hardcoded)
|
||||||
|
- [ ] **ENV-02**: Verify if TELEGRAM_BOT_TOKEN container var is needed (vs n8n credential)
|
||||||
|
|
||||||
|
## v1.0 Requirements (Validated)
|
||||||
|
|
||||||
|
Shipped 2026-02-02.
|
||||||
|
|
||||||
|
- [x] **MSG-01**: Send a message to the bot and receive a response
|
||||||
|
- [x] **STA-01**: Check container status ("status")
|
||||||
|
- [x] **CTL-01**: Start a container by name
|
||||||
|
- [x] **CTL-02**: Stop a container by name
|
||||||
|
- [x] **CTL-03**: Restart a container by name
|
||||||
|
- [x] **UPD-01**: Update a container (pull new image, recreate)
|
||||||
|
- [x] **LOG-01**: View container logs with configurable line count
|
||||||
|
- [x] **AUTH-01**: Bot only responds to your Telegram user ID
|
||||||
|
|
||||||
|
## Out of Scope
|
||||||
|
|
||||||
|
| Feature | Reason |
|
||||||
|
|---------|--------|
|
||||||
|
| Proactive update notifications | Bot is reactive; Unraid Telegram integration handles notifications |
|
||||||
|
| Natural language understanding | Keyword matching works well; Claude API adds complexity |
|
||||||
|
| Deploy new containers | Manage existing only; rarely needed from mobile |
|
||||||
|
| Resource monitoring queries | Deferred to future version |
|
||||||
|
| Automatic scheduled updates | User-initiated only; avoids downtime at bad times |
|
||||||
|
| MCP server for n8n | REST API simpler for v1.1; reconsider if iteration is slow |
|
||||||
|
|
||||||
|
## Traceability
|
||||||
|
|
||||||
|
| Requirement | Phase | Status |
|
||||||
|
|-------------|-------|--------|
|
||||||
|
| SEC-01 | TBD | Pending |
|
||||||
|
| SEC-02 | TBD | Pending |
|
||||||
|
| SEC-03 | TBD | Pending |
|
||||||
|
| SEC-04 | TBD | Pending |
|
||||||
|
| API-01 | TBD | Pending |
|
||||||
|
| API-02 | TBD | Pending |
|
||||||
|
| API-03 | TBD | Pending |
|
||||||
|
| API-04 | TBD | Pending |
|
||||||
|
| KEY-01 | TBD | Pending |
|
||||||
|
| KEY-02 | TBD | Pending |
|
||||||
|
| KEY-03 | TBD | Pending |
|
||||||
|
| KEY-04 | TBD | Pending |
|
||||||
|
| KEY-05 | TBD | Pending |
|
||||||
|
| BAT-01 | TBD | Pending |
|
||||||
|
| BAT-02 | TBD | Pending |
|
||||||
|
| BAT-03 | TBD | Pending |
|
||||||
|
| BAT-04 | TBD | Pending |
|
||||||
|
| BAT-05 | TBD | Pending |
|
||||||
|
| BAT-06 | TBD | Pending |
|
||||||
|
| UNR-01 | TBD | Pending |
|
||||||
|
| ENV-01 | TBD | Pending |
|
||||||
|
| ENV-02 | TBD | Pending |
|
||||||
|
|
||||||
|
**Coverage:**
|
||||||
|
- v1.1 requirements: 22 total
|
||||||
|
- Mapped to phases: 0 (pending roadmap)
|
||||||
|
- Unmapped: 22
|
||||||
|
|
||||||
|
---
|
||||||
|
*Requirements defined: 2026-02-02*
|
||||||
|
*Last updated: 2026-02-02 after initial definition*
|
||||||
Reference in New Issue
Block a user