Skip to content

v0.40.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 10:58
· 414 commits to main since this release

Highlights

  • A sign-in client for the mobile companion app. A new public client, simplarchive-mobile, signs in with Authorization Code + PKCE and returns to the app through its own URI scheme, dev.simplarchive.mobile:/oauth2redirect. It gets refresh tokens and revocation, as the desktop does. The login page's form-action policy names the scheme, so the browser can hand the sign-in back to the app. Existing installations register the client on their next start.
  • Module ABI 1.13: a value revealed once can carry an address to scan. The server draws it as a QR code beside the value, in the same uncached answer, and both clients show it. A module needs no image library for this. The Licensing Module uses it to give a phone its app repository in one scan. Module authors: build against SimplArchive.ModuleAbi 1.13.
  • The desktop's API client is now a shared library, SimplArchive.ApiClient, which the desktop and the mobile app both use. Together with the display rules and the user-interface texts, it is published as packages for the mobile app.

Fixes

  • The desktop renews a token the server refused, instead of resending it. After a server restart or a revoked token, a request that answered 401 before the token's expiry time used to fail again with a valid refresh token unused. It now renews and succeeds, or ends the session cleanly.
  • The kiosk and vendor stacks receive their module pins and install scripts with the rest of their configuration. They used to be copied by hand, and a stale copy installed an outdated module without any warning.

saconsole

Update with dotnet tool update --global HebelConsulting.SimplArchive.Cli.

  • module action --reveal-to <file> also keeps a revealed scan address's QR code, as <file>.qr.png. It is created with owner-only permissions and never overwritten, like the value itself.

Upgrading

  • No database migrations in this release.
  • macOS: this release's .dmg is again NOT notarized. It is signed with the Developer ID, but the notarization service has still not been enabled for our developer account, so Gatekeeper asks once on first open, as for v0.38.0 and v0.39.0.
  • Upgrading from before v0.37.0? Read the v0.37.0 notes first. From before v0.36.0, also read the v0.36.0 notes.

Every change in this release

  • feat(modules): pin the Licensing Module 0.3.0, the Android app repository
  • refactor: the tools and published test tools log through a logger (#1661)
  • feat(modules): pin the Licensing Module 0.3.1
  • feat(modules): a revealed value carries a scan address the core draws as a QR code (ABI 1.13)
  • fix(kiosk): sync-config lays the module pins and scripts a stack mounts from outside its bundle
  • fix(kiosk): sync-config reads the outside files from the fetched commit
  • docs(adr): plan the mobile app's server side and v0.40.0 (ADRs 0915–0917)
  • feat(auth): the mobile app's sign-in client, simplarchive-mobile (ADR 0916)
  • refactor: extract the UI-free SimplArchive.ApiClient from the desktop (ADR 0917)
  • feat(packages): publish ApiClient, Presentation and Localization for the mobile app (ADR 0917)
  • fix(test): the client-package lockstep stands down on the public mirror

Full Changelog: v0.39.0...main