Desktop Sign-In Through the Layout Engine (Device Code as Fallback)

Last updated: August 14, 2026

Concept

You sign in to RailScanPro's desktop app once, at the desktop login screen, with your email and password — and that sign-in belongs to the layout engine, not to the app window you typed it in. The desktop app is the presentation: it hands your password to the engine over a local, same-machine connection and then shows you the engine's status. The engine performs the cloud sign-in — on a multi-machine layout, through whichever connected machine has internet access — and keeps the single session for the whole desktop from then on. The app never signs in separately and never holds a session, token, or cloud connection of its own (ADR-0228 / ADR-0243 / ADR-0200, 2026-08-14 amendments).

The short browser-approved device code still exists, but as the fallback, not the front door: it appears for multi-factor accounts and for password-free sign-in, and when it runs it is shown prominently on the login screen — never buried.

Good to know:

  • One session, one status. What the login screen shows is the engine's sign-in state — there is no separate "app" session that could disagree with it. Signed in means the engine is signed in; signing out ends that one session.
  • Sign-ins survive restarts. The engine keeps its session — once connected, restarting the app brings you back connected, with no prompt.
  • The password travels once, locally. The engine receives it over a same-machine connection only, uses it for the cloud sign-in, and never writes it anywhere. Status replies carry no secrets.
  • The screen you type at doesn't need internet. On a multi-machine layout the engine relays your sign-in across the layout's own network to the machine that has internet access — the machine you're sitting at can be fully firewalled.
  • Approve from anywhere. A code approval (when the fallback runs) happens in a normal browser session — a phone works fine.
  • Codes are single-purpose. A code only approves the sign-in that requested it, and only until it expires. Nothing secret is shown on screen — the code is useless to anyone who cannot also sign in to your account.
  • Air-gapped operation is unaffected. A mounted, sealed layout package operates without any cloud sign-in; sign-in only appears on the connected path.

How To

Signing in

  1. Start the desktop app, enter your email and password, and press Sign In.
  2. The app hands the password once to the layout engine over a local, same-machine connection. The engine performs the cloud sign-in — routed through whichever machine on the layout has internet access (on a single-computer layout, that's the same computer) — and keeps the single session from then on. The password is never stored, logged, or shown again anywhere.
  3. The login screen shows the engine's sign-in status — that status is your sign-in. When it reads signed in, you're connected.
  4. Continue to organization and layout selection as usual. Those lists — like everything else the app shows from the cloud — come to it through the engine, so one sign-in covers all of it.

After that first sign-in, exit and reopen as you like — the engine restores its session silently and you're still connected without signing in again. Layout activation for hardware operation uses this same single session; there is no separate engine approval step.

When the code appears (the fallback)

The browser-approved code takes over in two situations:

  • Your account uses multi-factor sign-in. A typed password alone can't finish MFA, so the browser approval starts automatically: the login screen switches to a short code in large type plus a verification web address, and the app opens that page in your browser for you (or press Open Browser). Approve from any device — the same computer, your phone, or a helper's laptop.
  • You'd rather not type your password. Leave email and password blank and press Sign In to use the browser flow instead.

The screen shows "Waiting…" while the approval is pending and moves on by itself the moment you approve. If the code expires first, you get an honest message and a fresh code is one click away — codes are never reused.

Troubleshooting

If sign-in fails

  • "Engine not running": the app signs in through its layout engine, so sign-in needs the engine up. This message is about the engine on your own machine, not the cloud — restart the app (the engine starts with it) and try again.
  • "The engine couldn't reach the cloud to sign in": no machine on the layout currently has a working internet path. Fix the connection and press Sign In again — the app itself never contacts the cloud, so the fix is always on the engine's side of the network.
  • Sign-in fails with your correct password: the login screen shows the failure plainly and keeps it on screen until you act — retry, or use the browser-code fallback.

If it doesn't work

  • A code that never appears: the engine can't reach the sign-in service — check the layout's internet connection, then press Sign In again.
  • Approval done but the screen hasn't moved on: wait a few seconds (the app polls the engine on an interval); it picks up the approved sign-in automatically.
  • "Engine update required": the desktop app is newer than its layout engine. The affected feature stays unavailable until the engine is updated — the app never works around the engine by contacting the cloud itself.
  • For general account problems, see Login Issues.