updated README and CHANGELOG
This commit is contained in:
+26
-1
@@ -1,6 +1,31 @@
|
||||
## Changelog
|
||||
|
||||
### What was just completed (2026-02-19 session 60)
|
||||
### What was just completed (2026-02-20 session 61)
|
||||
- **v0.19.0 — Deployed App Removal + Missing Field Injection:**
|
||||
|
||||
Two new features: "Eltávolítás" (Remove) action for deployed stacks and automatic missing deploy field injection on template updates.
|
||||
|
||||
**Feature A — Deployed App Removal ("Eltávolítás"):**
|
||||
- `delete.go`: Added `RemoveStack()` — removes deployed (non-orphaned) stack: `docker compose down --volumes`, optional HDD data cleanup, optional backup data cleanup (DB dumps + cross-drive rsync), removes `app.yaml` only (template files preserved for redeploy); stack reverts to "Nincs telepítve" state
|
||||
- `delete.go`: Added `GetStackBackupData()` — returns backup path info (DB dump dir + cross-drive rsync dir) with sizes and existence status
|
||||
- `delete.go`: Added `RemoveResponse`, `BackupDataResponse` structs, `buildPathInfo()` helper
|
||||
- `router.go`: Added `POST /api/stacks/{name}/remove` endpoint — accepts `{remove_hdd_data, remove_backups}`, computes backup paths via `AppDBDumpPath()`/`AppSecondaryRsyncPath()`, cleans cross-drive config on success
|
||||
- `router.go`: Added `GET /api/stacks/{name}/backup-data` endpoint — returns backup data paths with sizes
|
||||
- `crossdrive.go`: Made `getAppDrivePath` → `GetAppDrivePath` (public) for use by router
|
||||
- `stacks.html`: Added "Eltávolítás" button for stopped, deployed, non-orphaned, non-protected stacks
|
||||
- `dashboard.html`: Same button in compact card layout
|
||||
- `layout.html`: Added `removeStack()` modal — fetches HDD + backup data in parallel, 3-section layout (always removed / HDD data with checkbox / backup data with checkbox), reimport warning for preserved HDD data, restic retention note
|
||||
- `layout.html`: Added `confirmRemoveStack()` — POST to `/remove`, shows result summary with removed/preserved paths
|
||||
|
||||
**Feature B — Missing Deploy Field Injection:**
|
||||
- `deploy.go`: Added `InjectMissingFields(stackNames)` — iterates deployed stacks, compares `.felhom.yml` deploy_fields against `app.yaml` env vars, auto-generates values for missing `secret` (using generator spec) and `domain` fields, saves updated `app.yaml`
|
||||
- `deploy.go`: Added `base64key` generator type — produces `base64:<N random bytes base64-encoded>` (for Laravel APP_KEY and similar)
|
||||
- `deploy.go`: Added `containsStr()` helper
|
||||
- `manager.go`: Added `DeployedStackNames()` — returns names of all deployed stacks
|
||||
- `sync.go`: Added `postSyncHook func(updated []string)` field to `Syncer`; `New()` accepts optional hook; hook called in `doSync()` after rescan with names of updated stacks
|
||||
- `main.go`: Wired injection on startup (all deployed stacks) and after sync (updated stacks only)
|
||||
|
||||
### v0.18.0 (2026-02-19 session 60)
|
||||
- **v0.18.0 — Drive Migration & Tier 2 Restic Deprecation:**
|
||||
|
||||
Full drive replacement workflow with decommissioned state, enhanced per-app migration with backup awareness, and deprecation of restic as a Tier 2 cross-drive backup method (rsync only).
|
||||
|
||||
Reference in New Issue
Block a user