From a970f8d6fce8ae44dd8210bf61d4aa155a357f34 Mon Sep 17 00:00:00 2001 From: Lucas Berger Date: Mon, 2 Feb 2026 22:16:45 -0500 Subject: [PATCH] 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 --- .planning/REQUIREMENTS.md | 108 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 .planning/REQUIREMENTS.md diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md new file mode 100644 index 0000000..2e66e1d --- /dev/null +++ b/.planning/REQUIREMENTS.md @@ -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*