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>
This commit is contained in:
+10
-67
@@ -5,7 +5,7 @@
|
||||
- ✅ **v1.0 Docker Control via Telegram** — Phases 1-5 (shipped 2026-02-02) -> [Archive](milestones/v1.0-ROADMAP.md)
|
||||
- ✅ **v1.1 n8n Integration & Polish** — Phases 6-9 (shipped 2026-02-04) -> [Archive](milestones/v1.1-ROADMAP.md)
|
||||
- ✅ **v1.2 Modularization & Polish** — Phases 10-13 + 10.1, 10.2 (shipped 2026-02-08) -> [Archive](milestones/v1.2-ROADMAP.md)
|
||||
- 🚧 **v1.3 Unraid Update Status Sync** — Phases 14-16 (in progress)
|
||||
- ✅ **v1.3 Unraid Update Status Sync** — Phase 14 (shipped 2026-02-09, descoped) -> [Archive](milestones/v1.3-ROADMAP.md)
|
||||
|
||||
## Phases
|
||||
|
||||
@@ -42,69 +42,14 @@
|
||||
|
||||
</details>
|
||||
|
||||
### 🚧 v1.3 Unraid Update Status Sync (In Progress)
|
||||
<details>
|
||||
<summary>✅ v1.3 Unraid Update Status Sync (Phase 14) — SHIPPED 2026-02-09 (descoped)</summary>
|
||||
|
||||
**Milestone Goal:** After the bot updates a container, Unraid recognizes it's current — no stale badges, no false-positive notifications.
|
||||
- [x] Phase 14: Unraid API Access (2/2 plans)
|
||||
- ~~Phase 15: Single Container Sync~~ (dropped — superseded by v1.4)
|
||||
- ~~Phase 16: Batch Sync & Documentation~~ (dropped — superseded by v1.4)
|
||||
|
||||
#### Phase 14: Unraid API Access
|
||||
|
||||
**Goal:** Validate GraphQL API connectivity and establish secure authentication from n8n container to Unraid host.
|
||||
|
||||
**Depends on:** Nothing (first phase of milestone)
|
||||
|
||||
**Requirements:** INFRA-01, INFRA-02, INFRA-03
|
||||
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. n8n container can successfully reach Unraid's GraphQL API endpoint via HTTP request
|
||||
2. Unraid API key exists with Docker update permission and is securely stored in gitignored `.env.unraid-api`
|
||||
3. Container ID format is documented (e.g., `docker:<name>`) and verified via test GraphQL query
|
||||
4. Test GraphQL query can list containers and return expected data structure
|
||||
|
||||
**Plans:** 2 plans
|
||||
|
||||
Plans:
|
||||
- [ ] 14-01-PLAN.md — Credential infrastructure and Unraid GraphQL test workflow nodes
|
||||
- [ ] 14-02-PLAN.md — GraphQL API contract documentation and connectivity verification
|
||||
|
||||
#### Phase 15: Single Container Sync
|
||||
|
||||
**Goal:** After bot updates a single container via text command or inline keyboard, Unraid automatically clears the "update available" badge without user intervention.
|
||||
|
||||
**Depends on:** Phase 14
|
||||
|
||||
**Requirements:** SYNC-01, SYNC-02, SYNC-05
|
||||
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. After bot updates a container via text command (e.g., "update plex"), Unraid's WebGUI shows no update badge for that container
|
||||
2. After bot updates a container via inline keyboard update button, Unraid's WebGUI shows no update badge for that container
|
||||
3. Unraid sync failure does not block or fail the Docker container update itself (best-effort sync)
|
||||
4. User receives clear feedback if sync fails (warning message, but update still succeeds)
|
||||
5. n8n-update.json sub-workflow calls Unraid GraphQL `updateContainer` mutation after successful Docker API update
|
||||
|
||||
**Plans:** TBD
|
||||
|
||||
Plans:
|
||||
- [ ] 15-01: TBD
|
||||
|
||||
#### Phase 16: Batch Sync & Documentation
|
||||
|
||||
**Goal:** Batch update operations sync all updated containers to Unraid efficiently, and users can set up Unraid sync integration from documentation alone.
|
||||
|
||||
**Depends on:** Phase 15
|
||||
|
||||
**Requirements:** SYNC-03, SYNC-04, SYNC-06, DOC-01, DOC-02
|
||||
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. After "update all" operation, all updated containers sync to Unraid in a single efficient GraphQL call
|
||||
2. After batch selection update, all selected containers sync to Unraid in a single efficient GraphQL call
|
||||
3. User receives no false-positive Unraid Telegram notifications for containers updated via the bot
|
||||
4. README documents how to create Unraid API key, configure n8n container networking, and set up `.env.unraid-api`
|
||||
5. ARCHITECTURE.md documents Unraid sync integration including GraphQL API contract, data flow diagram, and new n8n nodes
|
||||
|
||||
**Plans:** TBD
|
||||
|
||||
Plans:
|
||||
- [ ] 16-01: TBD
|
||||
</details>
|
||||
|
||||
## Progress
|
||||
|
||||
@@ -118,11 +63,9 @@ Plans:
|
||||
| 11 | Update All & Callback Limits | v1.2 | 2/2 | Complete | 2026-02-08 |
|
||||
| 12 | Polish & Audit | v1.2 | 2/2 | Complete | 2026-02-08 |
|
||||
| 13 | Documentation Overhaul | v1.2 | 1/1 | Complete | 2026-02-08 |
|
||||
| 14 | Unraid API Access | v1.3 | 0/2 | Planned | - |
|
||||
| 15 | Single Container Sync | v1.3 | 0/TBD | Not started | - |
|
||||
| 16 | Batch Sync & Documentation | v1.3 | 0/TBD | Not started | - |
|
||||
| 14 | Unraid API Access | v1.3 | 2/2 | Complete | 2026-02-08 |
|
||||
|
||||
**Total: 3 milestones shipped (13 phases, 48 plans) + 1 milestone in progress (3 phases)**
|
||||
**Total: 4 milestones shipped (14 phases, 50 plans)**
|
||||
|
||||
---
|
||||
*Updated: 2026-02-08 — Phase 14 planned (2 plans)*
|
||||
*Updated: 2026-02-09 — v1.3 shipped (descoped to Phase 14 only)*
|
||||
|
||||
Reference in New Issue
Block a user