Commit f60eba6
committed
release: v1.5.3
New: NodeCircle auto-sync from a subscription. Linking a circle to a
subscription makes every refresh keep its membership current — nodes the panel
still serves are kept or added (including one that returned under a new address,
which arrives as a new id and previously needed re-adding by hand), dropped ones
leave, and members added by hand or from another subscription are preserved.
Unlinked circles keep the old prune + "check members" behaviour, so nothing
changes without opting in. Reported as circle.synced in Recent Events. Adds
nodecircle.subscription_id (migration 023) and forces a dataplane re-apply when
an enabled circle's membership moves, which the existing reload heuristic missed
because freshly imported ids are in neither changed_ids nor the running config.
New: whole-box configuration backup (Settings -> Backup & Restore). One JSON
bundle covering settings, subscriptions, nodes, routing sets and rules, DNS
rules, balancer groups, circles, devices and UA templates. Secrets are opt-in,
so a shared file carries no credentials, and restoring a secret-less bundle
never blanks credentials already on the box. Restore previews per-section
add/update/delete counts and warnings before writing; merge adds and updates,
replace also deletes rows absent from the bundle. Settings are matched by their
unique key so a restore can't duplicate one. The dataplane is regenerated and
xray reloaded afterwards. Runtime tables and users are deliberately out of scope.
Frontend build + 82 tests green; backend suites (backup, subscriptions,
nodecircle, config_gen) 142 passing. Alembic head is a single revision, 023.1 parent 77b3935 commit f60eba6
16 files changed
Lines changed: 1135 additions & 6 deletions
File tree
- backend
- alembic/versions
- app
- api
- tests
- frontend
- src
- api
- components
- pages
- types
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
7 | 38 | | |
8 | 39 | | |
9 | 40 | | |
| |||
Lines changed: 39 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
0 commit comments