Skip to content

[FEATURE] Multi-account session management #206

@Mathf18

Description

@Mathf18

Problem

Consultants and developers who work across multiple Microsoft Fabric tenants and client environments face a painful workflow today: every time they need to switch context, they must run fab auth logout followed by a full fab auth login, re-authenticating interactively each time.

Real-world use case

A typical consulting scenario:

  • Client A - Production tenant tenant-aaa, user consultant@clientA.com
  • Client B - Dev/test tenant tenant-bbb, user consultant@clientB.com
  • Internal - Corporate tenant tenant-ccc, user me@mycorp.com

Switching between these today requires a full logout/login cycle for each transition, which is disruptive, slow, and breaks automation scripts that assume a persistent session.

Proposed solution

Add stored user session management to the CLI so that multiple interactive authentication sessions can coexist and be switched instantly:

Command Description
fab auth list List all stored user sessions with active/valid status
fab auth switch Switch to another stored session (interactive or direct)
fab auth switch -u <account> -t <tenant> Switch directly to a specific account (case-insensitive)
fab auth logout -u <account> Log out a specific session without affecting others
fab auth logout --all Clear all stored sessions

Behavior

  • Two stored sessions, no flags: fab auth switch automatically toggles to the other account.
  • Three or more sessions, no flags: an interactive prompt is shown.
  • With -u (and optionally -t): switches directly, no prompt.
  • Sessions are validated against the MSAL token cache and marked as valid/invalid in fab auth list.
  • Environment variable authentication (FAB_TOKEN, etc.) takes precedence and blocks session switching with a clear error message.
  • Interactive login now preserves the broker-backed MSAL app across the Fabric, OneLake, and Azure token warm-up so newly selected accounts are stored cleanly on Windows.

Acceptance criteria

  • fab auth list shows all stored sessions with active/valid/last_used metadata
  • fab auth switch supports direct (-u, -t) and interactive selection
  • fab auth logout supports per-session removal (-u, -t) and bulk (--all)
  • Username matching is case-insensitive
  • Session switching is blocked when env var auth is active
  • Documentation and examples are up to date
  • Tests cover happy paths and edge cases

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions