• v0.1.9 e28266522b

    v0.1.9 Stable

    franz released this 2026-07-09 22:41:55 +00:00 | 93 commits to master since this release

    Signed by franz
    GPG key ID: 1B3418BA53820C4C

    Added

    • POSIX provisioning: searchable identity picker, accept a UUID or an email
    • Edit an enrolled host after enrollment
    • Scope a host to any of several org groups, not just one
    • "Use a different account" on the OAuth consent screen, to re-authenticate as someone else
    • OIDC groups claim: a client granted the groups scope receives the user's active-org team slugs (flat array) in the ID token and userinfo, for downstream role mapping (e.g. Parseable, Grafana, ArgoCD).
    • Per-organization theming: brand colors and a preset applied to login, consent, and registration
    • Three built-in themes (default, midnight, cyberpunk) with auto-derived dark-mode variants
    • Public per-org login landing page at /o/{slug}, owner-enabled from org branding settings
    • Org owners can upload a logo image (PNG/JPEG/WebP, max 256 KB) from the branding page, validated by magic bytes
    • The authenticated app is white-labeled by the active organization's theme
    • Tenant logos render on login, registration, and the public landing page

    Changed

    • Grouped the admin and settings navigation into labelled sections
    • Team slugs are now immutable after creation; renaming a team changes its display name only.
    • Outbound mail (org invites + claim-email) now goes through polymail: the [smtp] config section becomes [email] with a provider field, adding Lettermint, Postmark, and SendGrid alongside SMTP. Secrets inject via env (FORSETI_EMAIL__TOKEN / __API_KEY / __PASS). SMTP fields renamed (scheme to tls with none/start_tls/implicit, username/password to user/pass, from to from_address); the skip_tls_verify escape hatch is dropped.

    Security

    • Safe response headers: X-Content-Type-Options, X-Frame-Options, minimal CSP
    • Reserved and lookalike organization-name denylist on create and rename
    • Operator trust-anchor on themed pre-auth pages; audit log for public-login and logo changes
    • Enforce the configured [posix].offline_min_len when minting offline verifiers
    • POSIX rate limiters no longer trust X-Forwarded-For behind an untrusted proxy

    Fixed

    • Login-screen sign-out hit a CSRF 403 on the account-switch path
    • "Revoke access" on Authorized apps failed against Hydra v2 (it sent a client id and the revoke-all flag together, which Hydra rejects with a 400)
    • Offline-passphrase hashing blocked the async runtime while computing Argon2
    • Concurrent POSIX uid/gid allocation could collide; a team's gid could change after being served
    • Offline verifier sync silently dropped accounts past 500 per org
    • Offline audit uploads acknowledged events that failed to persist

    Builds, checksums and provenance: https://github.com/franzos/forseti/releases/tag/v0.1.9

    Downloads