Flytower 1.4.1 is a security update, and everyone should install it. It comes out of a full review of the code. It tightens how the panel, the system helper and your servers are kept apart, and the checks behind signing in and permissions. Nothing you use day to day changes.
Each Minecraft server now runs in its own group and can no longer see the system helper or the panel's own data. Servers pick this up the next time they restart. The panel is more careful with files in server folders, which the server itself can change. The system helper keeps its own files where only root can change them, and moves older ones across by itself the first time it starts. Updates run one at a time, and Install won't go to an older version, though Go back to still can. If an update can't save a copy of the database first, it stops and leaves everything as it was. A rollback now only removes files that the new version made.
Sign-in and permissions are stricter too. Discord role mappings and cancelling invites follow the same "no more than you have" rule as roles. Deleting an export or a past world asks for your passkey. Removing a passkey signs out your other devices. Recovery codes and setup tokens are harder to guess. The panel refuses changes that come from other websites. Recovery codes made before 1.4.1 still work, but it's worth making new ones under Account. Testing notes are in
Features
- rust-agent: helpers for writing and copying files without following links (
51ccd75 ) - agent: helpers for writing and copying files without following links (
610a2fe )
Fixes
- let the box itself see versions on the health check under Bun (
a42cc78 ) - rust-agent: move agent state and server archives out of the panel's folder (
3faccb8 ) - rust-agent: one update at a time, recorded before the updater starts, and no downgrades (
13f5560 ) - rust-agent: keep database copies root-only and never delete a live file the updater did not save (
42d0063 ) - agent: clean up database copies in the agent's folder, and serialise with updates (
bc45cce ) - agent: move agent state and server archives out of the panel's folder (
f0bf531 ) - agent: one update at a time, recorded before the updater starts, and no downgrades (
b4eca6a ) - agent: keep database copies root-only and never delete a live file the updater did not save (
b216eac ) - health check only tells versions to signed-in people and the box itself (
62950a4 ) - type the export and past world delete calls (
42d6105 ) - refuse changes from other sites and close the /api/_ gap (
20d9f41 ) - check lockfile paths before moving or removing content (
a07ef8b ) - setup token guesses are limited per address and counted up front (
5579a94 ) - check the panel's user, not its group, on the Rust agent socket (
1be77d0 ) - run servers in their own group and hide the agent from them (
b799c9e ) - removing a passkey signs out your other devices (
0003816 ) - past worlds to start a new server from only come from servers you can see (
364fa28 ) - only follow jobs that exist and that you can see (
c593802 ) - recovery-code sign-in checks one code instead of every code (
d88de71 ) - rate limiter forgets old windows and counts the proxy's own hop (
4a8a639 ) - deleting an export or past world needs a passkey check (
8466d05 ) - validate level-name and keep world readers inside the server folder (
53e098e ) - cancelling an invite needs the standing to have made it (
8857b08 ) - Discord role mappings follow the no-more-than-you-have rule (
6fdd6b4 ) - write server-folder files through random exclusive temp files (
16841c4 ) - only send a saved notification secret back to the same site (
36d6b12 )
Docs
- release notes for 1.4.1 and its native build (
e5de53f ) - where the agent keeps its state, database copies and archives (
2fcc26f ) - deleting an export or past world asks for your passkey (
fb292d6 ) - passkey removal signs out other devices; Discord role mapping limits (
3327a12 )
Other
- pin version ordering in both agents (
33dad60 ) - share compareVersions between the panel and the agent (
9d2be54 ) - check a running server can't see the agent or the panel's data (
1793857 )
Full diff: