Summary
You can no longer login via a custom url using the desktop app. Both the account switcher and initial login no longer expose this field. This field used to exist and is no longer available.Steps to reproduce
- Open the app for the first time. No login via custom url.
- Navigate to the account switcher and try to add a new account. No login via custom url.
4 comments
Comment by @ImSoDizzy
Comment by @bmlzootown
settings.jsonfile. If thesettings.jsonfile doesn't exist, it'll default to theweb.fluxer.appinstance. The account switcher still shows theInstance URLsetting as well in the self-built version: image image%APPDATA%\fluxer\settings.json%APPDATA%\fluxercanary\settings.json~/Library/Application Support/fluxer/settings.json~/Library/Application Support/fluxercanary/settings.json~/.config/fluxer/settings.json~/.config/fluxercanary/settings.json553276291-c61b09e3-58dd-4253-947d-1ef9571e3634.png
945×781 | 38 kB
553276503-761e2d33-728d-4088-9ff9-569133921ce6.png
190×101 | 6 kB
Comment by @mgabor3141
Connecting to a self-hosted instance
As @bmlzootown mentioned, the desktop app readssettings.jsonfrom the user data directory:~/.config/fluxer/settings.json~/Library/Application Support/fluxer/settings.json%APPDATA%\fluxer\settings.jsonInstanceSelectorcomponent exists in the codebase but isn't wired up to the login page, and even if it were, it wouldn't help: on first launch (withoutsettings.json), the app loads the official web app fromweb.fluxer.app, which wouldn't have any self-hosted customizations. A proper solution would need a first-run instance picker built into the Electron shell itself (before any remote web app is loaded).Building the desktop app
Thefluxer_desktoppackage on therefactorbranch needs a few fixes to build successfully:package.jsonhas"type": "module", so.jsfiles are treated as ESM, but the preload script is built as CJS. Fix: output preload asindex.cjsinscripts/build.mjsand update the preload path inWindow.tsx.import { createRequire } from 'module'collides with esbuild's own bundledcreateRequireimport. Fix: rename to_createRequirein the banner.linux.desktop.Name/Comment/Categories/StartupWMClassneed to be nested underlinux.desktop.entryfor electron-builder ≥26.description,homepage, andauthorfields influxer_desktop/package.json.SSO login from the desktop app
This was the bigger challenge. The normal SSO flow redirects the browser to the OIDC provider, which then redirects back tohttps://your-instance.example.com/auth/sso/callback. In the desktop app, the SSO page opens in the system browser (needed for passkey/WebAuthn support), but there's no way for the browser callback to get back to the Electron app. The solution uses thefluxer://deep link protocol that the desktop app already registers: API changes (SsoService,AuthRequestService,AuthSchemas):- Added
- When
- The
Web app changes (desktopboolean toSsoStartRequestdesktop: true, the API usesfluxer://auth/sso/callbackas the OIDCredirect_uriinstead of the web callback URLdesktopflag is stored in the SSO state payload socompleteLoginuses the matchingredirect_urifor the code exchangeAuthLoginLayout,AuthFlow,AuthenticationActionCreators):- When running in the desktop app,
Deep link handler (handleStartSsopassesdesktop: trueand opens the authorization URL viaelectronApi.openExternal()(system browser) instead ofwindow.location.assign()DeepLinkUtils):- Added handling for
- Uses dynamic imports to avoid a circular dependency (DeepLinkUtils is loaded early from App.tsx)
OIDC provider config:fluxer://auth/sso/callback?code=...&state=...deep links
The flow: click SSO → browser opens → authenticate (passkeys work!) → browser redirects tofluxer://auth/sso/callbackmust be added as an allowed redirect URI in your OIDC providerfluxer://auth/sso/callback?code=...&state=...→ OS routes to desktop app → token exchange completes → logged in. Note: this also requires the SSO token exchange fixes from my discussion post #5 — without those, the OIDC code exchange fails regardless of desktop vs web.Branch & builds
All changes are onmgabor3141/fluxer@feat/desktop-custom-instance-url-clean(based onrefactor). There are CI-built artifacts (Linux x64, macOS arm64, Windows x64) from that branch here — though as always, the usual caveat applies: don't install binaries from random forks unless you've reviewed the source and trust the build pipeline.Comment by @d10sfan