-
v0.1.13 Stable
released this
2026-07-18 14:44:11 +00:00 | 61 commits to master since this releaseAdded
[oauth].login_session_remember_forto configure Hydra's login SSO session lifetime (defaults to 24h)
Fixed
- Authorized apps no longer disappear after an hour; a remembered consent grant now persists until revoked
Builds, checksums and provenance: https://github.com/franzos/forseti/releases/tag/v0.1.13
Downloads
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
0 downloads
-
v0.1.12 Stable
released this
2026-07-17 22:36:49 +00:00 | 62 commits to master since this releaseSecurity
- Secret-holding config values (cookie secret, PAM client secret, metrics scrape token, audit webhook tokens) are redacted in debug output
- Webhook signing key and the SQLite database (plus
-wal/-shm) are created with owner-only (0600) permissions; previously both were briefly or permanently world-readable under the default umask - Anonymous client registration (
POST /oauth2/register) now also has a global rate limit, configurable via[oauth].dcr_global_rate_per_minute/dcr_global_rate_per_hour(defaults 40/400) - The default audit IP-pseudonymization salt is now derived from the cookie secret instead of the public instance URL, which made de-pseudonymization feasible from a log dump alone. Pseudonymized IPs in existing audit rows won't correlate with new ones, and rotating the cookie secret rotates them again; set
[audit].ip_saltto opt out (a boot warning reminds you) - Tailwind CLI downloads in the container build and the release workflow are now pinned by checksum
Changed
/admin/statusprobes Kratos and Hydra concurrently, so the page loads quickly even when an upstream is down- The dead-letter list on
/admin/webhooksis capped at 500 rows
Fixed
- A replaced or removed org logo could keep being served from the in-process cache indefinitely
- Anonymous requests (e.g. to a public org logo) no longer trigger a needless Kratos session lookup
- Consent-session pagination no longer stops early on an unexpected Hydra
Linkheader part, which could have left some sessions out of the account-deletion webhook fan-out - PAM module: opaque FFI handle types switched from empty enums to the sound
repr(C)pattern - Org branding and theme changes are now recorded in the audit log
- Malformed consent submissions render a friendly error instead of a raw deserialization message
Builds, checksums and provenance: https://github.com/franzos/forseti/releases/tag/v0.1.12
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.1.11 Stable
released this
2026-07-13 08:40:57 +00:00 | 66 commits to master since this releaseAdded
forseti configinteractive menu and non-interactive subcommands: enable/disable OIDC sign-in providers, rotate/prune the audit webhook token and Kratos/Hydra secrets, set courier SMTP, restore from backups,statusview- Audit webhook token accept-list for zero-loss rotation
config checklints for OIDC providers, mappers, flow hooks, secret lists, and config.toml consistency
Changed
- CLI parsing moved to clap; unrecognized subcommands now error instead of starting the server
config inittemplates are comment-free; rationale moved to the operator guide and the CLI's own descriptions
Fixed
- Container image failed to build since the legal pages landed: the build stage never copied
assets/, so ghcr was stuck at 0.1.8
Builds, checksums and provenance: https://github.com/franzos/forseti/releases/tag/v0.1.11
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
4 downloads
-
v0.1.10 Stable
released this
2026-07-10 18:41:08 +00:00 | 89 commits to master since this releaseAdded
- Operator-editable legal pages:
/privacy,/terms,/imprint, with per-locale overrides - Social login and linked-providers page show provider names and brand icons
Fixed
- Translated UI was broken in the container image: locales weren't bundled
Builds, checksums and provenance: https://github.com/franzos/forseti/releases/tag/v0.1.10
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
3 downloads
- Operator-editable legal pages:
-
v0.1.9 Stable
released this
2026-07-09 22:41:55 +00:00 | 93 commits to master since this releaseAdded
- 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
groupsclaim: a client granted thegroupsscope 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 aproviderfield, adding Lettermint, Postmark, and SendGrid alongside SMTP. Secrets inject via env (FORSETI_EMAIL__TOKEN/__API_KEY/__PASS). SMTP fields renamed (schemetotlswithnone/start_tls/implicit,username/passwordtouser/pass,fromtofrom_address); theskip_tls_verifyescape 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_lenwhen minting offline verifiers - POSIX rate limiters no longer trust
X-Forwarded-Forbehind 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
2 downloads
-
v0.1.8 Stable
released this
2026-06-24 16:37:46 +00:00 | 120 commits to master since this releaseAdded
- Linux host authentication (preview): provision Kratos identities into POSIX accounts; enrolled hosts resolve passwd/group/SSH keys
- Interactive Linux login via the OAuth 2.0 Device Authorization Grant (RFC 8628), with
force_mfaAAL2 enforcement - Offline Linux login with a dedicated passphrase when the server is unreachable
forseti-unixhost client — daemon, NSS module,pam_forseti.so, Guix packaging- Per-host seat cap on provisioned accounts; resolution is never license-gated
Security
- PAM account stack fails closed on a daemon outage; local/root logins unaffected
- Panic-guarded PAM entrypoints; daemon socket bounded before auth
- Unique device
user_code; id_token audience pinned to the PAM client; device-auth refuses an empty client secret - Org member removal now revokes the member from the org's POSIX group
- A
[security].cookie_secretunder 32 bytes now hard-fails boot
Fixed
- Identity deletion purges POSIX rows at every path; hourly reconcile sweep catches out-of-band deletes
- Expired commercial license re-evaluated hourly, not only at restart
- Org-invite invalid-email redirect used the org id instead of its slug
Builds, checksums and provenance: https://github.com/franzos/forseti/releases/tag/v0.1.8
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
2 downloads
-
v0.1.7 Stable
released this
2026-06-20 21:12:37 +00:00 | 124 commits to master since this releaseAdded
- Two-factor authentication is enforced at login — once an identity has a second factor, every login (including to connected apps) requires it; driven by Kratos
required_aal: highest_availableon both the session and settings flows - Recovery codes as the 2FA break-glass — the 2FA page and dashboard warn when you have a second factor but no recovery codes, so losing a device can't lock you out
config-check/config-initoperator CLI — lint a Kratos/Hydra config against the recommended (security-critical) settings, or generate a fresh pair with CSPRNG-minted secrets- Sole owners of an organisation with other members can no longer delete their own account — they're asked to transfer ownership first, so an org is never orphaned
Changed
- Self-host the Geist / JetBrains Mono web fonts instead of loading them from Bunny Fonts — no third-party request, and preloading kills the font-swap flash on page load
Fixed
- Static assets (provider logos, theme toggle script) 404'd in the Docker image — the runtime stage only copied
styles.css, not the rest ofstatic/ - Dashboard "Active Sessions" tile read 0 with one session signed in — it didn't count the current session, which Kratos's
/sessionslist omits - Embedded static assets weren't refreshed when files changed —
include_dir!contents aren't tracked by cargo, so a newly-added asset (e.g. the theme toggle script) 404'd until a clean rebuild; a build script now re-embeds on change - "Remove security key" buttons on the 2FA page rendered inconsistently — one filled, the rest outlined; they're now uniform
Builds, checksums and provenance: https://github.com/franzos/forseti/releases/tag/v0.1.7
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
2 downloads
- Two-factor authentication is enforced at login — once an identity has a second factor, every login (including to connected apps) requires it; driven by Kratos
-
v0.1.6 Stable
released this
2026-06-19 17:49:58 +00:00 | 128 commits to master since this releaseAdded
- App-template logos on the client picker and list — known apps show their logo (grayscale, colour on hover) instead of a letter tile
- 18 more "popular app" client templates: Vaultwarden, Discourse, Apache Superset, WordPress, Penpot, NetBox, Jenkins, Rocket.Chat, Seafile, Actual Budget, Audiobookshelf, Mealie, Matomo, Rancher, OpenProject, Plane, Mattermost, and Atlassian Data Center
/admin/statuscounters for Kratos audit-webhook rejections and freshness anomalies
Fixed
- Kratos audit webhook no longer aborts self-service flows on slow 2FA enrollment
Builds, checksums and provenance: https://github.com/franzos/forseti/releases/tag/v0.1.6
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
3 downloads
-
v0.1.5 Stable
released this
2026-06-18 20:41:08 +00:00 | 130 commits to master since this releaseAdded
- Dark / light / system theme, selectable from the top bar (defaults to system, following the browser)
Builds, checksums and provenance: https://github.com/franzos/forseti/releases/tag/v0.1.5
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
2 downloads
-
v0.1.4 Stable
released this
2026-06-10 15:04:31 +00:00 | 131 commits to master since this releaseAdded
- Enterprise SAML SSO via a Jackson / Ory Polis bridge (commercial)
Changed
- License grace window fixed at 30 days read-only after expiry
Docs
- Commercial-feature docs consolidated under
docs/commercial/
Builds, checksums and provenance: https://github.com/franzos/forseti/releases/tag/v0.1.4
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
2 downloads