Skip to content

v1.3.0

Choose a tag to compare

@MichelleFindlay MichelleFindlay released this 18 Oct 16:04
· 11 commits to main since this release
fe15ad9

Two-factor sign-in with authenticator apps and security keys, a list of every device you're signed into, and an in-app changelog.

✨ New

Two-factor sign-in

  • Authenticator apps: add Google Authenticator, Microsoft Authenticator, 1Password or similar under Account → Password & security. Scan the QR code, confirm it with the 6-digit code, and you're asked for a code after your password when you sign in. Add more than one (for example a spare on a second phone) — a code from any of them is accepted.
  • Backup codes: shown once when you confirm your first authenticator app, for when none of them are to hand. Generate new backup codes replaces them; there's also a Download backup codes link to save them as a file.
  • Security keys: add a hardware security key (e.g. a YubiKey) the same way, as well as or instead of an authenticator app.
  • Nicknames: name each authenticator app or security key when you add it, or Rename one later, so they're easy to tell apart.
  • Confirm it's you first: adding a new authenticator app or security key asks you to re-enter your password (or, if you're signed in with Microsoft or another linked account, to confirm with that instead) before it's added. This stops a device left signed in somewhere from being used to plant a backdoor into your account.
  • Signing in with Microsoft or another linked account: if you don't have a Pillbox password, you can now still set up two-factor sign-in — the step above uses your linked sign-in instead.
  • Signing in: after your password, a page lets you enter a code, use a security key, or (lost your phone?) a backup code.

Active sessions

  • Account → Password & security now lists every device currently signed in — not just the ones with Remember this device ticked — with when it signed in and when it was last active.
  • Sign out a single device from the list without signing out everywhere else.
  • IP address is shown for each session, and (if an admin turns on the new geoip_lookup setting) an approximate city and country too.

In-app changelog and licenses

  • Admin → Version now shows the changelog for each release, and the licenses for Pillbox and anything it's built on, without leaving the app.
  • Development version: if you're running a checkout ahead of the latest release, Version says so instead of just "up to date".

🔒 Security

  • Sharing: closed two gaps where sharing Appointments or Care (without sharing Mind) could be used to read or change Mind data through those pages — Mind's own permission is now always checked.
  • Authenticator app secrets are now encrypted at rest, the same way Pillbox already protects connected-app tokens and private pages.
  • Imports: the Apple Health, MyFitnessPal and Google Fit importers now have decompression and time limits, so a crafted file can't tie up the server; backup and blood pressure CSV imports have explicit size limits too.

🐛 Fixes

  • Installed on an iPhone: the status bar no longer shows a translucent blur over the top of the app.
  • Admin → Version: Check now also refreshes the changelog, not just whether an update is available — it could otherwise stay stale for up to 12 hours after a new release.

⚙️ For admins

  • geoip_lookup (under 'app' in config/config.php, off by default) shows an approximate city/country on Active sessions by sending the IP address to a third-party lookup (ipapi.co) — noted in the privacy policy when turned on.
  • Nothing else to configure: authenticator apps and security keys work out of the box once people have a password or a linked sign-in.

⬆️ Upgrading

Upload the new files over your current ones, keeping config/ and storage/. The database updates itself the next time a page is opened, adding the tables for authenticator apps and active sessions.

Full changelog: v1.2.8...v1.3.0