Building Headplane from source now requires Go 1.27.1 or newer.
Changes
- Added a structured editor to the Access Control page with Rules and Tags & Groups tabs for editing
acls,ssh,hosts,groups, andtagOwnerswithout touching HuJSON. Sources and destinations are suggested from the groups, tags, hosts, and users in your tailnet. Nothing is applied until you press Save, and the file editor is still there for everything else. Editing through the structured editor drops comments from the policy, and Headplane warns you when that would happen (closes #607, via #608).
- The Users page now shows which policy groups each user belongs to, and Edit groups in the row menu lets you change them (requires the
write_policypermission). - The machine tag dialog now flags tags that are missing from
tagOwners, since Headscale accepts them but they never match any rule. - Added
config.oidc.jwks_endpointto allow manually setting the JWKs keyset for OIDC (via #620). - Docker images now publish floating minor version tags (e.g.,
0.8) that always point to the latest patch release, so you can pin to a minor version in yourdocker-compose.yml.
Fixes
- The footer now stacks on narrow screens instead of forcing the whole page to scroll sideways on phones (closes #648).
- User pickers across Headplane, including the pre-auth key, new machine, change owner, and machine filter menus, are now sorted alphabetically to match the Users page (closes #622).
- Long dropdown menus, such as the user and tag filters on the Machines page, now scroll instead of running off the screen (closes #621).
- DNS records added from the UI now have leading and trailing whitespace trimmed from their name and value, which previously produced records that silently never resolved (closes #647).
- Fixed being signed straight back in a few seconds after logging out when
oidc.disable_api_key_loginis enabled. The logged-out page now stays put across reloads and has a Sign in again button (closes #642). - Fixed the Authentication Restrictions link disappearing from Settings after a restart while signed in with an existing session (closes #645).
- Fixed copying code, attributes, and machine addresses over plain HTTP, and added feedback when copying fails (closes #597).
- Updated NPM & Go dependencies to fix vulnerabilities.
- Fixed the Native installation documentation as it was outdated and missing steps (via #633).