Files
Lucas Berger 903e73d616 feat: v1.3 Unraid Update Status Sync
Unraid GraphQL API foundation — connectivity, authentication, and
container ID format verified for native Unraid API integration.

Phase 14: Unraid API Access (2 plans, 4 tasks)
- Established Unraid GraphQL API connectivity via myunraid.net cloud relay
- Dual credential storage (.env.unraid-api + n8n env vars)
- Container ID format: {server_hash}:{container_hash} (128-char SHA256 pair)
- Complete API contract documented in ARCHITECTURE.md
- "unraid" test command added to Telegram bot

Phases 15-16 dropped (superseded by v1.4 Unraid API Native).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 07:47:31 -05:00

110 lines
4.4 KiB
Markdown

# Project Milestones: Unraid Docker Manager
## v1.2 Modularization & Polish (Shipped: 2026-02-08)
**Delivered:** Modular sub-workflow architecture with "Update All" functionality — 7 domain sub-workflows, bitmap-encoded batch selection, and comprehensive documentation.
**Phases completed:** 10-13 + 10.1, 10.2 (6 phases, 25 plans)
**Key accomplishments:**
- Decomposed monolithic workflow into 7 domain sub-workflows (Update, Actions, Logs, Batch UI, Status, Confirmation, Matching) — 287 total nodes
- Bitmap-encoded batch selection eliminating Telegram's 64-byte callback limit (supports 50+ containers)
- "Update All :latest" via text command and inline keyboard with infrastructure container exclusion
- Correlation ID tracking for request tracing across sub-workflow boundaries
- Comprehensive documentation overhaul (README with architecture, configuration, troubleshooting)
- 9 UAT bugs fixed during Update All verification including infrastructure self-destruction protection
**Stats:**
- 96 files modified (+51,319/-4,862 lines)
- 10,987 lines across 8 workflow JSON files
- 6 phases, 25 plans, 153 commits
- 4 days (2026-02-04 → 2026-02-08)
**Git range:** v1.1 → `0471565`
**Tech debt accepted:** 4 non-blocking items (descoped logging features, 3 orphan nodes, legacy batch parsers, missing Phase 12 verification)
**What's next:** v2.0 with resource monitoring or proactive notifications.
---
## v1.1 n8n Integration & Polish (Shipped: 2026-02-04)
**Delivered:** Inline keyboard UX and Docker security hardening — button-driven container control with filtered socket proxy.
**Phases completed:** 6-9 (11 plans total)
**Key accomplishments:**
- n8n API access for programmatic workflow management
- Docker socket proxy deployment removing direct socket exposure
- Inline keyboard with container list, pagination, and action buttons
- Batch operations with sequential execution and progress feedback
- Confirmation dialogs for dangerous actions (stop, update)
**Stats:**
- 38 files modified (+14,062/-4,239 lines)
- 8,485 lines of JSON workflow
- 4 phases, 11 plans
- 2 days (2026-02-03 → 2026-02-04)
**Git range:** `7e85697``fa7c603`
**What's next:** v1.2 with workflow modularization, webhook fix, environment audit, and documentation.
---
## v1.0 Docker Control via Telegram (Shipped: 2026-02-02)
**Delivered:** Telegram bot for managing Docker containers on Unraid — status, start, stop, restart, update, logs via keyword commands.
**Phases completed:** 1-5 (12 plans total)
**Key accomplishments:**
- Telegram bot with keyword routing (no Claude API dependency)
- Docker socket integration via n8n with curl
- Container matching with exact-match priority
- Update command with image pull, recreate, old image cleanup
- Log viewing with configurable line counts
- Single-user auth via Telegram user ID
**Stats:**
- 2 files (n8n-workflow.json, README.md)
- ~3,400 lines of JSON workflow + markdown
- 5 phases, 12 plans
- 5 days from start to ship (2026-01-28 → 2026-02-02)
**Git range:** Initial commit → `e5c02f9`
---
## v1.3 Unraid Update Status Sync (Shipped: 2026-02-09)
**Delivered:** Unraid GraphQL API foundation — connectivity, authentication, and container ID format verified for native Unraid API integration.
**Phases completed:** 14 (1 phase, 2 plans) — Phases 15-16 dropped (superseded by v1.4 Unraid API Native)
**Key accomplishments:**
- Established Unraid GraphQL API connectivity from n8n via myunraid.net cloud relay
- Dual credential storage (.env.unraid-api + n8n env vars) mirroring existing patterns
- Production-verified container ID format: `{server_hash}:{container_hash}` (128-char SHA256 pair)
- Documented complete Unraid GraphQL API contract in ARCHITECTURE.md
- Added "unraid" test command to Telegram bot for connectivity validation
- Corrected schema documentation (isUpdateAvailable does not exist in Unraid 7.2)
**Stats:**
- 23 files modified (+4,038/-2,213 lines)
- 1 phase, 2 plans, 4 tasks
- 19 commits
- 1 day (2026-02-08)
**Git range:** v1.2 → `e4bd653`
**Descope note:** Original scope included Phases 15-16 (sync update status back to Unraid). These were dropped because v1.4 will replace the Docker socket proxy entirely with Unraid's GraphQL API — when Unraid IS the container management API, the badge sync problem solves itself.
**Tech debt accepted:** None — clean foundation for v1.4.
**What's next:** v1.4 Unraid API Native — replace Docker socket proxy with Unraid GraphQL API for all container operations.
---