Bump the package version to 1.2.0 and document the operations-focused release with updater, readonly access, notifications, bandwidth controls, live progress, and more robust retention cleanup. Make the CLI version test assert against the package version so future release bumps do not require changing a hardcoded expected value.
89 lines
5.2 KiB
Markdown
89 lines
5.2 KiB
Markdown
# Changelog
|
|
|
|
## 1.2.0 - 2026-05-28
|
|
|
|
Operations-focused release for more reliable production backups and maintenance.
|
|
|
|
### Added
|
|
|
|
- Staff-only updater page for checking configured Gitea releases, inspecting the installed git checkout, fetching tags, pulling the current branch, and running the native systemd updater.
|
|
- Read-only control panel access level for authenticated non-staff users, with status pages visible and credentials, logs, configs, retention, and mutating actions kept staff-only.
|
|
- Run completion notifications for email and webhooks, including recorded delivery history per run and target.
|
|
- Dedicated hosts page with host cards, enabled/disabled filtering, and quick host/schedule/retention state controls.
|
|
- Per-host rsync bandwidth limit overrides with inherit, unlimited, and explicit limit semantics.
|
|
- Backup data totals by snapshot kind on dashboard and host detail pages, including unique/non-hardlinked data totals.
|
|
|
|
### Changed
|
|
|
|
- Real backup runs now default to verbose rsync progress output so the live run view behaves consistently with dry-runs.
|
|
- Run progress panels are shared between dry-runs and real runs for more consistent status, timing, cancellation, and log display.
|
|
- Incomplete snapshot cleanup now requires operator review before deletion.
|
|
- Incomplete snapshot size reporting now prefers on-disk measurement when metadata is stale or missing.
|
|
- Installer and environment examples now include optional updater configuration.
|
|
|
|
### Fixed
|
|
|
|
- Remote preflight shell commands are now quoted correctly, including roots such as `/`.
|
|
- Worker reconciliation now detects real rsync failures and stale/running process state more reliably.
|
|
- Retention pruning and incomplete cleanup can delete snapshots containing restrictive directory modes preserved by rsync archive mode.
|
|
- Snapshot data summaries no longer count incomplete metadata/log files as backup data when measuring from disk.
|
|
- Filesystem SSH credential tests use writable test state without changing production defaults.
|
|
|
|
## 1.1.0 - 2026-05-21
|
|
|
|
UI-focused release for the Django control panel.
|
|
|
|
### Added
|
|
|
|
- Dedicated list pages for runs, snapshots, schedules, purged snapshots, and changelog navigation.
|
|
- Dashboard priority panels for required action, next scheduled work, recent activity, and storage pressure.
|
|
- Dashboard host cards with clearer backup activity, snapshot health, next run, and retention status.
|
|
- Lightweight live refresh for active run detail pages, including status, timing, controls, and rsync log output.
|
|
- Lightweight live refresh for dashboard priority and host status sections.
|
|
- Current-page navigation states for primary and system navigation.
|
|
- Responsive dashboard behavior for narrower screens.
|
|
|
|
### Changed
|
|
|
|
- Reworked the primary navigation around day-to-day operator workflows and moved admin/system links out of the main path.
|
|
- Simplified legacy-facing labels and removed source-of-truth wording that no longer applies to the Django-first model.
|
|
- Improved run and snapshot detail pages with clearer links between backup runs, snapshots, logs, and review actions.
|
|
- Improved dashboard spacing and card layouts to reduce cramped or overlapping text.
|
|
- Documented the Django-template-first partial refresh pattern for future UI work.
|
|
|
|
## 1.0.0 - 2026-05-21
|
|
|
|
Initial stable release of the Django-first pobsync control panel.
|
|
|
|
### Added
|
|
|
|
- Django control panel for hosts, global settings, schedules, SSH credentials, snapshots, runs, self-checks, and logs.
|
|
- Native systemd installer and updater for production backup servers.
|
|
- SQLite by default, with optional MariaDB support.
|
|
- Scheduler and worker services for queued manual backups and scheduled backups.
|
|
- Manual backup, dry-run, cancellation, verbose rsync logging, and run detail views.
|
|
- Snapshot discovery for existing backup directories and SQL-backed snapshot records.
|
|
- SQL retention planning and apply flow with base snapshot protection and incomplete snapshot visibility.
|
|
- Explicit cleanup flow for incomplete snapshots, separate from normal retention pruning.
|
|
- Purged snapshot audit overview with reason, action source, operator, host, kind, path, and timestamp.
|
|
- Dashboard and host pages with backup health, latest run/snapshot, next run, and storage/stat summaries.
|
|
- Review resolution for failed/warning runs and incomplete snapshot tasks so operational warnings can be acknowledged.
|
|
- Worker heartbeat metadata and stale running-run reconciliation for queued backup workers.
|
|
- SSH key generation, upload, edit, guarded delete, known_hosts management, and per-host key selection.
|
|
- In-app changelog page sourced from this changelog.
|
|
- Restore guidance on snapshot detail pages.
|
|
|
|
### Changed
|
|
|
|
- Django and the database are now the source of truth for configuration.
|
|
- Docker Compose is documented as development and disposable test tooling rather than the primary production path.
|
|
- The `pobsync` console entrypoint is now a maintainer layer around Django management commands.
|
|
- Scheduled pruning is evaluated by the pobsync scheduler service and recorded through Django, not host cron.
|
|
- Retention and incomplete cleanup now preserve audit history even after source snapshot records are removed.
|
|
|
|
### Removed
|
|
|
|
- Legacy YAML config import/export workflow.
|
|
- Public short aliases for configuration commands.
|
|
- Obsolete global config storage fields.
|