Repository navigation
BillManager 4.12.2
BillManager 4.12.2 — Account and Tenant Security
Patch version increment from the current application version 4.12.1.
- Require fresh identity confirmation for linking sign-in providers, adding passkeys, replacing recovery codes, and deleting passwordless accounts.
- Strengthen invitation database ownership and bill-share recipient checks, and prevent administrative changes to verified login email addresses.
- Bind mobile OAuth callbacks to an app-held verifier and map Stripe subscription entitlements to exact configured prices.
- Remove mutable third-party application scripts, bundle pinned API documentation assets locally, and separate telemetry ingestion from operator statistics and alerts.
- Add web/mobile confirmation flows and regression coverage, including passwordless OIDC confirmation without email delivery.
Upgrade notes
- Recovery-code regeneration now uses POST. Updated clients handle the HTTP 428 confirmation flow automatically.
- Self-hosted mobile OAuth using a custom callback scheme requires a mobile build from this release. Older clients fail closed; restart pending link/enrollment flows after upgrading.
- OIDC confirmation requires fresh provider authentication with
prompt=login,max_age=0, and a signedauth_timeclaim. Other passwordless providers use a verified-email code. - Configure a distinct
TELEMETRY_STATS_API_KEYfor statistics consumers, or use an instance-operator JWT. The ingestion key no longer authorizes statistics or trusted operator alerts. - The new security-confirmation table is created automatically at startup. User administration no longer changes login email addresses; role administration is unchanged.
Validation: backend tests in self-hosted and SaaS modes, web/mobile tests, type checking, lint, production web build, and dependency/security audits. The release publishes the server/web container and source; it does not publish a new App Store or Play Store binary.
Existing mobile dependency limitations
The mobile audit gate retains its existing, time-limited exceptions for unpatched image-size parsers; the affected formats are disabled in Metro. A moderate transitive decode-uri-component advisory remains upstream in React Navigation's CommonJS query-string dependency. Its available fix is ESM-only and cannot safely be forced into that dependency as a patch update. These are separate from the ten application findings remediated here.