Changelog
Changelog
One entry per release, written for the people who run the panel.
-
0.2.32
Card series simplification
- Card generation works from the series alone. The separate card-profile layer is gone, and the settings it held — plan, validity, price and design — now live on the series itself. One object to create, one object to look at.
- Counter sales mint cards directly into the clerk's own series, created on the first sale of the shift.
-
0.2.29
Management network follow-ups
- The instance list reports the path a call actually took, rather than the path it expected to take before dialling. A prediction and a result are not the same fact, and only one of them is worth showing.
- Disabling the overlay for several instances at once is never refused part way through; the operation reports per-instance outcomes instead.
-
0.2.27
Counter-sale slips, five portal designs, instance backups
- Counter sales print a slip whose design you choose, with a separate default per card use, and every printed slip carries the identity of the card it belongs to.
- Scheduled, encrypted instance backups to a Google Drive you connect, with a recovery drill you can run.
- Maintenance mode per instance.
- Five redrawn subscriber-portal designs replace the previous four. The default is the X-Radius design; the others are picked per tenant.
-
0.2.26
ZeroTier as an operator VPN mode
- ZeroTier as a tunnel mode for the operator VPN, with the controller running on your own instance rather than on a third-party service. It covers the routers where the other modes are not available on the hardware, notably RouterOS 7 on ARM boards.
- The panel prepares the package the router needs and reports when the device is missing it, instead of failing at the end of the onboarding script.
-
0.2.25
Remote access over the relay port the instance already uses
- Remote access to a router from the panel can share the relay port the instance already listens on, rather than needing a port of its own. For an operator behind a restrictive firewall that is one fewer opening to request and one fewer thing to explain.
-
0.2.24
Two operator VPN modes on the same network
- The operator VPN is chosen per network device instead of once per instance. A network can now run WireGuard on the routers that support it and OpenVPN on the ones that do not, at the same time, with both terminating on the same instance.
- The generated onboarding script picks the tunnel that matches the device's RouterOS version.
-
0.2.23
Licence-weighted resource share
- A resource share on the licence and on the package it came from. It scales the per-tenant database gate and request budgets introduced in the previous release, so a larger customer on a shared instance gets a proportionally larger slice rather than the same slice as everyone else.
- The share is applied live: a change takes effect on the instance without a restart.
-
0.2.22
Resource isolation between tenants on one instance
- A per-tenant limit on concurrent database work, applied per request rather than per connection.
- A deadline on every request and a statement timeout on every query, so a slow query fails instead of queueing behind itself.
- A maximum page size on every list, so a client cannot ask for a million rows.
- Per-tenant ceilings on background job depth and on the live RADIUS log's event rate.
-
0.2.21
Correctness pass across billing, sessions and the API
- Card reversals always leave a balanced ledger. Two paths that could credit a wallet without a matching debit are closed.
- Sessions that move a very large amount of traffic are now metered from the full counters the router reports, so a long or fast session is billed for what it actually used.
- Session correlation is bound to the network device that was verified for the request, so an accounting packet can no longer be attributed to the wrong tenant.
- Permission checks around administrator roles were tightened in two places.