Update CONTEXT.md and CLAUDE.md for v0.7.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,7 @@ E:\git\deploy-felhom-compose\ (or /e/git/deploy-felhom-compose/ in Git Bash)
|
||||
│ ├── cmd/controller/ # Entry point (main.go)
|
||||
│ ├── internal/
|
||||
│ │ ├── config/ # YAML config loading
|
||||
│ │ ├── settings/ # settings.json persistence (password hash, DB cache)
|
||||
│ │ ├── stacks/ # Docker Compose operations, deploy flow
|
||||
│ │ ├── sync/ # Git sync — periodic pull of app catalog repo
|
||||
│ │ ├── api/ # REST API endpoints
|
||||
|
||||
+32
-4
@@ -7,7 +7,7 @@
|
||||
>
|
||||
> Ask Claude Code: "Please update CONTEXT.md with what we did today"
|
||||
|
||||
Last updated: 2026-02-16 (session 21)
|
||||
Last updated: 2026-02-16 (session 22)
|
||||
|
||||
---
|
||||
|
||||
@@ -22,16 +22,44 @@ Last updated: 2026-02-16 (session 21)
|
||||
## Current project state
|
||||
|
||||
### felhom-controller (this repo)
|
||||
- **Version:** v0.6.3
|
||||
- **Version:** v0.7.0
|
||||
- **Phase 1:** ✅ COMPLETE — Stack Manager + Deploy Flow
|
||||
- **Phase 2:** ✅ COMPLETE — Monitoring & Health (scheduler, CPU/temp, healthchecks.io pings)
|
||||
- **Phase 3:** ✅ COMPLETE — Backups (DB dumps, restic integration, manual trigger, **dedicated backup page**)
|
||||
- **Phase 4:** ✅ COMPLETE — Monitoring Page with Metrics Store (SQLite, Chart.js, system + container metrics)
|
||||
- **Phase 5:** ✅ COMPLETE — Authentication, Persistence & Settings Page (settings.json, password change, session management)
|
||||
- **First app deployed:** Paperless-ngx on demo-felhom.eu (2026-02-13)
|
||||
- **Running on:** demo-felhom (N100 mini PC) at 192.168.0.162:8080
|
||||
- **All Phase 1-4 features working:** deploy, start/stop/restart/update, logs, health-aware states, auth, monitoring, backups, backup detail page, system monitoring page
|
||||
- **All Phase 1-5 features working:** deploy, start/stop/restart/update, logs, health-aware states, auth, monitoring, backups, backup detail page, system monitoring page, settings page
|
||||
|
||||
### What was just completed (2026-02-16 session 21)
|
||||
### What was just completed (2026-02-16 session 22)
|
||||
- **v0.7.0 — Phase 1: Authentication, Persistence & Settings Page:**
|
||||
- **New `internal/settings/settings.go`:** Shared persistence layer via `settings.json` in the data directory. Atomic writes (tmp + rename), thread-safe with `sync.RWMutex`. Stores password hash overrides and DB validation cache. Graceful handling if file doesn't exist.
|
||||
- **Auth improvements:**
|
||||
- Password resolution priority: `settings.json` → `controller.yaml` → none (open dashboard)
|
||||
- Startup logs which source is active: `Auth: using password from settings.json/controller.yaml/no password configured`
|
||||
- Session duration extended to 7 days (was 24h)
|
||||
- `?next=` redirect after session expiry — returns user to the page they were on
|
||||
- Flash messages on login page (green info box, used after password change)
|
||||
- Conditional logout link — hidden when auth is disabled (no password configured)
|
||||
- `invalidateAllSessions()` method for password change flow
|
||||
- **New Settings page (`/settings`):**
|
||||
- "Rendszer konfiguráció" section: read-only display of controller.yaml values (customer ID/name/domain, git repo/sync interval, backup enabled/schedule, monitoring, healthchecks URL, hub status, controller version)
|
||||
- "Jelszó módosítás" section: form with current password, new password, confirm — validates min 8 chars, match check, bcrypt comparison
|
||||
- Password saved to `settings.json`, all sessions invalidated, redirect to login with flash message
|
||||
- Only shown if auth is enabled; otherwise shows info message to contact operator
|
||||
- **Sidebar update:**
|
||||
- "Beállítások" menu item with ⚙ icon pinned to bottom (above version/logout)
|
||||
- Version and logout link separated from nav links
|
||||
- Logout link conditionally shown only when auth is enabled
|
||||
- **DB validation persistence:**
|
||||
- After each successful dump, validation results saved to `settings.json` (`db_validations` map keyed by filename)
|
||||
- Cached data survives container restarts
|
||||
- `DBValidationCache` struct with `validated_at`, `table_count`, `has_header`, `error`
|
||||
- **10 files changed** (3 new: settings.go, settings.html; 7 modified: main.go, backup.go, auth.go, handlers.go, server.go, layout.html, login.html, style.css)
|
||||
- **Deployed:** Controller v0.7.0 to demo-felhom.eu, verified healthy
|
||||
|
||||
### What was previously completed (2026-02-16 session 21)
|
||||
- **v0.6.3 — Bug fixes from v0.6.2 code scan (4 minor fixes):**
|
||||
- **Bug 1:** `--hdd-path` in `docker-setup.sh` now uses `require_arg` validation like all other flags. Previously, `--hdd-path` as the last argument without a value would crash with a cryptic bash error under `set -u` instead of a friendly message.
|
||||
- **Bug 2:** `stackAction()` in `layout.html` now receives `event` as an explicit parameter instead of relying on the deprecated implicit `window.event`. All 10 onclick call sites in `dashboard.html` and `stacks.html` updated to pass `event` as first argument.
|
||||
|
||||
Reference in New Issue
Block a user