Implement backups, commit and restoration
This commit is contained in:
@@ -3,8 +3,9 @@
|
||||
This repository contains the Rust package, startup boundary, validated settings
|
||||
loader, client domain model, a byte-preserving in-memory WireGuard configuration
|
||||
editor, and library APIs for encrypted client vaults and read-only client import.
|
||||
The terminal management interface, installed vault persistence, backups, and VPN
|
||||
operations have not been implemented yet.
|
||||
The library also provides saved-file persistence with recovery, private backups,
|
||||
prepared Commit, and previewed full restore. The terminal management interface
|
||||
and WireGuard/systemd runtime operations have not been implemented yet.
|
||||
|
||||
The package requires Rust 1.97.1 or newer and uses the Rust 2024 edition. From
|
||||
the repository root, run:
|
||||
@@ -67,7 +68,27 @@ let bytes_to_review = updated.render(); // no persistence or VPN operation
|
||||
```
|
||||
|
||||
Management startup still exits with an explicit “not implemented” error after
|
||||
its root check; the library APIs are not yet connected to a management session.
|
||||
its root check. The application library APIs are usable by callers, but are not
|
||||
yet connected to a management session or runtime VPN adapter.
|
||||
|
||||
## Saved state, Commit, and backups
|
||||
|
||||
wireguard_admin::app::Application opens saved files through
|
||||
wireguard_admin::persistence::SavedStore, stages client and vault changes,
|
||||
creates manual and mandatory operation backups, and previews/confirms a full
|
||||
restore. Commit writes saved files only. Restore also changes saved files only;
|
||||
neither operation reloads or restarts WireGuard. The server file is kept at its
|
||||
trusted configured path, while internal state and the encrypted vault are kept
|
||||
under Backup/data by default. Archives are stored under Backup/archives and
|
||||
contain fixed logical members, not source client files or prior archives.
|
||||
|
||||
The persistence journal recovers interrupted file replacement on reopen and
|
||||
returns a recovery error while earlier work remains unresolved. Restoring a
|
||||
backup does not restore runtime state: the running interface is unknown until a
|
||||
future explicit runtime verification. Pending deleted-client addresses remain
|
||||
reserved through Commit, reopen, and restore. See
|
||||
[docs/BACKUP_FORMAT.md](docs/BACKUP_FORMAT.md) and
|
||||
[docs/PERSISTENCE.md](docs/PERSISTENCE.md) for archive and recovery details.
|
||||
|
||||
## Vault and existing-client import library
|
||||
|
||||
|
||||
Reference in New Issue
Block a user