From f1c08ccc2d5cd5a9532ba2f651323f608666cd34 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Wed, 19 Aug 2026 14:09:01 +0530 Subject: [PATCH 01/12] fix(auth): identify workspace sessions by account Signed-off-by: Aman Varshney --- docs/product/output-conventions.md | 55 +++++ packages/cli-engine/src/credential-manager.ts | 15 +- .../src/environment-credential-manager.ts | 4 + .../src/in-memory-credential-manager.ts | 5 + .../tests/credential-manager.test.ts | 10 + packages/cli-engine/tests/engine.type-test.ts | 1 + .../cli-engine/tests/management-api.test.ts | 2 + packages/cli/src/auth/credential-manager.ts | 163 ++++++++++++++- packages/cli/src/auth/session-metadata.ts | 45 +++++ packages/cli/src/auth/state-file.ts | 37 ++++ packages/cli/src/auth/workspace-name.ts | 21 -- packages/cli/src/commands/auth/login.ts | 11 +- packages/cli/src/commands/auth/session-ref.ts | 48 ++++- .../cli/src/commands/auth/workspace-list.ts | 24 ++- .../cli/src/commands/auth/workspace-logout.ts | 19 +- .../cli/src/commands/auth/workspace-use.ts | 17 +- packages/cli/src/runtime.ts | 6 +- packages/cli/tests/auth.test.ts | 121 ++++++++++- packages/cli/tests/credential-manager.test.ts | 190 +++++++++++++++++- packages/cli/tests/golden-rendering.test.ts | 29 ++- packages/cli/tests/session-metadata.test.ts | 45 +++++ 21 files changed, 800 insertions(+), 68 deletions(-) create mode 100644 packages/cli/src/auth/session-metadata.ts delete mode 100644 packages/cli/src/auth/workspace-name.ts create mode 100644 packages/cli/tests/session-metadata.test.ts diff --git a/docs/product/output-conventions.md b/docs/product/output-conventions.md index 0ca9d38d..a2c9d403 100644 --- a/docs/product/output-conventions.md +++ b/docs/product/output-conventions.md @@ -155,6 +155,61 @@ Current MVP commands map to patterns like this: No current MVP command uses `verify` or `inspect`, but new commands must still choose one existing pattern rather than inventing a new one casually. +### Workspace session identity + +An OAuth login authorizes one workspace and stores one local workspace session. +Running `auth login` again may add another session, including a session owned by +a different Prisma user. Therefore, `auth workspace list` describes the +workspace sessions authorized on this machine; it must not present them as the +complete list of workspaces visible in Console for the currently selected user. + +At login, the CLI resolves the authorizing user through `/v1/me` and persists +only its safe id, email, and name alongside the session. This lookup is +best-effort and never prevents login. Existing state remains compatible; when +stored metadata is unavailable, the CLI falls back to identity claims in the +access token. Session-list and session-selection commands also attempt this +enrichment for older records and cache successful results. This is an explicit +best-effort operation; the credential manager's ordinary `sessions()` read +remains local-only. + +Human workspace-session output shows the user email next to every workspace +when one is known. Selection prompts use the same identity so a user can +distinguish same-named workspaces and sessions belonging to different +accounts. When no email is known, output falls back to the user's name and then +id. Tables render the standard unknown-value marker when no user identity is +available, while selection prompts omit an identity they do not know. + +Structured workspace-session output includes a nullable `user` object on every +item. Its `context.scope` is `"local-sessions"`, making it explicit that the +collection is not a complete remote membership list: + +```json +{ + "context": { + "scope": "local-sessions" + }, + "items": [ + { + "workspaceId": "workspace_123", + "workspaceName": "Acme Inc", + "user": { + "id": "usr_123", + "email": "developer@example.com", + "name": null + }, + "current": true, + "expiresAt": "2026-08-19T09:10:49.000Z" + } + ] +} +``` + +The `user` object is `null` when neither stored metadata nor token claims carry +a user identity. Individual user fields use `null` when unavailable. Token +material never reaches either output mode. `auth workspace list` always offers +`auth login` as the structured next action: it authorizes the first workspace +when the list is empty and another workspace when sessions already exist. + ### One-Time Secret Output Commands that create one-time-view secrets may write the raw secret value to diff --git a/packages/cli-engine/src/credential-manager.ts b/packages/cli-engine/src/credential-manager.ts index 1405b200..665469c3 100644 --- a/packages/cli-engine/src/credential-manager.ts +++ b/packages/cli-engine/src/credential-manager.ts @@ -26,6 +26,10 @@ export interface Credential { export interface Session { readonly workspaceId: string; readonly workspaceName: string | undefined; + /** Who authorized this workspace session. A persistent manager may enrich + * this from the account API and fall back to credential claims. It contains + * no token material and may be absent for workspace-only credentials. */ + readonly identity: CredentialIdentity | undefined; /** The stored ACCESS TOKEN's expiry, which rotation changes — not a * deadline on the logged-in-ness. */ readonly expiresAt: Date | undefined; @@ -105,13 +109,18 @@ export interface CredentialManager { /** The stored sessions and the selection, read fresh. Local-only. */ sessions(): Promise; + /** Best-effort remote enrichment for session display metadata. Persistent + * managers may cache safe account details; failure still returns the local + * sessions. Commands opt into this explicitly so normal reads stay local. */ + enrichSessions(): Promise; + /** * Login's write. The caller names the workspace that identifies the * session; for workspace-bound credentials the manager verifies the * workspace_id claim matches and refuses on mismatch. Upserts by - * workspaceId and selects it. The workspace name is fetched - * best-effort after the write — failure leaves it undefined, never - * fails login. + * workspaceId and selects it. The workspace name and safe user identity are + * fetched best-effort after the write — failure leaves either undefined and + * never fails login. */ createSession(credential: Credential, workspaceId: string): Promise; diff --git a/packages/cli-engine/src/environment-credential-manager.ts b/packages/cli-engine/src/environment-credential-manager.ts index dedd1db2..23653203 100644 --- a/packages/cli-engine/src/environment-credential-manager.ts +++ b/packages/cli-engine/src/environment-credential-manager.ts @@ -76,6 +76,10 @@ export class EnvironmentCredentialManager implements CredentialManager { return { sessions: [], selectedWorkspaceId: undefined }; } + async enrichSessions(): Promise { + return this.sessions(); + } + async createSession( _credential: Credential, _workspaceId: string, diff --git a/packages/cli-engine/src/in-memory-credential-manager.ts b/packages/cli-engine/src/in-memory-credential-manager.ts index 81b973c0..9b26b34f 100644 --- a/packages/cli-engine/src/in-memory-credential-manager.ts +++ b/packages/cli-engine/src/in-memory-credential-manager.ts @@ -85,6 +85,7 @@ function asSession(record: SessionRecord): Session { return { workspaceId: record.workspaceId, workspaceName: record.workspaceName, + identity: claimedIdentity(record.credential.token), expiresAt: record.credential.expiresAt, }; } @@ -234,6 +235,10 @@ export class InMemoryCredentialManager implements CredentialManager { }; } + async enrichSessions(): Promise { + return this.sessions(); + } + async createSession( credential: Credential, workspaceId: string, diff --git a/packages/cli-engine/tests/credential-manager.test.ts b/packages/cli-engine/tests/credential-manager.test.ts index d7050a88..861b07b8 100644 --- a/packages/cli-engine/tests/credential-manager.test.ts +++ b/packages/cli-engine/tests/credential-manager.test.ts @@ -442,6 +442,11 @@ describe("session mutations and state read-back", () => { expect(selected).toEqual({ workspaceId: "workspace-2", workspaceName: undefined, + identity: { + userId: "user-1", + email: undefined, + name: undefined, + }, expiresAt: undefined, }); expect(manager.state().selectedWorkspaceId).toBe("workspace-2"); @@ -507,6 +512,11 @@ describe("session mutations and state read-back", () => { { workspaceId: "workspace-1", workspaceName: undefined, + identity: { + userId: "user-1", + email: undefined, + name: undefined, + }, expiresAt: undefined, }, ], diff --git a/packages/cli-engine/tests/engine.type-test.ts b/packages/cli-engine/tests/engine.type-test.ts index 86d31a60..c108fe1f 100644 --- a/packages/cli-engine/tests/engine.type-test.ts +++ b/packages/cli-engine/tests/engine.type-test.ts @@ -571,6 +571,7 @@ export const unmanagedIsUndeclared: false = unmanagedCommand.managesCredentials; export const sessionHasNoTokenMaterial: | "workspaceId" | "workspaceName" + | "identity" | "expiresAt" = undefined as unknown as keyof Session; export const activeCredentialHasNoTokenMaterial: diff --git a/packages/cli-engine/tests/management-api.test.ts b/packages/cli-engine/tests/management-api.test.ts index 224e89cf..16773dc1 100644 --- a/packages/cli-engine/tests/management-api.test.ts +++ b/packages/cli-engine/tests/management-api.test.ts @@ -51,6 +51,7 @@ function fakeCredentialManager( return { activeCredential: unusedManagerMethod("activeCredential"), sessions: unusedManagerMethod("sessions"), + enrichSessions: unusedManagerMethod("enrichSessions"), createSession: unusedManagerMethod("createSession"), selectSession: unusedManagerMethod("selectSession"), endSession: unusedManagerMethod("endSession"), @@ -73,6 +74,7 @@ const storedSessions = (...workspaceIds: readonly string[]) => ({ sessions: workspaceIds.map((workspaceId) => ({ workspaceId, workspaceName: undefined, + identity: undefined, expiresAt: undefined, })), selectedWorkspaceId: workspaceIds[0], diff --git a/packages/cli/src/auth/credential-manager.ts b/packages/cli/src/auth/credential-manager.ts index 19469272..e151538e 100644 --- a/packages/cli/src/auth/credential-manager.ts +++ b/packages/cli/src/auth/credential-manager.ts @@ -4,6 +4,7 @@ import type { ActiveAccessTokenOptions, ActiveCredential, Credential, + CredentialIdentity, CredentialManager, CredentialRefresher, Session, @@ -28,6 +29,7 @@ import { readCredentialState, resolveStateFilePath, type StoredSession, + type StoredSessionUser, withRefreshFileLock, withStateLock, writeCredentialState, @@ -50,9 +52,17 @@ export type FetchWorkspaceName = ( workspaceId: string, ) => Promise; +/** Looks up safe account metadata for the credential that was just minted. + * Best-effort: a failed lookup never prevents the session from being saved. */ +export type FetchSessionIdentity = ( + credential: Credential, + workspaceId: string, +) => Promise; + export interface FileCredentialManagerOptions { readonly env: Readonly>; readonly fetchWorkspaceName?: FetchWorkspaceName; + readonly fetchSessionIdentity?: FetchSessionIdentity; readonly refreshCredential?: CredentialRefresher; readonly debugWrite?: (text: string) => void; } @@ -115,6 +125,7 @@ export class FileCredentialManager implements CredentialManager { readonly #filePath: string; readonly #debug: DebugLog; readonly #fetchWorkspaceName: FetchWorkspaceName | undefined; + readonly #fetchSessionIdentity: FetchSessionIdentity | undefined; readonly #refreshCredential: CredentialRefresher | undefined; #actingAs: ActingAs = { kind: "unresolved" }; /** Built for the credential the process acts as. Every mutation that @@ -129,6 +140,7 @@ export class FileCredentialManager implements CredentialManager { this.#filePath = resolveStateFilePath(options.env).filePath; this.#debug = makeDebugLog(options.env, options.debugWrite); this.#fetchWorkspaceName = options.fetchWorkspaceName; + this.#fetchSessionIdentity = options.fetchSessionIdentity; this.#refreshCredential = options.refreshCredential; this.#debug(`state file ${this.#filePath}`); } @@ -161,10 +173,57 @@ export class FileCredentialManager implements CredentialManager { async sessions(): Promise { const state = await readCredentialState(this.#filePath); - return { - sessions: state.sessions.map((record) => toSession(record)), - selectedWorkspaceId: resolvedMarker(state) ?? undefined, - }; + return storedSessions(state); + } + + async enrichSessions(): Promise { + if (this.#fetchSessionIdentity === undefined) return this.sessions(); + const state = await readCredentialState(this.#filePath); + const candidates = state.sessions.filter( + (session) => session.user === undefined, + ); + if (candidates.length === 0) return storedSessions(state); + + const fetched = await Promise.all( + candidates.map(async (session) => ({ + workspaceId: session.workspaceId, + token: session.token, + identity: await this.#lookUpSessionIdentity( + storedSessionCredential(session), + session.workspaceId, + ), + })), + ); + const byWorkspaceId = new Map( + fetched + .filter( + ( + result, + ): result is typeof result & { identity: CredentialIdentity } => + result.identity !== undefined, + ) + .map((result) => [result.workspaceId, result] as const), + ); + if (byWorkspaceId.size === 0) return this.sessions(); + + return this.#mutate((current) => { + let changed = false; + const sessions = current.sessions.map((session) => { + const fetchedSession = byWorkspaceId.get(session.workspaceId); + if ( + session.user !== undefined || + fetchedSession === undefined || + fetchedSession.token !== session.token + ) { + return session; + } + changed = true; + return { ...session, user: storedUser(fetchedSession.identity) }; + }); + if (!changed) return { result: storedSessions(current) }; + const next = { ...current, sessions }; + return { state: next, result: storedSessions(next) }; + }); } async createSession( @@ -207,22 +266,33 @@ export class FileCredentialManager implements CredentialManager { this.#actAs({ kind: "session", workspaceId }); } - const name = await this.#lookUpWorkspaceName(credential, workspaceId); - if (name === undefined) return created; + const [name, identity] = await Promise.all([ + this.#lookUpWorkspaceName(credential, workspaceId), + this.#lookUpSessionIdentity(credential, workspaceId), + ]); + if (name === undefined && identity === undefined) return created; return this.#mutate((state) => { const record = state.sessions.find( (session) => session.workspaceId === workspaceId, ); - if (record === undefined) return { result: created }; - const named: StoredSession = { ...record, name }; + // Lookups happen outside the lock. Do not attach their result to a + // credential that another process saved for this workspace meanwhile. + if (record === undefined || record.token !== credential.token) { + return { result: created }; + } + const enriched: StoredSession = { + ...record, + ...(name === undefined ? {} : { name }), + ...(identity === undefined ? {} : { user: storedUser(identity) }), + }; const next: CredentialState = { ...state, sessions: state.sessions.map((session) => - session.workspaceId === workspaceId ? named : session, + session.workspaceId === workspaceId ? enriched : session, ), }; - return { state: next, result: toSession(named) }; + return { state: next, result: toSession(enriched) }; }); } @@ -362,6 +432,7 @@ export class FileCredentialManager implements CredentialManager { const rotated: StoredSession = { workspaceId: record.workspaceId, ...(record.name === undefined ? {} : { name: record.name }), + ...storedUserSlice(record.user), token: tokens.accessToken, ...(tokens.refreshToken === undefined ? {} @@ -522,6 +593,20 @@ export class FileCredentialManager implements CredentialManager { } } + async #lookUpSessionIdentity( + credential: Credential, + workspaceId: string, + ): Promise { + if (this.#fetchSessionIdentity === undefined) return undefined; + try { + return normalizedIdentity( + await this.#fetchSessionIdentity(credential, workspaceId), + ); + } catch { + return undefined; + } + } + /** One mutation: the short lock, a fresh read, one slice, one atomic * write. A slice that returns no state writes nothing. */ async #mutate( @@ -578,6 +663,15 @@ function expiresAtSlice( return expiresAt === undefined ? {} : { expiresAt: expiresAt.toISOString() }; } +function storedSessionCredential(record: StoredSession): Credential { + return { + token: record.token, + refreshToken: record.refreshToken, + expiresAt: + record.expiresAt === undefined ? undefined : new Date(record.expiresAt), + }; +} + /** The selection the manager will admit to: one that names a stored * session, or none. A dangling selection never escapes. */ function resolvedMarker(state: CredentialState): string | null { @@ -591,10 +685,18 @@ function resolvedMarker(state: CredentialState): string | null { return null; } +function storedSessions(state: CredentialState): StoredSessions { + return { + sessions: state.sessions.map((record) => toSession(record)), + selectedWorkspaceId: resolvedMarker(state) ?? undefined, + }; +} + function toSession(record: StoredSession): Session { return { workspaceId: record.workspaceId, workspaceName: record.name, + identity: storedIdentity(record), expiresAt: record.expiresAt === undefined ? undefined : new Date(record.expiresAt), }; @@ -606,11 +708,50 @@ function storedCredential(record: StoredSession): ActiveCredential { workspaceName: record.name, expiresAt: record.expiresAt === undefined ? undefined : new Date(record.expiresAt), - identity: claimedIdentity(record.token), + identity: storedIdentity(record), origin: { source: "stored" }, }; } +function storedIdentity(record: StoredSession): CredentialIdentity | undefined { + const user = record.user; + return user === undefined + ? claimedIdentity(record.token) + : { userId: user.id, email: user.email, name: user.name }; +} + +function storedUser(identity: CredentialIdentity): StoredSessionUser { + return { + ...(identity.userId === undefined ? {} : { id: identity.userId }), + ...(identity.email === undefined ? {} : { email: identity.email }), + ...(identity.name === undefined ? {} : { name: identity.name }), + }; +} + +function storedUserSlice(user: StoredSessionUser | undefined): { + user?: StoredSessionUser; +} { + return user === undefined ? {} : { user }; +} + +function normalizedIdentity( + identity: CredentialIdentity | undefined, +): CredentialIdentity | undefined { + if (identity === undefined) return undefined; + const userId = normalizedString(identity.userId); + const email = normalizedString(identity.email); + const name = normalizedString(identity.name); + if (userId === undefined && email === undefined && name === undefined) { + return undefined; + } + return { userId, email, name }; +} + +function normalizedString(value: string | undefined): string | undefined { + const trimmed = value?.trim(); + return trimmed ? trimmed : undefined; +} + /** An environment token whose claims name no workspace reports no * workspace id — never the empty string. */ function environmentCredential(token: string): ActiveCredential { diff --git a/packages/cli/src/auth/session-metadata.ts b/packages/cli/src/auth/session-metadata.ts new file mode 100644 index 00000000..652f565a --- /dev/null +++ b/packages/cli/src/auth/session-metadata.ts @@ -0,0 +1,45 @@ +import { createManagementApiClient } from "@prisma/management-api-sdk"; +import type { + FetchSessionIdentity, + FetchWorkspaceName, +} from "./credential-manager"; + +const IDENTITY_LOOKUP_TIMEOUT_MS = 3_000; + +function clientFor(apiBaseUrl: string, token: string) { + return createManagementApiClient({ baseUrl: apiBaseUrl, token }); +} + +/** Resolve the human workspace name with the workspace-bound credential that + * was just minted. The credential manager treats this as best-effort. */ +export function fetchWorkspaceName(apiBaseUrl: string): FetchWorkspaceName { + return async (credential, workspaceId) => { + const { data } = await clientFor(apiBaseUrl, credential.token).GET( + "/v1/workspaces/{id}", + { params: { path: { id: workspaceId } } }, + ); + const name = data?.data?.name; + return typeof name === "string" && name.trim().length > 0 + ? name.trim() + : undefined; + }; +} + +/** Resolve safe account metadata once at login. OAuth access tokens do not + * necessarily carry an email, so claims alone cannot distinguish sessions + * authorized by different Prisma accounts. */ +export function fetchSessionIdentity(apiBaseUrl: string): FetchSessionIdentity { + return async (credential) => { + const { data } = await clientFor(apiBaseUrl, credential.token).GET( + "/v1/me", + { signal: AbortSignal.timeout(IDENTITY_LOOKUP_TIMEOUT_MS) }, + ); + const user = data?.data?.user; + if (!user) return undefined; + return { + userId: user.id ?? undefined, + email: user.email ?? undefined, + name: user.name ?? undefined, + }; + }; +} diff --git a/packages/cli/src/auth/state-file.ts b/packages/cli/src/auth/state-file.ts index a22f4908..ea27bdb7 100644 --- a/packages/cli/src/auth/state-file.ts +++ b/packages/cli/src/auth/state-file.ts @@ -45,11 +45,20 @@ const REFRESH_LOCK_TIMINGS: LockTimings = { export interface StoredSession { readonly workspaceId: string; readonly name?: string; + /** Safe account metadata captured during login. Token material remains the + * source of authentication; this is only for identifying local sessions. */ + readonly user?: StoredSessionUser; readonly token: string; readonly refreshToken?: string; readonly expiresAt?: string; } +export interface StoredSessionUser { + readonly id?: string; + readonly email?: string; + readonly name?: string; +} + export interface CredentialState { readonly version: number; readonly sessions: readonly StoredSession[]; @@ -175,11 +184,13 @@ function isStoredSession(value: unknown): value is StoredSession { } function normalizeSession(session: StoredSession): StoredSession { + const user = normalizeStoredSessionUser(session.user); return { workspaceId: session.workspaceId, ...(typeof session.name === "string" && session.name.length > 0 ? { name: session.name } : {}), + ...(user === undefined ? {} : { user }), token: session.token, ...(typeof session.refreshToken === "string" && session.refreshToken.length > 0 @@ -191,6 +202,32 @@ function normalizeSession(session: StoredSession): StoredSession { }; } +function normalizeStoredSessionUser( + value: unknown, +): StoredSessionUser | undefined { + if (typeof value !== "object" || value === null || Array.isArray(value)) { + return undefined; + } + const candidate = value as Record; + const id = normalizedString(candidate.id); + const email = normalizedString(candidate.email); + const name = normalizedString(candidate.name); + if (id === undefined && email === undefined && name === undefined) { + return undefined; + } + return { + ...(id === undefined ? {} : { id }), + ...(email === undefined ? {} : { email }), + ...(name === undefined ? {} : { name }), + }; +} + +function normalizedString(value: unknown): string | undefined { + if (typeof value !== "string") return undefined; + const trimmed = value.trim(); + return trimmed.length === 0 ? undefined : trimmed; +} + /** Temp file in the same directory, fsync, rename, mode 0600 — a reader * only ever sees a complete state. The written file also carries the * legacy `tokens` mirror and the auth.context.json pointer stays in diff --git a/packages/cli/src/auth/workspace-name.ts b/packages/cli/src/auth/workspace-name.ts deleted file mode 100644 index 5e0aff0b..00000000 --- a/packages/cli/src/auth/workspace-name.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { createManagementApiClient } from "@prisma/management-api-sdk"; -import type { FetchWorkspaceName } from "./credential-manager"; - -/** The manager's injected name lookup: a static-token client over the - * credential just minted. The manager constructs no API client and - * treats any failure here as "no name". */ -export function fetchWorkspaceName(apiBaseUrl: string): FetchWorkspaceName { - return async (credential, workspaceId) => { - const client = createManagementApiClient({ - baseUrl: apiBaseUrl, - token: credential.token, - }); - const { data } = await client.GET("/v1/workspaces/{id}", { - params: { path: { id: workspaceId } }, - }); - const name = data?.data?.name; - return typeof name === "string" && name.trim().length > 0 - ? name.trim() - : undefined; - }; -} diff --git a/packages/cli/src/commands/auth/login.ts b/packages/cli/src/commands/auth/login.ts index dccbbaee..b26ead7f 100644 --- a/packages/cli/src/commands/auth/login.ts +++ b/packages/cli/src/commands/auth/login.ts @@ -14,13 +14,19 @@ import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { resolveAgentSetupTipCommand } from "./agent-setup-tip"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; -import { sessionLabel } from "./session-ref"; +import { + type SessionUser, + sessionLabel, + sessionUser, + sessionUserLabel, +} from "./session-ref"; const TITLE = "Starting an authenticated CLI session."; const LOGIN_STEP = "Sign in via your browser"; export interface LoginResult { readonly workspace: { readonly id: string; readonly name: string | null }; + readonly user: SessionUser | null; readonly environmentCredentialInForce: boolean; } @@ -77,8 +83,10 @@ function presentationsFor( }, result: LoginResult, ): Presentations { + const user = sessionUserLabel(spec.session); const rows = [ { label: "status", value: "signed in" }, + ...(user === undefined ? [] : [{ label: "user", value: user }]), { label: "workspace", value: sessionLabel(spec.session) }, ]; return { @@ -151,6 +159,7 @@ export const authLoginCommand = defineCommand({ id: session.workspaceId, name: session.workspaceName ?? null, }, + user: sessionUser(session), environmentCredentialInForce: environmentSession, }; return ok( diff --git a/packages/cli/src/commands/auth/session-ref.ts b/packages/cli/src/commands/auth/session-ref.ts index faf522c2..ef737e78 100644 --- a/packages/cli/src/commands/auth/session-ref.ts +++ b/packages/cli/src/commands/auth/session-ref.ts @@ -15,6 +15,37 @@ export type SessionRefResolution = | { readonly kind: "no-match" } | { readonly kind: "ambiguous"; readonly matches: readonly Session[] }; +export interface SessionUser { + readonly id: string | null; + readonly email: string | null; + readonly name: string | null; +} + +/** The safe identity fields a command may expose for a stored session. */ +export function sessionUser(session: Session): SessionUser | null { + const identity = session.identity; + if (identity === undefined) return null; + return { + id: identity.userId ?? null, + email: identity.email ?? null, + name: identity.name ?? null, + }; +} + +/** The shortest useful human identity for a workspace session. */ +export function sessionUserLabel(session: Session): string | undefined { + const identity = session.identity; + return identity?.email ?? identity?.name ?? identity?.userId; +} + +/** Workspace first, account second: suitable for interactive choices. */ +export function sessionChoiceLabel(session: Session): string { + const user = sessionUserLabel(session); + return user === undefined + ? sessionLabel(session) + : `${sessionLabel(session)} — ${user}`; +} + /** Exact workspace id first, then case-insensitive workspace name. */ export function resolveSessionRef( sessions: readonly Session[], @@ -47,8 +78,21 @@ export function ambiguousSessionRefError( "AUTH.WORKSPACE_AMBIGUOUS", `More than one workspace session is named '${ref}'.`, { - why: `Matching workspaces: ${matches.map((match) => match.workspaceId).join(", ")}.`, - meta: { workspaceIds: matches.map((match) => match.workspaceId) }, + why: `Matching sessions: ${matches + .map((match) => { + const user = sessionUserLabel(match); + return user === undefined + ? match.workspaceId + : `${match.workspaceId} (${user})`; + }) + .join(", ")}.`, + meta: { + workspaceIds: matches.map((match) => match.workspaceId), + sessions: matches.map((match) => ({ + workspaceId: match.workspaceId, + user: sessionUser(match), + })), + }, nextActions: [ { kind: "run-command", diff --git a/packages/cli/src/commands/auth/workspace-list.ts b/packages/cli/src/commands/auth/workspace-list.ts index b1634242..f1f13b00 100644 --- a/packages/cli/src/commands/auth/workspace-list.ts +++ b/packages/cli/src/commands/auth/workspace-list.ts @@ -8,11 +8,17 @@ import { type NextAction, ok } from "@prisma/cli-engine/protocol"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; -import { sessionLabel } from "./session-ref"; +import { sessionLabel, sessionUser, sessionUserLabel } from "./session-ref"; const LOGIN_NEXT_ACTION: NextAction = { kind: "run-command", - label: "Sign in", + label: "Authorize a workspace", + command: `${CLI_NAME} auth login`, +}; + +const AUTHORIZE_ANOTHER_NEXT_ACTION: NextAction = { + kind: "run-command", + label: "Authorize another workspace", command: `${CLI_NAME} auth login`, }; @@ -25,12 +31,14 @@ export interface WorkspaceListResult { export function serializeWorkspaceList(result: WorkspaceListResult) { return { context: { + scope: "local-sessions" as const, environmentCredentialInForce: result.environmentCredentialInForce, currentWorkspaceId: result.selectedWorkspaceId ?? null, }, items: result.sessions.map((session) => ({ workspaceId: session.workspaceId, workspaceName: session.workspaceName ?? null, + user: sessionUser(session), current: session.workspaceId === result.selectedWorkspaceId, expiresAt: session.expiresAt?.toISOString() ?? null, })), @@ -39,9 +47,10 @@ export function serializeWorkspaceList(result: WorkspaceListResult) { } function listPresentations(result: WorkspaceListResult): Presentations { - const columns = ["name", "id", "status"]; + const columns = ["workspace", "user", "id", "status"]; const rows = result.sessions.map((session) => [ sessionLabel(session), + sessionUserLabel(session) ?? "", session.workspaceId, session.workspaceId === result.selectedWorkspaceId ? "current" : "", ]); @@ -73,18 +82,21 @@ function listPresentations(result: WorkspaceListResult): Presentations { ], stdout: () => rows.map((row) => row.join(" ").trimEnd()), json: () => serializeWorkspaceList(result), - next: () => (result.sessions.length === 0 ? [LOGIN_NEXT_ACTION] : []), + next: () => + result.sessions.length === 0 + ? [LOGIN_NEXT_ACTION] + : [AUTHORIZE_ANOTHER_NEXT_ACTION], }; } export const authWorkspaceListCommand = defineCommand({ managesCredentials: true, help: { - summary: "List your workspace sessions", + summary: "List workspace sessions authorized on this machine", examples: ["auth workspace list", "auth workspace list --json"], }, handler: async (_args, ctx) => { - const stored = await ctx.credentialManager.sessions(); + const stored = await ctx.credentialManager.enrichSessions(); const result: WorkspaceListResult = { sessions: stored.sessions, selectedWorkspaceId: stored.selectedWorkspaceId, diff --git a/packages/cli/src/commands/auth/workspace-logout.ts b/packages/cli/src/commands/auth/workspace-logout.ts index 8ab41e81..495303fa 100644 --- a/packages/cli/src/commands/auth/workspace-logout.ts +++ b/packages/cli/src/commands/auth/workspace-logout.ts @@ -8,22 +8,33 @@ import { ok } from "@prisma/cli-engine/protocol"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; -import { requireSession, sessionLabel } from "./session-ref"; +import { + requireSession, + type SessionUser, + sessionLabel, + sessionUser, + sessionUserLabel, +} from "./session-ref"; export interface WorkspaceLogoutResult { readonly workspace: { readonly id: string; readonly name: string | null }; + readonly user: SessionUser | null; readonly wasSelected: boolean; } function logoutPresentations( spec: { readonly label: string; + readonly user: string | undefined; readonly wasSelected: boolean; readonly environmentCredentialInForce: boolean; }, result: WorkspaceLogoutResult, ): Presentations { - const rows = [{ label: "workspace", value: spec.label }]; + const rows = [ + { label: "workspace", value: spec.label }, + ...(spec.user === undefined ? [] : [{ label: "user", value: spec.user }]), + ]; return { json: () => result, human: () => [ @@ -85,7 +96,7 @@ export const authWorkspaceLogoutCommand = defineCommand({ examples: ["auth workspace logout my-workspace"], }, handler: async (args, ctx) => { - const stored = await ctx.credentialManager.sessions(); + const stored = await ctx.credentialManager.enrichSessions(); const session = requireSession(stored.sessions, args.positionals.workspace); const wasSelected = session.workspaceId === stored.selectedWorkspaceId; await ctx.credentialManager.endSession(session.workspaceId); @@ -94,6 +105,7 @@ export const authWorkspaceLogoutCommand = defineCommand({ id: session.workspaceId, name: session.workspaceName ?? null, }, + user: sessionUser(session), wasSelected, }; return ok( @@ -102,6 +114,7 @@ export const authWorkspaceLogoutCommand = defineCommand({ logoutPresentations( { label: sessionLabel(session), + user: sessionUserLabel(session), wasSelected, environmentCredentialInForce: environmentCredentialInForce(ctx.env), }, diff --git a/packages/cli/src/commands/auth/workspace-use.ts b/packages/cli/src/commands/auth/workspace-use.ts index a8a1a03c..d42ce4ac 100644 --- a/packages/cli/src/commands/auth/workspace-use.ts +++ b/packages/cli/src/commands/auth/workspace-use.ts @@ -11,10 +11,18 @@ import { CliStructuredError, ok } from "@prisma/cli-engine/protocol"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; -import { requireSession, sessionLabel } from "./session-ref"; +import { + requireSession, + type SessionUser, + sessionChoiceLabel, + sessionLabel, + sessionUser, + sessionUserLabel, +} from "./session-ref"; export interface WorkspaceUseResult { readonly workspace: { readonly id: string; readonly name: string | null }; + readonly user: SessionUser | null; readonly previousWorkspaceId: string | null; } @@ -42,11 +50,13 @@ function usePresentations( }, result: WorkspaceUseResult, ): Presentations { + const user = sessionUserLabel(spec.session); const rows = [ ...(spec.previous === undefined ? [] : [{ label: "previous", value: sessionLabel(spec.previous) }]), { label: "workspace", value: sessionLabel(spec.session) }, + ...(user === undefined ? [] : [{ label: "user", value: user }]), ]; return { json: () => result, @@ -103,7 +113,7 @@ export const authWorkspaceUseCommand = defineCommand({ examples: ["auth workspace use", "auth workspace use my-workspace"], }, handler: async (args, ctx) => { - const stored = await ctx.credentialManager.sessions(); + const stored = await ctx.credentialManager.enrichSessions(); if (stored.sessions.length === 0) { throw noWorkspaceSessionsError(); } @@ -123,6 +133,7 @@ export const authWorkspaceUseCommand = defineCommand({ id: session.workspaceId, name: session.workspaceName ?? null, }, + user: sessionUser(session), previousWorkspaceId: previous?.workspaceId ?? null, }; return ok( @@ -155,7 +166,7 @@ async function promptForSession( "Select a workspace", stored.sessions.map((session) => ({ value: session.workspaceId, - label: `${sessionLabel(session)} (${session.workspaceId})${ + label: `${sessionChoiceLabel(session)} (${session.workspaceId})${ session.workspaceId === stored.selectedWorkspaceId ? " current" : "" }`, })), diff --git a/packages/cli/src/runtime.ts b/packages/cli/src/runtime.ts index 439426dd..a1001a48 100644 --- a/packages/cli/src/runtime.ts +++ b/packages/cli/src/runtime.ts @@ -16,12 +16,15 @@ import { } from "./auth/client"; import { FileCredentialManager } from "./auth/credential-manager"; import { makeCredentialRefresher } from "./auth/refresh"; +import { + fetchSessionIdentity, + fetchWorkspaceName, +} from "./auth/session-metadata"; import { DEPRECATED_STATE_FILE_ENV_VAR, resolveStateFilePath, STATE_FILE_ENV_VAR, } from "./auth/state-file"; -import { fetchWorkspaceName } from "./auth/workspace-name"; import { runPackageManager } from "./package-manager-runner"; import { makeSpawnChild } from "./spawn"; @@ -137,6 +140,7 @@ export async function assembleRuntime(proc: HostProcess): Promise { credentialManager: new FileCredentialManager({ env: proc.env, fetchWorkspaceName: fetchWorkspaceName(apiBaseUrl), + fetchSessionIdentity: fetchSessionIdentity(apiBaseUrl), refreshCredential: makeCredentialRefresher(authBaseUrl), }), managementApiClientConfig: { diff --git a/packages/cli/tests/auth.test.ts b/packages/cli/tests/auth.test.ts index 069c2c2d..45a22250 100644 --- a/packages/cli/tests/auth.test.ts +++ b/packages/cli/tests/auth.test.ts @@ -56,11 +56,17 @@ function tokenFor( return mintTestJwt({ workspace_id: workspaceId, ...claims }); } -function credentialFor(workspaceId: string) { +function credentialFor( + workspaceId: string, + user: { readonly id: string; readonly email: string } = { + id: "usr_456", + email: "bob@example.com", + }, +) { return { token: tokenFor(workspaceId, { - sub: "usr_456", - email: "bob@example.com", + sub: user.id, + email: user.email, }), refreshToken: `refresh_${workspaceId}`, expiresAt: undefined, @@ -70,11 +76,12 @@ function credentialFor(workspaceId: string) { function record( workspaceId: string, workspaceName: string | undefined, + user?: { readonly id: string; readonly email: string }, ): SessionRecord { return { workspaceId, workspaceName, - credential: credentialFor(workspaceId), + credential: credentialFor(workspaceId, user), }; } @@ -172,6 +179,11 @@ describe("auth login", () => { expect(result.exitCode).toBe(0); expect(resultOf(result)).toEqual({ workspace: { id: "ws_1", name: null }, + user: { + id: "usr_456", + email: "bob@example.com", + name: null, + }, environmentCredentialInForce: false, }); const state = cli.credentialManager?.state(); @@ -202,6 +214,7 @@ describe("auth login", () => { }); expect(result.exitCode).toBe(0); + expect(result.stderr).toContain("user: bob@example.com"); expect(result.stderr).toContain( "PRISMA_SERVICE_TOKEN supplies the credential in force", ); @@ -443,7 +456,10 @@ describe("auth workspace list", () => { }); expect(result.exitCode).toBe(0); - expect(result.stdout).toBe("Acme Inc ws_1\nws_2 ws_2 current\n"); + expect(result.stdout).toBe( + "Acme Inc bob@example.com ws_1\n" + + "ws_2 bob@example.com ws_2 current\n", + ); }); it("serializes the sessions and the current marker for json", async () => { @@ -456,6 +472,7 @@ describe("auth workspace list", () => { expect(resultOf(result)).toEqual({ context: { + scope: "local-sessions", environmentCredentialInForce: false, currentWorkspaceId: "ws_1", }, @@ -463,6 +480,11 @@ describe("auth workspace list", () => { { workspaceId: "ws_1", workspaceName: "Acme Inc", + user: { + id: "usr_456", + email: "bob@example.com", + name: null, + }, current: true, expiresAt: null, }, @@ -471,6 +493,30 @@ describe("auth workspace list", () => { }); }); + it("uses null when a legacy session token carries no user identity", async () => { + const cli = makeCli({ + sessions: [ + { + workspaceId: "ws_legacy", + workspaceName: "Legacy workspace", + credential: { + token: tokenFor("ws_legacy"), + refreshToken: "refresh_legacy", + expiresAt: undefined, + }, + }, + ], + selectedWorkspaceId: "ws_legacy", + }); + + const result = await cli.run(["auth", "workspace", "list", "--json"]); + + expect(resultOf(result)).toMatchObject({ + items: [{ workspaceId: "ws_legacy", user: null }], + }); + expect(result.stdout).not.toContain("undefined"); + }); + it("states that the environment credential is in force", async () => { const cli = makeCli({ sessions: [record("ws_1", "Acme Inc")], @@ -488,14 +534,55 @@ describe("auth workspace list", () => { }); }); - it("offers sign-in when there are no sessions", async () => { + it("offers workspace authorization when there are no sessions", async () => { const result = await makeCli().run(["auth", "workspace", "list", "--json"]); expect(result.exitCode).toBe(0); expect(result.presented?.presentation.next).toEqual([ { kind: "run-command", - label: "Sign in", + label: "Authorize a workspace", + command: "prisma-cli auth login", + }, + ]); + }); + + it("distinguishes sessions from different users and offers another authorization", async () => { + const cli = makeCli({ + sessions: [ + record("ws_personal", "Personal workspace", { + id: "usr_personal", + email: "personal@example.com", + }), + record("ws_work", "Prisma DevRel", { + id: "usr_work", + email: "developer@prisma.io", + }), + ], + selectedWorkspaceId: "ws_work", + }); + + const result = await cli.run(["auth", "workspace", "list", "--json"]); + + expect(resultOf(result)).toMatchObject({ + context: { scope: "local-sessions", currentWorkspaceId: "ws_work" }, + items: [ + { + workspaceId: "ws_personal", + user: { id: "usr_personal", email: "personal@example.com" }, + current: false, + }, + { + workspaceId: "ws_work", + user: { id: "usr_work", email: "developer@prisma.io" }, + current: true, + }, + ], + }); + expect(result.presented?.presentation.next).toEqual([ + { + kind: "run-command", + label: "Authorize another workspace", command: "prisma-cli auth login", }, ]); @@ -519,6 +606,11 @@ describe("auth workspace use", () => { expect(result.exitCode).toBe(0); expect(resultOf(result)).toEqual({ workspace: { id: "ws_2", name: "Globex" }, + user: { + id: "usr_456", + email: "bob@example.com", + name: null, + }, previousWorkspaceId: "ws_1", }); expect(cli.credentialManager?.state().selectedWorkspaceId).toBe("ws_2"); @@ -639,6 +731,11 @@ describe("auth workspace logout", () => { expect(result.exitCode).toBe(0); expect(resultOf(result)).toEqual({ workspace: { id: "ws_1", name: "Acme Inc" }, + user: { + id: "usr_456", + email: "bob@example.com", + name: null, + }, wasSelected: false, }); expect( @@ -729,6 +826,11 @@ describe("auth workspace logout", () => { expect(result.exitCode).toBe(0); expect(resultOf(result)).toEqual({ workspace: { id: "ws_1", name: "Acme Inc" }, + user: { + id: "usr_456", + email: "bob@example.com", + name: null, + }, wasSelected: true, }); expect(manager.state().sessions).toEqual([]); @@ -924,6 +1026,11 @@ describe("the shapes the commands hand back", () => { const session: Session = { workspaceId: "ws_1", workspaceName: "Acme Inc", + identity: { + userId: "usr_456", + email: "bob@example.com", + name: undefined, + }, expiresAt: undefined, }; const active: ActiveCredential = { diff --git a/packages/cli/tests/credential-manager.test.ts b/packages/cli/tests/credential-manager.test.ts index ed15458c..b7fe2c3d 100644 --- a/packages/cli/tests/credential-manager.test.ts +++ b/packages/cli/tests/credential-manager.test.ts @@ -14,7 +14,11 @@ import fsPromises, { } from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { CredentialRefresher, TokenStorage } from "@prisma/cli-engine"; +import type { + CredentialIdentity, + CredentialRefresher, + TokenStorage, +} from "@prisma/cli-engine"; import { mintTestJwt } from "@prisma/cli-engine/testing"; import { beforeEach, describe, expect, it, vi } from "vitest"; @@ -90,6 +94,10 @@ function makeManager( credential: { token: string }, workspaceId: string, ) => Promise; + fetchSessionIdentity?: ( + credential: { token: string }, + workspaceId: string, + ) => Promise; refreshCredential?: CredentialRefresher; debugWrite?: (text: string) => void; } = {}, @@ -97,6 +105,7 @@ function makeManager( return new FileCredentialManager({ env: { PRISMA_AUTH_FILE: stateFilePath, ...options.env }, fetchWorkspaceName: options.fetchWorkspaceName, + fetchSessionIdentity: options.fetchSessionIdentity, refreshCredential: options.refreshCredential, debugWrite: options.debugWrite, }); @@ -795,6 +804,67 @@ describe("the environment credential", () => { }); describe("createSession", () => { + it("persists and exposes the authorizing account without exposing token material", async () => { + const manager = makeManager({ + fetchSessionIdentity: async () => ({ + userId: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }), + }); + const credential = { + // Real OAuth tokens identify the user but do not necessarily carry the + // email needed to distinguish accounts in workspace-session output. + token: mintToken(WORKSPACE_A, { sub: "user:opaque-subject" }), + refreshToken: "refresh-work", + expiresAt: undefined, + }; + + const created = await manager.createSession(credential, WORKSPACE_A); + const listed = (await manager.sessions()).sessions[0]; + + expect(created.identity).toEqual({ + userId: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }); + expect(listed?.identity).toEqual(created.identity); + expect( + (await readCredentialState(stateFilePath)).sessions[0]?.user, + ).toEqual({ + id: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }); + expect(Object.keys(created)).not.toContain("token"); + expect(Object.keys(listed ?? {})).not.toContain("token"); + }); + + it("falls back to credential claims when account enrichment fails", async () => { + const manager = makeManager({ + fetchSessionIdentity: async () => { + throw new Error("offline"); + }, + }); + const session = await manager.createSession( + { + token: mintToken(WORKSPACE_A, { sub: "user:claimed" }), + refreshToken: "refresh-work", + expiresAt: undefined, + }, + WORKSPACE_A, + ); + + expect(session.identity).toEqual({ + userId: "user:claimed", + email: undefined, + name: undefined, + }); + expect( + (await readCredentialState(stateFilePath)).sessions[0]?.user, + ).toBeUndefined(); + }); + it("refuses a credential whose workspace_id claim names another workspace", async () => { const manager = makeManager(); await expect( @@ -873,6 +943,54 @@ describe("createSession", () => { }); }); + it("does not attach stale account metadata to a concurrently replaced session", async () => { + let releaseFetch: () => void = () => {}; + let markFetchStarted: () => void = () => {}; + const fetchStarted = new Promise((resolve) => { + markFetchStarted = resolve; + }); + const first = makeManager({ + fetchSessionIdentity: async () => { + markFetchStarted(); + await new Promise((resolve) => { + releaseFetch = resolve; + }); + return { + userId: "usr_first", + email: "first@example.com", + name: undefined, + }; + }, + }); + const firstLogin = first.createSession( + { + token: mintToken(WORKSPACE_A, { sub: "user:first" }), + refreshToken: "refresh-first", + expiresAt: undefined, + }, + WORKSPACE_A, + ); + + await fetchStarted; + await makeManager().createSession( + { + token: mintToken(WORKSPACE_A, { sub: "user:second" }), + refreshToken: "refresh-second", + expiresAt: undefined, + }, + WORKSPACE_A, + ); + releaseFetch(); + await firstLogin; + + const state = await readCredentialState(stateFilePath); + expect(state.sessions[0]).toMatchObject({ refreshToken: "refresh-second" }); + expect(state.sessions[0]?.user).toBeUndefined(); + expect((await makeManager().sessions()).sessions[0]?.identity?.userId).toBe( + "user:second", + ); + }); + it("upserts by workspace id, keeping the stored name and moving the marker", async () => { const manager = makeManager({ fetchWorkspaceName: async () => "Workspace A", @@ -895,10 +1013,75 @@ describe("createSession", () => { }); }); +describe("enrichSessions", () => { + it("backfills safe account metadata for an existing session", async () => { + await makeManager().createSession( + { + token: mintToken(WORKSPACE_A, { sub: "user:legacy" }), + refreshToken: "refresh-legacy", + expiresAt: undefined, + }, + WORKSPACE_A, + ); + const fetchSessionIdentity = vi.fn(async () => ({ + userId: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + })); + const manager = makeManager({ fetchSessionIdentity }); + + const first = await manager.enrichSessions(); + const second = await manager.enrichSessions(); + + expect(first.sessions[0]?.identity).toEqual({ + userId: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }); + expect(second).toEqual(first); + expect(fetchSessionIdentity).toHaveBeenCalledTimes(1); + expect( + (await readCredentialState(stateFilePath)).sessions[0]?.user, + ).toEqual({ + id: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }); + }); + + it("returns local sessions when metadata enrichment fails", async () => { + await makeManager().createSession( + { + token: mintToken(WORKSPACE_A, { sub: "user:legacy" }), + refreshToken: "refresh-legacy", + expiresAt: undefined, + }, + WORKSPACE_A, + ); + const manager = makeManager({ + fetchSessionIdentity: async () => { + throw new Error("offline"); + }, + }); + + const stored = await manager.enrichSessions(); + + expect(stored.sessions[0]?.identity?.userId).toBe("user:legacy"); + expect( + (await readCredentialState(stateFilePath)).sessions[0]?.user, + ).toBeUndefined(); + }); +}); + describe("the file-backed TokenStorage", () => { it("writes only the token fields on rotation and re-derives the expiry", async () => { const manager = makeManager({ fetchWorkspaceName: async () => "Workspace A", + fetchSessionIdentity: async () => ({ + userId: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }), }); await manager.createSession(credentialFor(WORKSPACE_A), WORKSPACE_A); await makeManager().createSession(credentialFor(WORKSPACE_B), WORKSPACE_B); @@ -916,6 +1099,11 @@ describe("the file-backed TokenStorage", () => { ); expect(record).toMatchObject({ name: "Workspace A", + user: { + id: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }, token: rotated, refreshToken: "refresh-2", expiresAt: new Date(2_000_000_000 * 1000).toISOString(), diff --git a/packages/cli/tests/golden-rendering.test.ts b/packages/cli/tests/golden-rendering.test.ts index 54efae09..41242ddf 100644 --- a/packages/cli/tests/golden-rendering.test.ts +++ b/packages/cli/tests/golden-rendering.test.ts @@ -30,7 +30,11 @@ function record(workspaceId: string, workspaceName: string): SessionRecord { workspaceId, workspaceName, credential: { - token: mintTestJwt({ workspace_id: workspaceId }), + token: mintTestJwt({ + workspace_id: workspaceId, + sub: `usr_${workspaceId}`, + email: `${workspaceId}@example.com`, + }), refreshToken: `refresh_${workspaceId}`, expiresAt: undefined, }, @@ -112,11 +116,16 @@ describe("golden rendering", () => { expect(result.stderr).toBe( "ℹ Listing your workspace sessions on this machine.\n" + "\n" + - "Name Id Status\n" + - "Acme Inc ws_1 current\n" + - "Globex ws_2 \u2014\n", + "Workspace User Id Status\n" + + "Acme Inc ws_1@example.com ws_1 current\n" + + "Globex ws_2@example.com ws_2 \u2014\n" + + "\n" + + "→ Authorize another workspace: prisma-cli auth login\n", + ); + expect(result.stdout).toBe( + "Acme Inc ws_1@example.com ws_1 current\n" + + "Globex ws_2@example.com ws_2\n", ); - expect(result.stdout).toBe("Acme Inc ws_1 current\nGlobex ws_2\n"); }); /** @@ -163,7 +172,7 @@ describe("golden rendering", () => { expect(result.exitCode).toBe(2); expect(result.stderr).toBe( "✘ [AUTH.WORKSPACE_AMBIGUOUS] More than one workspace session is named 'Acme Inc'.\n" + - " why: Matching workspaces: ws_1, ws_9.\n" + + " why: Matching sessions: ws_1 (ws_1@example.com), ws_9 (ws_9@example.com).\n" + "→ List your workspace sessions and pass a workspace id: prisma-cli auth workspace list\n", ); expect(result.stdout).toBe(""); @@ -207,9 +216,11 @@ describe("golden rendering", () => { expect(result.stderr).toBe( "\u001b[34m\u2139\u001b[39m Listing your workspace sessions on this machine.\n" + "\n" + - "\u001b[36mName \u001b[39m \u001b[36mId \u001b[39m \u001b[36mStatus\u001b[39m\n" + - "Acme Inc ws_1 current\n" + - "Globex ws_2 \u2014\n", + "\u001b[36mWorkspace\u001b[39m \u001b[36mUser \u001b[39m \u001b[36mId \u001b[39m \u001b[36mStatus\u001b[39m\n" + + "Acme Inc ws_1@example.com ws_1 current\n" + + "Globex ws_2@example.com ws_2 \u2014\n" + + "\n" + + "\u001b[36m→\u001b[39m Authorize another workspace: \u001b[36mprisma-cli auth login\u001b[39m\n", ); }); }); diff --git a/packages/cli/tests/session-metadata.test.ts b/packages/cli/tests/session-metadata.test.ts new file mode 100644 index 00000000..1037808a --- /dev/null +++ b/packages/cli/tests/session-metadata.test.ts @@ -0,0 +1,45 @@ +import { afterEach, describe, expect, it } from "vitest"; + +import { + fetchSessionIdentity, + fetchWorkspaceName, +} from "../src/auth/session-metadata"; +import { + FAKE_WORKSPACE_ID, + type FakeManagementApi, + startFakeManagementApi, +} from "./helpers/fake-management-api"; + +const CREDENTIAL = { + token: "test-access-token", + refreshToken: undefined, + expiresAt: undefined, +}; + +let api: FakeManagementApi | undefined; + +afterEach(async () => { + await api?.close(); + api = undefined; +}); + +describe("login session metadata", () => { + it("resolves the workspace name and authorizing account through the API", async () => { + api = await startFakeManagementApi(); + + const [workspaceName, identity] = await Promise.all([ + fetchWorkspaceName(api.baseUrl)(CREDENTIAL, FAKE_WORKSPACE_ID), + fetchSessionIdentity(api.baseUrl)(CREDENTIAL, FAKE_WORKSPACE_ID), + ]); + + expect(workspaceName).toBe("Acme Inc"); + expect(identity).toEqual({ + userId: "usr_456", + email: "dev@example.com", + name: "Dev", + }); + expect([...api.requests].sort()).toEqual( + [`GET /v1/me`, `GET /v1/workspaces/${FAKE_WORKSPACE_ID}`].sort(), + ); + }); +}); From e627c95b6b6262c2f431c7c182b298026057519c Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Wed, 19 Aug 2026 14:15:43 +0530 Subject: [PATCH 02/12] refactor(auth): keep account metadata CLI-local Signed-off-by: Aman Varshney --- packages/cli-engine/src/credential-manager.ts | 15 +---- .../src/environment-credential-manager.ts | 4 -- .../src/in-memory-credential-manager.ts | 5 -- .../tests/credential-manager.test.ts | 10 ---- packages/cli-engine/tests/engine.type-test.ts | 1 - .../cli-engine/tests/management-api.test.ts | 2 - packages/cli/src/auth/credential-manager.ts | 60 ++++++++++++++++--- packages/cli/src/commands/auth/session-ref.ts | 5 +- .../cli/src/commands/auth/workspace-list.ts | 3 +- .../cli/src/commands/auth/workspace-logout.ts | 3 +- .../cli/src/commands/auth/workspace-use.ts | 3 +- packages/cli/tests/auth.test.ts | 15 +++-- packages/cli/tests/golden-rendering.test.ts | 7 ++- .../account-aware-credential-manager.ts | 59 ++++++++++++++++++ 14 files changed, 140 insertions(+), 52 deletions(-) create mode 100644 packages/cli/tests/helpers/account-aware-credential-manager.ts diff --git a/packages/cli-engine/src/credential-manager.ts b/packages/cli-engine/src/credential-manager.ts index 665469c3..1405b200 100644 --- a/packages/cli-engine/src/credential-manager.ts +++ b/packages/cli-engine/src/credential-manager.ts @@ -26,10 +26,6 @@ export interface Credential { export interface Session { readonly workspaceId: string; readonly workspaceName: string | undefined; - /** Who authorized this workspace session. A persistent manager may enrich - * this from the account API and fall back to credential claims. It contains - * no token material and may be absent for workspace-only credentials. */ - readonly identity: CredentialIdentity | undefined; /** The stored ACCESS TOKEN's expiry, which rotation changes — not a * deadline on the logged-in-ness. */ readonly expiresAt: Date | undefined; @@ -109,18 +105,13 @@ export interface CredentialManager { /** The stored sessions and the selection, read fresh. Local-only. */ sessions(): Promise; - /** Best-effort remote enrichment for session display metadata. Persistent - * managers may cache safe account details; failure still returns the local - * sessions. Commands opt into this explicitly so normal reads stay local. */ - enrichSessions(): Promise; - /** * Login's write. The caller names the workspace that identifies the * session; for workspace-bound credentials the manager verifies the * workspace_id claim matches and refuses on mismatch. Upserts by - * workspaceId and selects it. The workspace name and safe user identity are - * fetched best-effort after the write — failure leaves either undefined and - * never fails login. + * workspaceId and selects it. The workspace name is fetched + * best-effort after the write — failure leaves it undefined, never + * fails login. */ createSession(credential: Credential, workspaceId: string): Promise; diff --git a/packages/cli-engine/src/environment-credential-manager.ts b/packages/cli-engine/src/environment-credential-manager.ts index 23653203..dedd1db2 100644 --- a/packages/cli-engine/src/environment-credential-manager.ts +++ b/packages/cli-engine/src/environment-credential-manager.ts @@ -76,10 +76,6 @@ export class EnvironmentCredentialManager implements CredentialManager { return { sessions: [], selectedWorkspaceId: undefined }; } - async enrichSessions(): Promise { - return this.sessions(); - } - async createSession( _credential: Credential, _workspaceId: string, diff --git a/packages/cli-engine/src/in-memory-credential-manager.ts b/packages/cli-engine/src/in-memory-credential-manager.ts index 9b26b34f..81b973c0 100644 --- a/packages/cli-engine/src/in-memory-credential-manager.ts +++ b/packages/cli-engine/src/in-memory-credential-manager.ts @@ -85,7 +85,6 @@ function asSession(record: SessionRecord): Session { return { workspaceId: record.workspaceId, workspaceName: record.workspaceName, - identity: claimedIdentity(record.credential.token), expiresAt: record.credential.expiresAt, }; } @@ -235,10 +234,6 @@ export class InMemoryCredentialManager implements CredentialManager { }; } - async enrichSessions(): Promise { - return this.sessions(); - } - async createSession( credential: Credential, workspaceId: string, diff --git a/packages/cli-engine/tests/credential-manager.test.ts b/packages/cli-engine/tests/credential-manager.test.ts index 861b07b8..d7050a88 100644 --- a/packages/cli-engine/tests/credential-manager.test.ts +++ b/packages/cli-engine/tests/credential-manager.test.ts @@ -442,11 +442,6 @@ describe("session mutations and state read-back", () => { expect(selected).toEqual({ workspaceId: "workspace-2", workspaceName: undefined, - identity: { - userId: "user-1", - email: undefined, - name: undefined, - }, expiresAt: undefined, }); expect(manager.state().selectedWorkspaceId).toBe("workspace-2"); @@ -512,11 +507,6 @@ describe("session mutations and state read-back", () => { { workspaceId: "workspace-1", workspaceName: undefined, - identity: { - userId: "user-1", - email: undefined, - name: undefined, - }, expiresAt: undefined, }, ], diff --git a/packages/cli-engine/tests/engine.type-test.ts b/packages/cli-engine/tests/engine.type-test.ts index c108fe1f..86d31a60 100644 --- a/packages/cli-engine/tests/engine.type-test.ts +++ b/packages/cli-engine/tests/engine.type-test.ts @@ -571,7 +571,6 @@ export const unmanagedIsUndeclared: false = unmanagedCommand.managesCredentials; export const sessionHasNoTokenMaterial: | "workspaceId" | "workspaceName" - | "identity" | "expiresAt" = undefined as unknown as keyof Session; export const activeCredentialHasNoTokenMaterial: diff --git a/packages/cli-engine/tests/management-api.test.ts b/packages/cli-engine/tests/management-api.test.ts index 16773dc1..224e89cf 100644 --- a/packages/cli-engine/tests/management-api.test.ts +++ b/packages/cli-engine/tests/management-api.test.ts @@ -51,7 +51,6 @@ function fakeCredentialManager( return { activeCredential: unusedManagerMethod("activeCredential"), sessions: unusedManagerMethod("sessions"), - enrichSessions: unusedManagerMethod("enrichSessions"), createSession: unusedManagerMethod("createSession"), selectSession: unusedManagerMethod("selectSession"), endSession: unusedManagerMethod("endSession"), @@ -74,7 +73,6 @@ const storedSessions = (...workspaceIds: readonly string[]) => ({ sessions: workspaceIds.map((workspaceId) => ({ workspaceId, workspaceName: undefined, - identity: undefined, expiresAt: undefined, })), selectedWorkspaceId: workspaceIds[0], diff --git a/packages/cli/src/auth/credential-manager.ts b/packages/cli/src/auth/credential-manager.ts index e151538e..d8f60ba7 100644 --- a/packages/cli/src/auth/credential-manager.ts +++ b/packages/cli/src/auth/credential-manager.ts @@ -8,7 +8,6 @@ import type { CredentialManager, CredentialRefresher, Session, - StoredSessions, TokenStorage, } from "@prisma/cli-engine"; import { @@ -59,6 +58,53 @@ export type FetchSessionIdentity = ( workspaceId: string, ) => Promise; +export type AccountSession = Session & { + readonly identity: CredentialIdentity | undefined; +}; + +export interface AccountStoredSessions { + readonly sessions: readonly AccountSession[]; + readonly selectedWorkspaceId: string | undefined; +} + +interface AccountAwareCredentialManager extends CredentialManager { + enrichSessions(): Promise; +} + +/** Session display metadata is a CLI concern, not part of the shared engine + * contract. FileCredentialManager provides it; other managers degrade to the + * standard local session shape without inventing an account identity. */ +export async function sessionsForDisplay( + manager: CredentialManager, +): Promise { + if (isAccountAwareCredentialManager(manager)) { + return manager.enrichSessions(); + } + const stored = await manager.sessions(); + return { + sessions: stored.sessions.map(asAccountSession), + selectedWorkspaceId: stored.selectedWorkspaceId, + }; +} + +export function sessionIdentity( + session: Session, +): CredentialIdentity | undefined { + return normalizedIdentity( + Reflect.get(session, "identity") as CredentialIdentity | undefined, + ); +} + +function isAccountAwareCredentialManager( + manager: CredentialManager, +): manager is AccountAwareCredentialManager { + return typeof Reflect.get(manager, "enrichSessions") === "function"; +} + +function asAccountSession(session: Session): AccountSession { + return { ...session, identity: sessionIdentity(session) }; +} + export interface FileCredentialManagerOptions { readonly env: Readonly>; readonly fetchWorkspaceName?: FetchWorkspaceName; @@ -171,12 +217,12 @@ export class FileCredentialManager implements CredentialManager { return storedCredential(record); } - async sessions(): Promise { + async sessions(): Promise { const state = await readCredentialState(this.#filePath); return storedSessions(state); } - async enrichSessions(): Promise { + async enrichSessions(): Promise { if (this.#fetchSessionIdentity === undefined) return this.sessions(); const state = await readCredentialState(this.#filePath); const candidates = state.sessions.filter( @@ -229,7 +275,7 @@ export class FileCredentialManager implements CredentialManager { async createSession( credential: Credential, workspaceId: string, - ): Promise { + ): Promise { const environmentInForce = this.#environmentToken() !== undefined; const claimed = credentialWorkspaceId(credential.token); if (claimed !== undefined && claimed !== workspaceId) { @@ -296,7 +342,7 @@ export class FileCredentialManager implements CredentialManager { }); } - async selectSession(workspaceId: string): Promise { + async selectSession(workspaceId: string): Promise { const environmentInForce = this.#environmentToken() !== undefined; const selected = await this.#mutate((state) => { @@ -685,14 +731,14 @@ function resolvedMarker(state: CredentialState): string | null { return null; } -function storedSessions(state: CredentialState): StoredSessions { +function storedSessions(state: CredentialState): AccountStoredSessions { return { sessions: state.sessions.map((record) => toSession(record)), selectedWorkspaceId: resolvedMarker(state) ?? undefined, }; } -function toSession(record: StoredSession): Session { +function toSession(record: StoredSession): AccountSession { return { workspaceId: record.workspaceId, workspaceName: record.name, diff --git a/packages/cli/src/commands/auth/session-ref.ts b/packages/cli/src/commands/auth/session-ref.ts index ef737e78..7d3ce478 100644 --- a/packages/cli/src/commands/auth/session-ref.ts +++ b/packages/cli/src/commands/auth/session-ref.ts @@ -8,6 +8,7 @@ */ import { noSessionForWorkspaceError, type Session } from "@prisma/cli-engine"; import { CliStructuredError } from "@prisma/cli-engine/protocol"; +import { sessionIdentity } from "../../auth/credential-manager"; import { CLI_NAME } from "../../cli-name"; export type SessionRefResolution = @@ -23,7 +24,7 @@ export interface SessionUser { /** The safe identity fields a command may expose for a stored session. */ export function sessionUser(session: Session): SessionUser | null { - const identity = session.identity; + const identity = sessionIdentity(session); if (identity === undefined) return null; return { id: identity.userId ?? null, @@ -34,7 +35,7 @@ export function sessionUser(session: Session): SessionUser | null { /** The shortest useful human identity for a workspace session. */ export function sessionUserLabel(session: Session): string | undefined { - const identity = session.identity; + const identity = sessionIdentity(session); return identity?.email ?? identity?.name ?? identity?.userId; } diff --git a/packages/cli/src/commands/auth/workspace-list.ts b/packages/cli/src/commands/auth/workspace-list.ts index f1f13b00..30a8c07b 100644 --- a/packages/cli/src/commands/auth/workspace-list.ts +++ b/packages/cli/src/commands/auth/workspace-list.ts @@ -5,6 +5,7 @@ import { type Session, } from "@prisma/cli-engine"; import { type NextAction, ok } from "@prisma/cli-engine/protocol"; +import { sessionsForDisplay } from "../../auth/credential-manager"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; @@ -96,7 +97,7 @@ export const authWorkspaceListCommand = defineCommand({ examples: ["auth workspace list", "auth workspace list --json"], }, handler: async (_args, ctx) => { - const stored = await ctx.credentialManager.enrichSessions(); + const stored = await sessionsForDisplay(ctx.credentialManager); const result: WorkspaceListResult = { sessions: stored.sessions, selectedWorkspaceId: stored.selectedWorkspaceId, diff --git a/packages/cli/src/commands/auth/workspace-logout.ts b/packages/cli/src/commands/auth/workspace-logout.ts index 495303fa..153d90c6 100644 --- a/packages/cli/src/commands/auth/workspace-logout.ts +++ b/packages/cli/src/commands/auth/workspace-logout.ts @@ -5,6 +5,7 @@ import { positional, } from "@prisma/cli-engine"; import { ok } from "@prisma/cli-engine/protocol"; +import { sessionsForDisplay } from "../../auth/credential-manager"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; @@ -96,7 +97,7 @@ export const authWorkspaceLogoutCommand = defineCommand({ examples: ["auth workspace logout my-workspace"], }, handler: async (args, ctx) => { - const stored = await ctx.credentialManager.enrichSessions(); + const stored = await sessionsForDisplay(ctx.credentialManager); const session = requireSession(stored.sessions, args.positionals.workspace); const wasSelected = session.workspaceId === stored.selectedWorkspaceId; await ctx.credentialManager.endSession(session.workspaceId); diff --git a/packages/cli/src/commands/auth/workspace-use.ts b/packages/cli/src/commands/auth/workspace-use.ts index d42ce4ac..4b0a0780 100644 --- a/packages/cli/src/commands/auth/workspace-use.ts +++ b/packages/cli/src/commands/auth/workspace-use.ts @@ -8,6 +8,7 @@ import { type StoredSessions, } from "@prisma/cli-engine"; import { CliStructuredError, ok } from "@prisma/cli-engine/protocol"; +import { sessionsForDisplay } from "../../auth/credential-manager"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; @@ -113,7 +114,7 @@ export const authWorkspaceUseCommand = defineCommand({ examples: ["auth workspace use", "auth workspace use my-workspace"], }, handler: async (args, ctx) => { - const stored = await ctx.credentialManager.enrichSessions(); + const stored = await sessionsForDisplay(ctx.credentialManager); if (stored.sessions.length === 0) { throw noWorkspaceSessionsError(); } diff --git a/packages/cli/tests/auth.test.ts b/packages/cli/tests/auth.test.ts index 45a22250..52184979 100644 --- a/packages/cli/tests/auth.test.ts +++ b/packages/cli/tests/auth.test.ts @@ -11,7 +11,6 @@ import { type Credential, defineCommand, type ManagementApiClient, - type Session, } from "@prisma/cli-engine"; import { ok } from "@prisma/cli-engine/protocol"; import { @@ -20,7 +19,7 @@ import { type SessionRecord, } from "@prisma/cli-engine/testing"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; - +import type { AccountSession } from "../src/auth/credential-manager"; import { performLogin, storeLegacyCredential } from "../src/auth/operations"; import { authLoginCommand } from "../src/commands/auth/login"; import { authLogoutCommand } from "../src/commands/auth/logout"; @@ -28,6 +27,7 @@ import { authWhoamiCommand } from "../src/commands/auth/whoami"; import { authWorkspaceListCommand } from "../src/commands/auth/workspace-list"; import { authWorkspaceLogoutCommand } from "../src/commands/auth/workspace-logout"; import { authWorkspaceUseCommand } from "../src/commands/auth/workspace-use"; +import { attachAccountMetadata } from "./helpers/account-aware-credential-manager"; vi.mock("../src/auth/operations", async (importOriginal) => ({ ...(await importOriginal()), @@ -113,10 +113,11 @@ function makeCli(spec?: { readonly client?: ManagementApiClient; readonly openUrl?: (url: string) => void; }) { - return createTestCli({ + const sessions = spec?.sessions ?? []; + const cli = createTestCli({ commands: COMMANDS, groups: GROUPS, - sessions: spec?.sessions ?? [], + sessions, selectedWorkspaceId: spec?.selectedWorkspaceId, environmentCredential: spec?.environmentToken === undefined @@ -126,6 +127,10 @@ function makeCli(spec?: { openUrl: spec?.openUrl, now: () => new Date(0), }); + if (cli.credentialManager !== undefined) { + attachAccountMetadata(cli.credentialManager, sessions); + } + return cli; } type ResultFrame = { @@ -1023,7 +1028,7 @@ describe("the shapes the commands hand back", () => { }); it("exposes no token on the shapes the commands see", () => { - const session: Session = { + const session: AccountSession = { workspaceId: "ws_1", workspaceName: "Acme Inc", identity: { diff --git a/packages/cli/tests/golden-rendering.test.ts b/packages/cli/tests/golden-rendering.test.ts index 41242ddf..a416e562 100644 --- a/packages/cli/tests/golden-rendering.test.ts +++ b/packages/cli/tests/golden-rendering.test.ts @@ -24,6 +24,7 @@ import { authLogoutCommand } from "../src/commands/auth/logout"; import { authWorkspaceListCommand } from "../src/commands/auth/workspace-list"; import { authWorkspaceLogoutCommand } from "../src/commands/auth/workspace-logout"; import { bucketKeyCreateCommand } from "../src/commands/bucket/key-create"; +import { attachAccountMetadata } from "./helpers/account-aware-credential-manager"; function record(workspaceId: string, workspaceName: string): SessionRecord { return { @@ -46,7 +47,7 @@ function makeCli( current?: string, client?: ManagementApiClient, ) { - return createTestCli({ + const cli = createTestCli({ commands: { "auth logout": authLogoutCommand, "auth workspace list": authWorkspaceListCommand, @@ -64,6 +65,10 @@ function makeCli( ...(client === undefined ? {} : { managementApi: { client } }), now: () => new Date(0), }); + if (cli.credentialManager !== undefined) { + attachAccountMetadata(cli.credentialManager, sessions); + } + return cli; } const CREATED_KEY = { diff --git a/packages/cli/tests/helpers/account-aware-credential-manager.ts b/packages/cli/tests/helpers/account-aware-credential-manager.ts new file mode 100644 index 00000000..a5e291c6 --- /dev/null +++ b/packages/cli/tests/helpers/account-aware-credential-manager.ts @@ -0,0 +1,59 @@ +import { + type CredentialManager, + claimedIdentity, + type Session, +} from "@prisma/cli-engine"; +import type { SessionRecord } from "@prisma/cli-engine/testing"; + +import type { AccountStoredSessions } from "../../src/auth/credential-manager"; + +/** The engine test manager deliberately models only the shared session + * contract. CLI auth tests add this package-local display capability to match + * FileCredentialManager without expanding the published engine API. */ +export function attachAccountMetadata( + manager: CredentialManager, + records: readonly SessionRecord[], +): void { + const identities = new Map( + records.map((record) => [ + record.workspaceId, + claimedIdentity(record.credential.token), + ]), + ); + const sessions = manager.sessions.bind(manager); + const createSession = manager.createSession.bind(manager); + const selectSession = manager.selectSession.bind(manager); + + Object.assign(manager, { + enrichSessions: async (): Promise => { + const stored = await sessions(); + return { + sessions: stored.sessions.map((session) => + withIdentity(session, identities.get(session.workspaceId)), + ), + selectedWorkspaceId: stored.selectedWorkspaceId, + }; + }, + createSession: async ( + ...args: Parameters + ) => { + const session = await createSession(...args); + const identity = claimedIdentity(args[0].token); + identities.set(args[1], identity); + return withIdentity(session, identity); + }, + selectSession: async ( + ...args: Parameters + ) => { + const session = await selectSession(...args); + return withIdentity(session, identities.get(session.workspaceId)); + }, + }); +} + +function withIdentity( + session: Session, + identity: ReturnType, +) { + return { ...session, identity }; +} From 249cead302208dfdda25651f75abc7da3981aebe Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Mon, 14 Sep 2026 23:52:55 +0530 Subject: [PATCH 03/12] fix(auth): return the current session after metadata lookup Signed-off-by: Aman Varshney --- docs/product/output-conventions.md | 5 ++ packages/cli/src/auth/credential-manager.ts | 14 +++-- packages/cli/tests/credential-manager.test.ts | 58 ++++++++++++------- 3 files changed, 51 insertions(+), 26 deletions(-) diff --git a/docs/product/output-conventions.md b/docs/product/output-conventions.md index 42ee7a72..7cf3fc96 100644 --- a/docs/product/output-conventions.md +++ b/docs/product/output-conventions.md @@ -201,6 +201,11 @@ enrichment for older records and cache successful results. This is an explicit best-effort operation; the credential manager's ordinary `sessions()` read remains local-only. +Metadata lookups must not overwrite a session replaced during the lookup. +Login returns the session still stored when the lookup finishes, even when no +metadata was found. If another process ended that session, login reports the +existing session-ended `CLI.CREDENTIALS_REQUIRED` error instead of success. + Human workspace-session output shows the user email next to every workspace when one is known. Selection prompts use the same identity so a user can distinguish same-named workspaces and sessions belonging to different diff --git a/packages/cli/src/auth/credential-manager.ts b/packages/cli/src/auth/credential-manager.ts index d8f60ba7..16495ba9 100644 --- a/packages/cli/src/auth/credential-manager.ts +++ b/packages/cli/src/auth/credential-manager.ts @@ -282,7 +282,7 @@ export class FileCredentialManager implements CredentialManager { throw credentialWorkspaceMismatchError(workspaceId); } - const created = await this.#mutate((state) => { + await this.#mutate((state) => { const existing = state.sessions.find( (session) => session.workspaceId === workspaceId, ); @@ -316,16 +316,20 @@ export class FileCredentialManager implements CredentialManager { this.#lookUpWorkspaceName(credential, workspaceId), this.#lookUpSessionIdentity(credential, workspaceId), ]); - if (name === undefined && identity === undefined) return created; - return this.#mutate((state) => { const record = state.sessions.find( (session) => session.workspaceId === workspaceId, ); // Lookups happen outside the lock. Do not attach their result to a // credential that another process saved for this workspace meanwhile. - if (record === undefined || record.token !== credential.token) { - return { result: created }; + if (record === undefined) { + throw credentialsRequiredError("session-ended"); + } + if ( + record.token !== credential.token || + (name === undefined && identity === undefined) + ) { + return { result: toSession(record) }; } const enriched: StoredSession = { ...record, diff --git a/packages/cli/tests/credential-manager.test.ts b/packages/cli/tests/credential-manager.test.ts index b7fe2c3d..9bc5a861 100644 --- a/packages/cli/tests/credential-manager.test.ts +++ b/packages/cli/tests/credential-manager.test.ts @@ -919,31 +919,45 @@ describe("createSession", () => { expect(session.workspaceName).toBeUndefined(); }); - it("does not resurrect a record ended while the name was fetched", async () => { + it.each([ + true, + false, + ])("rejects login ended during lookup (metadata returned: %s)", async (hasMetadata) => { let releaseFetch: () => void = () => {}; + let markFetchStarted: () => void = () => {}; const fetchStarted = new Promise((resolve) => { - const manager = makeManager({ - fetchWorkspaceName: async () => { - resolve(); - await new Promise((done) => { - releaseFetch = done; - }); - return "Workspace A"; - }, - }); - void manager.createSession(credentialFor(WORKSPACE_A), WORKSPACE_A); + markFetchStarted = resolve; + }); + const manager = makeManager({ + fetchWorkspaceName: async () => { + markFetchStarted(); + await new Promise((done) => { + releaseFetch = done; + }); + return hasMetadata ? "Workspace A" : undefined; + }, + }); + const login = manager.createSession( + credentialFor(WORKSPACE_A), + WORKSPACE_A, + ); + const rejected = expect(login).rejects.toMatchObject({ + code: "CLI.CREDENTIALS_REQUIRED", + message: "The workspace session this command was using has ended.", }); await fetchStarted; await makeManager().endSession(WORKSPACE_A); releaseFetch(); - await vi.waitFor(async () => { - expect((await readCredentialState(stateFilePath)).sessions).toEqual([]); - }); + await rejected; + expect((await readCredentialState(stateFilePath)).sessions).toEqual([]); }); - it("does not attach stale account metadata to a concurrently replaced session", async () => { + it.each([ + true, + false, + ])("returns the concurrently replaced session (metadata returned: %s)", async (hasMetadata) => { let releaseFetch: () => void = () => {}; let markFetchStarted: () => void = () => {}; const fetchStarted = new Promise((resolve) => { @@ -955,11 +969,13 @@ describe("createSession", () => { await new Promise((resolve) => { releaseFetch = resolve; }); - return { - userId: "usr_first", - email: "first@example.com", - name: undefined, - }; + return hasMetadata + ? { + userId: "usr_first", + email: "first@example.com", + name: undefined, + } + : undefined; }, }); const firstLogin = first.createSession( @@ -981,7 +997,7 @@ describe("createSession", () => { WORKSPACE_A, ); releaseFetch(); - await firstLogin; + expect((await firstLogin).identity?.userId).toBe("user:second"); const state = await readCredentialState(stateFilePath); expect(state.sessions[0]).toMatchObject({ refreshToken: "refresh-second" }); From 16be11fb1f79d7dfd7c9af0ca7ff1f368369b7e3 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Wed, 16 Sep 2026 20:38:14 +0530 Subject: [PATCH 04/12] refactor(auth): trim session metadata plumbing and bound lookups Signed-off-by: Aman Varshney --- docs/product/output-conventions.md | 3 +- packages/cli/src/auth/credential-manager.ts | 49 ++++--------------- packages/cli/src/auth/session-metadata.ts | 33 +++++++------ .../cli/src/commands/auth/workspace-list.ts | 28 +++++------ packages/cli/tests/auth.test.ts | 28 ----------- packages/cli/tests/credential-manager.test.ts | 16 +++--- packages/cli/tests/session-metadata.test.ts | 2 +- 7 files changed, 47 insertions(+), 112 deletions(-) diff --git a/docs/product/output-conventions.md b/docs/product/output-conventions.md index 7cf3fc96..3fafd7eb 100644 --- a/docs/product/output-conventions.md +++ b/docs/product/output-conventions.md @@ -194,7 +194,8 @@ complete list of workspaces visible in Console for the currently selected user. At login, the CLI resolves the authorizing user through `/v1/me` and persists only its safe id, email, and name alongside the session. This lookup is -best-effort and never prevents login. Existing state remains compatible; when +best-effort; both account and workspace-name requests time out after three +seconds without failing login. Existing state remains compatible; when stored metadata is unavailable, the CLI falls back to identity claims in the access token. Session-list and session-selection commands also attempt this enrichment for older records and cache successful results. This is an explicit diff --git a/packages/cli/src/auth/credential-manager.ts b/packages/cli/src/auth/credential-manager.ts index 16495ba9..d4991b6c 100644 --- a/packages/cli/src/auth/credential-manager.ts +++ b/packages/cli/src/auth/credential-manager.ts @@ -8,6 +8,7 @@ import type { CredentialManager, CredentialRefresher, Session, + StoredSessions, TokenStorage, } from "@prisma/cli-engine"; import { @@ -54,8 +55,7 @@ export type FetchWorkspaceName = ( /** Looks up safe account metadata for the credential that was just minted. * Best-effort: a failed lookup never prevents the session from being saved. */ export type FetchSessionIdentity = ( - credential: Credential, - workspaceId: string, + credential: Pick, ) => Promise; export type AccountSession = Session & { @@ -76,15 +76,11 @@ interface AccountAwareCredentialManager extends CredentialManager { * standard local session shape without inventing an account identity. */ export async function sessionsForDisplay( manager: CredentialManager, -): Promise { +): Promise { if (isAccountAwareCredentialManager(manager)) { return manager.enrichSessions(); } - const stored = await manager.sessions(); - return { - sessions: stored.sessions.map(asAccountSession), - selectedWorkspaceId: stored.selectedWorkspaceId, - }; + return manager.sessions(); } export function sessionIdentity( @@ -101,10 +97,6 @@ function isAccountAwareCredentialManager( return typeof Reflect.get(manager, "enrichSessions") === "function"; } -function asAccountSession(session: Session): AccountSession { - return { ...session, identity: sessionIdentity(session) }; -} - export interface FileCredentialManagerOptions { readonly env: Readonly>; readonly fetchWorkspaceName?: FetchWorkspaceName; @@ -234,10 +226,7 @@ export class FileCredentialManager implements CredentialManager { candidates.map(async (session) => ({ workspaceId: session.workspaceId, token: session.token, - identity: await this.#lookUpSessionIdentity( - storedSessionCredential(session), - session.workspaceId, - ), + identity: await this.#lookUpSessionIdentity(session), })), ); const byWorkspaceId = new Map( @@ -305,7 +294,7 @@ export class FileCredentialManager implements CredentialManager { ], currentWorkspaceId: workspaceId, }; - return { state: next, result: toSession(record) }; + return { state: next, result: undefined }; }); if (!environmentInForce) { @@ -314,7 +303,7 @@ export class FileCredentialManager implements CredentialManager { const [name, identity] = await Promise.all([ this.#lookUpWorkspaceName(credential, workspaceId), - this.#lookUpSessionIdentity(credential, workspaceId), + this.#lookUpSessionIdentity(credential), ]); return this.#mutate((state) => { const record = state.sessions.find( @@ -482,7 +471,7 @@ export class FileCredentialManager implements CredentialManager { const rotated: StoredSession = { workspaceId: record.workspaceId, ...(record.name === undefined ? {} : { name: record.name }), - ...storedUserSlice(record.user), + user: record.user, token: tokens.accessToken, ...(tokens.refreshToken === undefined ? {} @@ -644,14 +633,11 @@ export class FileCredentialManager implements CredentialManager { } async #lookUpSessionIdentity( - credential: Credential, - workspaceId: string, + credential: Pick, ): Promise { if (this.#fetchSessionIdentity === undefined) return undefined; try { - return normalizedIdentity( - await this.#fetchSessionIdentity(credential, workspaceId), - ); + return normalizedIdentity(await this.#fetchSessionIdentity(credential)); } catch { return undefined; } @@ -713,15 +699,6 @@ function expiresAtSlice( return expiresAt === undefined ? {} : { expiresAt: expiresAt.toISOString() }; } -function storedSessionCredential(record: StoredSession): Credential { - return { - token: record.token, - refreshToken: record.refreshToken, - expiresAt: - record.expiresAt === undefined ? undefined : new Date(record.expiresAt), - }; -} - /** The selection the manager will admit to: one that names a stored * session, or none. A dangling selection never escapes. */ function resolvedMarker(state: CredentialState): string | null { @@ -778,12 +755,6 @@ function storedUser(identity: CredentialIdentity): StoredSessionUser { }; } -function storedUserSlice(user: StoredSessionUser | undefined): { - user?: StoredSessionUser; -} { - return user === undefined ? {} : { user }; -} - function normalizedIdentity( identity: CredentialIdentity | undefined, ): CredentialIdentity | undefined { diff --git a/packages/cli/src/auth/session-metadata.ts b/packages/cli/src/auth/session-metadata.ts index 652f565a..4e06c577 100644 --- a/packages/cli/src/auth/session-metadata.ts +++ b/packages/cli/src/auth/session-metadata.ts @@ -4,20 +4,20 @@ import type { FetchWorkspaceName, } from "./credential-manager"; -const IDENTITY_LOOKUP_TIMEOUT_MS = 3_000; - -function clientFor(apiBaseUrl: string, token: string) { - return createManagementApiClient({ baseUrl: apiBaseUrl, token }); -} +const METADATA_LOOKUP_TIMEOUT_MS = 3_000; /** Resolve the human workspace name with the workspace-bound credential that * was just minted. The credential manager treats this as best-effort. */ export function fetchWorkspaceName(apiBaseUrl: string): FetchWorkspaceName { return async (credential, workspaceId) => { - const { data } = await clientFor(apiBaseUrl, credential.token).GET( - "/v1/workspaces/{id}", - { params: { path: { id: workspaceId } } }, - ); + const client = createManagementApiClient({ + baseUrl: apiBaseUrl, + token: credential.token, + }); + const { data } = await client.GET("/v1/workspaces/{id}", { + params: { path: { id: workspaceId } }, + signal: AbortSignal.timeout(METADATA_LOOKUP_TIMEOUT_MS), + }); const name = data?.data?.name; return typeof name === "string" && name.trim().length > 0 ? name.trim() @@ -25,15 +25,16 @@ export function fetchWorkspaceName(apiBaseUrl: string): FetchWorkspaceName { }; } -/** Resolve safe account metadata once at login. OAuth access tokens do not - * necessarily carry an email, so claims alone cannot distinguish sessions - * authorized by different Prisma accounts. */ +/** OAuth tokens do not necessarily carry an email; /v1/me identifies the user. */ export function fetchSessionIdentity(apiBaseUrl: string): FetchSessionIdentity { return async (credential) => { - const { data } = await clientFor(apiBaseUrl, credential.token).GET( - "/v1/me", - { signal: AbortSignal.timeout(IDENTITY_LOOKUP_TIMEOUT_MS) }, - ); + const client = createManagementApiClient({ + baseUrl: apiBaseUrl, + token: credential.token, + }); + const { data } = await client.GET("/v1/me", { + signal: AbortSignal.timeout(METADATA_LOOKUP_TIMEOUT_MS), + }); const user = data?.data?.user; if (!user) return undefined; return { diff --git a/packages/cli/src/commands/auth/workspace-list.ts b/packages/cli/src/commands/auth/workspace-list.ts index 517ec82f..72651c5e 100644 --- a/packages/cli/src/commands/auth/workspace-list.ts +++ b/packages/cli/src/commands/auth/workspace-list.ts @@ -4,25 +4,13 @@ import { type Presentations, type Session, } from "@prisma/cli-engine"; -import { type NextAction, ok } from "@prisma/cli-engine/protocol"; +import { ok } from "@prisma/cli-engine/protocol"; import { sessionsForDisplay } from "../../auth/credential-manager"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; import { sessionLabel, sessionUser, sessionUserLabel } from "./session-ref"; -const LOGIN_NEXT_ACTION: NextAction = { - kind: "run-command", - label: "Authorize a workspace", - command: `${CLI_NAME} auth login`, -}; - -const AUTHORIZE_ANOTHER_NEXT_ACTION: NextAction = { - kind: "run-command", - label: "Authorize another workspace", - command: `${CLI_NAME} auth login`, -}; - export interface WorkspaceListResult { readonly sessions: readonly Session[]; readonly selectedWorkspaceId: string | undefined; @@ -83,10 +71,16 @@ function listPresentations(result: WorkspaceListResult): Presentations { ], stdout: () => rows.map((row) => row.join(" ").trimEnd()), json: () => serializeWorkspaceList(result), - next: () => - result.sessions.length === 0 - ? [LOGIN_NEXT_ACTION] - : [AUTHORIZE_ANOTHER_NEXT_ACTION], + next: () => [ + { + kind: "run-command", + label: + result.sessions.length === 0 + ? "Authorize a workspace" + : "Authorize another workspace", + command: `${CLI_NAME} auth login`, + }, + ], }; } diff --git a/packages/cli/tests/auth.test.ts b/packages/cli/tests/auth.test.ts index f15caa97..38dabebe 100644 --- a/packages/cli/tests/auth.test.ts +++ b/packages/cli/tests/auth.test.ts @@ -7,7 +7,6 @@ import { createServer, type Server } from "node:http"; import type { AddressInfo } from "node:net"; import { - type ActiveCredential, type Credential, defineCommand, type ManagementApiClient, @@ -19,7 +18,6 @@ import { type SessionRecord, } from "@prisma/cli-engine/testing"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import type { AccountSession } from "../src/auth/credential-manager"; import { performLogin, storeLegacyCredential } from "../src/auth/operations"; import { authLoginCommand } from "../src/commands/auth/login"; import { authLogoutCommand } from "../src/commands/auth/logout"; @@ -1026,30 +1024,4 @@ describe("the shapes the commands hand back", () => { expect(run.stderr).not.toContain(secret); } }); - - it("exposes no token on the shapes the commands see", () => { - const session: AccountSession = { - workspaceId: "ws_1", - workspaceName: "Acme Inc", - identity: { - userId: "usr_456", - email: "bob@example.com", - name: undefined, - }, - expiresAt: undefined, - }; - const active: ActiveCredential = { - workspaceId: "ws_1", - workspaceName: "Acme Inc", - expiresAt: undefined, - identity: { - userId: "usr_456", - email: "bob@example.com", - name: undefined, - }, - origin: { source: "stored" }, - }; - expect(Object.keys(session)).not.toContain("token"); - expect(Object.keys(active)).not.toContain("token"); - }); }); diff --git a/packages/cli/tests/credential-manager.test.ts b/packages/cli/tests/credential-manager.test.ts index 9bc5a861..370f370d 100644 --- a/packages/cli/tests/credential-manager.test.ts +++ b/packages/cli/tests/credential-manager.test.ts @@ -14,15 +14,14 @@ import fsPromises, { } from "node:fs/promises"; import os from "node:os"; import path from "node:path"; -import type { - CredentialIdentity, - CredentialRefresher, - TokenStorage, -} from "@prisma/cli-engine"; +import type { CredentialRefresher, TokenStorage } from "@prisma/cli-engine"; import { mintTestJwt } from "@prisma/cli-engine/testing"; import { beforeEach, describe, expect, it, vi } from "vitest"; -import { FileCredentialManager } from "../src/auth/credential-manager"; +import { + type FetchSessionIdentity, + FileCredentialManager, +} from "../src/auth/credential-manager"; import { readCredentialState } from "../src/auth/state-file"; import { getAuthContextFilePath } from "../src/auth/token-storage"; @@ -94,10 +93,7 @@ function makeManager( credential: { token: string }, workspaceId: string, ) => Promise; - fetchSessionIdentity?: ( - credential: { token: string }, - workspaceId: string, - ) => Promise; + fetchSessionIdentity?: FetchSessionIdentity; refreshCredential?: CredentialRefresher; debugWrite?: (text: string) => void; } = {}, diff --git a/packages/cli/tests/session-metadata.test.ts b/packages/cli/tests/session-metadata.test.ts index 1037808a..befccc99 100644 --- a/packages/cli/tests/session-metadata.test.ts +++ b/packages/cli/tests/session-metadata.test.ts @@ -29,7 +29,7 @@ describe("login session metadata", () => { const [workspaceName, identity] = await Promise.all([ fetchWorkspaceName(api.baseUrl)(CREDENTIAL, FAKE_WORKSPACE_ID), - fetchSessionIdentity(api.baseUrl)(CREDENTIAL, FAKE_WORKSPACE_ID), + fetchSessionIdentity(api.baseUrl)(CREDENTIAL), ]); expect(workspaceName).toBe("Acme Inc"); From ca845607b2ad70d5fc0cf577d38d90e93e9fcd26 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Wed, 16 Sep 2026 20:46:07 +0530 Subject: [PATCH 05/12] docs(auth): show account-aware workspace CLI screenshots Signed-off-by: Aman Varshney --- .../auth-workspace-sessions/workspace-list.png | Bin 0 -> 133044 bytes .../workspace-picker.png | Bin 0 -> 109039 bytes .../workspace-selected.png | Bin 0 -> 160957 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/auth-workspace-sessions/workspace-list.png create mode 100644 docs/assets/auth-workspace-sessions/workspace-picker.png create mode 100644 docs/assets/auth-workspace-sessions/workspace-selected.png diff --git a/docs/assets/auth-workspace-sessions/workspace-list.png b/docs/assets/auth-workspace-sessions/workspace-list.png new file mode 100644 index 0000000000000000000000000000000000000000..8e11ec009ce09cab81b96a79983486154f95688f GIT binary patch literal 133044 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 &~m*E!$9>{Tb|+;Ct${mPt;X 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�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 literal 0 HcmV?d00001 diff --git a/docs/assets/auth-workspace-sessions/workspace-selected.png b/docs/assets/auth-workspace-sessions/workspace-selected.png new file mode 100644 index 0000000000000000000000000000000000000000..23dc94d65d4e0c21cc485211aa56f641452f9c2c GIT binary patch literal 160957 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%0D_s+m>OIiTs|4 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 literal 0 HcmV?d00001 From e73b17d9f092e572fb274bf0e6f8e1779d213899 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Wed, 16 Sep 2026 20:50:49 +0530 Subject: [PATCH 06/12] Revert "docs(auth): show account-aware workspace CLI screenshots" This reverts commit ca845607b2ad70d5fc0cf577d38d90e93e9fcd26. Signed-off-by: Aman Varshney --- .../auth-workspace-sessions/workspace-list.png | Bin 133044 -> 0 bytes .../workspace-picker.png | Bin 109039 -> 0 bytes .../workspace-selected.png | Bin 160957 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/assets/auth-workspace-sessions/workspace-list.png delete mode 100644 docs/assets/auth-workspace-sessions/workspace-picker.png delete mode 100644 docs/assets/auth-workspace-sessions/workspace-selected.png diff --git a/docs/assets/auth-workspace-sessions/workspace-list.png b/docs/assets/auth-workspace-sessions/workspace-list.png deleted file mode 100644 index 8e11ec009ce09cab81b96a79983486154f95688f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133044 zcmeEuXFyZi+9pjb2o_MJ2}h+#Q>uV8r9+So0U-#4UX%cl-c+OrN(sG437tqcbS(7V zLVysI4gsV_2xT^R=9{^C<~!s3zdu5fy>~Wit+%fCeV!ert))VHj`!&sji(|$k3#6nv6`IOifWi|2a7UciNW$y5GDJ z`r@j$>KV?n4e;DCau#tXV{LtY<3}><^;=rU@VvYQY{S<5KJ$Ev+dSeP*1_-u6>>uZyQ%yNl`=eubMLEwWxOvW3Hbv)cXUGX8EFlj9lqS z01ernPgx}}@J940nLnQNC-cC-tPf4606G5IBFQ)3l$U?k7JU5=g+NB}L`YsB6WG-N7v`}4^8E9xY?|Oy%l9)r>^RkyJQSFt(?q2RYHfp6g%~@3Rs@p$lX`w%txKz2b z;U449CS?awSHI=yx^y9!LJ+}b?Rw~KOBF|WPf&AIX1*XJOmYs7z!po?>qqrUlTE~Vetj9o~* znU~>(AWT(ha5c#32#W~cKE72rc8NvI;nu(aC|74jIVL`dvw*iFCMCh>Yp?LnJiR6b zN;Os0xKE!RsEs$8(Xsc^9VrwpMTVTd@UD7wTtneWkY>_B7 zCAn5@TIKE?eL=4>eyotTSNUucrwa`?Hq0@F#%CucG4YzMf9x0V;LxCTFJT?}b#tzFUp~$M@N~P^ zLWa=0ckf2a%#ZpsV*K(KSt(YnQ0yLEC0uWLTg>Bxntnd^2UmB4OV6>V?VnSZ;UH*u`7vq+dz&mPTCVb{s{6^kWrzLWGHq`Ub}P0qYtE)-@X8@! zPI!ZB+nP$rNsGoIVT7%rO*<(S1(WMZ;Z6+Zzi4-m+nHe$1hSlzArGplavIUqlAbw_ zt$dcPc}=c*Qh|#p^1Ov_;7Er^*p$Gp^EmOUxDe6_%!$oKd- zHwiu^(Q-E;;6SJGaG4ML!5>$aVJ$Ybwd`2BagIyM_nwNsFc-vsMZQILXpvV5`arFnvBg-uSX znBD7C*wmh3zY2+tEypTPu-s?;I+IOnX+StLZ9LAg+)G3HZ5KLSzERJS}j*M7j z6|nnF8`u!qUee4~Pq-%he4*&5xln4R879-`mzDHVuz_$cPv3jDB}CVPVwhRf$?g$k zc?FsP;q`F9RJXFVOIhqXYcI>5|G!0s{EzZKvK(&v3&smS%<8x$T5s^UKROpCTkTx| zgid|CHN{vpyPr!fU7pq%k-dAwuuCzOb^YcZny7cr#5f(av#rK!a?;#;yNQFj95PKg zPn>>}1y88Fzkg8ozCUuwU&&lAa-z^2W>$Y@)>sF+eLx>s&L#5FLeUu#CG z>5e0SD`wl@-Mq{)p_!E;9{=eRMUi{*I75;M9_3PL&t5CbqTlh!` z6RBde&|Tfn2MLI3Js`R$_GSBpMqM^Qr4!U2CA?t~e_dCZY}06uEsr;tzujYvQBxlm zWFiqs>8~mt4^eG@5p(@ZK$ALp5qa0`hdd$&iR|nhX8Wq{Eh!z}FL_-5zSoe}A?d#T zgEEU7Y?tV{BXty=rvpEo_ z=5|OcAq6v$j{l*8kJWNhPlMW6ch;j}voRV%0#Bm*T?_Tt6L&Nb&;7(dUp86ki7#&GYy+o{|ZQ92eRt( zwYURm?y40#Vf517ok@`jVQ6TXhSnz4G&&k{TUMbm^4m9p(@N6plnqgAtTf%L6l%-9 zo!mzB8=3BV@ntk??zGrGjJRf2?z}Q;NsO1xa2zd$3io(*vO7r1H+XDn?p2i7u;YyYz1G{h4k`!rO2nWLbV5S#Q2-zX@1>cX{XDaTV`t`1X zrWPH25i;aTtK-rsugpBrXJ?lz1RfpFTA{n+LCQwGDbkqz%SWFggknl@wWc%aKJ)f` zXWC8f1h^9>!OD>zd(Rq{VOEN$k2RC-s||uI-r+9O)6XGHT`R7NWyetS*-MJUrQgOw zS8D?B{%D&oXY6sUz8z~rHvYu4?&Q6+K9hIi&f}d=_0svdxR7Jj6!c?T8W;eY7eyScHry@=H-z2+aU zsHEh@X0AcgD;i{#D@ME6A9y=}IN#_;(zI{c;0pXI?NdP#*$>*|H}lx3;-W;rM;9Ro z!B~4exj4N?a%R2K0r|tS$pam-8HYA&HF)ob+gq~}+o{S^&tpZ!$U_o%SB zUNB#Y_}a(s`rae@hMXXcn1a(Ifk_?o+zd381J2B3d6@5g5<)_cWK(2uaRd@L^s3`$ z!3It0^Y_25--Rd2f7#%=3AV98V*D|0Snbhl;z^z9z6a~(6NHy6F7-OhVlGa>%ojR` zjt@c`OeWV?UX)qQjjy1Db{pBm$)AX5s(s~*2q@njYVH|;PcC&ofh*(Oig58wvYQ`< zP-aEdkG*ybv^pNxhAi3fc7gE$t`rouh!xmUdWh_=s@5DPbkUPsDa0!K;cn^jYjSzgFvQ(;8q1wKI(-XB z0uh%mX6#Sp4ug-=eb!?Wj&`!}kq@}jCQ)Mvi{9zUyw+blZi1*0l!k8u{npknus-R& z6-o2}`?&wp34Aw1dW7e(JzhIqF9rZa$sp<~NP@C?$ zb@k8Lx#-=!v)_5_k1bq=H1*!S`>Ijs*vc5t({S{3_X#+*wzI=#&b7WYLZaXk+E%3Bj( z=Y21*)1_9`>SVtXUY<7vJq=D*X| z_>;?KZK8YOdoCm71BDu4$6J$jt)fC3yRvH3FiN9&=iB?wSS{^{hLRjixG!Cw7`cvZ zs)u3o(nPg0A8``iR8N{uDR1+=zKR4tcM%T~W3Hb;*(+xN`KGh5#MgEpw^buv{Ee(7n*7GHcdaUtw4yuYIase(TrV_m>2`@6bljO(C)*Hy@iZ;FTD2o z$nZjLiOGANXZa9N|wYn+&qAupqD=ry!k6QaU?nKp+fJ9P= z!6yw39a`r5#+E5!6;q)pE{#1@R}LSY)9g^dBQqEeQ-1X4J~kxAQ< z1*neF5!^U&ldtscc|9qo?4&yWRb#o(!~F|!6+L2D=e=@>ruMkoR^&bF(u$Pr6%5{+ zYY{eG{MW--z>Ai=H=))-eWl|X)YPP5?3L(?1R?b;HI@d765N+`XWd6LTgrdtDQQ(B z$@5Yz4?@R6<1!e95F<*|!i==^wh9SmJb57@OYfOaZJHEwAwcpo2rqRD!v?6v3B>rpA5 zJ0wbqt0p`QosEr_6Xzt1s>dpWa-zMi(lP0}L$<{-DqNfPT7^A5ks-hCX#$&dg8G$E z`a0joq|%vZT4cXkbhAygA2(e---@QTT6^94z7G085`O0(k@A-kPJR>x^S!4nUm2zI zO35jYOa^yXxhi_4W2`y}ak(R+PV{+`S@lqWHj)GZRpG- zwiX((7+nnurK>WRa2eyEVeGEiPyVWizv;{}S^^(6cE!k?GkH!qg*xZJT7Ar* zQYqOYOat|CGHISqZ*yrni1H-*x-Undu4l+cSHu`gZYvEZdzE`d5fEq)O{n1+(eJ7VV$Z{ zlT}XZ`tu(bw8BucIkyHp_V$!oRPFJEI3!T#f#YRIAMbmWQHG1!X@n$J+S}xAShXf@ zdMaUZ7AhS^)R~~c?ouAh)_ykB+w9u&fmv3Etm)q4_M>}?>?Wqn~#Z--hr&KlUJZ?BH}GmDOPv$jdlC&(NbLw2x53#kdF z3>R}+d{19sd)k>&Wv9b%EoaNt#@aZPmtV9XJgQp8$8*AL!9YW2+&SnhgXzwSy5qA1 zujnQbrsQ)V-UkiWosY^B!7M+2)iimaQ~7|A?ecEr-&(rbUKF$}Vlg&75smtoY;lKv z)#MtdzigAbMQcH(3jPYsnSpy-{yeZd@5GE0f;z6pIW|U?@`*W)#0BN0+X$yJK(z)| z?d_$ZpFWn2(~b>#65NBs2ns9`E+6U)J(H^(4W+xr2QouLPScsRFw!!6CqyR;d&OXk ziNT0><3Q=eT^Lfi!nnxHkrkwzTa{nyk@lAl@#^vSDXj5J=^o1z@LcRRLoDd+3*7f) z33&P1N6f^8hPRCC;;F$rSBPW#CHl!9OWf?zLHwMnM&s2YAas#UPxzV@?JKv0N(aySC3p{n{8VpM!*ZbckX9Z_Z0m4ReX^QNPD@Duy$4fmt|7uff}eTJmqh zo%+#y3 zy&zpjs20BJMZrU$O-f2Klz-PiAQf^Jey69u)d=MaD>Q;EC*vuHOISF2qN(|RMhV&P zJuT(7(u?H+X)v2WYYJZCbYo=c6iM5Ut; zs7+_)7nU`GX0@t(Mu9O6jY|WW9A+-@7lm~7{d%XI8upLtpHrwDoT{~E>lvIAdk20E zKPAcOOr%Oex3NjNYwr?pR`J)IEQNJOL^3$dj7AO9`<`?mHnfneb+cJbGyHpA&&o#D z90zQpn~*J{jS8YBm%Dp=V`Gvp-?8BCu;!Hlg;Ru^B=vOQ8ms-GsNRm5Jt9G7n@YAYE=J(hqc%IIa3|aa$Ejz<8 zefdQ4V&KycuWIMOj4DgidM|+G-}RaeAZi4-t;v<7BxrvLWbzz8DNLf4f!xboJ#KNnJNbU|{#Po6$_4z7$OsnMT5hZmpK~PD- z#Cf8oVzg*0kUZ~o*qyia!M=PyZfJi{KutBw4R)12ollW*L>yGMKiZBE$s(j_2sR8; z%`zO`MDA@ZoI3B%M~a-fXLu63pgns|Q3KC(uV|!nTQuy^59_Y7=rviF zX!8cb2svaX%EoS!O?!DkDSXNZe|R8JBibVBIT4Srfk!j|n&aeDT-BJ{@w~djTJd%X zTi1eih!4SVYA|@sQEh_hrwL(i6?0YKevoCI`f~_QA#rW1a-m>xC5VjkaC58klEN(P zvdQvl#nKRT44Pot_rUKuAgR&)f%jl89#~R`iD;L#duJElo+Lp;EaEp~eRAt$ZwB*R zkA=-V*b+MDu@+v9=7Y^m%D(T&JQ3j>zuYYkl34zts6P>dw*T$tZCoF0b{w#c9x0gK zH|ayF_xO@IjFYR{6ERWc=t_~PxVgDy z{fvn+8IclWL8z;gbglAH4CDYy1^Y-oL^cKT?w~raXBD$|qVV>=j;p55EOwx&}l_sU%kuuVUqZ2-I%zk6}!qgZ>J{Q zqw8TYqfE3Zf>hXmM36kO(d(_lan|Gar_+siX^{7ZO4pAn zN4)uXQfA-IN~et>(?a*%-(*u5C9gOl8Q&=xn?qntLYQncv*Rm9Bu|Vv2lrCgS>fx# zhRlUDJ)qvgr`nf5K&JohaOsKDZe#Zv}LG7IdX&cf=vRpBVf+^FKelt?F!N) zAOSt-w}_JOoHxpOE`9|w&1#u$<$lB=giN`Be&NQsYXgDNK)VzBu=AkSw$DXP+T^l2 zrCBMvSBRq02+hYP>eN)fUCBYT24n2|f(X`jsf$mYcqAfOw$kq(6NZFGt=Y>a-08cs zR<>Zwcd7T`N;Os~@C2pHtX-Z!a#vKT=C5DeoVPnX1QdpUJh#>-8t1>?x`&lUt4D zsz8D2`6<$Okfy}z{udJ7CQe%)4Gh{sdEa;xXFNPiwYNyAp6@YLfBg7y8EnwD_sVBf zjHyeVSt)u~D%QSm5wC_!oaU+9S;n=kc{ey9D^pxq1Ztuh&1yaP&M8hfM|s`LTZBI? zF{z5-8UWSrmNC|PuG_$Swt8UvJz2RRJh2tTENw-Ik|h$z?)#YWm>W~`x%CNKoNNq$BI4@#(|>=BAwIkk|`@-p~tZ+Y9hB*?ifh2gIk8L`kFYFIG^T18}i z@kqeLTR42NoLa=pf9@$ahcYHUuP0qhPx-OL;J8uu90n5*9&8&0WEN_7QOG?*)4IRwXHNuIYAXD}41fyUiNA978z-a%#&5 z&)?tC$JTpQoGmo@)_t9x#c>T)lnTXbITUiAnIpjZuF%edn>p!3!>KbZM65{PDR4v#@+{IM8I^ z5d&rR??_DXpqe)2P_~`m5NeHMa?0YN_U`t#6tSx&rf%g6CY9UYM+How9er}(iS6io z@15?2O_SJyBA!JRkwW_+vUdGgTz*5xU^cV|FrV!DomR*B^xGe*SJ+Li7HcGw_Lfs? zjtf9l!YdMD z%;wVeqsTT(q76OkJnu|G(v^dNdy5`-uKw;%O5~s3a45viai?fLfb)ZIu3sR4zYW@& zENddu;5EnMYSJM$i*4eJel!E%L|s%y&J22 z6CVb^3p{l5w9J;qtBQEP&Y#WXUH2+}-1uNW-MyUNIFp?E!qLWGTbze|SxE-WVh&F8 zuADfZM7+p7Y_j5fZxa0v?ZbUy0+1b1PnNbA<9$UQ?ygU;Kh*?_kL6-SNf8LSa#LT+ ztPz>#(-zHE!$n3A7bY1KW^o7WHzTk?yvSo%Pt~rdIci@zh6&>9(rFtn#}|v}9U8RY z6oc~?M|MZ*wk3!fc~v{#Y0(1wUxk)^T`N`INfC>x)JeR>Q6M)K45@KR3)FKNuk1J{ zzl<%a@d$_%4dP3YaE%d25!dJ$ugZaEObr%;b(F6k%5;R!HBqJV8M9QoU~lmGg9RH% zS5MtFvkIQwr@e!*4$ieq7OPOV60;lYmwIeygS68&1DhzxhI+40J|p5<%S-1r0N6!x zW_=a%1sGYm-mftJQC5hCk^gBhLyhYMmt0C<($Qf=@EgIV&2vjIT?p2Css`C(nXA{P zrFBOKXw;TFVJ|P}Htug~pmF!>wk46!W}s>kUEWfU0fWI=3bD@J6<=InHhtB-U(H8# zpL-5jY}qnBZ2TMzO+)z=FyG#9RSB}7Y>FpL+Bujb==k-2 z!DBT0qS{#XbDDUDB;89bYMA5}+D}k108-{UO#9tY%%g>VbTE!iNQ#5WHAiixE}8vb zhc$u2zw-=6G&mN1JQ>iu{ZOdB{T%CHAX|Wf^a;4-=z`pfgYTZn<@#%x(R6Im;YVYj zkSD^s>mtxMS*r$f-f6-ceoW6kt8(Y7R;1ZgGX;RUQbA&zEu#H@Y17QkT|eIXovhN# zh*)e-Tu1EeNz=nP_6^UVb^RIuV%f3EaE&@!I@HX9TSNJ6x12`$8sFr5tts-u?r98L zrgb#NXFE1J56p=rc)a&b+aCz!`kC9fBUx5jP=V&!nsG6?>{QH~VKmxY4fG0z20fFz zAv4fn0igZ1&&2YylXq>XY@gY>((c;>)J}%~L7AvSav4p*VM%5#@^IG^8u` z3e{0SUutUB3`64GQ>W68Pp3-2qw0yfrd-CH*tpS+qX0)*`Jc~P9(WyA8Cl~S8+v)s zeOO%0>BWRePs#Mh^kma0EM{4-3^~&p&34n|oJPgk$BA?qAM5WQ%gUd8_IC6bxLeX4Cupe2M$=ezdPUU}+Ui&qB?Jx{WL5n-ZgN zGne!Q|8^Ov==DTx0Y@_2PvTT;mE)*!?!jc+K(~-ZE`0q>$|_4FaA-_xt+$d)8Ory2Ll!?c;tfU zZW>%Mevpa?=POsOV0D!+FTg4?EnB6nwc1VpZKl9Ahns+ z$SUCjR$->*Nl=%3loye0V9;sYH^U&e0ag2GZQydu{{7(DTQ6l%E`Uy%5?Lm#NxOEWN><=f7JtJDa!hk-XFqX=tsmdq8E3st zb5_S=Hf(Jb`n>3)Zp9UQ!z}xPrOn0V9t8oIVT}6&rx*AAA3kLA_fGp?XKCDK%fi4X zX9xF`#EWJG!W;D-!<;6vj`S4Xq;;g;eDN*)>R%JG5l#7uU_0^iwD+Xkc_w_r z)(=nlKp|T0?s_Z78(W(&P|}Tcpj9kgL z68>c8Rpd**_-uNbykmntQg0BeqC6@}lDG<5y>dzCGu7lO-_=0w%C2*9kNVP{bb4vT>&UoPzE$1TN?e)_+_*J z>WupxPs@00WLj$fU=(z6ahi@1^-iGx?y`frQ+5`WUY!UH6y(;}ZI;BRx4@3b!37-~ z*tcu-YO*pJ>19z%Af)`3)k?&Dw`ZxGC9nK@Hd}^QsErn;FviZ=b0C|7de3gtLbVr~hflze2;#@O;1i z>ydvLJ{kE53nDa_?hl0q%;uu@7nxsS!oL?ie>ockNSW@`-?nN0{g^m1U;F$`jQ_p- zSOLZr>p7`^SCn7=|KCo?%U>e?O(=i6>VMzk9zYtCWN`oQ$NT$Q1M9i==hC|P6d=mE z@htx18vZ&ua-~ViUyuBg@TO0=e%k#Cf4-!E0i6Ex>Hfz6{%Q3AHTsVM{B9w?s^U|s z8!L)pKkF(KPX{^N>i_WMq2xmS*4*PQ`b#OT04J3{aHm%C(zS2?jQXEfP)4Y9%{{wh#U!J;o(zdc*GUr)g3|v2q@Q6SKQcd` zQj<*ckL2guN|`pftS>`2E?Nfxg=e2r^h?`$>Hf8%VNr-f((b7}JIzq}J*w76$xh`q zN+!~)s-SqeqobfrQ1hbtmFLUYg&fd?=jdHvlX?4?xFGj#wOAJ)M89IeChZy1cD$!w zz-VA>%+V*i^Jvdwu2Z)S0R?7?Pzt;I&&CeD!jYL@tQ%RROYw$T;kLaQ zSHMB?;8RG=G%f(?S@z1-nvihGh*oH&)O_aq_hb!gYaMwVbMsP+_|?L6dG{gYAkdp# z`LbPw^op9D+iWywfERkF>XeLErIHFNMb@UWZTl(03%l?UE#AEdn=a4)-X{a12?{@} zsP6>dRi6HN=AhE<-R!>aw{ zA9mSI44IvHb&*Zg{D;<(5qKBVE^pf z^T{~-g5B9G?FMvPH4}M^Akq((hYRR)z)9498b*RTuW&rnd0TIlA_l;%6wxFJV(06X z(ga>ESg-An+@&6U?JE;sKfh9=-O8v2SU8;oFkYi4Squtb+SJ>k(l}-Rni@x>Be?jC zir<25e9T=+s|5Sm@0OLhEf?fTrqm<~TNfD}-Ug7S9ea$AIl{t9I7_`?*rtFCCu}`f z+{M_nGfu$0_4G0T2JOHuq_3p9Wn>gX41c@hnZ1jq_I*1AgI6-mSJvCmHs#1!2 zZ4D^o@UZ>~=Y#*qUZ+`dd8CNjHUm~#aoEPrsJ<@iH@hv;8wWtM%bh0-_iS3vgKJz$ z6crWQa}ywc`8|^AxQ#(xt!O$nH$<7w5g@vG%5Rw6#+htYLxIMcQWxSfBO^C@z5)BB zSFg`wq%(f>nR;?|dG)E4$2(K?)1M+zho)*=Gx!saLn;U;J!^JnXLS(h9RNI$`s}^4 zcC*B^#uKrswK_iUCpTUh(D6ZIRjCOD@Fmc!l9n!U!lDf-g0-`k?I)_!b{g4aeaCK( z)Oc-iB}v#u%`Pk?JV8v;N*-#$T*Y}e!5=Mx2)Meor20nQoA<2SvAvtX7B@VefiRgH z;l4bKWv=M+MKT^}Z;}RTK`fH1+akrb^6u`HvvYGDYi4!Uq+RFD&y(m;Si7V}pjLkR zU2;0crydU;1aB|-#9($&P05#j$P_Pbef7)KzF&via+EX9FvWZAT)$@Bsb3u)od6Jp zWMaHra#h`QV~Wk{4E@c}pWq3?0`S#QQ187h{sA{jP*45-{mBZSghjjpzVAS5H)Y{# z*yw{pqUD`6?94{0%)pdw=|3i-_tH-o_VRMI_CvSXjklZEk2y{lNF&_b++hf{y)OLq zs>a0~PV{2T6Ss*~csnH#&u1?U-**9;jEO=K0mp5jsdFcwsunf2xv0AJONX07IBIrU zL*vaYORpoWZE-UN(Gz|Q@N_!zOT=r)GXu!AlKFNL(}g8j*8;-fNfVp?T#c{TDR&ncQ-loK{($W zL`YT$l9HJnlT2;+rgqOzZJYl5%#`a|Dt2=>#Z}coJ>175cQ?eVGb5C)%7g5q6p(P0l@kCtaHIz&%To>@6wL|5dw@NMl@ZFhxL0{pb$+9qpro z_Tw;F7NF?wROyUGbwc`KwKMLvNO!~ZMDUL9vp$w^+ZvxE3xAhYubnLtrtQe(R2+8YKI$-S ztuG=V1_L?FxMH_Z%>O={Ts`_=$5qQBrRhB!x5eTW@aZ`dX{zo>+-Sn%{l3rLM4}T^ z&bDYZr6cV3!odGdqfdOGfqr0&t%A3e=)@~myVFK`eADsjsV=P1A_-fGF=}-@+^3y=*K|;2eCHi$ zj5&3)e2=x#8PnS!Wql}92ls(KijYu{TSF3S>%=6IzAj@>>*i3Xb%l|WSdzs-m8>7B z)6uoj%o6xlMiW%2c7b1-%#TpRZqTqzi98>(59xQ;BsEs>zAMh=EsCeODuzWK$?(3E z4T8S+Z5&&;MzDqR$kuq{?{6JMkOSx^K3?yU<~oTfZx!#|O)4wz=pX#{ukwxX&x^hQ z?3R+C3JIKV#3Z!*bh@elLx7NBtBlW$hSQH}{wYO$nsxGUj~w`O+_;z6NSsH!K**6s;<`;LysKEH+}kx&D!w1gEZNqN##i=_SW6CUnvaWq z?f}3uiWLWoj6c>!yW*)JYVi?DI0(L77G184_9msC~e7p96N?8W%I7 zLz7>_=o0&*SV}Oscb6I&7gt?1@4t62v}E4O%=)xNiBZ}L$41-zk$8l!H3Ity#8&mj zoihQ@dZ?L2W!j^`?mO|g!p~@jv#3r7lPL`mWBUnb3a`rgv6zei!Cim*z-G#(fDgJ_ z8kEJA!-+Uwpb=lSWsNUu`zW%xSo`9OqED=o7?U@ElxVXjOSSRdbT(P;Chlcf0S!~$ zCIEne|3;p`M`9Xk@QJqUDF?6k#)MS7=%X$=UsW2KjCoZ0K6B zNqGu0y}Ayc=W(@dZVoc9v%8as`1;J&bij$1@^t!*3&(g!YV&Jqq^1cF(C6}$ixE#K5z((tvXy8;FDk+zy@TN4wapT`~|ozl#1 z>ta?!Ab6tyfw(?K{LHBtEL(VA3F1q|`dw10t?%ATpwGDyV}In*k1SM$Peh;gdikm+yw>VB{y4BQa$$JSjG%LF4Kca zRBxuk;MuQ0=H6(_N0KxJO-X6d|5I|AFHT|2bFRfS7h-rcvmV{CXsX;%oFr1>bbjsg zSdbEZp?2#HTIAk(fVo?6*tYME#<7w4QFJ`G-R~$b&A-;C?8{Nt@lk@&op*FvS^(7G z=qTUX)>fJ{DgxFN)qB^3gxu#&;b6sQY;TJOeD12(qKqLR!NTeOo9uuetQF{^TIoK1 zk`6GbI<7l3>=H)09I^0kZKr6`4EPX236!Vl?sd^z?S}7bfRM?PsjRk=)ky&%qkudh${du zF==t|1YC4NQWEc@!y%7XmPtsWRwsNq zGdVxDu8_emrZ;@{dKfxxwz88}gD(f@Cl)u%3dkid$o?=z9g3Y9f5Kp6=^qN!w)+(d&qVaieO*WgD7Nm|vY)w< z_#ds;?;tT_*E#Q7^+}K;)^>xFhS)T7CPaNE>gLn+*x@vBr+Q_OQrizVh?XZ_#J|@t zl=uer@7$rk$-6L?j4AxVPZwu=HRxzBx(zxxMx1@cqVlfYgtmw!8eq+j%I?=&M2|w?bZ>e>Pg>a7Abd zIcW^7@xB4th$Zh)r8W^LjuNq&4tMSfqkH zNn}^!@nfA1^y}Bmz5Z*x^jz{ig6u}xZy}bu2=@7&SaPnS7~DZTs=Vgq_bRD0N1jqV zJ{2(MjT#eC9wj+Q6MEg>*2i+?d&~XaRu0eYJ!^@c&K#y#(RQ^E8;6lXsPkao2Q#{! zv?`vz24V+zdM5kUrsZ*E_Cwbe(nq0(^^VF{0zh)?%x8!>MX8nmx8smjpt`g?{jLce zLEQ)`E_11;u^bB9=+@j-d$qY|$^H-$vO}QTT`;8lY*M!d^~(V0LI%VFpPfAa?f3Dy z?SfXL?;onH$PV|tu3KuDqmv!ke5c`WPPqPkB;%e-s?pUCKz8QkY};~E8%!)-c>Vu) z+*DyXuq%!Kv3AQD?*c9F7s^zba*s`gPwic{?<^YwQAU)q`tLlW;TaTi!nK^*^}?cf zc{@BY-p+$x^p@KlL;61LuBHc`$^ea8y1B(*mTi#TAZWEHeSO^X$}h%o9dF%xUau5u zDz5R1?d~lmd|T_jy}RG(ZPu`i5oUJ?ebk!by|bL)g||3gthK-#xgy|9*V7ym6La~g zaZKOB7c+JKX)T4Z55SfU1r~kE1KV*Zs!VG5W=o$xP_IN &~m*E!$9>{Tb|+;Ct${mPt;X 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�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 diff --git a/docs/assets/auth-workspace-sessions/workspace-selected.png b/docs/assets/auth-workspace-sessions/workspace-selected.png deleted file mode 100644 index 23dc94d65d4e0c21cc485211aa56f641452f9c2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160957 zcmeFZbzIYL`#wyGqJjYijUuB2q&rl)1&Ps0Ga5#RfQoe2NNJ=y1_KOWjL}^~ItEi} z)Zm%->-qj(x8A?+=kfXf{$pctz298db=Gwr=W#AfQ(b}lD$P{_0s?X+MOiHZ0x~KB z0+RbzNb#S5mAV)3e+b>Q6rK@O^wVwN-^g0(D_N!sy*$Is`_ zu1P+6By-ybqg>4_WItJzQ>t+D%QW!$!Oo{N*NH@gljxwyQt*{4a$d!-T$ch3)F8AzmN~0?7FL;OJBKX^76A&>F5`|0L-T&Je-Mr$9zu@!vUA#&B?J{EU>cnu( z=dU;RZ5#fASAo|E{&v}K-YC3z^DyR;|}H@Q{qm+%Jrm&@p2mXV3;4rcgk zBYMRnBlBVsMMUto`oy$wiz(;7X7LxA_+PX5J6rm%S^TAS|2JCvrIY$^wD`La^WSLk zm$BQ6WYec*KR%bHCyC6()ylqZ-+o&EHSK7v=Hc?4p6QGbK5LCaRTX6H@@(r;a1s^m z1HG(q&G(1pJd%`K%J#MKUR9D)-)e*kG*>HnQ*8HcsO)AfF1h-}xqw+V`&Nf@0+~xD zU_r71Jk4$4wO0$we6yCzMIJS~)#S6~{b-_N6qox;AHimtqdu~J#Jo~@h%jLuBDpO& zT$&JRPs@4>yqV}-^GzYTXTR?HaW{l3UP~=VE({R6{(URGw?|toR$W%KThBh)>1mdP z0K04^W0IxdQ;)D+*&?J#t;MQaLoF)~ZYI$mMeqy8H0&cCh;?6Ph@j zJ3JEz)6uj=S4sm#JB;x7orob^V&sVLD;i$@kxQI39i4RR_oLA#(}l9yfn;qB>F0;&d9DOh z=A$Vfa4hhqpnVJyBABqgo;+OU%@2q7$JLEe!Fkw1$Co-U(03kKSG-(VNkE!&`Yz9>AGHH zddlT6DdS$G@-ikvfM8?pf&X%6wlJL2P#agSwc_n*a-T(GcD8P|O!nL(pHLBV{;^r& zNIkmsM9wCldE#i;#x}s(uNfG2MxRZ}RDY(BYtaVbzAW9p-*|QJkCR95Es>vJpSpI+ z-6J*PeY)5FfmuLIp6W2^mo~?@bLJ2kL`Swl!_Yrjd+>T zi^Vl8;}aQm{!SeS%G<5|I>h$Fo&|{aL(9Ovhnrk_k#x4v&5G_Y zr`Xte;x!6s)06#ePF`N#{v$wGtwnwjB4Y{#@4dsBaU3K@e3?AiZ9rV(Av1Hif7_2U zw|L*;<@-bq<^zmwdt886_MxoA0qN710S2(yvr$86FV(`8p+l`hC3(rpx32 zTZ`Z@^eV0W>w$}cKzaG`q&Pie78=dvN;z3s{qfDY5^dHr0he659{5j#G5aOeK>*GtX)1rTWqZ1@aVOt(8N<&$6Y;lq@SEy=c+x4YXX+NUzdeBh zqIOaZpD!AABgXP75()w4BWK=wXgQN?a$0%#3cyT>IDWP~>$uzC&M~Xzb9FJL7BFUK zzOL_d9wZ02d35P&B<#C9 zD)4(83NpW^D4h0sywY^-46Uk`AfY#?xW;X~+{G)b(&m$NdclKi-K!vr2A+Mnv5QPG z?d>Apior2~ekSV~``7C|8T$UkdpD2w_^ftdIrQB%xwh?O3nKTOW~`L$eC|8RQh7f> z9T)sl9cY5P^18A^f->Jlei0_|bwWYU95=N~7^SLv{?P}xdcCSthLADrc$1TpIiaGo z-K6q|a}74>4gDg%tVCsmL^4v2jM^GT!ycbewC6bL|>@<$Bn>27JnxDdw5XZ45f4@3cmf5Z9gY#&*`{1BVVXmS;_kESMj!c;XW@M8`;=A`jMr>lS+Vu!5;09l_k z9H+FxBO=O%ZDFA~z?enD#^kqeA93nGazmL+HM8#e|aj`~%=A_LSj0zwrdg{?~7f z$>V?!1$V@KQ7Na5Ux?_Q1gSe9JLprCB`$xWoX&|d2cDNB2(qS|5K#GQS}bf@%;r#<#6 zV0gvb+netc3UtM#@`|w=L)}vSMghk8^Xp??+zoArj zR?f7vwnVfxyDcxOaI>374D#4%wgW`YRxtlcUb z`LKTGlyu+?_wO&MRm;-Ph8H#SA2p(+VB64P<5}jg<7dO@3{yZE@e`K&Cg| z9K4ET|b;1D-P6Md1_B->?e9!CtTfb_(U!F8Verr^Oj`V96yaZ zpRKiSv`00RkNOv2)>^<@X{v5nyP*aYnogNS+UNG^Q(cX=g#t*M(H1pY_CB6i`y8#>&cHgMZlImN1J zs;W~zC70$h<$fMYo}gR4_^6kJb{{=vs9SEdK~sIw@}*zQuwQJ=2o$QPy6$r{p8y$d0A zw~Vt3y07R=q+Zvb2j&GDG#C|X_?oIq9lR99wtm;T zu#smy^*T(iMtR|MhSuPX8@y5Ym}+ZFMCxw{6RiZI`V+nPR*$$jJX<&hJ|+*0*qg%E zO2o(Bq_HOelCRbcS<(;`tt}2T=H$porSX1AL>uOoCfhM{H@_skAqvMxc|v5qk^z{3 z9v%%79uv_F4$bsJX}t{oN7*I_bl8?t(^H6`lVdQ=jozgTERSzPQ{~oIm!)OMRs|<` zjw1a{6_2XYw}Obkx`vSsWOXCzd*mz6u35i`xuka7@zWyHb`$^R#ZR1>@$dSHMuxPK zYhkDTBqaT1qi!1vAyU5sh#fqpOlYF;{>UhbDV?$EQW{NxIwvI>j3!-vwDH)RTvFU~ zEJB<<{Y|c>k$0EuzvU`H&i4jY0Up<=5_w;LWl1`}{K)_0FyY07$vtOrT=2z??@rR% zIj#&9`HVF~q-r!}-6sRWZZTS)r$(AgtQ-5rAH6f+)-O3hGeXallNQ-E@1fAKG(_-@ zvyy=&F7Ci$BR-yIW6u0!%TthL5#2CgVKS_$ZYhZ5+v_)UQX0uCXy(I_xFpv5KS{AI zEa~YPW*HM)ifCWW3KYRsm8ltSTh#70!unO7oK~faJFBjh8yzR;yw~7Y)@d;I`uR;) zo@35&Ec{MQz?^}o%R)yl1!djAOq~PBGHaK7e2CsgsUf28CxaB72nbwjrDoZu)|k3* z`vRDqmzTGKKh}hix?bx2oY$#(9&AsV;T6nYJyG}4EX#kFt8cOqvbNZ4on1|&gg$Q3 zAm6F2)tuVf){vaoQ+x9LM<2KHGv* zpezNb?cJ<&RkJ8k%n=AOWWB7Tm)57oyNlE_^)BZ-3%*un_P8>wB236(rbn$YGHC)Y zb7ksuqvt+g+$GA5s}NE2E~mV5*HD@LiQ`a?yr*-HFBAFgnsidac^B-QuI@wMtW)i5 zuz#qKU|Nn;*3UTKTmHYF=?F>af~u~uZBEryyX|)FkeH*h!ahPDb>4@XoDN@1Khcl= zNGGn}-Sfxc#(_%l$%-R7d6UD_a$saYQG1cqU$5n{af|+NpV*~K?^cqp&`4N(plsdS z`=qlwb}t+8F(mX+$#dUkudi1)Rbm3-0*B$OhzV04+e52BcFgv>{3= z=aEhOTAV$_VPri+jL66M>+#7XGF_EDch$8T{)vi~7DPT&>d8|X$!raYlzMa79swE>C`q$ylH5jkmM-6*Hv0Z1cNOqFZcboHOAeB3&RP1%P_FArm)Nz{ zK&Pao;c9hh^I~?V2_t;U=@9G};QU_Nd|i|Cig_bkV1MaGMAe;{#Ex4dl2 zc}cAil9PL(6vr;QKC|yVw5EzJ?_~bcFJ;(*U4K<>Wqmwt)0^lo?Nq^T4VF1M#PHyq zFv6gM`h!5nK>wT34wBN@<*R^csAuI_m06JeT#MXma|5LdO43xcL0g#v5A@6x&R6h7 zD6N`vIQl@8PQ>OzhGjq8ku&+iB6wIg)${8Ew=7A^g^s7=;!jb;*4JqPjB43d<)17U z_KnbH50PK%oWJ|+^-tO>voyrb`=2UfcUaV|uS;s*y=dxzj|&{-Cq!O6@lC0*`1u-G zYgM20qBsIR@3FaIof;n(6=mEy>otPhT?JK=O6J9w=t=6fRY3d10iB6jP@Avc#*f!e zH_P1m<9=dV9g@m@PvG4JS?si;htc90d$?*R=wpOQ$;YqN8(YSLa3a9%iz;C7`jCMG?rU#1sVwaOG` z8AzNeQ7i=!#fs5!W$W4m$4GfOeWHAmA9Pt8&;|-t>u(Hx;(BBCgkCG;As~v;>5|p@ zRcdPLRo|blIVmICI(@YZMS!mE&B>QfkeC2#u5q6Ex$UasMWgoA37&E33?U?m&a!?4 z7^;>&j=)^(TWecMJey8sqTsrmXc~)|pLJ?iS_1T+g_BZ=($cN<06lB{rgNZ6nfmN|Xhr z6`vrtcIR#~33EYUn~H&aV`2dDiJ|$%-s{U$wu8x}ytX5K%9Qio-HDByqO6jIW2JiV z`;_@3^&q{iG-?SO=Xb>6cpaAbl`kv}N!LZrT*hdC3q9>oj=`Bi>5tX3x%(lNmeYX9z;2GlV*Y)<6dprB!jrm;8M7Bxo zH^eSCnW|VW?3`QvO~tjT<<*s*sz1y zOz;c}%E%H&^@3iI(~6a%XY@`Ye63%R@6?4mSSD!>vOoF$0>uFU3f?69IdtD_Sj!(p~k+4U%TNX|Atu+v?3XtZ>DAh@|4GO-W5< zldd$f?VWJoaH0e?CyUq4s3su4Q2=VzR?;6EVA_S{c5nx{!^f2xT$0v}m1<8y=~XQT zMhN2Zr?{R=_mWA@>mAb9g>%*w5`fCJ3R7yty8>^x0e~(@{cz&@+K@0bSRf*vUUPIb z@phe|p}AS3Q~Pl*8UFqo0rSG0eu3v(sIoFsvWkOkFp)n4!cBi7k$Lp=MY=9@a2 z8AnOr;!TL9eD=|{T(I@Uh!s_BF`K!Q`kJ{uRGmwR%}os;()1?c`>kv13TZc?3EPk-CTvpKTF*y=LNFx*(f0Rdf4Yrjc=r4jws4kICjZZ7dyV&2{F<&!S%CSbSl!*79&Hh!0G*fF{T2u zhVw#_$veyn2G1$z1QfG)SMqwH3gDITRjHbpX!;p+#YBWG-@vPMAu{zsI_Pq4JMOV@P1C47ws{@eZ8~B`gJPoL zBD1nyQ&LkQzh9MLUqhAokcCjr0m)x$zo8Wf6h#*3qI-dwM zgVEdSB}H9oG>DF%kTOQ3LEhB+Rb(2op^>R0w3~zN@#%%OFys>?!R#-8tC(nR!%=;#6iRHvaX=hSG} z^ODp(U%%5@Fi0b3a)+;?RQ$?_f5xGR4o>1`PQK}@rz{UY_)$DlY4hhZe~&-8@@*Lx zW4=((i|I?Z*hQ1|8adY7Mew`)l{I^&30SWXWTMOLt(E+?;^S5OBWY$u zS4Kzj{V!`U#rYQ(rNzI7sfCcMGaB%jhD59)v$&26GcujFhRaKhzz1xlB+1-{HD1+z zrw4klQu+~h=;3yzy&lbv#1vnBb*Yt?mDTa_)1o8v;vRg2nh!6%yHwK@OsK}Gs#Mhp zfNHh*96b7!<-?{oBlUC@R3KC30U;*=4({Gh`VRaffG{VDc#CDPzDLc597kDUTrjA|i*q6YnHwQ>n?QPur4nu~rzk~?FG z5nV37dr(2uUm15{fmM&RuSfh9oCENtVfArT`Y+)+oWJt6ai((XlW#VOPtIfA!S z*EI{J+H^zFc8Ri0ufxL=#Iye}RA+mlbRkD798q(NVH{bqK5lPdT!Vh^V%p&L`qv;< z2ti(u?r~91OB^2>UHgndbF`CWV6sz|=I9A{*J8@1x8e?TlO(G7I9d5JRY~a_J{bT~ z+h}Q@rLfgZh@Z~xedTr&^z64UZH;X!YmpL^VFm>z!|^z&s5Ns4$Dqr3mF+L~ee4XY&sfube&5f@RA1`K3T(~qv{^HDewt>EMUScME6jvj zB5(|~7y_TUET1zM+t+-y+kz}rv)K2TmYoe_z>G@YP`m}CV6&r8ZReYAJ038%%8XZ) zf?XTY($2R;#0SnE{!|!Y(G256Z9fyuv{FWiu2DJlZ^&%84dWW6Xk?2zy`di4kFl}% zGoY%P61dC5n$FcKd1%Ph|FE`lWuvBcBBi>)`UM1(UEbRxb=S!cU05*WXNXs+^0hwU z(iE#sSJVV-MyIjZqX<`;A6#8S_8YadOZ^l^?bD%lCTet$z)xu zNSjAG{n#BF?;uhTCty$;k-We{-t+G0LykM=vrx~Nd`2#^f*|gRD40oZF3qJ`6Jqs# zu`TVNd~Ri#0hfB+NDWApTiY1;O188;wL9cKa3*Zx z|1HhQb5RvuN$b@7?dr`DZ|O<{7RFZTv6lHmF`e_#QN`|A4w!@E&V#8o-^Piy7xRvu zJNqQV`#W>pm`$2lD(a1k3HuUw7E>a=>~TB?s~{TeeOx@3PJMQ6JSv7P@D6MQBw}5aQd&ZXl zM0y?lPY)WQCfN}7?Lx!uUM_Q|ge*xFqM^f7e};a}V|pWeIkiB}{aU31I*g&sXWDo# zU=OWQYhydIHQy@dW=#*x!$^t~3}oF4*9gQgbBPyWR!PYvr?Ld{W_K+S%PSXcY#`lA z4~lP@$A~ngKNCno=9?bW;rpL1%#n9RrKRK{5K{nY-U`)S19MXI$Mj1dl|)_7J5GiL zdM|i#IiT4Yv#&vYy^i;6aOg(9{O>pSt}V%T9$Py9{P=K)_s?@!y+V%LM8&@#-OFW` z83H$1cu;#cEW)o|RqF^#?W2EqBIhAj+eud{b3W83-r~O{lok0$uo2MqeTH9+{Z!325}k5)`IxXMLF`0Q zf1ML67n1U=>$vFJ2hu%z{lJ3I>%uv=23 z53CC~pK?==q7fGAbQ2bXstW>>Ifg&&(%B{F;?+yhn3BzXj$F8hljnS3D-&OKL_ zg86_xb!AiFJg3+RQ~#-1ZMkt*+;c=Q7&HGRZTyWAv|vXyNr=p$9G;*qB?miMyyhD> zDr|Yc-Fo!eT5K{i_w@j;$L1`&_vYGsH*z&i&2BTq-1Yg&EmwKP)l!<)nn;*#!kpL*5VP zDcsNwM^egYPc7-!zb?2g@?Dm-N{0A4!x4_LFJ)gvmcLX0G(H=N()BqIYPWW-5e)0g zQp;z%A;CqitLv8Xxwp5U!xLB2 z^{KBW3NWdp^2~Oe-9ayXAu)*fa#}|c7r?7L%3W}eR>=OQa}P3I*pN^W4`|o!#0&wP zEfLAc8t~rT62tba{VkM+K|Ke&C$F6q*t}Tu#{3ef6OW}>u4r)Pqu#_b6_%>S&USRJ zW~f%ZR4vujwJigvr5ivI@cz5xpGp-=d)1Rm7XQiw=xsUh}x9sA%rfgl#1BtD~FMKtuGmtZ^+bj}fz?yGX+x zT{jH@$KlaLKZzlBH|t8uzJWgfG7Ka_i;J%-?d8T*&;JA;7K&x`NvSrP1G8Xy3}@a65<^7@-phA3 zczWHh({oO4N3eMBE{KcnenqOqh!!gb!i&t;^*bFy@6pGW>5UW|Xa4M_dzs(<=oca3 zKlJlORWNRo+_7z-L<%ic+NRao7CuTP6(g|=YMtHU0iKz6m@#5~EDtDE znSz9n=ZlVEWcXB!-O_^9&Y`#Q+t;rm>9!3eCT+Ns?ixMF1+LZnDqBrsWmq-@Znc>R zcg0F#mCNArRJMF3p4;=tlj<1Z0g?&Zg(z<9gp?OXQd_Dl?T&0AwU>YhoIDpEyuzV`iw6^#zZ{0QM$GsPUwk zD$Y(1v$y~+&l;1(Y1iC;aMe%}=Sam^NX)w+zwWd~eBb>&$L@gvK zcux1CwYPUQf60zuJdF6VfwYIrQ0}{H`ITg5BWrq?#?I&JH375TAKO#Xj}InvNky@K zCw~A2S0;%%OG+$bbP-afQxJ~4z%yW-1<*3xF>hw`{ztpYfH=;)?0!72LU*cgX1zg7 zzIeJbhTjs!%%01F;Fxizozv~k`QsQwmo5|V6n+m6qy?3l4h^AsTCdeh0ADOzVEYi9 zQyOu=qT-&ti#PZ(XVz2A+`ue>D>0Ro-D0+9 zUdQMJ4GWaiz;V-rqT2B=k{>`up~7G^q$Rn1OUi42i*tN!OIdDLlRXVk! zlo&7*58aT=gE_SwxAdj)&$NB`qn=4XWI_an$ani*FqTX#{zz4fv}20d-+aV8)0LE7 zu2_3pO#=}dST=Qgln)>ES-a$WzDx)w#T5y$2^+>)u|Qx<8Vry`%3t5on_85%45P7C1E#Bm$fttiBAs$$K8^icC40H?7jcZpbP$ z)}1r9=R83rvhSWhYx~rlYZy;76S57ekReXEC66$?1Cfa# zzI;P5E88riCR&QGreX@#Y-3mX;e!}pfxGr4ffjHk^mQ78_TK6$Rt)^GEK=wc$*XhN zdPc8@cM`?&QGL9EDH4=S?t_U#d*lyy8>KVv-J)hks!>1lXSL0V6VKrt6gu?t&8B($ z@}-eY4a72ype7u*DFEoQDB{~%U8PTcURY-Uu5T$U1IlJ9ifVO}n70u1&7Mx|h4Wz@ zEM)W1yp}YaKI%KX>&(AlgIC^W<2z?6Kv@<<5f!Q*68O#Y3am%EZqMXo)w|;n$1H`>0nzUjeD?GHghnP-$mImc8EksH` zhWip-ln%$zXHbjqRaD4kP8recJ3Ts>PG2ZmWw~?kAH-VMi>m^O-F^Sb<@|lR|0ge> z|JCQ@`{dp4=-2-;81LU?^sgo6H<5ve)EWLL8vVmtdwk=PJ(<)Wyw*QKx_^tMGFR9Z z0sr>?--_@5*MIY?2`My~;y1ng-`9X&>rKtClK(j1|7_5|e0nrqxD=P@e?N}?UuW|F z4q?jq;QRkI>3_Q$9e#u8u8RE`KYpLYzke$ua|`>oBEydp!An_`>OWx7|9yw?`}zN; zt@UwzV}WzQFF zZsL14UgXL19fWM$wv^fy3Y?elUdII1vmXCDq3WMJsR$_{9~C_@O*&m*kd*(aH=g2i zE7NbYWcZ<&!J)Mk!v*p3mCpudpO@Kh-@0W>jaF4jKwTW3R~;5_uwG0iXegah(3gLi zt@ckpThRziWLEf4U%oLBwew))=Q?HuaU4 zFU>aVHilchuYnHA%5Z#}y>WNuMnP>&OU6Q=zZQo=_Ik z0`)e>B~Q#x{)4yuhbQ^h+s`lFIQ4z``RRhFUsRk^rEA_jFT-W^iS2NHnEgzPPJn*X z!aZlJ45Ht>?*HnOo&E6r)MBu6blX)TanGGZY@uq!=PUN%f2SZ!3!E}=e$zPf3_PSA z)ynS@Zv;lN*$(D(@#_-Ns!o!7cYK+cOu=iHf_tx^fj*E!et^58H}iw`s?@t>~x(iCk>r$`&0io z=7&JwDGL{unvm1l7>I(zBy#rM#6!MVSY4!(W1{eGZTqSEco}fp-c%P~z7liowJlOw>o?8^r~kraeVjI+RfC zqfa-H?N$OxNHGzbj&m4c2< zL-Lf-`Z#o?P^pIOZWFEoDi;!bR$riU7crtC_3F~yBg2ZlUo_YQN}FcMi(iaE>nxwo zS!ILPBZX@C>Ogm|9Kbo>q|L|DvDR|W>Q{G+Y|K<+z3q%HpjG@^TKQ9be7(S}us+Y! zRr)NZ-S8<(Q8w==2pC5OIL6j$AoKw1#bt#-I_8coa`9&*Uz!@z#jP7!e@>UiCqp)~ zjLUIm44|d1D9bKuhIGMFJwzp@S$yFb-?U;fPb1w4tRQs5bI>%bPl8Yvoh_^Vk>==( zz0z!oKHI`|wmOSFB)h0QD?R1Q3!LA6z6V#Iu;+r(XhBYjV~P;w8lDGq%R*f-Bz0ym`WT1qR4 zNB-H}eY};k42(4roO$n5c$=JIFj9_^Rik{UU{GLkjq!%`?I)>QY-C2*eq7m_3vvC0FvO z&NpRv=w+#)^5m)XP9e4h`YpZhH4WW&M@SsfaYhwzKd}7b4dL!C$SILpHGgJIn2=R3 zrbYK0_c^d2i&G`Bop)|8_#oOP2553oXy|x=Zv!#wU}f;Fd->!A8;a+Um-KXwK736V zlg^qI(14$+BrCav@40wqm;UYC*dIjrgR-C%-zx0o6($OQ)MU-R+=St@(jK6wgmjhK%`3K=Y_BD9**NzWzrf3)Yn`tp8fD&W+of?q0w`?9NR#)_IMJG;YHA8vP} zo4++uP-Nlk8jtHZ*i+!iQr2m}c9!Kqz3RA+Hir$KOV@gscTMm}h5yS-&rR~3lA9j3}KaPc&_!{fCkREXDhF1CrsT=i+p3JSXL-F}**)p@L^(QVP<%rX5c zs;-x)(ymM5Sqw`81l+xeK6?(3pM6+d?iRkBsSp4jXoHnr&ZyY&RIM~=Q)w%m&lGqe zsV2GY{?_Yum3Cr@{Io6t*#y2CCqiqd#22kRMP8VLqeG6lESJQ?geRi-_ z^CKq=XJ;cC7CY#vag^vzgzJG|p6cK#ZUH&IEX+Puil5hI9Egh6}@>I6% z*0`yjSpN7`FhwYsY|zCAe6O5h4lt=7PSew6<>XY!@;#*H9PBmGAii~ev|yUAhnYWo z+`KxyWikBrXF+ha`@0+Sff}&$VeOsX`C_+}3c#1aFNYQd(s^-n`lrl>Yf$Q9PlMIeR+ClVk>`4 zU@6opeQ2R@)2{xzK5L|}f>ppCm_7aiQl@SouV@%eMgqm`#BaT{`@Vn&gC(2Oy@l|Hp~a;N*kAX=AT@DmPpENw>4W3adslye$ZLh2%eQZ>K3)bynN=<}Yg)dTF$ zY}d__9XQ`9&)FKvq*J!VRoS&hVs{`=(b2J@)`2R3mt^k zKApkG>VawSmkHS^YpUH1yG~CgNl2S#Q0Hek>rKb2N9e+}A6=kIgR~^H_sK>&u&eDc z6>i$O>_qisUPH{-=;d;(4GJZ;3TMC)*j~>goh4%f;Q% z3xf2Y$jI4h41-JkfN$AvjaB&j`o`@|l_V5hhd}ZD%nKBsYlTHTkDQ?(f7o%?mM&8m zy=p$cAk$jVY2bE!8|kYP$1TCw0a?7{rJkQ;wr=-BAHkE7ln_RCCHz=Hu+#lsY=p0L zr;lgoVl#cf_jfzblX#>~UuOAlDzT<2-rE$nuYvFGuWnU(m*d;!Jkj2Oj^Vj1Uh@`w zcuTW#@N-*XP|{$qdt7^}?t+?xiNNtp3D#`Ff_$i)e9 zARHN2+b`P934KSepHCgp)xMVu*B4-ZtDt>2h-p2r>bN5XkwTUV=x+%*5LIlMThjupnUWtk+!sAyeIK~?aVDovqjn?OP&!8+~?CTwu~aR zyJ}CK0=XppQ)=~zDGni8dLGTSk;Yk;G$eJ>p!Todk`gl_J`^w6ukA>@CK`SCPdiN4p;MFIzN>Rsqv|Ud@yPQGd6!&yXbn#}pI>{dVW%gS z+6}z_H5!(UE(E3tn8%Zf+77DXIX`7`C)a0I24{g0w-Y3&qlS?4PREab0Dsx-o9``RE_yFB#TcMB|+l^C6 zdF)ZSIF>CC(5iR0DmqilhpV!jvJ=+sTwd-;)ct1<;%~P4RvrJ-QiD@s%&eHnSC%z{ zJUI#|ue=Q39q-$~iRYC;a(a=in@yLfHtsd-ED)`A#CT|FYqwg}+k9sSFV}ZizwV~c z=m;Ko2;yU5nF4umYOfZG8Mcs_D2o}qe%x!J*y1xake@<(JfQ!rit9+a=MP}z>`I2oa-&J*S;DnKVFc3s$b=QDpdJG zz?sb#NmCiAtD>4C@3%Fsdt6LWn3y+*XZlSUPc=A{jx>t%R%dBhi#g#7@Fr8)=mYdX z6s_>2@fJUxmI)FYlm)k%=c+DzXFT7xc1fumWlCl*w6_G7i_PYVdXlK-pyKAOB_WW$Cis@sgIArcN z)pQkyA%gw!4w15wulwz9oBRjPhR?z^ULt- z-Pc|C_Q`b3^^q#GJuB_e$ zPvA;F9`ITPE5n{Tnp{J^wfZr9TgQVS9CHZUni;_-nfse#h)F5~X!G(g;%jD-8u8aG zA9OVzalZSPO|SO1n{)J$YYk6vq=%L@Ql8uU+}msQKi0o)Rl*jX8YU!AzIh$9!p24` zoNc;NVsQxx%y@c5V*E|59vny-f3egu_1R;T3!HprOXdeQVs<=Mb&K z92~a49}yAJ`;v|Ger_3gL_|2kz}`|0axkZAooOuYDTdozS4|U8>ZkKa)?1Aea+nT3 zKN3Rn)vt##s!kP_=pF-5D`ULnDDQN2^M5i!EZ^8dvKE~qC5k9D5?wRKSg+Be(-hj-f`Xy_wbt)nR)!SL*%2vRrQ=_A=G#Ig4o64S zlcVhByjeVT)1&L-iw+|UjS*R3^h>SY$3JaiV@b^6)2O9v@NaRe)H|q5 zu@ptK8dRZptPbo%PiNgM7jimv zb7a4~Cnw%%^NzT?o6;`*NH`j%OR=^}YQ&RzZEi_5GMxj1H%sJ}_$+ zDY@)eZcrcp>sXhi!Cfz6faDfSGi>@iXEgvdmC#2ZojMJ{tzoXA>Jdk$U7!)%v=PHQTnS&(zB9d?LKRRnx=WbjK_=BZKaE zEBl-cG+uTHojE5arE7eXi(hKM&(HRS;-{K3Z%J4UOY!|$8r-exubU4~wph3;9*u^sspi_9%?C)fk*+=XHDLT*Hc8)mvbedGqX z$TM5Y1nRY<N5Oxe*TDl=Uh%&7}M&ri+Syvocrv;zgFd`j|Jq*~fI}x||wBAdXU< zZaw4kIG15r0R9|mQ^JGnPe_er^H35nwz*6%N=v^@h4& zc;+vds9@e_2~6!e3?Kezu3(LA_g?ViJ6z>;T_1d4Z6YV$>DQi!rF*$QNB?PU++mR- z+_^>VedWTn%uVSVFkg0 zfKo(2il87OMS3qPod}46)QEH`L8^2Sw}=Wz7ebScG^Mu$5UBw|4-gGc^Bv2 zv(LHzyRYug@9%svhW2DV>zQlLF~=D5*#o`fs+=dcT^}T6H3b7nvek%8yT#X5;a^|{ z@S}V2J+1-qF@ACD-L8d=K-BLA339%pp;?LD$j}&#%-A=qT6j^a&5}#*ctz$#mt_8_ zNJv&*%%`ZS(ia}&26Z(Gq4(1>(;wI0*(vHpUw-Ccxi}EE&7oN1S#vu`=#Xf~Wm^;Fshr&5HWc*q1j;jE(zQ2f4rO{D`K*<(Px9FD(_*%i<4FckyHA zb_kDv2HFjA`Ili+q0Z>#d8IMdW|@A3H}yY);xLlS>e@}Wk5)}U{}xkOY<*yK?KruM zuLba1;ry_~MFutjSdDBa&-I;#?__{gA%A)8A@KL8iRsT>Y|We~Wj{q5Dos;n~*@V_3E2VFT`gN)3kDQ_JU-r0$}UO6{OD7kaW_^42UK zZ#b+=#R3(aeY+-Glp~0|5Y;znt zpT~Hd)$V%iXVt*xZU%``Zmz=f*z!Wrog>27NzH*fn<~<@Eh77Gn3vUfwH+6xJQC-% zJ?^ZJooggK!W!T89lgx(>Q!LM8l> zh>9j3q=P!!GiC1TdFiPD`NQruCo6QZeC{TJ22}0YN!V#rO>s_+{`)x_cq_iodqK+| z52wABP5~%gleauP)K~H?JCCWNZH4}uFLAeAq*fAZ_oEY}eJVE7{IeceQ#5+>((URy zxa4=*wIKhhzxB`e0-WgAe1xwQkSNNn4o8Hy?3RdnzqMNOTnxcj=Hof^HC}G7^r|$C zxV{$=kGsB<8Fy98F&lYa>Eet;0kbb+F188DmudL{lgBFS9WM~Jx*l(><+Ib;3^cm- zTJaGs)z@8ca==ihC!PT~DJ<8+-dl{u(*#!R4LEmJ&bE2V1zZP2H0P#s zZq|hTQs**B^6Er@0Bro|MYp7%rL|a$>FB9DWp|CMG%`GMYRuO9#p#|w>_d$8jWD;S zAU4C3a_*j0JIm6KcbBALwby~dMdajjNC%!eT0@|EWYJZWvu%HSv1W!We$cATr&8G2 zcHlPRC|584W@+%4{3;~Q_?e#r{IkIuAK_E;#S{GN^f%^O2%7k$-PvSc4$xDWYackm zPI9#b^=1XH6zfbX_n$h3n1y&(h8Uzq7lWI zUbLsnYy~%BKiPjLC&4LocC3e8y~9z&>`4L!{AuGCNsue963Qt2}2&Ur$D zyg2Aq^TDxN+A7+I30eO&f#}{bJZthXx)gd$IE~vm@}5CWeP9nUlx?uN@DLQZ>6V%w z4v(~`V=8;~p?+#qtTK;hr0R_abM;}BmP-!wOhrH_k}7{R+|&3TLGte1`*%~MF8PkN zoBY;p9mby-ZQD@lk>TO|&`$y-xw*bF=5LH;CLUx>MXl(geCNYzGlwik3@i@wX}@@a zzy~aoK3Us;q4#;h=5L>?w{akU)S7f_J1#bs8!dyk$iW9#X$o8BcS^!4VxeJ4hziLz(SA-=wa#dWIMXU78vx`K(5^iutG8?By8CZ*U9h4@j@lj{@&D zkNK&@#pS<_&WgYKP)OPMvVp)2zOd6Nt*KYHG|Ct z{BZQHL{nM87d(&ygCHFqPx@^bo`+XIWNEgzqom zrJvV;H?@Sx@`>3m(6@FxYt>L(j!3BxZ1I%)=nXZo!mD z9IB>XlW4R1IoTXzNsrQd9&T(gImXOiG5&_4BMNS+TD^;c2*keL0-j^9uYF9q&_jFY z<%yGbf<7&fSG@EVaE^W+KE;7jIvNw+`7p+~T%b1)>aKrOi{@M{N%Wi*FD_n8ES?=~ z_%>iC5SwjA`6e$ve>AqyVIc;ENl~cPoXwWGK#UDL5y4W zbuDqSA%7A=?;UHjRBUrxfwqPbr*FDq!O`8L!*FM@>vN#%(x6&NR7}~;$Z0F|m~5x{ zm!(?ri*xHd{5;QJeWJQDC{XRblE*+7agIP)U1(rnaG$4QWW+snw!jM8?Gh6cPjXzR zS)xTa?<<;xg9Nuu($p|>^^Q$&1yZEBRJtAGV5Sr9x;zXi`7yOV+3#Gj@O4SV;72H2 zAwRPuBBEd>{xP6Jl*RxJJC6X4ciMYb`Fw;!n>)?=$kzg+V2RpS2eJ1H>XE{szbt*b zL_p~qKNDMq4t3X+a`1Q?dd#b3czFV|LNU%>{QlR$=1ls_6W7rX#@V~bezng3qyBoJ z1PaZEk~CYSzf8*h?Pmh$E`S*bWK<+3f18lU{s<5v)uTDXfA}RxM*avXwmrVSfK8h5 zVP8{wnX|w9(-RkLXq$y@^^lPHc{MLTc>H*7X(+U)=u$<{5)J54c5R%ha4)YhZ)5#s zwRDF4<2#c4VTMbQ$z1ed=Y4<2I{Ndf*w2zg$!L&B!GDQL{WIq}{xSAPpgF4E&w01@ z-{1YWMf~%3|M{NkD?qAMQ?QQw%{~4XPLTdZ0se6LvBtbUI4&)AruDt6U6uxQDv3$8 zUX$nl^?kp2^--O~;)Z%gnj-Y?Uu)6vwaT5a|J$VJfQK|-(?o}o`~GdxDtjxy1+L>y zeD(bMn_2C6GfOdTk^S%W{p-yda1Bh`h?*j;oB4Gz^>0g~dL2BY59V#U82!wO&&y_yK7L~Ub5nk^On)xte{RZuo|J!kMt{9+RR0sc{u93b?rwST zpEKn@2mRmOED^W5zWAE0$6ebE==gsWalgpI6yAX`WH*$kPL2LLZvER=+3An-gFn&~ z*#7RNT~NJvoVQFVbW#58yyb!7aXuw+ZtH*h?*AWuHh>ODhyH)_QEVbP2r0~b4^tel zWj&QH3_Le(eOy?0Ci&IB_Mx6$Sr@{x{Qp>oKNGqC%1{Efj_1Y^!pziH>i0CbTKo}& zW#{!z-y*`pe=bgfR*dDC3%b>J_vmgYoIP#k8DW1rcGZVCKrXIt!@Tba2lEr4gxJ`G9vN2sV4O0SkNx?BqNLS^(_uK_ zK)B&=sXZ=K2$H>JI)kq$f7YwM?_-uS6?QW!l_wFB64FwSKe#*g%vn#q)8fj0a@bKJ zY%-djeq)Z48U4aB^SK2^p?m;&1=jFboj@JGdh?>~6*3P0RGqwL5FSv}MEk?wj-5 z?xkgAdVXt!)%{n&BXQJ6n|_{d>l_|^o>%N;G2($2|7JW1u%c(bt8-?=RIq#Qj`eaW zx1A+QYe1uW>iz@Q93F3X{%loUdKSYM?5|lxh&O>(cSg$E($T`eE|~Hn-PV@sZt?RK znRDyw;4vRQ$xEI4zzxW=1pC}u3hBJ$l?)Yum_L%HrM=Gzf0kI z6DOq%{>S7Do!ER?d}XPS8!7kwq+7tJH!`BY1o$NIcS@$rjyP_XdrhkY4T_2I?!wXx zmx)&n-K7LymRp7u+ElE0-oE81ROEc-R5BJA>9fCQ;B!?;Y(7bPTAg@An(*^3eUJr^ z(IfFYZ<9!Axgjz9jg1d%Ouf0alA;JO#C1zctmP3(0M(tQvfP+P<+0SK#`U;R$(JSH z0HH4BvBFU-P;0EN;Vp&D79Kk7r>{EVRk*$*6+=-4wfvGN2WWvPs%9S73?=seKXTG-sM1Xd6 zmo>ZoZcC`jg2RZ$N0Wn`cJ!O+m$7W8BUcww?e44tX(QN0MJ2A521h&|58~t1EUn}+ zZtn&PQ%?h`_?PF(0nFLV@?k$)yt8&c1m<;;A^g(eAh#S3aqnPs10zr5=~=RZU($mX z15BJ*+#h@PT28I7IYLdt)F0w^0EeQ)Xs^)N7tgkb=Q5qS)YjS&O+1)@)MxECCHpP3 zW;bKXpOC0nwI}ef9d@ati`-F&Ld3;Fy>yP&s;ez_3ru#Vw1cGGR&JI1tm?s-`*DcI zvraDD=UHWbSQ|RN(tUMO31jSmFa~VjPTd%OPuZsm;pDiHt?0tGF0+QwM;PzJky%)j z3dB=U^z9ClYjPi|reMjOuy&U^jy>LQqdUz1jYT}B}vwMY7uuBL;ID%XDnJD9Zfv)XNyMr&gecsdcd6A5$j(&hwd3uyh@~8 ztfC*Gn*3L6`0H06_m5$*@!QX$yVdtcB(yh{+waZ33Qp+ww8V(@L#R>l53YWYihHN2 zt@HCl9HT}^5$7k6(525;e+ zeryF$`#zT2Y1L{pG|ArlzF-Gh=~HEFxQo|6wbW{uH;2Sl`w>+b#e81-D>H?e>_TC} zimc+|KCp&5*I}SLIG4)chVuR`t0F1qh#Rps1s?H`*`cqaK1{|1DMDI z!NC@tw5d)U;i}c~B#!*EGTyV*I8J$dqrmmvHks*snWnn&tAW$K$p=1&CmaVn=1rlI z(4+nP-6=7dWz@b?wZ8TDvLJe?SVuxqpYj>yK23St;SOKw?47&y_l5;TYq!hT+UDL1 zgjU0u?rrCP%1_YE+?*fmHX@$Cl_;zqMRQ4_Mdo#_1|$} zl>5%c{?N#1(cgw$4UI}SatSQhic5T;%; zU+FZpW`^^j-09Mk>*(J~=yNuAq#&o;UNMOcXg1;6+n>{U1|$@>WZijh+;AfKBI5n< zt8GrPd2=WkH>&G%!&GGQzAIw>8`pWExG2MNxr2d}!dy#@*mqX@-3n~gZekfTA~rcZ z4lN%)Zx5`8c^~mJi`&1g7%s2fGy!SV?d=&`c`#fhM&kXJR0Uodw{0T7kY5+y_061{ zdr*Vh7GL}*^Yz%UsNDkoSxnyQ(YV-R+)@4U_BW*%VGVK{b;h7Me|r~_!GTHR)L!!> z^>)CM)aigH93DnY54TVuosYZI?@w6V6jD?grs7kteL|fzIg=d3=A|v-5{wm*eru)c zIev67C6AWnHEf#m8ODwsQSmH1j%}RJ_dU=gk6cB;VYhbmFioe>K5GqZ;k%=2Ct<_e zFz;%a^+EF@H@l@Jl`&cx!3%oO((`)YEb)=`S!m^++VvpleYwe-IPU=AVxp|*`XI3I z86uohLnLL3lJ+O?S{oB94+{OmJ!f8=!U{l?+4#6KmcO3u#J6+HT{8Y5KBmpXhx-n> z5+^$AEYPB)pE2a^w_cpwQdMd<{kkfry7G=+rj8B?e zc@8GrxKjY}gC`I_oa7xIo}O0wd^X7iTUO_JQ07t7yDQaoBKb7iUY72J7Adr3TQs9h z?f_5Rv=lr}bDW8YU3D2tvQY>9c$Wohj}d<0%@ZN5CNem$0ma9kXO!xL?-cCT=&w{B zz*6fUhB$a3$F}+lJu{lN@W&=MwZ!E@9eq*9!xuQ2<>VOgl440)<;?X-f$&0~<;4kd zsBKfpMNXAgyF&gQS^0sMG-{%T-!4`fP;r=AHp7W{|5OZpxousH)k$D&`iFF@_xZ&H z2;f04+dszec@SiNmq#h=pZ)kbJGfahFxU$xp|BBHe-D*}HLb6-Zxt^k==VoreQZu}Cz z{~=-32SvpqHzHnO5aPZvVz7$lzn#$#9`h{=ugA2}B0+oEq8#S4%{yc4-AlpM;~5_} zLtP8p$sU*sFt?Lfpf$F>vWQ?tZ$bx#qb3%Ia`h1%+w;2mX1;abLUM4Wh?;7A-N;My^RgS5roDMWwq^O~)VZ2B#qCFogPmBY-^!M4Dg?{TU+~$#lsNhJhp|mll$Fuevg=CJ_4ONbn zi?bL1qU`t+H9jt=d$d4}%f%{8$#wIx?o?jJK$IkQKa%o6zqVj_HH7wINx#KSsggZ= zJ&ulteOQZ|>a!`SFh7FbeLRl`!*Vmf$-C(=ZJ!pCw$lmgsrsM{`jGo19$Ot}^(FM{`)-06NGr@?*7r~WgxKhLmE^Rz;xfnJM93{nm1)B5fagqC z81ikMM&0zG^Mp|r&P^RB7JslO10!qJRgShliszADH>uul8Vwih91<)bGczeSKF#{O z&I-FMS?7R~IvSaEuWobs33uN8XUV}W0Yh0*w$rVr$}aO0+y zGy5Lpl_Bh_X)U^{wuc^9b|#_)yw&p@?!g)KpcI;nx5{6~IePD|jOrjn&XCdk z2qVLSoYd5SJcIoyItO6z`L5d9`$O2MvkP`8?K2hZ_<;43C4Xc$Ad%5A!lTkKPPTJd8t?*$*vUv0gnJ5CDV=dzr2aQ-JhnMXub|Zg)cu zTj>%6bGO#jE4E6qy1h_vAqYIXP#!-dSvbLSS?`i4+%o_D@^&Ua?9%F;;C{q2dn z|MUX*@XIbV$T8-*0ZKp{HZ(t(b)8eX!9Ziypz%TFR7&5#J#_pI~2!0yMt)6j? z4%NPfn?(9s9+zawUn%O=BiROPaXh4R<;{7< zr^fds7pt01F%28|mOR9TIU+=@UPfVqfl|Tqq>>aQkftzRT7MwlVDZz+SSiZ0@0P|a zv%+pn>vz|gc1DlLZB}X)nK^ijS=*3kAC22T)<20k$0x+0B@X}BiS)l@@se_eDmCQJHC2#*K_hqhq276G}PxUvxhuBseC~1^7VxQTWW1G&2opa<|auNGr zr}!9?pF;WjLS&ePGAl-P`G_0gp)$bYPV!PjH(X3SJKIgKp``m&@C2o@`hKT)Dyi3` z_x6`Z&dp)|*ThHnJkOF}tyz6TE%Maime=RA=dVbp`t75jYQX5hr~X>b+>=<@#pnF0 zs(~pbwt{WPS_jjnMC;gWY*{08<5u*J%X;b`8w4ZdBmseMVxApE^m0uOx}arPb~nWx zhHum!4rwVRW3+pFY*t@js;3HYL>*DO6cLsngI_(j79KV28D0v$XS#s`l-Rq^jr`P+|W2!mS-0+hU&sBzg5~c;fkHU-R6yD(_5`Mn&cHE~#}$)d0~$ zB@jI%6j@oZm4H%PMZ_i6q$dwh>U&zZB)Pep4U_{{%VHfo-Wcu6Gdc{naLW-G@%6h% z=G}s$gKiazj)i{bp*#a2t0f7Y$)%;GY&2Tn#>Yb6O)Gre!Pw-Wiiu!=aL;l=sYl{s zOn$xKZ_;drf`8OHJ0WLpR(%W%Hg@DwEV21XlI0UFogc(QUFt`W@(`JrMC=}#937R{ zDksD~qwUQp%(1fGogH2**d?Q70nr6{G%e5?FPgjDSo1SHP5HWbiVcvR34qxSyKTwy z_ryQm`1HA@!y+BEG=|Us_~qw7zD(Z@bGGQnS&~{SbfxjwcG9lbLFP17G7;^s=~<*S zR`P}%?6RZak@;K0-*ma>%}CyhRAl!>HNi!_L+LJE^2+TtlMOra#39B?1WzA-V7>~+ zA*S=cX$v_0JSSotyZF7-b}Ok`QR!P-a%ta_)MIYHp9^LcQJXZA>37!w>RAa3|DMW$ zs|Zby^DT=?kZ$OFFnM1ix_M^7PKLZnGw9G~RzPnj=Ha*Z{b8RQ-r%i>E9D-_0A(aI zDpg;x?C8{vvMzEALB9BaAp*k|i3R|Pt+lz^vL_ntXj)e(s*FXp*X1Y#3v_tVF8T9ndDgz&4XKFGGWm1bT9a&5A zXa#;8^G1;40%fvWc|=pEd&b%-spHEf2jqQNfs5Eh%&VCy$HtAPtiRa>XVQ}toL6hI zl2jtS>3FlVGstOqhS$P5E$iw6-24N{#cXnhjF$8sJ+cgwY5)YlHAwFgXGgbT>9hX1 zj@SJd0B}K}6Sw!aVgB4iudUm&t4RlJZw+YL$~Wk)0KKNW5z;jWoCJ@H`>quq&m^L_ z)Z=F?W%&h@m~Vt8r?Y*DE-zQhGLnTm1ZE$@G2s}+F3}ns7*je&w*dKm2 zTD7vl>f?vt7MVOXy30mf6N7$zay2UN<}5#TA{~6 zMZ)(;gULr^9u`$iOH5X^HrVA_Y&zIwlx2$j16>UqdQ+0u?Vsc;_DrSf(+Lu3m-qY? zuw;4j@cZ72`M%EJD2sHPv44pM0+kFfzVPPFLq)NwJh6@sTS#U(C-)zRxhJpe;tr@` zGQ)N23zJBLhBskv7d>|(0a62!{40{q_e8KEVxz>LoXTx&^sr(0?wkGrDhZw1$!5aA zET27P!nZfrIEQ(hPVuNk`S`cv-U`Bd_ulfrr`zUfopzy&OoGMUyN1{pJ%VE?Ma7jbECDefX4kuQ=9cDKa_Az-8uzKR$CwU&aB% zU1VcZ2%CT`Q`|gPJCYwdgKl$~gg_%+eZK=ucDqN}H$Yj}W4ky|&>ch$XGut1jB~-$ zQ_5vYUiup7`uyP;)3QnxYW*H7Ig%uCZNtX?3nRaKUvym5gF!h-Y(eR{ls)1RjaqO6cD-ET&d^ zCWYf)7j>S>{#4jqi7{R@>HumD-^p*vay#o<>R=%A0$(a7l38v|5x1p!Qpqf-I2d{9 zwdd%D;_Y9n1wry;dtKXuK{~%Gku}jR@ZE@}(l8h}8`mOB1H7v~0{a&2#ObhiZ@%@&(8kc-J4 zyU?Rs&7mxt9iT)HBOc&{EEhyzMj2K_;zoHbim*Gncn zm=voi#w~r&mL<1o5GQFDlV@C6G}cSSB6EW%f^`fn^CK8mwr@2!&~`jWE;pB>WIb?v zMjeu|mapu*qIROn5d;b%|D+h82R_B=7DgNL=+e+zWDUM*ICFtJ|K_ zSuhs&^T)st1lQAJLMMZ~#wszP2_wdMeBo-8K7&962I~C?nSp zOW3Sk=&pUji$x-aNZuV0=F*(EN9+(APljW^O*TpU*Za*^SdkP7AKf$LTC!ytr?s!o z6J{#Uw>95e-`ctN9xX2*Y}LMnppt@bxDyZ7weA_4azCp>h50$g7HOY_N7ndPb0 zNUpuxy6>di?bn9gFp0I{X)0j@Mh>55?Jr|qfez00lTZJuN&b&lwwwyB#a0pznI4wR zP{3L;+47=?j!IYQjv92arDZP=JNvoHxtU%f!mSh3}DiF8AwCnywz| zo5rw>>?0~-F=VTV+0_kTc=b&O9b5vSXTlH*=$i>3F55<4%*qEi88@lskGP9mjzcvD z#~qwjTiTD2>X1M)N8#q8FJHdYJI)LF6E>5XjQN+yI4s%D#Ry?5dy~JZ9`tD&6tIoD z=iYiJjO_}JXTrBG%ZnAl8_iZ7BL|2F)hl$Ad(Yukr27-G$O%-@RA)7D%)bT5Kv3C= z`YX;m=B2G1JBU>u6)HA4d#zBZJjT={@0qyl%~3{b`K^yKd+38v9h~{#KNn8!vhwc; z0qhQ^go>Oukcnal$Ykh%9z2gT3!T2s`UA5qTkQcH%w*@I1Q+^pB5f`usygKJXr%|R z)e^P~)0H%zxCD~tgFJ*AL zUF5CfOx{qcf%{0N!CSq87riX`yV=dU#jSITc_}H{pk9$i*>rud>hI39+?$czO|W^{ z0z!;SX5&7$v~+XqRaNv!zN-UKV)!1O9)t=tjDB~7Al`lcZg{*^)J?1@SFxu1t#Vs~ zV&K2lx?)m2qBfRhDm{>A$_GY9WsaDXO~v$ltgS)jg^(EJ@QJRpkUAIgSl zmCE!(GcY?1lo>&;VD86A6l^i-vy@MT`tdp9RgB=tPfyRKi=~6V3>ml|T)MG=IBw1% zXe=N@%Be}rdQj21R6C60eTBAvst`s>bwgFoIIH&|)4zL(INd|%PDIdff1IidAQain zc9ItxXWYTjj-IC6>nXBkI{)Cwt9GFDVn1j@B^JSg$Mn7wXa(Y=+?Om0gcB3_^&aW9 zB_X`;u}wOl+r8^4RD0TWj@1{PxB=eUq;dJ+Z445 z&>b>XzJ0d-$9HzHU*Jp0W)$n-`rQ+AA|Q(Htucz{dbN7iZ@>3XxR?FdW&8UjE5h%t z>(BU>9u7)PTi361H-A@+{F(2W0rogunc(6-c-^YZ0m9ZjnYpfXe_q7@K$`#U+Rs2z zAU1YZjsJCR=>c_Gs}&~aC@2z>R&MZW1hV!j{jPzoz-}C%w@mTAwfRE9ZM(nED|a|` z!!t%K=w0aV+8KW$6Bm$RS$;AX|9wqKk1~MNOC%rujfMDcN?X7h+3@SyUexa)cim9PCzk};r+i=xHYuIFf-5!ndDS;BGq=$l z4%`l!GauvQC!LoDZ%evuJQS+>E_P8N<&Sf&^F2y{6LK9O)Z062?PRWzj%|H8J&UPh zN%ec{u`Q&;8Ysw^e?l~7UXI=CXzd6eNidf5T`0LCx_Wva=`_dNV^@sHQAtTXU+?hH?TV2q91 zxSr@!UE>2R2LVL{#>9Ds{esbxnWdozAE9%%9vT>2-8|Yf{tlaQ=i!ez<|x_PYPGhv z=V3m7`EnDmi;C?>zSf@={8D~`wnsfBJ3Fnt!rm&-w;ew>JXfU!_ML~HzRE=0H?sz>9EpeBU0xas(^$gW7}8^@P}pFc5~a`nwLl#TH|o&pj_6-f-n%C%IF-(&nc#WptXci*e98K%M18jE*3dDI0xEH zj0K|Lde z5n*&oecjbL!}_2w#~`5srjS2;GxeC_JlN=rdb17y%p=Jrmd<{{1w-$ zC11y^Mbf%HeKSvoz^mA&>Xp9rK#rcR1baaJb@Pth>HWqwotHk?z_pu7|5 zEA6$FZ7-Bed6Sn{DX>K(_ibYRO_askIG1VqjkQ2(^^Ra#|Mi+WxGaow;XO%AdxhQ;>`{2waR5%aP+y%`s0 zZ(j_^JY(a|(IGZoX08&}n*07zWg5fOq?!w#bz1H{uWA51Z^{jd~HSkO^0xOBszw|G`*WvPn|?DV^kfy{)FE3o7*VUOT- zIpT=*H{?Q^CrkuCWfy%pCI&tqs_?seS1U{k1eu6}>k$q`l$8*T%SzIxMP58<*xz1B z?KHPVnZr4+w-XtZm`cTr1iHP z=(&t$YG#vij;T9#O{uXEr@=U3>zaPLxK#$JCIi#F9E>9@4KRGN^-!k6`C2%?og05q zSt`80IL`0%UNS1Dl(R8l>7H~);Se?setU(I9%5b~erZ|Y%;ad`t5+oRwy!P^!+SI& zB_%t(sPrGHMdN#!jY08iUhu^MtBDif^jIF`0o45m!^IDaI`(h!-n7`v?C7j231f2o zJS{8Kv3Zl~(WeL6M(u^vxObJ59+^iEzLk{3mI#Z_IXf3mZ_OKaLq!+7w%)f`M2kE> zh@}dX_1=lPrOTy-?JP<}I^T?chSXnu?;6v)#RXl{&t;Kzk4U|*)OpAhd0+mM@9c)rL{4ZYoUwKi~WvE30a?ie#X+}oK>g~vaz zab&Gt=IgC}EVknO>}y*Tl2O_*L0An{K^G^m!|XLGx?S2;Y9!uj2ld#Tc!?)lQ`C*% z)2p6K9gB#Ip67G!v$!*aaLE#9wN-#_8a638Yz&usgk~Te!>-8P3hGFfns?(eq&V0I z69`U(yX>}=i1diL+|@7U*;>Y6B&n9s(S;yzzID-bMUKs>{V~wzk|MeLIcHV4dw;mk zPIGWpzr>IGnU}N+X;Eo(Vv8pvzTFz)0FgB{t2TA*R+=$%6^qm|J}~4>&ETGNFjOwE zD=)Y&sGY>4|H-TX#bG^F(JJKuoEfeNWwg1AIxY7)%&&jLUYd1jd+r?pd(rS_Tgd(J zg@E@x=}lIKoap%7e)~vQs1~zSLFDC??96<{)VJ{TZxjbHmodij+_sWc z-(PWbqXPi%UJUc{CYX90yCjAgPDn7G?=D{1v~8@vt3%X^w9zjQ3-Ps|+q8G`%^#sw zt7n|O&03~-K((Ak>ulp4p6)tk04Z`>ZB6WnN-Cyr>TA< zUos|TC@Fb0wnQx^JsECw*KlLsj>~3N+v&Eo3@@({*ZqX04lE|i7$AAxlh?1CWE{is z6Psuaf8Cv|zWvm%0LK!tS$kqo;uHXc3*FxLofKe>rc##ibZ&VRgJ<~DPBQM3Eit2F zPg~#iyU#9Oo~T)CpE zZO;ulTx|b}*hsSmm!^oN%s}ggrG}<&|7MOL(C!6t63i|F_KG1%wZ`yb^3R}@?WTNkqgmqBjEaJOz-X|E>IpP#DK(lRl zS=_M(<{$d$Wn43>r^Eu~(2A^A3uvJEj(VBni$0xH0%uS7#WWQ)KT`2iA{F*IlGGfd zGG`C=h0G?dald`wp&59ibgDDTwl^Jd*6&;yurzC#>o%X7&q@N*c_ym6X^mAlnrPjq zuB8f4=5y+-3fC`RTVSHy!P75!q&ADHq8+O}8mZQbV?#s|vM1>??W{NDMBVm3sE&q7 zEtl{N(P}B^#PHk}-I(YWs`Ih>Mq0{|zxNTZSpstZ``U`>cqzUt6O&7c|*M-7aON6)3oU+Rv}fLZslZZ-rOM4 zMbrvqliiBF+VQfm;bP<#P{xWDE9efxSU`Z0pS#ik@wJR$H4xjT+ zjQPYbRD220r4%LTykXJq>payd)<@&H99ovYf$&aD@h!gwC;y}Se^t*X0%C5A*A|b` z?0)oBfA^AQ+@;4tq#N42$na*T@RR7IYRyR{2VvpqB7}HSrH!o z5HJZu7Y7E9czT&10|i{XI)o1-Ud8r@*J%^#q9-ppCfEq}x5pKCTAp#jJSOU3gr82` z*lhIAq&@M-|7_+%eYQX-jKHao*Z2U+P7jqOid7GvarG$uL7CT%&NO+^nJYrI55oF|LUNHYrMB$vN4FUI!VNi~6cn1oW1`y#vy$O6v#7H% zo`h2UMF*+gs3&kivk2He@HA|v42wqE?zE&R23i8f-%fgVgDj-%V#oKLRTZ}Ig)?!& zOWa)h`%ep{dySsBjT0=q zZI%Qzd*N|r#QuHsa_;BlAh#OV>R?y5LIcWWE%Vt$>$f?=R&NQOyaQ6_ATQ@NHzgM; zt&>G9E!D?6TgBbU@fHZB)9&k%>a_NA*(z=EX>uZs7?o4@LO-8X z@|LkI`r$BEW1v@P$S67}JM3Z(p>B9GT2)#!dUG<(a`kEHcZG2uQ^yAJ{n2gFU29H{ zYD!tLAVrSC+g0*u%3;RdhdvyRoox|7H{*2LNuKko<}*gD}=CnaZ#Iu~Rpi_RYGejO=<~Q0G6(9__7; z>rqzF{a~lYT|QrUPBg^~hBx(y*u32SbP8@8G6!h@r6&D4d2$SUkLJC7JHKj4@!`z- zv1NdNIhEb8kMczXI8FRG3u6RRQ2axX^--=)fjq7!38h~0kp#}cB1l{wk8V~!V2wYy z*&+6I)IzNLmXv!hl+x}cO+NBvl6d?W&Vhv_&U}m9_AC8k%No}t`IHtmk;ueEK3&KF zFXh6yGV@HC7~l3$JecnNJoAT!xgmFCJkG)EaCd3Q{M8awKQBHjR-agfm_-sa!m$6yM59lDk+ zM;E&406dBIz|q&;puk2A@V#xkXT zWF;Bt-}J2hWm$vD;mKyO@v_m%W(m-hqw0X=Z#$Ddlr(N3-4Q|cMLxqgpj95K_6XB$ zGmzJ^v%5i>R@_zT|J|t+gX?mtNwyAL>_(?Eoq`cXqw4u8s61rOlk!Q*^!fNvigoN{ z5aqi*q^_*@Xy)bgY;Cp!R*vszw}M(nPwywI(>x1dqD#(A-2=3TKko<%8?Jc770D=0KGa|273?Nt6V+)S3%pfoBRMV{J{={bu4m&@AEM~y3wKNC;dLJX zpuu$b$Xs5xjq|aTCMtx_r0CwWXPsjo`c5R*-z7(7>o9oNQ^v>L6+Xci{IUMWn;bbk zzOXn=&f&JQ*j7-{?^@}z6hv^d`nNM;dTzPn^L;k|aQaHgD0R;{Pa!0Y>xO0hVJt-K zrR-R06`B)bknyuYoB$oMwWK%bWKA;EmGbR zTU%Lar_7#H>w}O$kEO{B=y;*nG@D*r9lbb8C;Y5-kF&M=7XrXeTW?0%Dxe^Z*e&CJ z==yN&AqIYqDJoSQGLk9&$FbS!sHRg^^JaEoV5@HCi|gOEB;!488sV@3@2Z%#=U6kB zq|@-2&QB6K1tKY(7=fd0{q6NrS+Ca(yUyRu$dJu2&#Gci4UXiGZe}|uXSkIfQ*W;g z?7Ln36t9e^c+|jfek&=Pk8MqZ-ZKce1JSO%ju)xl)LR{)zNnSw@S|a-m7#%?>zz= zP(TprH6XqBULqo$5PE_GxSK)$Fv{nl zDRsuSeSF%8CuO5Zs`>NQmqUuAkfq8%-=zY+L|ybJ;S_wB-cbe$#pzo**s?)7x`lt| z?*4HbK-%FhcopeJ!15_P=8T>+mBx)e*MoMnvKc>UGe4LWL`UBd&>prWm4ZiSB{1;Y zDOC*)`7T%oi8)G6?#?wD`)ofuTnxX{aMob(X;FO7axrnI3F#+L^yFu~CLg@|Q1H!~ zpzV*6gswV6#y6+uUl7(kZO4mw&jcW!cm&rqACdeFyh%d(Wph3aULWcrmJiGZ;maWK zY*I)ipOls#0EMgbfidp!Cw7{+y`l&Q_D_F;{`3xTWS;N6iOIwcP`Ms{0uCsha6e`~ zA}iJRHpW;2l^~k2wEt=j@hD7V! z5itU%|BWbIK{(J6*>p>qsE7wl=MIls7A{0*oEc4$e0R~ok>nv`=1+ya!rRTI2(S>? zQN4Zlb>HOC{KYrst?vq3^E?&$Vwo|p$=t%o`O$1|^W|NB!z7>pD(~X+HQUDf&?ocG zgL7r)PMKn^X46YP*-rc^zHJ~##tCpXIdlZ64+Eml+2-W9?P=wwB9*R$E6j0k1^y!C z+`y8=(0jmjZ>Q*L{uMMgL_=Rw({$#mg+ji?U_DUO55P`dli+52X59>U3W}~DR<)iO z)pxde<6go)-7T?_La>B*kH0eqxI*P+6-lXPelk^HBr>Z)UsM&WS&2y@T^4L|uw@B^ z9NTVRJWKcA{&K5W?Tr7{1|=qj2>N;^^JRZLBJGa~r=?Gy?Sm;+8<%(CCfXBY!OUAQ zj3xVkVtfQCRyAXrI_$-gzKhHK%D5R-yMShwE2hIk^kuPG%`D)@V!b)>M9cpA$Trg% z2|6f-RwHQut6Y#h#ukQ9*-u0X+}mx`r_VfW{N^ib;(8(E)!B%coLb=>4J|r(K7aUo z6UYA}|AujBPO3wyB&u~IygL>~A5Z8?L3DIysOPwM|TlU9Or>QKAehmQw`aA$qvEvvp!Z(iur8EM@Fd0`CmVo#~ z20YUhC+WI%WWbeP_32EU3B_yS9f`~bF$VbriLTFSv>u^$91!TTKou_NRgWrj8 zICIq;gb08MwORH1B$6K$bfyVcbnl-KQoZ}SiN=YdGw|~$4LV_0#s6%U0BkLT_h0NB zg7&oolxAI!0XHG_*R8(Qf|{ zwRi!4MgNC27n(`@T}bVg5T!xQBog_2S}^w;fkTb}le(1uno{ABnW7YZEbq;GulGu~ ztDTCa_wD7L=mw7wiqD7nmsr{#U+PnNVUK@PtP;3ag9Wp`r}AkfHtk2s{_UL(b-F*! zX{$RcBo@jM@@j8+eCLgeVrPCg6j@pbX8zj=iYj`M`MVVWNw|yd2wi8pTAOM6aMDS= zCzAS*Bp49jo_NlmkN9M;vz}`9xfl{KaTW+Dykbdc=HOf$NSFBNt7vgO<*DN*^FoV$ zR)!6Rb)zQKJ2R5iyFtyxQ7`YKMLus_MIK8|-bbX>z^mnqpS}yWWaepi-CQo~E_M;K z;=|ZWdp8sr?(Mc?_7<0bY-(6hAuvbGl*l3S)4i1i;+YYr400a+(K?4+(RUIjScG{b z@gj64%_)>odT}=8LzmC=wkNY#U#A0?lnC~h2xS-RkIwJx+-ZM?N4Dic8iB=X)!6B> z&6~YtE6vrYA_0BsRDe`pJG0qS*QWTL&|vdSm9(TVjx*ois1m^S?y{@q+6gm-lixj5 z*D!PT!LF`DKVTUWilTx)>w^ls1!ts*mQX64ZITk~87rJx%0~y$4WImqHVOGpRgO~8 zGs{P+w?_-R!=qlw;28Z_cL=AM!e`-B$3|jSGut0RT>^r*v-zeGsxT8!Dnq?p5xx<* zNFVv1Ot#;;hO(M3m_N~trJgX)D~n-^j=O^KK{jkBDF_>m2^7~$VdrUR?6aCfe3TVYE3$%?y}$s=#4=4qg(>h77< zxLIA)oJK+1qZr#je?Up*Omk^u(C+gIXyZGCkOT|)X%Y>y14}DML=kfUD(T&aV$N){ z;-Ah@)Cdx`Ezfxa;p0_P#jh!oSknqm?0!O2+$^omC__(M}p4LsByDFN98HcDd3 z?;U+v@Q`Ax=XX)FO>~}2-5K+!?dGJ1t!xzKOT@+W?WO)BBlqtY*{&SVt8U&!cyFBC zh!JIfyqca;n#Jqzr5YrrD$-P_{FN*oPe&E|_-l2B&7;{P&w?&}`x)5w_I=O#jvw^j zGLnQx69>~ccN#toChkd9k^4=LUq%Y;AS$plW&)C=nZrz@XGhvr*{+u~~%p-vneK@|q??}JU@LX&ag zD_LeJ9i?M!*|!!74Fpc%E;Q_Fe1(++=E)JWMHWfca3BBHuDT!Ho(pDBs;66iBnV`h zJM6lnoz(Op=-{XPC&LI=LrR4Si*ca%<2M-tt8LvqZywy0Xa_{Fr$qA`{das4Lf8YV zNnvx&$6FhO=C?Rdb0_5QxFn^&1(pBrcr;ia^}-#Yuf`uKcIM`Dqf?`dGGyura*lv> z4i^u4H0J3mi}bhMIk73p+3Uz{2Y`?_u;3Om?dTYnslq!q`q1cll}N^7tg3ZPGVO!g zNRfBfUme+&WPW-Bo$|RJUE#rFWGe^W%mLJZk|>7xq2e>gtXzSsre{tL&?vbgiJ;eLtG+Dl7MphC8hqCxT1w)1-+7_o?h%nqu_ybOtU`&13zY z5375nW~REfFijS=lsl6E!1Kv@I?UyFm%xFa`_RP?G=?r1OdSHGv@LmNwtG|sKTKP4 zeG~^~2;0YnAk0vD`I$acYRoG-$KW6R)iMl!z`EfuwGa%*9&`#=Q0zl~|9LyN5>?hp!hHZ)e`dB7U~H!1NknZ446{ zZi$kZUmR6aQ6HSo>Iz@-Bjkd<2##O9tXYhuBE1kip`Wzupo?P>c~}iSDf2v>*=pnW z`ziN{(}Y**l?d7|M5aq6TeQa-^}+NzCt4}P-&PjmRNhuV0$Zp*&%C*MzXY26L*?xh zUd7YQ>P|govo%GIx!Mbf2aqaC)r+0Ms2M&rw`Aq& zb{lZu3A?9wbAidlUi-5$xrndB2`Z-)ppRvVS|yD(-QZ`Z@8fP#z7 z(9lp8j!{fDm$YCD|5kR+ciZ`KKuam<`1xcXahJJ}XNo_B^A}g0-}uA1cDs02Bk@O; zK|&tQOfzT6_C(E448A1Yq~X3>#|}_`4Ba^3W;NlaK=4Yz=P#ukLOQ;Na+074H+*gZ zl*kv3D$<(wNPVPsR*G170!=ae;(f$rZBiR!7?5oTt!tONWce=%MRPnbT_2uXWoXf) zF}O}npc~oWb8CUfffhBs_wR}T|BraxSlGG7!n8TvBg93RA-LPQd6_=csOj0_`-g!N z6cETa#zPyYhsYJ_w{>z=NYhkOqSkBjE;D)Gzqc_N8EFl3KhQTYc=lV$=|pd{T{e_L zez#3~MH62J{%C*xs5v4 zcn(Glv7BeH?tofnJbcxiR63>N<}%4C4CJ`4O>ADEFmeG-j^;5V7_#Y2+X(%Kyu;rR=;!8Z+^GZoML|M0RxgwyWgbe< z)K>AD3-Qg za1##qta_f2{AO4Oiz7WpK7g6cj9QyDD);MUI;kC zIv484b9&r3Lu*Du4UpDmTjW`i>tG3z;qQfJ@!IW*SVXm_(tAgdI)JXI97VO09ZNkP zQ29h1=*PXFCSYYS!Tj?cmg=kkshnoP+STr$Jm#ToV?(M#oFz=}U32qEGBW>m6mAEJ zx%sSaI8;99b%yE`oL0L?Ey05Hw|3YN!1d8`asB=ZIss#wmvNXb^KLMtRHN<@oKfgG z7iZ!`OfM3f^dU2lY>Od+2#<6$!Mw2WiuJ}Ea@2nE^biDaI5!}u8>)2ktq4;)^)CR5 z|I=Alas{Y4MY_Rw-!o1k-tu2a&fgfve;^lu0@~JYQ!$ohY%l5dGji*v(al!OV%~h4 z=g5pZ^iO{VD;aSXL+8y7(3uY72%WtG)2a$t{E3!DGSZFcqrk?1vr$~W>=gX{+&{Gd zLdbk|%2ej6EG#|<^Q)5O_-(&TJRvx3MoY3|e*iR{4vF#1VdG|}glw_Qoa2&4Q^NKF z-4VOGmC?QG2%nu_)*a+o(NlnAmG#dbAAe26@F-;LWC{%svu;w}X?AFB@P|ua77Bce z=i&h<3-R4KHg~Ehcd8$)4s^;7LM=r4v$nJDZkY!7$n(=~E@}Cr=B~jua_7!O)1BdPzr(Api;%jGU_QU_!X=t18dDA>(L~mJzMa$B=ckLmZmaw*@&gazuDHo;_-{O0sQ{r$Q5CYu8v-@@lQ3rmSwL zU{Go`=vt-u3*?jW7mt#}Zn9J_^QeS(jtmUky7V;OKifS*2TWc1gcqdnlqa!Bv?+I; z$yXz}(_g(kkvQj}DM6f$=oeR1h%>7wlvGqWm6nR^R<)T8Ca(6EclwLoY9L>21Hfk2h?SPT5TCZtPVk)QM9YMf#*2#%C*>#bN& z%&$uGxIlF(3KJ0=qkHNk+lMHYpj^YSXaL-H7Vx#3vf;;{I=U<;VG&-RBm&LWDqDUo z&jA*I^ONi}nuUo8GU1X+fhhsQ_eJTw)>L_k0%!o02d1zSab_1+rNP!J^ z5``lLWsuCtAuX|j&aY!rryABVuRT?P-Cr$Lx{9D zE*O5Uw7e4Ic$PYk-e`r&7Zt11C29rVzE>I(z$d#zYSF)fmQOv&6ve1^?G^Xr188Y$ z^f_n0*l+hi$7jFX1HF42TbpSg{e;o#knQ)upj>A#0rR;3ObUR3MGp+_C*2{W71H^Yf zSy$kFH}`q=Fzed8>Pd^eM0JU2V(edaxVssFCnX6>3JZOULJJ^`V6GQ0Jg!H3K>?@A zq(bFRk6syU+FT$Fj!Xs24=5PjS=gWI^u=^4+R zoF*a3v01Tw@pHbCP`StQ(*xhMv(nbb_s`wxUyGqM+xl-ujI(B55h`iI1H@&_Z~I;a zSS(;{%c$Oe36*Qm->Rlm9^tv%R(UL_@`9ki?)H3wNBuZ;&4)LkDNm|NT_^Huw*2BB zv^&Ko%`LBz=6WT$gQuh10CPSsy3H}udfSw}?y`FKCy<)32$dWD_)c%a_jzW{0@=h_ z>Knh9BCanqxlmF@*=nDKt8Arv8h~xutQ1ed6fSdh$(^OgZS}Eaw{nKa)8<;-!~Ne2 z^dIh5=QE6gfbP0lQM5sO9>m;tbFRKQ`QROZ5StjWe(mUb{rb*Vh$htaGlb-_A1~Rp z;$fSf7bxVq$cZdg6Y93*g5mvmKP#}BP~Y?F2)cyw?CholpfJN0MLiMQvn*#TwPK%3 zb*yM>a{cSkbxw12HGx&;&``UxBGpApe{qgr{wu8Qqa`9w^JA@gnH-`*A6vQx`*E!} z$&-7f&b!wb$J*wJBR?_oD@0rUd2w?~QhToI<;ucvyHmUCv(E~YOmDppMNrNm)2tx! zt;=X{!k`8Z(quI<3mkgbS^iDj=@M`Yf9M0-tD<)9p(S9N8V8Srg6DNK58VpAGljlh zqwsk?zjDc9&4YOVBeWl~u>kRIwe>hX!B$fTwjguQ+jo6|afd+Jk)4FM^#Iwt+ZCb;xh@bIjX;=@fA8yno}bT~PO} zyVg?c?9Yurtv>}0D1Dn;P~CY#553ju@7`^_?&eie#3<+(S=rS`A0%M0{H@0O_}W}9 zO&qRag*tY>BK9!$is*n*--m{I5uIig?-^;~u{U~7QpBL})fwqCYJR+xXTH;pE-%8z=uIyR;+x?@&#XhhXzp7%|Nd4BDcr^}|)Ha>>bwj~_ubvbk| za^tX>=IG+cLEAcWFZ9x#oyK5VR@PE(9!#5>JTso>p;u+Hse`cms3vwvaW+_(IwVb# zyBhLdJlJtF3MLawCqOfwy9y(EiO?{Mh%mP4YjDsrKMox^bzihJ$jAU`Kcz9CEj?v@ z?7cV6p{2{wqsVcX`yyQlk{_SqXj#QPt!kkYpOg1qe&?`Hby2$3zP~o4Cjh=>3(NQ@ zc^chF>`nC-5=weK$8F-R9-z00fQRtY*cW0#DxQ46tJrk({n%nC&B@rXo8dmMIoYs^ ztF^NVq5OFn?T>k@@luvAi)>;(yYJIseu$)C%arMN6pi;KyXPl2vhUM;>AP{e;Ml~o zQB-8eu2*(@g%NEVU?zv-yGF%jLTx4(Gd|#|m{Ae7_+WnlnIy=pV@}U)vOL#F8U^v2 z7_@{Aucz--73YMs*=18fOM{i=$cLn%nU0ZCzJ_*TdI}-@-x(aIJFC7Hhrfbq4O*Nx zY_dOcdbXhseRM2^HUJ#4Aw!1Y@RXa}T?V7fd_OKeKWH{_)xA|!>ys*gLf-^e2%o9n)pVVtKQ$8+@^uRAJM1HkvcD*{Lby zN50hB$8}eN>zR7l zlVj>OF3%S@LorulnYhhQ_>cpdK>1>4@~5g9^*POLg%dv`Pf{+ zCoNL~j<&e8*)NwlCqGIQRhc^CLnteTpT@F2ooiG}4LHWmO)GVB8`sI9VK*1~%a_BMyI51wobAxy#! z+vI%pSo>Q^q!n_EVS`o0)iNl%7f8WAXP=fy{*j)&Rdw<4xen)cAHDbJUmgq9;Q`Pr zwI^pkMziH@?FZkL8Xhj&nS_gzL4xD%-mR#MjI6C9LGzazG70j2&E_c2VlgU!*M#WN zrDN@Y3Hoj5gjw`W6?s#Qe!BD}*k?_5s!{9vm z7U}Hs{0l0&0sfm#=l0%gm-_t$QgeH-Nb(t*lQrleFShZ~NLLIlF5HkBUJWFmj z|M{c1I;C4xHanA@UBE;WlvWJCK=mAKwPq}})VAhu2^d;6WrA!}9b6(``+$X~E;n&m z>%%<+oW2I>a0=IPQ1i?mPnqXc2uNA}1^ZkjKn-7+M6xyb#j4j{SFkwlt^`?;YC7X# z9;rJ38axDmZ|P1dd8|a65+Vx{yhcnFe+R_+hpn1_@s}3JIaUehMt%NSadIzJ7btA3 zl0S1?5D1bU-_k7~=_%-)7!~(wh_NMXqKY9BOefy045V)e4@45=iM|>&JM55)kLB^J ziJz^NpvJz%%3Xeya8&%_R|q!X+Sy8hEt)^UM@fu{MxY<0iEX?|os*9un#`kK2z?01 z0~S=fzTs-`x)k*pu~)wp(<#nicFa13foIx9ZvAOfurc3Q&MDl#CE4$j{{D9RhFwdF z|NE6um0A!+?d+mny@HJKoL8{frHVFJ%erZDn~st54%Z)Si;xIXO2z;d56}{3B*!`I zhBATCAWG4GrlHl|hmuQo5n0gAnZo zw-%$QS5d>$3WSAgcDu*Bo4LFE$p?(9K4Mu8!D(gPp}V>BR%G{|VpVTNN#2VuBt8!5 zt=qFM$%h0pPZX;!Y1qbWO@j=U5*L<|zaQ&XuiT{ftKV-G z^xnxYx9V~|+Q*!^&psS-Oj8_5q?LC+W5;9N*$29*1dgD>$}lj9Qy8(7s3tNEEt?9u zRaNMt)fZ*}g*)=Es^03brST;5+ql(eL#Zw1vYqy!=M#xdE@C$>TU6v4a-Q(!TFT&2 zwl-8H*QOz^45T4Oq+c z{R6nxC9_J{6}GzNIIq%FD4p}3=#hq@JRxt^^ujQ10n45Ner9$X{oqr3T%b{u36twp zLd(M;gT$9M$>d?tjTI(cCVgpt&?5H&gpe|r@Yszpit*;5t>2_9+4aeRWhxSwd5?`AlvzshZtMy&?pZ>-Gt6Afw zgx$IaXutXL)D;~|F!MV$0D27VQ=)|HmHf^|+t8E~SJpj$=3Up1<2Mzh{2B_KnCcyBRnGaMk0_W`sb%E+@*z6G7u9vdL zo4&0E!zz=hJ*|B|=0gesWB{=a=}R0Gk{PSAn7jVwa%{aG(01H=s`5ea$!BjF2I2`r zMoOLBT#G^q!amX2Iks9wZ|Lnz{EMS2!X;3W8{A*v3z+h)g9lYB7v34h8A{~*G;LpN zPgqhKj~nw{vhOeLaaFq~Wj1pjIUU!e+A*_frw2}}3G{VOSM9@#+4=AB+xYOR(VjD7 znI*LeOzRe(1I~Ote*pPDI^1JX%p57+t(&A+t-4lt_dgGQxpg;mDl5qP+@Gkiwfi*L z+0|0`7BOw?%L0y^e5ELm5fXdrjwt6}SF+{M4W26nAdXzD>IS_;%j%CgbimBnJOVxM zR0U-T6}&Q{2}8RQffccWKDVa0`Gb<%w_hwi@qU8n97vx5*Nl!z`gQcSf0z14X0uiP@C za3UH!y`1Q(801Vzo)3+iHh%>gC#&{B(**D5&iNgMI<#=UnIWwra0p?%J7RKDYf}KS zU*90$ZNKaEHJz3*b42XqtZ6Y-z5>`}M@8)(Ey?+_m|%+z&N(-D>8_mU&dYza09Te*LPT|4aej-A|~-Np=VcL zaq{5zEvAa*g70N;u3#Y)_FejnrS;cjzmw@s$oI+!cIBmFy(TH<6Bw9!qK%AFFT+XG zQ`O?TBMzOj`ABfA?_n@z3YY=*$SCdTM;&%DLBgV1$hy($9+41KpX=umQ0$`TabV7+ zDSQbGOQBUJpAcMJvfEi5U(Q`&rA*AR9Z=|WamX!$ZukNXJ3T-YjH1T&XRKbBz!(VK z&prTpKlrQ=CqsGROAq@d>i*LY_w`YZ(Sx=UD7LfdZd!Uq7P&2y<)scK}y%%_xQn_}- z4|i`Xg=PiXZGc9_X`-HL^iUjV1KOKP&gON#knNZ0vQ4f$vCsJ@R(1~do6EAbk;D(C zo30Kt`71Z7?P8*vGRb!G@j3dIfen65u*B|q&dCmPk704oE&fRf zUPaW@>gycnkAqy9eq|1tXWKkTU#Cxj$^*jm51n4gsFh% zO7l{P6}<1ls4~ENu*y)`k@?2aqG`p_r>6cS@<;P(9wWHQ?fJ&a7lyj^Bf;*ePQnb| z1l~NHQ_={Y4h*BpPfs_LuTv2!&1QG=iz2sBdm3&XSiPx!Mj~+9;tSExIJ(QPlV>Yd z9xG22y@j4>l&lX3%9z$9h>6cdFW&U@Jd`5>2?Q=QeRrDL=SJ>SGaH)om(~>2N=+2vnstLtMxzuF7dm^v?`f`;YV#A%010}rd7mb=Fq*+yL z=7vRUt<>kvNgN?y=c!8aL{UPSdC()Cbmh;O_lyrL%3_N(11e_#VH^@yimQ_@jB#d|S%Iod&PvLl&BgW7vn===;X>ItT~)|Lm5$VFcuQ zzMv~}0a=QFFzi!DD~*~{E-w0J;s7P5qR@U;*N_OL7J4MxigK@r+WOh=|I@gh*afk- ziQ545lm^3AnO_T*1hWI=b+={iboNIPwy%eUWt|-RZUy?OR_2Gg1L2+ed=y0uyp-Hu zf7+*XyX#-+I0eQ1Ywe`*NT zPy$jYz%e$vP35;Bi{gtKiz{(Md%hw;hZz;orad+;6%8w!=NYtXUxvA3&fJPrGLrb_ z-oKN4_5#oz0DQ6Ad{bE@0((0kBK5ZE55D>InLwfkIlcw6pWmZJnFYFa z_d0+dT_6_t=I$*MdaU26Kw0X-S5#;`{;kaa5M2a7)jI%RWs6W%CgGt52W^@TeVkD>6IPSZf;HQ+VE_Jt^Z(ruT{u|%l2~A+!yn+xSwm{nO?TLmH->u-|_0)+bXR+TK z1wU~{`HjT4&%cF#DhM*(n7Vy)n|o%&KH0jZH?~g1Yc`L3wSO>@l4+<)<+r6BTdXu^ zH`S9TPxyl81=8&z8&Oa&I8DzWY2o_qE}T1reA{`_@=ddorTw>W?;Y;_M+j>D7UD?q z%iMSj$UohxcrW?EsKYPeI5peUcx$Ti(cIjeR=$GjpqoU=EL7@yPpk#dWR4>4i)ZB! zgav*rtf|=_(=z)FAs{)~ex3lNXP+w^4Rg5Z_PA4kt*j0f6c@vxyq|>mGhOD7P`MkN zrfmXFpFgwfKA*4cX`8w0!jshbB#>r~>%^P*dd6GFt)xMq4L?(C1clli?|7Ib% zM*NfOb3$S&d~(IFyloz|SeKj?f)*M5k}VdqmYr8Ea`=x3`?q?}|KaMh%JuZYDTed^ zPqEE^e+MlG05$79ulN1Wr0?H#|NrIcixM!z1p#6k6#rv|En1G>PYBL^*ZytsKbO+~ zc!~e)k{c2aXe4p&5nuj?;L3mf2>I`M5hfhU{V$oMe?RKqUw!8Mt*|BuIc@FDOr z>pE!ufB3*ZzEz^tX}h!ZR7MK;p>?`}!NCM=H8E2)L2!CHL!HZxk%-%}bSu)5sQQm8 zGivldhauF9ei?7s2Dx@$>hEu_ApdtpBzgPZ=ILmZ2-}^lvr^muP`aV1JPcnsE zlD>cc&MU|fqFHIwxR#BJdaHWqm|B~!I2?{6jOMH#^AfvBPzVV9Ysq<0`^OSB$3fBB)$5#^G)ROZlrA$-? zQmgYOoM30K5vlO%3E?%plosPIlvL0X1Ha{%SBoa}$cPFtZ##n;0yr ziIJ`o8j|*J{yCNL4yMWZYix#GXxx7=$m*q9$}Z30{(2_ddo*QU25EqQU!_f^J|yc z*d!aV42Stj-edR1qK$NK-fSLvLT`R|*p|F}vP83sW?NUQ?rF_sA5yR;uE?P0;1%?a zH&wwsE|k3V&x5nDm#;!Q0*)U`NiEHXcIgS?Hor)8qx!?d?ieYs1(TeHq;>5{DEZRF(!n#!wyrQE-6A4q)8 z0#5xvCUaHOrroHdTWWMX21!>#+;K&Cc^|O~V^Yok@+bcJ^c#jFB&FdmpnLuo4G>MQ zXjA^%t4%g%3x4$U1tE~>_|JGDhN!CcD@=}PgmLrGe!OJT`f$oy)Pjk~K|x|6;1sBq zO~++CLlR9`@YTDk!Y22p69?Pn)i7FMq_cl&+B;Wt@ zpKt3H{k1OEzKDeXrU4q7L<6{ht}oV|dYvvjzyvZH@q)V+JTb1;07GE(SG=m*czlS* z#|6Jh*eD-N$4dt@%ICUk^7}3T{VIjUV0>ltd~hL(rz-iRa{b%C=2Op|W&Da|ZSC!U z-pK#9ihQ29PT`+2;kvZq+ohaZHQI;A?WHObjue3)?)-J>yOi*erVm*^1F}Oj<GUcS9yzN+4Kt1;_1C^#Gd#Y;*IEC#SqI+RCEo5l;;yT!1LiK= zu-5k2(XjPh1pgl7p0H2Fea~(8(VswqH`<^^aZljQFAwS_;gE$_a~=MP^^!;mMV~JW zqA>1EA?Fu@0*3u+*#)vuaeB#I#?1r3nRt6^1_a9xTwl{xPo_A8+S{xT(ehcHAKB{` z1jgq~Oi-ZEJkw>mo^+c>BA6V^NL1!2P|}1M`?D>)fY+r|8V!=$8Z;HbGTs83Kd?3m z!}@^ayA>wS57Dqhpg`ldm1)3?Npz zPN9EpZY_?_VREn?`he^T-!G)=+8cnO19e|zpMX=$A%3Sa<8=|<3nU~Yd}lzBbAozF zxijE+z2zEFmg_~R zb4td6+A3_(IV@d5nNi5;aWTZd=y&^=aUCg>)eWE8v^=7{L5 z2C7>JU38Dn57&jB?|F^k))plERE^9`2>5NB~TmB6eN_x`!?GcPdTW`vU%`N@fyp zdgcnnh1R1UfrAEah}O^_iM2t+Pu8?gDk}J?SGb{T{i7Xf7wD>XoBcVA!7#h}xy)|Y zs&LM+zNu&BhPmN76awZ3+`SB@9GjQii?d7>YBZ)usVc<}rxG6pI3xp2^5J0WtHpo; zrb-FQ_x>xbV1rPgw-7Ay)3{WtFj}_|s0&_P&e^T+27)>KkGCRFDnxeyeIL#7yzPg{ zer;{I+j8bRC&%66JT6_jN0$06UvpR~nb@hN7)7ZU`3;-Q1o}QclgTlcX)F6AIopow z!e=jcxtRrgIt3_W10X`klZCCnxMDCE4lyy~NbpI-Bo2U^3_A-GzNh2V8=U5p%=|AY z?P^I!Brc+s0P9dWz=d)BV=>_!d?<=F$l|(i>hQ7f)x)1>zqGz?&&Wyx6@NZ|>9@u^%58<%41jp&jR^o|0 zOEo(&(I(Y)%zYoz*1(n_jd8Bzl7J`<3$9KFY+LZ>ZkbF6^Z+W%(39&4(ajbSjf_<|IRP4 z?drkh?C#U*|C;?h1Xk+z^|=nvo60+dXD=6XGqh;0o8&@^mKxmi>!aq;d0A3S@9QU2 zoB$h+zIZ0=g+ooWX+t&&9a?CbkxrJiJJDn+hN~D1_`-Ak$C7D=uN=`irRng{V4qF{zGMf~sHx~M7xY4R>af`rn!oOf_AI}4y*9Agx9Gi5W)E|D+V*@5?(b zndq=rtH{Dlt5R@n97ni%AVT;aQ&3^?5CsjP_g|~+F9eKhUivB$>9d~p$lebB*zkao zC2;#=aRE@q&_qs$TYkf%26l2>3ulucriNv{W2++I9QrnC)D%w@awxknO`N zby>Ac1JfF=hppOl(+l$PQv0>)f62#}2Y{1=C?7PfX%X6dZRB#>J#6ol3_73CV=@V- zsUC-p@qmNd12w-FuTJYT_pN?W1{;+TGGTZT=PjLa3Ob+2%DOtKB*({bH^U^M+f{wT zy2!~DYC$4J0Cu*Gu3WhQx<$_+;Pa2Mj3N_5oahPx8mX(nCmzGjP%j>(0k4OW<}%C! znt%+sExOyd%GMF+*VNh1+@(x&OO3Ss^D*Tg9~*zB%%2=ina9w8@ya|8$3ZJT@qa`cI_hKk}o37-`4CkhkN$Hoa+xC)KLv>U;XJ zkXVBFz z;Y3R5sMxVOl=y7>F}?6>M-$LD2{QaR%ZqKps5J+HgX4Dyq{gOlbq# z@h)fmQy@ucX4n;E3GVz=2C7hD^1+|y8bn3ok5*Ss9*!>yGS_h|h+uSX_&wY>97bLG zwKxXSn_fIB)d%o}M}Tgts={ZfK>(bTZ4;2Qb?aHGse57lc32E|3S9C`E+z78L^S!Q zctQzWKdXI5K;ORV8X%^V6w7j)4XnH`_S!Jb6NMmsyE%20{e>}Mv*zpVSrMA-aSbTB zY$C;gQTAVlv=L%Ox-yIOJm=%_5)ea5rAcfnm10RKkJ0bSa`WXDB8Nf&LnUIq=#S+Z zw^X*`QVekEZDZ}^S#*dzXoxzQ+5xbv)~MC*jqYBAtDN5R^ohKCC_^g2N7{s|{s9T- zWj0MvAp=9;(e{%i^{nMN$@!6e>Zm~}bHByGzLHRJgc%NS5|wVZ2b@G1vjjaOI|uwF zc4GOnEnb_J1YcnJ!72Wpm?4(Lms&BTUS{so(;k~Psm6!r;0$;5Jv&CfdsW2V5-L;2 zYzr@weGPA6WHkC&<;l=9-}7sr};br(0mA1A@zF_q1? zaY~bwORsK&h?RWRsLYSpw@J74D*%$_x$-O^rIqc;ZH*F}ys;YZ zd;27(nG0%bv^1UUAu$bklPg;-sUpe2Gf*b^G@DAn?@v<(+xDwd zuQp4Oje)-Kpoa9@=D{`+;s7PRVHfaPTT76Vd|a+yed09VrV4_0NYJS3x5M13$Ishr zRh@z*$~^7VCmk_V>=Vh1vmSdW-yy)DN!*)8gysn7VWrqt)#eb*FK(hOo7=^0M)iFG ztQit?oep4|JW*$h<(Bf?pF96j^92Ys4YDHy^rAJ%vU@1`*VrEGepYj%3Yr0?a~C8s z;R6V7$%)xnwbDHXf~!0jXvZ$ntBb8tz+DJ7l9`MRj(}o<5@lcOWoonkZmFoi7qGFq ztfg(-(ZY>M>sfh%Z_lTR@5z-l1qDACw?=~FJzYz#_4@;te&48Lc7C?d;o33!lRbm`D+t z&OYHCKmlYw@*MSF+N-4U^8-ya5Iu6H)C>I{Et4`?WHQX)Tfw@`Z1a>`_&mZn&5uUx zn?3%hK<+x`|C0Y|82$$8{tyGz4LW5=DcDkUn%Z`H#&18L=hQ7rW+{7o+tht;^=j#I zhS9O7b0o)Q>Y4edBu@P7l9e?jZ?6MH!Z=-GIBB-yZ(1uZu$FFnHm)LKbhKijrWg7>cia~>GZH-h&3 zHHj<@osj~DPP*kS*5|3kkB)8K=-6f$q~DV*{i+-KZVvHs&<90Al5Y_z_cUQ?R8 zb0w3&0wV9c(5Mwf+&-4Pqp0s7R92|0WXIVcT)uuT>G6&D2B^lc;On&x41|C7EU?EK z7t`2rJ_LQJcf14wfM0i-c4eVpjSz1v*UVC-FzTM5>{Qx#zJ&8%OhS4bzt@7b<8Pk1 zQ6e;Zhin6@@xJEHb-DA6$an89t$?7>r_vU1>9=bilVleFNeOmVE$n_{FPY@Fe+Sdp{&o7&6|}CIRg%3&`=ZK zOZe{-Yb6D5TXs9AdDn;p2W+Iq4v8MAjTEZaSK*VnarTMHcrMN;Gp}@e;;X!JpjHZ( z@s>*QPq`|FHWSD)d`h1jQ8@*e8%&10OYJAJTiEiLJ@#m-Dp>%uQIuP zV}HUQ_t`@fGN7er4uA|-Hq~0X9Gg-u*`L9=IYtiT1N}Pu4j#5U76x+-3(k1v0*D=! z{B_%BIrcVZ5AY)+;k6}{Ono`>PmS7ZE0m`&94TG*)tDt*^OM8El5?ghVZ0w|lO8z> z1JyV~j1wm!%s~80p_&G+_nh)|56xCBw_%;Z0>jBgKNRSpz`v4Gc0l~$N=qXNImTV+ z@1rvUp)$UU!PUo|168@9pIo8Gtbsz?Sim^9Kz=xUiPbS9@JBpP>(r3k-O<-X+^=6yHcw6laf_Lk;V{?}*wnsm zMn;~3EPYxf6 z443Ei5%eI&;&K>o+^klASnj$O5L=dXFtI#YuxfD|d^HKu{;^T>^J7;9PwLZ}TU4Et zWxm~6-9zk7*MR_bM5)wRF%<6R(&DN_zja8o?=`(!YS1>9hKp+KcuNeLDj?**9-02_49cQZdddqf77lP^Tg?)~n#cT5J7D5KqKQ8$a7)!9a6u zCT1C}Isz@;#2uxfy&7F!yAx~8&$x#=nnNFV+4P!%@s~;1woS4h1`6PAxo?PyMxUi+ zjDHs)@DsXnMUIIe0EER>RKMJ7nhIFD&gsE_xpaY2LDuG@_C`Hj&F*14gJ`-II9F0I zX`m%z>>Jv?p115wb2XqV)aUi_baTp0Yl_oUo>OZQkAa4?){WPU`DxCL9>;C$sjJDq zWf-o?(LYhCGRNlHtG1jTD6F#HyrjWgi0WG>a0W`=mvhPApkCoQFvuX6ia3j49P=$U@ra2r&q(6gR;uPI61!fhFYMND=EKR8dB7E)=x>9eWIsG4=jfIH)G=x|v{U ziUwdQTfBtWl->yYPHl_vv(T{<#ADp>or67*P}~&VYz@LpT_$RRp*9Q z05frXp6^L({QQht9lifYGp$#fI1Ix9POb^OHU#));}^=2ks{AVvIs&FSar?EDu@%W zN1O=1L>%HGYpi9D7UOqp+@ydy5fjWupWv8%j<&#gc^2L?p>Nj4{slEN1?FS~s-fN{ z0z|~DIt<>>HFkR-hmnmd8fxpYqI+^Fcp1jEvKZ*a4uE~ZmXzO%Mhiz&4!#m92_(%f zjj`Ak_R`r_hj9{57dj;uXN`Nlu&Y%! zOI=Rj2?A(q=H&h&iM?fdx*@M5j#&6^N;nTahL;%i9~_oSK@erX_4}+)49ojRkOF`g zPycI89qu5@vyjzs?(4vhQMW7tSbG+6Htq(UKY)BE7$Mqr9tG*&9PmAD;hTBT3oi5( zZ>wL`bURuU{ZhTy)gc=F13+TTPo?ujk=tN0OiP#qKr#Si?c(GLd$p&Rt)?~RZ871# z+50|Z2L1Ix*l3YPucc1gHNfQ5<7S?u;7ZAF;^v+Y4HsRML}uMiReZNC9=R^w908z# zSYx*D(mZy4cMbWoDjgLgki8dusC(QHAQbu~L*i{1CEqxyerFkC1{cEXeI*1PkMS(9 ztTI=ur7ktZzGqpB)npMsEf^EUrrY8k7YnEtmah@rl+MWM1iI|j*7&zS0TMNVWX2q? z6ynb?fh{<%8A!CQKKJEE-B=g9n6pL-N1%+q9_NvjB}7a3a_6VN$-4lW2?Us(WX9}T zucmNSc;~c@dC9Wg+4)nRK}QoqGL&CP`_V2Tc^vJWW5AA=HD zD)R1Vmfa^GmaMvKAr>u6lU!EqAD;4_sr@bLv2jkvkbp*2Wyu&+-aK(>X-P(7#2M&# zg0VahJd^~*JZ7$vBbscpGk6)}yes%tZ{X7~8p;> zL|=71VlJJoe$)7^c-s33LeC-Y2MVE0yxp1io=oaGPYGsjbFkH>AFu0u2I1e{sY<02 zaNO9CmxeKH>qN#maX?I}c^jR#*R(I;57Ht4aYrI9PJH$b{pPa3xK;Pp_3PqNkFFO_ z#vF{_CE*m!ax{flMqN+EgdoZi@nhwF7OK$_K5M3b5QqDC7C#>fPaCdK%O9LqN$sH- z+_}A1X*11>EGc1P0Giu&-uZ`%wxsX@>(Tb~p*2A<3aV|5P1lw&bN&&m0dPp)=NhsTu%1b|hN723D zFo4q({w^1j7iP%n61R8D8d(_sKQ67h4B_I1`vo^cN~OWlEI;cX+JYic%h zaRa{URd`FS^=?&2u5G|O@rC=oGXeT0aNLRx9iF!=bazn_x==}Xym-HIPG%c66<4$- z_!hsT$Xi3+$1*2NLKE-WA`$EqW3C{47-bGHaqb?c0Ynr+cphLH@vUz=41afvO^sg3 z86KZJ{@BEX5!mC^cHQs(GaTMMq$zOTJy|~9YCFj}r~&!oW$U>tnZ5XFOw4&JGPA&M z?j5@78;P{DD!k3eCkEI1-oMe3CIv$G!X$LwT)Nu<+(L$W_hTzdqslG|OGInSanUsx z%rI<8j+SRu?C;Av+lU;L(tHE9|Byg?Fm`Ec3d04RYgL;_H#7p$)@+kTwL`cHI`$3@ zxj;dR)8Wg}huwl=ly8W+++zuqmrO~*kUaYAu^Pl>`p&E_H6`91VFp_}PQqE}{G|%z zjX*o$(_Eko>$kBQfVV9LZwd>;Ek4_uZPH!e9WR|*cm|zkRfwDcP900QPP^ZJ^D!k@ z{4W#3s-XB`?Nx-1C{R0`T>*9r*gV_XXzxzj!J9*e3 zF_2)_M)H^|FQL_&w+Eh(aDAD~6+7|v`|?UFbpK85vC@VMp-XoWY0t!pK80=LbwyWC zLDZ9u(r86#@>T6t!z&MX^T7T619S4e{$9ZM2N7EYX5W~uOBW_N<^iBNCOv}xMdj#a zly_eUpW!>0nbkYvJ$xo(+j`8qom`ASGRDwr-;4s{F%fwp-aqNb_&s8dHt@lfB08qf zScnA2&?_7~a+>#&?gcuTmobRywX6*LXWLrfZm;vVxfx_AaZf|pkPj}gkpM6BS?H_; zY_q&**BJb?a-HyU%j;qBrNDAu6@Kv@wS3nqf*G%My=Yj1RuSuLVB?hUBORl;8UEa@ ziiM1iWaTY%O|LrU)%nCJ>t;@v&la*HR+HK;CG??(q6agg2GN?Oy7aW#%>(7Glqn*y zX}nG$Bi6eqj~amUH}G<`C9R5Y#xW+v`3uQ_0T2K?9W8wLr`cqv%cri~q47dq1 z1#c)LA}9sN4Oki1u5AM7M#2=GhoISWqCDtPZ5sl}y9R(nQS_P$Cn^OxcUOt<3f=_H zwOb1yvx^pR+B%I7*{InMVJ<&lA$Xv?f?qJ+lVIRh113ZEk$~~y2^9spTNt(+?;<+X z8-c?HIC3t4wjrf(AQp39B46uKZ*#U>So0(hvcM!{^!1`2UL>_^TOR1RZ^ZSJ$c%~y z7V(Q>Y6FR%^qmby;^pn5>Wrbyyjcg z%D$(HF!dc4bs5U20qQOF4>V34ftf&szj6o{IX0yl!JbOy-+qrU;A!XV?dz!WU>+H- zK*w?|BbiEwn)f1XJP@(5_HxUw=sL{rcS z&Hc zI3^teoF^K#wjjbtivFY8*W#PFQb1`pPOZ-cr|A*6EIUH@EEd;u884>gO@+m4>qBDJ zQX?U3ihVrI>bl?~($QlMjWTTURBZ7_-pZbMS+i7alz9g=#ajDwSvOOzvP63Zjc9os z9%23=_Wk2TD+mK}XUvN-^Yyv}onzhDDbQs&dX9T)KqXXnQ(iQe3H!sscj+q{_|+vp z{F^elfOE9qUMv0995)O&-=y#v4(xWWom#ONPD9N(rt0j{y(@U;b3s}|i>1blq>}d- zBTWwoL?!VU&OhST*>7!vU$#A~MLMakvt@Z-WpzA}y3LR*w26H-pKyI_`fS*+V7u(P zp^XIIj9+-L`oO?79+N+Y0pUu~5lGq04%qDhS8tqli`=m_pxg*QJ!dAloOL+}47^^^ z*H|3+F3{%pEYeOoEHXw>;4?H^rGZqgsFgU~%LR%P}>pR}F5P!u^+ zhl6V~NuD3B^Id&vV+QM&M<@xM2gN3SOf_W{Xr83+2<(l#^V}CIdfrWYF#FX`7?FIr zhWdosZ(&Bvzs`1GNPa5gkJj76R?t!7W#q?T!U#||>FNbQTVv%0YcAP83bG*~A#yyZ z3jQ>Q0rDl><02wQ8L3O4lcPA>TqHR62Q(J9Ev~#Sez%JfNOUatzU~JWdh8ZyRB28` zYnOi-;~L*DsORQ?>dc{0tWgeQ7cTeE3~$->?EYG!y2VkXUQA0b z{7l^ax)0ThQYAvy$!Ht&{?Eb1qD(@$djw z^qvE_SNl!((&vLu4&Di#YesWX@qiAY+zU@W&NXwOr_|icJjl(TyR3kOp{!x+b_23Z za3!5xh~2>BD#_!t9s3}nO@vt#C|A4fC=rC3H_FuBgC8;nnLwAmORu7W2~BL>`!-Y# zHl7f4y%J3$@;~=zF|Yj1^Y9q))T!pf2jDqsmNEqudNHZXI{iSJ(hHic3itsZhf*F3QoFb*>2sBCFL zX$1CroDz6P0x3n)1L>6Uk^lqGGqcX)liMxWmSV>BSvOxrBtcdI$m6N0qx?l$fv7q6&tiH<+JB!bL76uONPWSw#KZIgHml$8CBSNe_=6Tqm35N%h7%6LHNs*4mio;c&gQ^%==3W$Wf?jvtHtBYIrkNwZ+1iY<>#$y20xxpl&`(^69gl z3K#h%2NP+Eisq0fuf^cUqFOVDqf68@Q*qnXxwHVKqd}4(Wf*3C<(e!nyp=|Eb_ifqi7!drTD>mbDmws92Y)q1h}86r}E z$};b0xUNI?Y=To5*Hid98{rn|JQgnkZ;Vuq$U{z=kaM2Xq__KZ9M+xwaH;kdQ>uh$BNv(rf%K{Ek@+bwcd%cF5w+?Ox_mp%B|tm^&wdau3U0|rylnL zWFTeoU}ZT%R$o628V9IfOajy}VA4G7JpMS3bnVCfXV^gQZ^fs-AJvrVYS47gDSZgn zYQN>M)~ThY9P?cGYO?KO($iJ`$$zlk{`odek?ILO`?XlEV38?*Mi}m)n1GsNL6raM zU@=!Z3%T$_1RzcT@(;l4yGuD%@|dsIZk`T+uc8!IzZ%EBl8$}U(p{{j^n+k2Km&U7 zoegl9Yr3D{w5XYt*LFtofNWhCQ4T0Ud~I}s zn9WYrX!<;_BzICyF9#Sqy5dqbR%W4Cg_e0q$J@`7)S~+z&t1yqI#A7ZrG@N{0XU1} z1Xq7-6iiDA5EC&?Ef;vJ*%%9iT{4&FczwvkfbqwW!TIDGNDuCn1Ih#7`p}a_o2xgk zh4hw=x#L;PWxd-#(y+R-4vIY?KmQ;k4#*n$}EjY9XESpiOQSc3@BFA>beXb3TY-716gb{~vSOCN<~j{83N zjP55J*uOzcXg?Z%GMc#ortJ6o&j50CQvdEugPOkg@jT~_Khms?7I)vSbHFb}Ak1#=rmd z|GAHU?lM5j2w<`J-%I>!JbwD>zXSD`OXpwX_TPc}??C-)HvHdL|J|d0adZCfK>c^1 z{&Fk%?@s%d!}G7L=f4B>|EGZ}AWb&C?K^s}K((oMl;1W(-EK(LSsq3$n5RTIS;t<3 z?>9&NuV?pHuVm?dZ?mQ9K9_X4%b-S8WzM>Jbgo>eT9v2fGJX1{a!HBc|3f=*?2k&z zDxXOx&?7olQ%s*I(-b>${je|^#*C`9Rq&%2#>8kwYr9_V7|t}Ihkw%2zsmp7V+rRp z{|UG0-(vj&iyw9Ab8^G$Kw4#m z&_z<@`UO`T03v0I0eeH(f0aM|Gyf0*D7go(IbxX5P_;HO@7hiqM#(v3ibl&=Kldhd zpX|3O#qEv2xd}IB^OYu^3;=io&>YGNIJ(_wN_+PgImiD#QuVh$0!5TLAhJxYTBsG?_)i6 z>jXR*c%qUR8vtaGWUNTL_=Lzd#%8%IzG%%LQoAZ|RQNj$_`7cl)C_Ph;y*ljtFix< zkX#qqaP8zG?z@x1Gt%}9pt`Z@$PGO0l8OIbk_>ym`Lf}8?Rzq2l*?Y&RQ$1ix^tr% zct5_h(sRibEHWbr{7;hoSCFwZ9!QSGdG+ftq25Z;RnYESORml`-P&bOLf_WdXUT%E zb2jg?Z0@t`Q47*39as}?hoxybVc|zld7gLcAEs@;*-zvw>^tNhKN+deFQ43Sc@r2;FxaxGqixjM0Ata6WVRW znHK-yWQ#ip7D(x|#^=fT${FV4`$ZHb+Fhd3p}m(j@zg2gzR)3f5`yN}!$c}MauE)g z2sfSlR!lKbr^MTgsx6^Be=#9Y6TZb_lYSmrW$WEdk>oO&Tj{NJbR(sa?pEPvau>nr zUAC8uckG(y0AWm0J?D2oKb~2y)^&^q{HmeEDtBB9G9{mUdCnI-+W;zbI`O-tJ2g7Y zPyafF(Esfz#iCpu&fvzu9tSuM%Zs&P88Oi8o#lQ=JiPcWA?5SC?6#P=h`>1r_;Y43 z6J2EX5RsPbT#`SqkM*`qag~cp0S*D$N3VivEX36F5dm^zjZVTa>(d2cZREbUTl`bP zrjMm<7jY@xi&6tvd{^^M_Ir_!*Y-WYlL~yV*zc^tUDmP{)cJ0jB85+({I(xIT8x=S zVV!=gk@L*JTscL>K5T=kWtHKTFEDB>LQ9Dng%`2TO4m}H+ztw{ z(X%aq)u>*BY%IdfHBy?fjr;`A^0pi{YU4bW&R@1WzF)vHuCK%@dPFo>Y=c4Sw>0Ov?lg6VPo;6F}0pYPVzMK*{$uW)nt&h+FDSsoPss2T~ zJ-f&=8_tR9`gIr8>zT)9z~!)brmEvK+pe=sVLN;k@hK+ZtU$xr^jfM_C0hgMPUjTG zG5+nNy%9tv17}h%F}prZl}A$bj8jUF5nW|f)oKNOIvZD_4Bsx86V`G%+?E47OX*U* zXqRkM;BlCPa72nG${;kJuJ5zfUCP-z5SUL4n_Uf$U`UD}mq37;og<8CjmrzrUiym1 zH@jo!=l1tUj_>We02)PgRN{V|n@l1i-`kohrD__0HT)6g*=kh94N@q^z5-BdE2k|Q zl0ZMflM(}V!90bUfcjyU=X=p(8JXPm-;9yea7Q9SjKPaCsF1HLw!9>0XokP?te0KV zA6o6{GIWwW^Ew7P)NWZdTl>^RsMl$t#6rqH)e5=0UYJGVeown7QC`SO`7>_I8hf&E z&$Yf~st#SKO3b$1H!T8>RzN#d&W12$k^P*aaN3!xbMk7*7;c4!0dd>+G{cIYB(wC< z1qw@c;~%URH7i+)eDJ06NZfY-MOqe!MHR_N{&Z*w0x+F)UF+z#;22Va3+Xb24qjcN z%xb!WYE8S18BbEtNsk=n(Fx=Lo4ijv+E$a%pF_<~13OH+PId`Fg+Kvg^9WEIMvRw;0dttbmvfJ;IzL zkPFvO>kfZd5$ZlZd{T0ljv1Bv_9OX}y*ga4Mtx_SN+rgODh|qoGb@DsnsTPja zz;;rEdjYne@qVpM<@r9mr}m9Ws?}IBPr{n{1RJ?m9~&Oqd6c#5I_uNla8Ib$YuY34 z&@h*$aT!#;@h8dJm1Ruk@6gVZFy!F|sKR;&YT%?3=%Kf0!fbB>f3M?nf1R1G*pd8n zqOZo3b@`P^-J34e^fI}wpY2E1?7ev)UL)TK%(jEdL8Zk*wW-z3>vg&DU5y#-XAj(Q zxfvkK(j6>Smw|qC+#^acFx&5@96e+n;Ts%=w5^6gFOkq^$D<>9x4Yg~1Y|hCEZ1_T zzSNxUx(JA?3dkp$8%;gk#73?e<=;_Ie!0BuwTDqM8CPNmv~}-j>-Rn$?0vw%J&SR} zO4|~j9^$n`#5ypG7nz~n z7laMxQ|a2fo1d@%MW9tJeOmbS^8RA7Q@jnQ1kKe&Bc$}~X|{BCjJMYp?Yg22F+ktJ zkZKkQ@DlA-mR8wg!-jj?}=DI){R-74U_&maDHITGvldiA1*m)nmexLRdx6haNv9)g$)Eo<*V613xVt^@Yr^H*6c_&OPUl60d;xL7OhoOyDgKV!vKG=6g? zrUh$T-&cY_WfV%lg`cedGsSb2) zH|crISf?H}9yDHs2V@_M!PD$>JB-tTpx#4R8IhME{b2Y;p>_1_4uHS28dP5{~ez``=PgUO<&6n zedR?vD#vx`lj`xyyD%|!EwLfCm{rTGi?e}%k^Falp^iq?MsV(+QnTK{K}%F0|JkQQ zIKRyqy@>0zF#H>Mcd90VC8nK8N4w6pv`S}s-c*FpS=+9X5l|1-nAWKuON;C4!v#;J z6@UXgtX(a>O6%oyT&OkDSfBEJBf7EpiNH_8!?Sz5O1Y znrc&ye^DbYvF`*vQ$0KjQH_T|2Cu7JC||2;Ake$uCuZ8UmG9<4Z{4zDx#cW=7dkp& z96?)~Xvpnt5`o!Hd?%!ZOt+*UI3(yHb3dAl?v|$WgNeB-q|ix==l*Wrj!zTlyUQWT z`W$Mn>2OWZF2F+sDzZM>`{C`JH?HG=w>0#CG2( zf(&{=ifAvQn~0 zfi7lZ#~M;1E)o1hx+kx^?V!X?a}V$@ThX3*;a?zGF7C8<9$Bugt8NKH=bVsHFc$NgxhqA?Hmqr`+5D0fA{H!yIP8DE)V$ zPgKep)(;L2QZk;fy5;4Si=q6z9Q$&(l7p)<_Pjdxzb7?OrmtEz>wF4xfu>RL{6DTzhlq{vO#iLTc>UnIR3 z!k)Ispv{>nZI9#sBD}x1O)8inr8D8T1dc=O`-_yEW)5L zF8dI(k&tZB7(Bz=2dQ7j5fi1iEG!>#H{VC+kA8@X(?3^Ztu z$Ht5d+-KJ+Gax+Qa; ze0v=I%vdRSdrE^^A-Kelbt*Pu>**$`w*A$lDrH8P=7+s2(sUM?m!_CEMYKa0~W z9-qLnA-T(4)ek&^%N}uO?}w!8ZK~QFP3q|@@&Eqh$j|_qM68Iuq(Wo-wDjZs67(%< z_%dnxIK5qxs|+e}s4LMz`lqsJhb%@7pMi9 zRjQdIrBIfHbaIQ^(6Ju(&!p!6 zbNx>YphZoe9lJ~>MC{xZatLeP3`(5XJ((lh+7c=!Pl{Y1xgPe#y59gJk~H-TzUNHI zv}c%bJH{qIFXLlN_3SxbO-&jiWNTuG>x6(h%cKuXye!W*>W){6jyGUbOh_`{F1Sc0 z_3kU%iY}?+OI>vuvpWxDzGLr$_LfJ?zPo{Czk7=ul|<|#=DExVPtcwqXCN?r8ct5t zlZQ{UK06S8IvvXB&^(Od0Y3UQL7Ig%IV09*&WF$D{NdMOk1JX_{>wlhW#!H5p4(3 z;`Z$#o^}ZRBQ6yt{|n+ULHp(lx8bpYckdrHB=jW-Pm@6MtE)S?_J&Sp59H6W2o#~} z?ngV8{qgbfJ)8L{G;zD?=eGVhjt+Ieu(YI!{5@*-@q~yfqX6%c$H#nm2aeYIJkZx) z=#U7M;QqyizW@j(b!=Hanc@wPzxld%&#W?WG%3ShOaVQdQ}Ha-p@0*dd%yKOgbRO^ zG4;5xGyOYsT{+(q8PoaOlhij7o|n$7E_q3wN2EJcnfP>}O7iCMqbt*&J5xY40k^t|c^+6BN;9xO*;@&(^Y*AQCui=p|A>6XaJ;-Kto2IO z-nQ}apem%y{n8!&w7=}W^N76an%71((k`bq=OypJna~Cl4+=M!{M1h8I*=L#uITR6 z(ATF>2blHyLS1NapyGmp$o@QBoh-({Jl4;#m1Mjg1lsk6t?RF#kx5C6vrul#+gr$% z7C(R;eEar+aNE<40KBTQhMZ2ahh_$LN`zESQzYOi3GE8whUN?7?KmSx-aP-m-%#(y zi>dX*eTc8JfM8U@g$=R>~=gYvy;qQQxC5 zsJmpzE}4WL)qIC$HL@cmP~RKWpYF+U_R*iF6*xPp4=BCwdgsxs8wxsJV3A&o>>e=F za*A0NoL-^REU)DGFts$lH@IS7&^Y(^t7NZNrY7?jo1v$9FCZ3uGCeO$t3g++_R-wW zV+TM~(l{LJJDqolUl%Ioy-#1@Cw4S|7qR+Z5eTt(?x#?b(5F)CvDM3937?hZP(ok% z#K~h4K5R&+n*lcVLqFDDZb*~<$_yq1 z*imFtUCCj5mz3_32Wf6{On@>|P=So>giVlXntOm`)0JV_qy$s^)l7iau*dci!CZo* zmUiCCkO@thE?>9zCgxB^;=`Cl8Y5(8v?=GE&&a*yNwF$|n$aReSyaesZ?43A>-g|Q zi8Y*YamOgtu*bvlbto_px{f-@;G&L?zM9`+z?E-4EMAgiAy#ZZQ<9=BO5!p*G>QPM1*!ZL8M4IcS9L5v!ElRnw#pp)ckINdR#l zL5kE@&y$O@!`^Xr?w~J;ABCEZIY@%i+}8kEv)l)zKAA;5Oq(XH zcKIpp$&NhpW-cg}u>BIKC*)`ziXL@M^q5r_XD_RLGXO`Hml$-9kg>k=u&!(U_W*9E&poF;# zxuH3p1jZEJ6Uk`j@I^Cr>^E1_?4eZ75m)Fo!9RG|={Rt=pM|Kz@*5%c>J5A3;V z^5vQC(Jn&CwtkZs{HP!sz;>*-pX?QCe0AhE4$F92Q8O* z_glWZhi*?9w1Jx*46Ik0Z>_ve==}mW$9$z*``ULjE*?v0d@csEmvpb% zBk5XatGL)~R&+n6pYFpG^k8@XmyOIvLZQtNuP47^BATC4i)zUN9a&|W?3doXs$L1sj z>ZSEvyTcyzC4ADl2G$*F+?!#gUcjYA<4bXek8he&a)X7mWisIR#mbk=X%r~C6-Ah{ z964JG8Zmst%9>X?P%?RXX3cyU>6OM>gGK0C{RQJqtj9%^h9B!dtZ-;h(6}`*WU`>+7#3RQFE~5r`IWv3A5`k!>pLdJ(3BKs-VkU4d z5k|f?jJqkmHW^P!)zB}=ViCs_aD}iGQ+j4o%Gjl)uFkNznOeGPnU`V^c7|)^k@TUc zzs2bg57FBmNWs)a;o@g;Bj$Q;7*8_^wG!Nw7mBrk0Wn+SlR+X7Lz+9NQbx8pDxiE> z8-8}J)|~m0Q$beRW{P0^i0A4AA(dzIr)q=FP6XP?B zxP2M%@YD=Yg&KBwf3a;8a-1~fkISQckYRrxas6Id`VezR z(owFTI&MJm>aqRVucVg0LsHf8H)!EHplHuOzq9|`Q-Oh)!2B_gm?DyMzb>C$`h$oK zk*y^7`#9%+es7ZxFf*Dy27cB3*UI^uR~a=wvQAdnlm8XA{=45~_y8yaSv)ws>-Ot< zX$$9;m!}V#BGv+U^JRJ~lW8=}Ll)wB5=bOG8dJDqeh@J2H>hsM} zzY&INYpK<^$F0nqxB>n z@Tx`9f4I})P8wFO&WxD?2wc&-{UVU^5X$tpb&Zi2li}op*3>@OSGE^IqAv z7!HCs{$>*XSTGa6VKBJWKJmEy3LWj%&M=xpAf6que2$%K=hvvFBh*^|&$PJz@Pu|! zeoUH_bTTc#6Gt%W<5yuMu4_%9rR8w3%f3(7uN*XDhEN>fX|=4l0l2~G*sZV`hw_Yl zC-~hizqHO@npacGKX$WDGYIhLsGdGmIVX6yAm)MUM+^@RE`&*AbnCCMWc)%-=p!b0 zN3!m4dpDXLVcB*`D?t0%-451zp=uS%_iUf5(nMO8!XbmJZ1#gVujg?t*SMm`_08c- zZ*NFhZH^@G<^CP`8zfbkw9;nve(SxMC`)}V4N@zsoV)^MAghjk?;w(JeqfJ0$hh1% za@;(Ed8RCDFl))3Wu?>PIe=yPk6s7w&gmKVLq_A{Wpep78>|bh&(E2`o)AalCg+&& zjzDNF)7idvPG;>m*E&U~sk!XZ*Qk52S*dDDk_Ys30uoky@p8xKZjOE#|I`9FR&6kD zu)aDWLo$k^3YWw02M2u!M=;r&1s6G1cfW(xwX6;!YXHI6LPLYE{ze#HB^=Y>HMRTXO=1Y?nf@u7QtN?f- z7sd#qU9;IhmFqN(PpOr=Ky(2BgU0e&<;&QNZlR?DQgc9#@ys!AGzsdU3!Bq&ZwZF( zvARcWw=|wL+0_m>=o)wkrt=xEq}?N#yx(;8&TStEl77g)j>qj*blq|wdjZg6J~gbQ zwYYctVw1DzH92via$#!Jrk9O1l|Q7(t1Y5D+Fpx)wYhii-b$ndfy4L({9+Gx-h_a} zOeA0Z@N7L1e%V37^`qx#{Fu^n=MCp44Tf|R>UYPC!8EyIw^!~^0_HR>M^pbh%Y3$xX(+Z62kQO3(@sXrSP=zk&@nP6JXsiDFJrcrYktkR$) zMCaa;siU<_^c#^G>yTK=R`aV(kxkNIE^&dYc-|A4Zh=ETsl#>cm3ou0Q#Uk ztRA5)gGQKl%@F3M!{eLtDeC-uXAaxXf1~p$>Ka4HMdPSjjlbaTw?5y~?e@G-DeURC zOvW7s%!W_~W%2lzwHP&+I`N)+n5ux7B+d017@ZuSKVMwuau2GU6%&){R7hu0yilV> zv)|p7+Mrj%HJsqPfx^6#>#{GRD5heZugD1?t=g5YZ(d>muC(=g0c2*^D%cn=+v>QG z?{RLVoDBL`4rABX?-(ePq66c9DP25%0u>F-+Cm!B3KuL zbGqSuEfM_zr9A)J{$OL>UW2G9M^sv-uU1li8r$T$-oh+ZSd_V?JvQNFeh!86+XhRQ z%XBKd)(YLE?zc64rl|8P)Vq_|;~o8F{sl5eZW8!jJ;W-~ka~ZqMFFc)I!}~MqJLld zSwFeFX?X-s8zU+13O-$BgjAAP1&AG3gQQhelZSij!Y{&r@_!NqFk%SlB-D0a)j<3m z_Ooo1EH4}ei6a;h zqjU+~OnICdAvz>nGj@sZ?*gd}G;b?>)yTb|zez_ZmxUw$jjv^37%md0kk_g0X_mYG z0qf&Y^GV|e|8xKwm-26^9*awmO=4VCx0Mq<^W>2!KpgYA>Gui`-biKhuAdM#JFW?X z#q%+vHl+)vnIG8 ze%9Z)J0~5;dEMN8;=Xh{C2jZ>%L|~GhmJ>=Y`^cB#`4^~U~UF|TRxx^5X+X$-G^p~ ziz4*A{b^`vF{dggX8`q@m3}_`gnk$=e^+&9Qms@T&61#93*&0pd1qJ%MNU7BZyF&>pKk0Io6OnRfXw~{j^dyfTC5NR za~n`WOTlID=emDvb8=f}t#}5b#3Gbi9Brr!moko@xzr6Mni?UjZ>$QdL|FJJEw&jX z_$3&`o_`VDfxJj#OL(=_Z5S(X#Za81{(hg}#|>qIa^Pqyx{_b8mFU2#^S zum*z=!?bRI{$kwSlaRzn>D}ccBhIu9FXzIi!WG76_5jHFE(7W~RaF=k!^V`#HO|~DjJX{HXG*t2tMR9z@DA<&e%w;qd~+jT3Pf7~hpk0P+Jq-X6u7gMJ<>(! zf|y^s6{)M)_ZvjZ_jar%+gm!VIgI4hZmxNC3tY+%ahgnVC(# zgWcGD;;*D?pNgy((ZET2F-B!Php}p@{52DR$ZKB8lpL5%J>T)fI%aZ%fZ~Ck9j2d# z`da~~d{N#{T6@;5IHM!+cC86+4Gqz8sW$I`E@`VMSEuP!Io zzgp6nB+Z6%X^#VzEH>Ikau0_8E)fGx``QS=E=8xk#p;*|oKSD8m)aWd5VAd#Z8i;9#`L!CqQxCxAX~VS`|KwT}kqJ01$K{G?GP|%j?afiJFbe-*cFKx>%p;@)ItH zZrlXyTgr;{n_g(nUJ)prz!(Tkvy(z!BN5>G<%DWgdB3IRq!lUz5TO*gm{&zn)kK|U>G|+N=`be( zi4%xIM#x;1GadV^nt$+tfh*gJThpg@VNYa--`QbG9Z&hwdKr4|P`EAYOtDEm4oReRj<|i;kKdH z$O@g~+;&nbXsZ$&>`m5#Dwc)R)cR@~{ezD(u#|a+xz2m?~m4jEe?hafc6HM$tKh*A_W#)0Az;8)iR?QTb|Hp$F?p)mUGb zZDBS6Rd>tZH>nJrPynS6wSG?)J`#cXJi?=Sld!zSVVL2f5EP|9|7EfYt!&UIQh}~l z>0smO!1oC@y_`I%d6K}9A!~6FRj3<$`sf$lGK-WmBUis6(Qo7?W%=Eo8tYz(8?Dm$ z53e=M^Gx@qF}Q9@$x`r4QOJ3e&nb$ggwNHT2X*&x($4d`p)Gyl_Xg{6eIim;H)@>@ zeZcNK*8|j?OlP7L#GmV&02_oIBR8}H>(7gp4ph390=gY$4^l|d9ouh;Gm<^Xv!Ub zcT|=&;lw6L-Uu#w7#7C=jcWZu#M2)e!5_Nuv(x<#0l@G4kW#T?TKJ4YZ<+>+J`E|A zab3SdTinY-Y-iTTMDxXr98_gcHL)nsZAC|SwL-4hd{uP2=NKdEEV@>0DaVgu=G1M! zI#7N5m}o8yx$X{YM9t+pMb!F5tX3p4Cd$t2I= z2+=nnx-2nby1SoJTNpR;TG5jk8Dqtd&z;h^vSQSPOrXlPX!M_K#u~PTL9@PUd+6sn z&Ny7Dh{LVko*7WH=Wnaj4>MJ#ca#pFiZjn zQB@x*vda(G$jU){h<#93IC(ChbKX|1@FkV2xs8BdT<&a=J*|qV>!NxLwvfY$)OrzF zB7NeX_6tG_Q<^|(uK8`ukPuI%qUtwGs;+pStUMO7I8cJz*f*zp^V#{5w2sxBH7|WR z%c8-+2`sFYJsCdJ4`}|1Q8P1#lY877>xQ;^w?JR1yKMcy$vZc+nrT=jwLf0T9X4KSI%*m1gAc+T>b)Tz?o8oZX2Po z6v+?92wHp*5lsR2f1*jgWRNLlom&tdPJH)OaFbk$mQF6PU4q7FkcwV668cUM6$_o4 zj|d7qme**i{OpQfkENr^svdeWOO~v_*lO3NoS)eD97Zd^*sZhNmKRBXB}WkMXhyG! z_W#&>&!{HXt?$=D5fxBT5D>6Xr72Z9ib^k14IL?=2I)cwh^PpP^xnI4=`|D!ozP2w z5TuuoNK1eKIX7$VwVwT+^X#SL{dmUy;y}4guKVh9&fomcUZr_R9p@cBLBT#M$-zi) z;u9s|6MII+j>+KLV+=Ek665#ck2)&lht`G0@`qxH-~7s$-28X`ML=1V*K_>e5KzVU z9fTZoOHJ0S*h8vRlXg7GFDIDa=#|et`Dj7}8bNXSyXU#ojEyV1218^!mN;p~nXIC@3-F84K=5ZMk znMvzEBvU1Al+lTJMozWIK*lIO{Kk)z@hbGd$o{7ep|CV&R~9BchB2$@ouij6bV7=+ zcTi>08m>{OQ)%%y^k-JRPKdc|U`4>*;Sl47NY=+RfThRuc0w#qzS%KS3bD}{nG*7*mFAw}w* z;iToN)hy9O3YjbZ2k6f=1^~bjkeyvU>39TjGgRPKmvF)6sVeL>NOb^k6{uWJpRX=QER9+eNRI z2sp&RcQid+fWesEAr}xkpPc+TEv4PG%%v>5dqMeHSsvB5)zxwG3HFI-jlW2$SXjDf zu?$001P`3#62xN{H{)0wz`h{o>kO;*+!H67yDuRkrR^(arb_yNsH(P^2@76y*h%0V zbiLHY0_}GQ+~U7`uO&KR>X{+#ZLN~n>)GZGo^5-#-TYT>O;sbK$FhFIZRjWmI7JLQ zr&-Qlp3EtXN>Qq*5vH}HztvzT!AC7!ZnU$%GfR7~ENs1~PqnmBjmh4jxLZ?V`%dS* zA2kRg<+}m*IfUgRdeN1})19))!dF&qmAc%NltFd<%;s3c6g?a$xlXg5rykG!rnK4K zc_6pXPEj4Oj7OZN*?FBCO>e7R*G(TCh_0D#j?+JuIZ#g=%kaHazmcaI+AuTF~aWE}ShigL@X+)(JYf`s^nl#>@u`K2xr2!*C)L|rjLvpSRd?WFIUhJ zV}r_0Edd)Nk5R3B2vC>?IMxN;_erUSkhU_Gws-vwW#-HSJ7_jqX+T>S@0Q&NTWfvY z+TcApFT3%g-~6USMyFu~KVbU@(QE3AeadEEyLgdd%n=S_o1hfQqA%VddyK6c6LX?x zWaNQ0vQR?(_C+?f{UaK@ENje<_FGj&wRXrI1NA#qOonPQAyav8KTw5&8L;aAx>fMY;4))uT75Wi;D| zwUdi`Zm6#|hfnEr=`{)`YX>USaA~oI%}{Jbx!6j*q1(}{8)Cb$W`cSeswyl!V5oR~ z(6=V2;nZ1&Ubz34yL3519dJ=>$HwN8vVoMKtn0j~5E$wD)oaOkN2$9BAnhn;hQo3L zh_}Xse>6A~U9e4 z!0&N4ddLGQsp-8Qr+&|!HvuG)`YV=t4-syBT6L9Y-Dn-ftotviONcn}Wc&nh5OaQCq>Dl^*J={~I+UjD5EFTI3+WvqA9~IW{>&rj+8@mVnnfu9_&=y!%S{ zcQ~{Drc>%GjuQkAuTBHEIGGA`It7znG02kkJ3>F3PJc0_?N&@E=tJ_G+^hh0>ynoN z9pg_|JojQQF{b-I0m2KBF0MK)LD-6oZc<&%0D_s+m>OIiTs|4 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 From c26a3edf7b62549edfd61a379ae557442fa06c2d Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Thu, 17 Sep 2026 16:24:45 +0530 Subject: [PATCH 07/12] fix(auth): resolve session metadata in one request Signed-off-by: Aman Varshney --- docs/product/output-conventions.md | 6 +- packages/cli/src/auth/credential-manager.ts | 60 +++++------- packages/cli/src/auth/session-metadata.ts | 42 +++------ packages/cli/src/runtime.ts | 8 +- packages/cli/tests/credential-manager.test.ts | 91 +++++++++---------- packages/cli/tests/session-metadata.test.ts | 50 ++++++---- 6 files changed, 114 insertions(+), 143 deletions(-) diff --git a/docs/product/output-conventions.md b/docs/product/output-conventions.md index 3fafd7eb..bb2d61ef 100644 --- a/docs/product/output-conventions.md +++ b/docs/product/output-conventions.md @@ -192,9 +192,9 @@ a different Prisma user. Therefore, `auth workspace list` describes the workspace sessions authorized on this machine; it must not present them as the complete list of workspaces visible in Console for the currently selected user. -At login, the CLI resolves the authorizing user through `/v1/me` and persists -only its safe id, email, and name alongside the session. This lookup is -best-effort; both account and workspace-name requests time out after three +At login, the CLI resolves the workspace name and authorizing user in one +`/v1/me` request and persists the name and safe user id, email, and name +alongside the session. This lookup is best-effort and times out after three seconds without failing login. Existing state remains compatible; when stored metadata is unavailable, the CLI falls back to identity claims in the access token. Session-list and session-selection commands also attempt this diff --git a/packages/cli/src/auth/credential-manager.ts b/packages/cli/src/auth/credential-manager.ts index d4991b6c..320364df 100644 --- a/packages/cli/src/auth/credential-manager.ts +++ b/packages/cli/src/auth/credential-manager.ts @@ -45,18 +45,16 @@ type RefreshLock = (fn: () => Promise) => Promise; * never leaves the manager, and it is never the empty string. */ const NO_WORKSPACE_CLAIMED = "(no workspace)"; -/** Looks the workspace's name up with the credential that was just - * minted. Best-effort: the manager treats any failure as "no name". */ -export type FetchWorkspaceName = ( - credential: Credential, - workspaceId: string, -) => Promise; +type SessionMetadata = { + readonly workspaceName?: string | undefined; + readonly identity?: CredentialIdentity | undefined; +}; -/** Looks up safe account metadata for the credential that was just minted. +/** Looks up workspace and safe account metadata in one request. * Best-effort: a failed lookup never prevents the session from being saved. */ -export type FetchSessionIdentity = ( +export type FetchSessionMetadata = ( credential: Pick, -) => Promise; +) => Promise; export type AccountSession = Session & { readonly identity: CredentialIdentity | undefined; @@ -99,8 +97,7 @@ function isAccountAwareCredentialManager( export interface FileCredentialManagerOptions { readonly env: Readonly>; - readonly fetchWorkspaceName?: FetchWorkspaceName; - readonly fetchSessionIdentity?: FetchSessionIdentity; + readonly fetchSessionMetadata?: FetchSessionMetadata; readonly refreshCredential?: CredentialRefresher; readonly debugWrite?: (text: string) => void; } @@ -162,8 +159,7 @@ export class FileCredentialManager implements CredentialManager { readonly #env: Readonly>; readonly #filePath: string; readonly #debug: DebugLog; - readonly #fetchWorkspaceName: FetchWorkspaceName | undefined; - readonly #fetchSessionIdentity: FetchSessionIdentity | undefined; + readonly #fetchSessionMetadata: FetchSessionMetadata | undefined; readonly #refreshCredential: CredentialRefresher | undefined; #actingAs: ActingAs = { kind: "unresolved" }; /** Built for the credential the process acts as. Every mutation that @@ -177,8 +173,7 @@ export class FileCredentialManager implements CredentialManager { this.#env = options.env; this.#filePath = resolveStateFilePath(options.env).filePath; this.#debug = makeDebugLog(options.env, options.debugWrite); - this.#fetchWorkspaceName = options.fetchWorkspaceName; - this.#fetchSessionIdentity = options.fetchSessionIdentity; + this.#fetchSessionMetadata = options.fetchSessionMetadata; this.#refreshCredential = options.refreshCredential; this.#debug(`state file ${this.#filePath}`); } @@ -215,7 +210,7 @@ export class FileCredentialManager implements CredentialManager { } async enrichSessions(): Promise { - if (this.#fetchSessionIdentity === undefined) return this.sessions(); + if (this.#fetchSessionMetadata === undefined) return this.sessions(); const state = await readCredentialState(this.#filePath); const candidates = state.sessions.filter( (session) => session.user === undefined, @@ -226,7 +221,7 @@ export class FileCredentialManager implements CredentialManager { candidates.map(async (session) => ({ workspaceId: session.workspaceId, token: session.token, - identity: await this.#lookUpSessionIdentity(session), + identity: (await this.#lookUpSessionMetadata(session))?.identity, })), ); const byWorkspaceId = new Map( @@ -301,10 +296,8 @@ export class FileCredentialManager implements CredentialManager { this.#actAs({ kind: "session", workspaceId }); } - const [name, identity] = await Promise.all([ - this.#lookUpWorkspaceName(credential, workspaceId), - this.#lookUpSessionIdentity(credential), - ]); + const { workspaceName: name, identity } = + (await this.#lookUpSessionMetadata(credential)) ?? {}; return this.#mutate((state) => { const record = state.sessions.find( (session) => session.workspaceId === workspaceId, @@ -619,25 +612,16 @@ export class FileCredentialManager implements CredentialManager { ); } - async #lookUpWorkspaceName( - credential: Credential, - workspaceId: string, - ): Promise { - if (this.#fetchWorkspaceName === undefined) return undefined; - try { - const name = await this.#fetchWorkspaceName(credential, workspaceId); - return name?.trim() ? name.trim() : undefined; - } catch { - return undefined; - } - } - - async #lookUpSessionIdentity( + async #lookUpSessionMetadata( credential: Pick, - ): Promise { - if (this.#fetchSessionIdentity === undefined) return undefined; + ): Promise { + if (this.#fetchSessionMetadata === undefined) return undefined; try { - return normalizedIdentity(await this.#fetchSessionIdentity(credential)); + const metadata = await this.#fetchSessionMetadata(credential); + return { + workspaceName: normalizedString(metadata?.workspaceName), + identity: normalizedIdentity(metadata?.identity), + }; } catch { return undefined; } diff --git a/packages/cli/src/auth/session-metadata.ts b/packages/cli/src/auth/session-metadata.ts index 4e06c577..13f572bf 100644 --- a/packages/cli/src/auth/session-metadata.ts +++ b/packages/cli/src/auth/session-metadata.ts @@ -1,32 +1,9 @@ import { createManagementApiClient } from "@prisma/management-api-sdk"; -import type { - FetchSessionIdentity, - FetchWorkspaceName, -} from "./credential-manager"; +import type { FetchSessionMetadata } from "./credential-manager"; const METADATA_LOOKUP_TIMEOUT_MS = 3_000; -/** Resolve the human workspace name with the workspace-bound credential that - * was just minted. The credential manager treats this as best-effort. */ -export function fetchWorkspaceName(apiBaseUrl: string): FetchWorkspaceName { - return async (credential, workspaceId) => { - const client = createManagementApiClient({ - baseUrl: apiBaseUrl, - token: credential.token, - }); - const { data } = await client.GET("/v1/workspaces/{id}", { - params: { path: { id: workspaceId } }, - signal: AbortSignal.timeout(METADATA_LOOKUP_TIMEOUT_MS), - }); - const name = data?.data?.name; - return typeof name === "string" && name.trim().length > 0 - ? name.trim() - : undefined; - }; -} - -/** OAuth tokens do not necessarily carry an email; /v1/me identifies the user. */ -export function fetchSessionIdentity(apiBaseUrl: string): FetchSessionIdentity { +export function fetchSessionMetadata(apiBaseUrl: string): FetchSessionMetadata { return async (credential) => { const client = createManagementApiClient({ baseUrl: apiBaseUrl, @@ -35,12 +12,17 @@ export function fetchSessionIdentity(apiBaseUrl: string): FetchSessionIdentity { const { data } = await client.GET("/v1/me", { signal: AbortSignal.timeout(METADATA_LOOKUP_TIMEOUT_MS), }); - const user = data?.data?.user; - if (!user) return undefined; + if (!data) return undefined; + const { user, workspace } = data.data; return { - userId: user.id ?? undefined, - email: user.email ?? undefined, - name: user.name ?? undefined, + workspaceName: workspace?.name ?? undefined, + identity: user + ? { + userId: user.id ?? undefined, + email: user.email ?? undefined, + name: user.name ?? undefined, + } + : undefined, }; }; } diff --git a/packages/cli/src/runtime.ts b/packages/cli/src/runtime.ts index 27ce05c0..c214578b 100644 --- a/packages/cli/src/runtime.ts +++ b/packages/cli/src/runtime.ts @@ -16,10 +16,7 @@ import { } from "./auth/client"; import { FileCredentialManager } from "./auth/credential-manager"; import { makeCredentialRefresher } from "./auth/refresh"; -import { - fetchSessionIdentity, - fetchWorkspaceName, -} from "./auth/session-metadata"; +import { fetchSessionMetadata } from "./auth/session-metadata"; import { DEPRECATED_STATE_FILE_ENV_VAR, resolveStateFilePath, @@ -141,8 +138,7 @@ export async function assembleRuntime(proc: HostProcess): Promise { loadConfig(proc.cwd(), configPath, getCliVersion()), credentialManager: new FileCredentialManager({ env: proc.env, - fetchWorkspaceName: fetchWorkspaceName(apiBaseUrl), - fetchSessionIdentity: fetchSessionIdentity(apiBaseUrl), + fetchSessionMetadata: fetchSessionMetadata(apiBaseUrl), refreshCredential: makeCredentialRefresher(authBaseUrl), }), managementApiClientConfig: { diff --git a/packages/cli/tests/credential-manager.test.ts b/packages/cli/tests/credential-manager.test.ts index 370f370d..0bb2320d 100644 --- a/packages/cli/tests/credential-manager.test.ts +++ b/packages/cli/tests/credential-manager.test.ts @@ -19,7 +19,7 @@ import { mintTestJwt } from "@prisma/cli-engine/testing"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { - type FetchSessionIdentity, + type FetchSessionMetadata, FileCredentialManager, } from "../src/auth/credential-manager"; import { readCredentialState } from "../src/auth/state-file"; @@ -89,19 +89,14 @@ function credentialFor(workspaceId: string, refreshToken = "refresh-1") { function makeManager( options: { env?: Record; - fetchWorkspaceName?: ( - credential: { token: string }, - workspaceId: string, - ) => Promise; - fetchSessionIdentity?: FetchSessionIdentity; + fetchSessionMetadata?: FetchSessionMetadata; refreshCredential?: CredentialRefresher; debugWrite?: (text: string) => void; } = {}, ) { return new FileCredentialManager({ env: { PRISMA_AUTH_FILE: stateFilePath, ...options.env }, - fetchWorkspaceName: options.fetchWorkspaceName, - fetchSessionIdentity: options.fetchSessionIdentity, + fetchSessionMetadata: options.fetchSessionMetadata, refreshCredential: options.refreshCredential, debugWrite: options.debugWrite, }); @@ -802,10 +797,13 @@ describe("the environment credential", () => { describe("createSession", () => { it("persists and exposes the authorizing account without exposing token material", async () => { const manager = makeManager({ - fetchSessionIdentity: async () => ({ - userId: "usr_work", - email: "developer@prisma.io", - name: "Prisma Developer", + fetchSessionMetadata: async () => ({ + workspaceName: " Workspace A ", + identity: { + userId: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }, }), }); const credential = { @@ -819,6 +817,7 @@ describe("createSession", () => { const created = await manager.createSession(credential, WORKSPACE_A); const listed = (await manager.sessions()).sessions[0]; + expect(created.workspaceName).toBe("Workspace A"); expect(created.identity).toEqual({ userId: "usr_work", email: "developer@prisma.io", @@ -838,7 +837,7 @@ describe("createSession", () => { it("falls back to credential claims when account enrichment fails", async () => { const manager = makeManager({ - fetchSessionIdentity: async () => { + fetchSessionMetadata: async () => { throw new Error("offline"); }, }); @@ -851,6 +850,7 @@ describe("createSession", () => { WORKSPACE_A, ); + expect(session.workspaceName).toBeUndefined(); expect(session.identity).toEqual({ userId: "user:claimed", email: undefined, @@ -869,16 +869,16 @@ describe("createSession", () => { expect(await readRawState()).toBeNull(); }); - it("holds no lock while the workspace name is fetched", async () => { + it("holds no lock while session metadata is fetched", async () => { let releaseFetch: () => void = () => {}; const fetchStarted = new Promise((resolve) => { const manager = makeManager({ - fetchWorkspaceName: async () => { + fetchSessionMetadata: async () => { resolve(); await new Promise((done) => { releaseFetch = done; }); - return "Workspace A"; + return { workspaceName: "Workspace A" }; }, }); void manager.createSession(credentialFor(WORKSPACE_A), WORKSPACE_A); @@ -902,19 +902,6 @@ describe("createSession", () => { ]); }); - it("keeps login working when the name lookup fails", async () => { - const manager = makeManager({ - fetchWorkspaceName: async () => { - throw new Error("offline"); - }, - }); - const session = await manager.createSession( - credentialFor(WORKSPACE_A), - WORKSPACE_A, - ); - expect(session.workspaceName).toBeUndefined(); - }); - it.each([ true, false, @@ -925,12 +912,12 @@ describe("createSession", () => { markFetchStarted = resolve; }); const manager = makeManager({ - fetchWorkspaceName: async () => { + fetchSessionMetadata: async () => { markFetchStarted(); await new Promise((done) => { releaseFetch = done; }); - return hasMetadata ? "Workspace A" : undefined; + return hasMetadata ? { workspaceName: "Workspace A" } : undefined; }, }); const login = manager.createSession( @@ -960,16 +947,19 @@ describe("createSession", () => { markFetchStarted = resolve; }); const first = makeManager({ - fetchSessionIdentity: async () => { + fetchSessionMetadata: async () => { markFetchStarted(); await new Promise((resolve) => { releaseFetch = resolve; }); return hasMetadata ? { - userId: "usr_first", - email: "first@example.com", - name: undefined, + workspaceName: "Stale Workspace", + identity: { + userId: "usr_first", + email: "first@example.com", + name: undefined, + }, } : undefined; }, @@ -998,6 +988,7 @@ describe("createSession", () => { const state = await readCredentialState(stateFilePath); expect(state.sessions[0]).toMatchObject({ refreshToken: "refresh-second" }); expect(state.sessions[0]?.user).toBeUndefined(); + expect(state.sessions[0]?.name).toBeUndefined(); expect((await makeManager().sessions()).sessions[0]?.identity?.userId).toBe( "user:second", ); @@ -1005,7 +996,7 @@ describe("createSession", () => { it("upserts by workspace id, keeping the stored name and moving the marker", async () => { const manager = makeManager({ - fetchWorkspaceName: async () => "Workspace A", + fetchSessionMetadata: async () => ({ workspaceName: "Workspace A" }), }); await manager.createSession(credentialFor(WORKSPACE_A), WORKSPACE_A); await manager.createSession(credentialFor(WORKSPACE_B), WORKSPACE_B); @@ -1035,12 +1026,14 @@ describe("enrichSessions", () => { }, WORKSPACE_A, ); - const fetchSessionIdentity = vi.fn(async () => ({ - userId: "usr_work", - email: "developer@prisma.io", - name: "Prisma Developer", + const fetchSessionMetadata = vi.fn(async () => ({ + identity: { + userId: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }, })); - const manager = makeManager({ fetchSessionIdentity }); + const manager = makeManager({ fetchSessionMetadata }); const first = await manager.enrichSessions(); const second = await manager.enrichSessions(); @@ -1051,7 +1044,7 @@ describe("enrichSessions", () => { name: "Prisma Developer", }); expect(second).toEqual(first); - expect(fetchSessionIdentity).toHaveBeenCalledTimes(1); + expect(fetchSessionMetadata).toHaveBeenCalledTimes(1); expect( (await readCredentialState(stateFilePath)).sessions[0]?.user, ).toEqual({ @@ -1071,7 +1064,7 @@ describe("enrichSessions", () => { WORKSPACE_A, ); const manager = makeManager({ - fetchSessionIdentity: async () => { + fetchSessionMetadata: async () => { throw new Error("offline"); }, }); @@ -1088,11 +1081,13 @@ describe("enrichSessions", () => { describe("the file-backed TokenStorage", () => { it("writes only the token fields on rotation and re-derives the expiry", async () => { const manager = makeManager({ - fetchWorkspaceName: async () => "Workspace A", - fetchSessionIdentity: async () => ({ - userId: "usr_work", - email: "developer@prisma.io", - name: "Prisma Developer", + fetchSessionMetadata: async () => ({ + workspaceName: "Workspace A", + identity: { + userId: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }, }), }); await manager.createSession(credentialFor(WORKSPACE_A), WORKSPACE_A); diff --git a/packages/cli/tests/session-metadata.test.ts b/packages/cli/tests/session-metadata.test.ts index befccc99..02c14907 100644 --- a/packages/cli/tests/session-metadata.test.ts +++ b/packages/cli/tests/session-metadata.test.ts @@ -1,11 +1,8 @@ import { afterEach, describe, expect, it } from "vitest"; +import { fetchSessionMetadata } from "../src/auth/session-metadata"; import { - fetchSessionIdentity, - fetchWorkspaceName, -} from "../src/auth/session-metadata"; -import { - FAKE_WORKSPACE_ID, + FAKE_WORKSPACE_API_ID, type FakeManagementApi, startFakeManagementApi, } from "./helpers/fake-management-api"; @@ -24,22 +21,39 @@ afterEach(async () => { }); describe("login session metadata", () => { - it("resolves the workspace name and authorizing account through the API", async () => { + it("resolves the workspace name and authorizing account in one request", async () => { api = await startFakeManagementApi(); - const [workspaceName, identity] = await Promise.all([ - fetchWorkspaceName(api.baseUrl)(CREDENTIAL, FAKE_WORKSPACE_ID), - fetchSessionIdentity(api.baseUrl)(CREDENTIAL), - ]); + const metadata = await fetchSessionMetadata(api.baseUrl)(CREDENTIAL); + + expect(metadata).toEqual({ + workspaceName: "Acme Inc", + identity: { + userId: "usr_456", + email: "dev@example.com", + name: "Dev", + }, + }); + expect(api.requests).toEqual(["GET /v1/me"]); + }); + + it("keeps the workspace name when a service credential has no user", async () => { + api = await startFakeManagementApi({ + routes: { + "GET /v1/me": () => ({ + data: { + user: null, + workspace: { id: FAKE_WORKSPACE_API_ID, name: "Acme Inc" }, + credential: { type: "service", id: "skey_123", name: "CI" }, + }, + }), + }, + }); - expect(workspaceName).toBe("Acme Inc"); - expect(identity).toEqual({ - userId: "usr_456", - email: "dev@example.com", - name: "Dev", + expect(await fetchSessionMetadata(api.baseUrl)(CREDENTIAL)).toEqual({ + workspaceName: "Acme Inc", + identity: undefined, }); - expect([...api.requests].sort()).toEqual( - [`GET /v1/me`, `GET /v1/workspaces/${FAKE_WORKSPACE_ID}`].sort(), - ); + expect(api.requests).toEqual(["GET /v1/me"]); }); }); From 6f63888bc705adaaa80b93bcd9336f3b2b09775b Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Thu, 17 Sep 2026 16:35:14 +0530 Subject: [PATCH 08/12] fix(auth): preserve missing session metadata and keep logout local Signed-off-by: Aman Varshney --- docs/product/output-conventions.md | 8 +- packages/cli/src/auth/credential-manager.ts | 39 +++++---- .../cli/src/commands/auth/workspace-logout.ts | 3 +- packages/cli/tests/auth.test.ts | 7 +- packages/cli/tests/credential-manager.test.ts | 85 ++++++++++++++++++- .../account-aware-credential-manager.ts | 26 ++---- 6 files changed, 121 insertions(+), 47 deletions(-) diff --git a/docs/product/output-conventions.md b/docs/product/output-conventions.md index bb2d61ef..8a749f6c 100644 --- a/docs/product/output-conventions.md +++ b/docs/product/output-conventions.md @@ -197,10 +197,10 @@ At login, the CLI resolves the workspace name and authorizing user in one alongside the session. This lookup is best-effort and times out after three seconds without failing login. Existing state remains compatible; when stored metadata is unavailable, the CLI falls back to identity claims in the -access token. Session-list and session-selection commands also attempt this -enrichment for older records and cache successful results. This is an explicit -best-effort operation; the credential manager's ordinary `sessions()` read -remains local-only. +access token. Session-list and session-selection commands fill missing workspace +names and account metadata for older records without replacing known values. +Successful results are cached. Logout uses only locally stored metadata and +never waits for a metadata request. Ordinary `sessions()` reads remain local-only. Metadata lookups must not overwrite a session replaced during the lookup. Login returns the session still stored when the lookup finishes, even when no diff --git a/packages/cli/src/auth/credential-manager.ts b/packages/cli/src/auth/credential-manager.ts index 320364df..684207cc 100644 --- a/packages/cli/src/auth/credential-manager.ts +++ b/packages/cli/src/auth/credential-manager.ts @@ -213,7 +213,7 @@ export class FileCredentialManager implements CredentialManager { if (this.#fetchSessionMetadata === undefined) return this.sessions(); const state = await readCredentialState(this.#filePath); const candidates = state.sessions.filter( - (session) => session.user === undefined, + (session) => session.name === undefined || session.user === undefined, ); if (candidates.length === 0) return storedSessions(state); @@ -221,34 +221,34 @@ export class FileCredentialManager implements CredentialManager { candidates.map(async (session) => ({ workspaceId: session.workspaceId, token: session.token, - identity: (await this.#lookUpSessionMetadata(session))?.identity, + metadata: await this.#lookUpSessionMetadata(session), })), ); + if (fetched.every((result) => result.metadata === undefined)) { + return this.sessions(); + } const byWorkspaceId = new Map( - fetched - .filter( - ( - result, - ): result is typeof result & { identity: CredentialIdentity } => - result.identity !== undefined, - ) - .map((result) => [result.workspaceId, result] as const), + fetched.map((result) => [result.workspaceId, result]), ); - if (byWorkspaceId.size === 0) return this.sessions(); return this.#mutate((current) => { let changed = false; const sessions = current.sessions.map((session) => { const fetchedSession = byWorkspaceId.get(session.workspaceId); if ( - session.user !== undefined || fetchedSession === undefined || fetchedSession.token !== session.token ) { return session; } + const name = session.name ?? fetchedSession.metadata?.workspaceName; + const identity = fetchedSession.metadata?.identity; + const user = + session.user ?? + (identity === undefined ? undefined : storedUser(identity)); + if (name === session.name && user === session.user) return session; changed = true; - return { ...session, user: storedUser(fetchedSession.identity) }; + return { ...session, name, user }; }); if (!changed) return { result: storedSessions(current) }; const next = { ...current, sessions }; @@ -579,9 +579,6 @@ export class FileCredentialManager implements CredentialManager { return token; } - /** A blank env token is an error state everywhere the environment - * credential would be consulted, including the mutations that no - * longer care whether a valid one is set. */ /** A blank PRISMA_SERVICE_TOKEN is an error state everywhere the * environment credential would be consulted, including the two * mutations that do not otherwise read it. Reading is what raises; @@ -618,10 +615,12 @@ export class FileCredentialManager implements CredentialManager { if (this.#fetchSessionMetadata === undefined) return undefined; try { const metadata = await this.#fetchSessionMetadata(credential); - return { - workspaceName: normalizedString(metadata?.workspaceName), - identity: normalizedIdentity(metadata?.identity), - }; + const workspaceName = normalizedString(metadata?.workspaceName); + const identity = normalizedIdentity(metadata?.identity); + if (workspaceName === undefined && identity === undefined) { + return undefined; + } + return { workspaceName, identity }; } catch { return undefined; } diff --git a/packages/cli/src/commands/auth/workspace-logout.ts b/packages/cli/src/commands/auth/workspace-logout.ts index 7787012a..cd4e6db3 100644 --- a/packages/cli/src/commands/auth/workspace-logout.ts +++ b/packages/cli/src/commands/auth/workspace-logout.ts @@ -5,7 +5,6 @@ import { positional, } from "@prisma/cli-engine"; import { ok } from "@prisma/cli-engine/protocol"; -import { sessionsForDisplay } from "../../auth/credential-manager"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; @@ -99,7 +98,7 @@ export const authWorkspaceLogoutCommand = defineCommand({ examples: ["auth workspace logout my-workspace"], }, handler: async (args, ctx) => { - const stored = await sessionsForDisplay(ctx.credentialManager); + const stored = await ctx.credentialManager.sessions(); const session = requireSession(stored.sessions, args.positionals.workspace); const wasSelected = session.workspaceId === stored.selectedWorkspaceId; await ctx.credentialManager.endSession(session.workspaceId); diff --git a/packages/cli/tests/auth.test.ts b/packages/cli/tests/auth.test.ts index 38dabebe..907e4c81 100644 --- a/packages/cli/tests/auth.test.ts +++ b/packages/cli/tests/auth.test.ts @@ -717,11 +717,15 @@ describe("auth workspace use", () => { }); describe("auth workspace logout", () => { - it("ends the named session and prints the workspace it ended", async () => { + it("ends the named session using local metadata without a network lookup", async () => { const cli = makeCli({ sessions: [record("ws_1", "Acme Inc"), record("ws_2", "Globex")], selectedWorkspaceId: "ws_2", }); + const enrichSessions = vi.fn(async () => { + throw new Error("Metadata lookup must not block logout"); + }); + Object.assign(cli.credentialManager, { enrichSessions }); const result = await cli.run([ "auth", @@ -744,6 +748,7 @@ describe("auth workspace logout", () => { expect( cli.credentialManager?.state().sessions.map((s) => s.workspaceId), ).toEqual(["ws_2"]); + expect(enrichSessions).not.toHaveBeenCalled(); }); it("clears the current marker when the ended session was current", async () => { diff --git a/packages/cli/tests/credential-manager.test.ts b/packages/cli/tests/credential-manager.test.ts index 0bb2320d..1c684c9a 100644 --- a/packages/cli/tests/credential-manager.test.ts +++ b/packages/cli/tests/credential-manager.test.ts @@ -1017,8 +1017,10 @@ describe("createSession", () => { }); describe("enrichSessions", () => { - it("backfills safe account metadata for an existing session", async () => { - await makeManager().createSession( + it("caches account metadata without replacing an existing workspace name", async () => { + await makeManager({ + fetchSessionMetadata: async () => ({ workspaceName: "Saved name" }), + }).createSession( { token: mintToken(WORKSPACE_A, { sub: "user:legacy" }), refreshToken: "refresh-legacy", @@ -1027,6 +1029,7 @@ describe("enrichSessions", () => { WORKSPACE_A, ); const fetchSessionMetadata = vi.fn(async () => ({ + workspaceName: "Different name", identity: { userId: "usr_work", email: "developer@prisma.io", @@ -1038,6 +1041,7 @@ describe("enrichSessions", () => { const first = await manager.enrichSessions(); const second = await manager.enrichSessions(); + expect(first.sessions[0]?.workspaceName).toBe("Saved name"); expect(first.sessions[0]?.identity).toEqual({ userId: "usr_work", email: "developer@prisma.io", @@ -1054,6 +1058,83 @@ describe("enrichSessions", () => { }); }); + it.each([ + true, + false, + ])("persists name-only metadata (account already stored: %s)", async (hasAccount) => { + const identity = { + userId: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + }; + await makeManager({ + fetchSessionMetadata: async () => ({ + identity: hasAccount ? identity : undefined, + }), + }).createSession(credentialFor(WORKSPACE_A), WORKSPACE_A); + const manager = makeManager({ + fetchSessionMetadata: async () => ({ workspaceName: "Workspace A" }), + }); + + const enriched = await manager.enrichSessions(); + const stored = await readCredentialState(stateFilePath); + + expect(enriched.sessions[0]?.workspaceName).toBe("Workspace A"); + expect(stored.sessions[0]?.name).toBe("Workspace A"); + expect(stored.sessions[0]?.user).toEqual( + hasAccount + ? { + id: "usr_work", + email: "developer@prisma.io", + name: "Prisma Developer", + } + : undefined, + ); + }); + + it("discards enrichment when another process replaces or removes a session", async () => { + await seedTwoSessions(); + let markStarted: () => void = () => {}; + let release: () => void = () => {}; + const started = new Promise((resolve) => { + markStarted = resolve; + }); + const released = new Promise((resolve) => { + release = resolve; + }); + const manager = makeManager({ + fetchSessionMetadata: async () => { + markStarted(); + await released; + return { + workspaceName: "Stale name", + identity: { + userId: "usr_stale", + email: "stale@example.com", + name: undefined, + }, + }; + }, + }); + const pending = manager.enrichSessions(); + await started; + const other = makeManager(); + await other.createSession( + { + ...credentialFor(WORKSPACE_A), + token: mintToken(WORKSPACE_A, { sub: "user:replacement" }), + }, + WORKSPACE_A, + ); + await other.endSession(WORKSPACE_B); + const current = await other.sessions(); + const raw = await readRawState(); + release(); + + expect(await pending).toEqual(current); + expect(await readRawState()).toBe(raw); + }); + it("returns local sessions when metadata enrichment fails", async () => { await makeManager().createSession( { diff --git a/packages/cli/tests/helpers/account-aware-credential-manager.ts b/packages/cli/tests/helpers/account-aware-credential-manager.ts index a5e291c6..34a1a9be 100644 --- a/packages/cli/tests/helpers/account-aware-credential-manager.ts +++ b/packages/cli/tests/helpers/account-aware-credential-manager.ts @@ -1,8 +1,4 @@ -import { - type CredentialManager, - claimedIdentity, - type Session, -} from "@prisma/cli-engine"; +import { type CredentialManager, claimedIdentity } from "@prisma/cli-engine"; import type { SessionRecord } from "@prisma/cli-engine/testing"; import type { AccountStoredSessions } from "../../src/auth/credential-manager"; @@ -25,12 +21,13 @@ export function attachAccountMetadata( const selectSession = manager.selectSession.bind(manager); Object.assign(manager, { - enrichSessions: async (): Promise => { + sessions: async (): Promise => { const stored = await sessions(); return { - sessions: stored.sessions.map((session) => - withIdentity(session, identities.get(session.workspaceId)), - ), + sessions: stored.sessions.map((session) => ({ + ...session, + identity: identities.get(session.workspaceId), + })), selectedWorkspaceId: stored.selectedWorkspaceId, }; }, @@ -40,20 +37,13 @@ export function attachAccountMetadata( const session = await createSession(...args); const identity = claimedIdentity(args[0].token); identities.set(args[1], identity); - return withIdentity(session, identity); + return { ...session, identity }; }, selectSession: async ( ...args: Parameters ) => { const session = await selectSession(...args); - return withIdentity(session, identities.get(session.workspaceId)); + return { ...session, identity: identities.get(session.workspaceId) }; }, }); } - -function withIdentity( - session: Session, - identity: ReturnType, -) { - return { ...session, identity }; -} From 8123a93dba1decfa7adfb7f25a73f9060ed81faa Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Thu, 17 Sep 2026 16:58:33 +0530 Subject: [PATCH 09/12] refactor(auth): put session identity in the engine contract Session gains an identity field and CredentialManager gains enrichSessions. Commands read session.identity and call enrichSessions directly. This removes the Reflect.get lookups, the CLI-local session types, and the test helper that patched methods onto the engine test manager. The engine contract changed, so its version moves to 0.5.0. enrichSessions no longer sends a request that cannot succeed. It skips a session with an expired access token, and it skips the user lookup for a token that belongs to no user. The plain stdout rows of auth workspace list keep the columns they have on main. The optional user column moved the id to a different position per row. Co-Authored-By: Claude Fable 5.1 Signed-off-by: Aman Varshney --- docs/product/output-conventions.md | 8 +++ packages/cli-engine/package.json | 2 +- packages/cli-engine/src/credential-manager.ts | 15 +++- .../src/environment-credential-manager.ts | 4 ++ .../src/in-memory-credential-manager.ts | 5 ++ .../tests/credential-manager.test.ts | 10 +++ packages/cli-engine/tests/engine.type-test.ts | 1 + .../cli-engine/tests/management-api.test.ts | 2 + packages/cli/package.json | 2 +- packages/cli/src/auth/credential-manager.ts | 69 ++++++------------- packages/cli/src/commands/auth/session-ref.ts | 5 +- .../cli/src/commands/auth/workspace-list.ts | 15 +++- .../cli/src/commands/auth/workspace-use.ts | 3 +- packages/cli/tests/auth.test.ts | 15 +--- packages/cli/tests/credential-manager.test.ts | 39 +++++++++++ packages/cli/tests/golden-rendering.test.ts | 12 +--- .../account-aware-credential-manager.ts | 49 ------------- packages/prisma/package.json | 2 +- pnpm-lock.yaml | 4 +- 19 files changed, 128 insertions(+), 134 deletions(-) delete mode 100644 packages/cli/tests/helpers/account-aware-credential-manager.ts diff --git a/docs/product/output-conventions.md b/docs/product/output-conventions.md index 95a98fd5..a995ecb3 100644 --- a/docs/product/output-conventions.md +++ b/docs/product/output-conventions.md @@ -213,6 +213,10 @@ names and account metadata for older records without replacing known values. Successful results are cached. Logout uses only locally stored metadata and never waits for a metadata request. Ordinary `sessions()` reads remain local-only. +The CLI sends no metadata request that cannot succeed. It skips a session whose +access token has expired, because the API rejects that token. It skips the user +lookup for a token that belongs to a workspace and not to a user. + Metadata lookups must not overwrite a session replaced during the lookup. Login returns the session still stored when the lookup finishes, even when no metadata was found. If another process ended that session, login reports the @@ -225,6 +229,10 @@ accounts. When no email is known, output falls back to the user's name and then id. Tables render the standard unknown-value marker when no user identity is available, while selection prompts omit an identity they do not know. +The plain stdout rows of `auth workspace list` keep their columns: workspace, +id, status. Scripts read those columns by position, and the user is optional, +so the user appears only in the table and in the structured output. + Structured workspace-session output includes a nullable `user` object on every item. Its `context.scope` is `"local-sessions"`, making it explicit that the collection is not a complete remote membership list: diff --git a/packages/cli-engine/package.json b/packages/cli-engine/package.json index 35b995b5..c839f45f 100644 --- a/packages/cli-engine/package.json +++ b/packages/cli-engine/package.json @@ -1,6 +1,6 @@ { "name": "@prisma/cli-engine", - "version": "0.4.0", + "version": "0.5.0", "description": "The execution engine of the unified Prisma CLI.", "type": "module", "exports": { diff --git a/packages/cli-engine/src/credential-manager.ts b/packages/cli-engine/src/credential-manager.ts index 1405b200..665469c3 100644 --- a/packages/cli-engine/src/credential-manager.ts +++ b/packages/cli-engine/src/credential-manager.ts @@ -26,6 +26,10 @@ export interface Credential { export interface Session { readonly workspaceId: string; readonly workspaceName: string | undefined; + /** Who authorized this workspace session. A persistent manager may enrich + * this from the account API and fall back to credential claims. It contains + * no token material and may be absent for workspace-only credentials. */ + readonly identity: CredentialIdentity | undefined; /** The stored ACCESS TOKEN's expiry, which rotation changes — not a * deadline on the logged-in-ness. */ readonly expiresAt: Date | undefined; @@ -105,13 +109,18 @@ export interface CredentialManager { /** The stored sessions and the selection, read fresh. Local-only. */ sessions(): Promise; + /** Best-effort remote enrichment for session display metadata. Persistent + * managers may cache safe account details; failure still returns the local + * sessions. Commands opt into this explicitly so normal reads stay local. */ + enrichSessions(): Promise; + /** * Login's write. The caller names the workspace that identifies the * session; for workspace-bound credentials the manager verifies the * workspace_id claim matches and refuses on mismatch. Upserts by - * workspaceId and selects it. The workspace name is fetched - * best-effort after the write — failure leaves it undefined, never - * fails login. + * workspaceId and selects it. The workspace name and safe user identity are + * fetched best-effort after the write — failure leaves either undefined and + * never fails login. */ createSession(credential: Credential, workspaceId: string): Promise; diff --git a/packages/cli-engine/src/environment-credential-manager.ts b/packages/cli-engine/src/environment-credential-manager.ts index dedd1db2..23653203 100644 --- a/packages/cli-engine/src/environment-credential-manager.ts +++ b/packages/cli-engine/src/environment-credential-manager.ts @@ -76,6 +76,10 @@ export class EnvironmentCredentialManager implements CredentialManager { return { sessions: [], selectedWorkspaceId: undefined }; } + async enrichSessions(): Promise { + return this.sessions(); + } + async createSession( _credential: Credential, _workspaceId: string, diff --git a/packages/cli-engine/src/in-memory-credential-manager.ts b/packages/cli-engine/src/in-memory-credential-manager.ts index 81b973c0..9b26b34f 100644 --- a/packages/cli-engine/src/in-memory-credential-manager.ts +++ b/packages/cli-engine/src/in-memory-credential-manager.ts @@ -85,6 +85,7 @@ function asSession(record: SessionRecord): Session { return { workspaceId: record.workspaceId, workspaceName: record.workspaceName, + identity: claimedIdentity(record.credential.token), expiresAt: record.credential.expiresAt, }; } @@ -234,6 +235,10 @@ export class InMemoryCredentialManager implements CredentialManager { }; } + async enrichSessions(): Promise { + return this.sessions(); + } + async createSession( credential: Credential, workspaceId: string, diff --git a/packages/cli-engine/tests/credential-manager.test.ts b/packages/cli-engine/tests/credential-manager.test.ts index d7050a88..861b07b8 100644 --- a/packages/cli-engine/tests/credential-manager.test.ts +++ b/packages/cli-engine/tests/credential-manager.test.ts @@ -442,6 +442,11 @@ describe("session mutations and state read-back", () => { expect(selected).toEqual({ workspaceId: "workspace-2", workspaceName: undefined, + identity: { + userId: "user-1", + email: undefined, + name: undefined, + }, expiresAt: undefined, }); expect(manager.state().selectedWorkspaceId).toBe("workspace-2"); @@ -507,6 +512,11 @@ describe("session mutations and state read-back", () => { { workspaceId: "workspace-1", workspaceName: undefined, + identity: { + userId: "user-1", + email: undefined, + name: undefined, + }, expiresAt: undefined, }, ], diff --git a/packages/cli-engine/tests/engine.type-test.ts b/packages/cli-engine/tests/engine.type-test.ts index 86d31a60..c108fe1f 100644 --- a/packages/cli-engine/tests/engine.type-test.ts +++ b/packages/cli-engine/tests/engine.type-test.ts @@ -571,6 +571,7 @@ export const unmanagedIsUndeclared: false = unmanagedCommand.managesCredentials; export const sessionHasNoTokenMaterial: | "workspaceId" | "workspaceName" + | "identity" | "expiresAt" = undefined as unknown as keyof Session; export const activeCredentialHasNoTokenMaterial: diff --git a/packages/cli-engine/tests/management-api.test.ts b/packages/cli-engine/tests/management-api.test.ts index 224e89cf..16773dc1 100644 --- a/packages/cli-engine/tests/management-api.test.ts +++ b/packages/cli-engine/tests/management-api.test.ts @@ -51,6 +51,7 @@ function fakeCredentialManager( return { activeCredential: unusedManagerMethod("activeCredential"), sessions: unusedManagerMethod("sessions"), + enrichSessions: unusedManagerMethod("enrichSessions"), createSession: unusedManagerMethod("createSession"), selectSession: unusedManagerMethod("selectSession"), endSession: unusedManagerMethod("endSession"), @@ -73,6 +74,7 @@ const storedSessions = (...workspaceIds: readonly string[]) => ({ sessions: workspaceIds.map((workspaceId) => ({ workspaceId, workspaceName: undefined, + identity: undefined, expiresAt: undefined, })), selectedWorkspaceId: workspaceIds[0], diff --git a/packages/cli/package.json b/packages/cli/package.json index 20c240fe..84976467 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -49,7 +49,7 @@ }, "dependencies": { "@manypkg/tools": "^2.1.2", - "@prisma/cli-engine": "workspace:0.4.0", + "@prisma/cli-engine": "workspace:0.5.0", "@prisma/composer-cli": "0.20.0", "@prisma/compute-sdk": "0.42.0", "@prisma/management-api-sdk": "1.69.0", diff --git a/packages/cli/src/auth/credential-manager.ts b/packages/cli/src/auth/credential-manager.ts index 684207cc..e8bc57a9 100644 --- a/packages/cli/src/auth/credential-manager.ts +++ b/packages/cli/src/auth/credential-manager.ts @@ -56,45 +56,6 @@ export type FetchSessionMetadata = ( credential: Pick, ) => Promise; -export type AccountSession = Session & { - readonly identity: CredentialIdentity | undefined; -}; - -export interface AccountStoredSessions { - readonly sessions: readonly AccountSession[]; - readonly selectedWorkspaceId: string | undefined; -} - -interface AccountAwareCredentialManager extends CredentialManager { - enrichSessions(): Promise; -} - -/** Session display metadata is a CLI concern, not part of the shared engine - * contract. FileCredentialManager provides it; other managers degrade to the - * standard local session shape without inventing an account identity. */ -export async function sessionsForDisplay( - manager: CredentialManager, -): Promise { - if (isAccountAwareCredentialManager(manager)) { - return manager.enrichSessions(); - } - return manager.sessions(); -} - -export function sessionIdentity( - session: Session, -): CredentialIdentity | undefined { - return normalizedIdentity( - Reflect.get(session, "identity") as CredentialIdentity | undefined, - ); -} - -function isAccountAwareCredentialManager( - manager: CredentialManager, -): manager is AccountAwareCredentialManager { - return typeof Reflect.get(manager, "enrichSessions") === "function"; -} - export interface FileCredentialManagerOptions { readonly env: Readonly>; readonly fetchSessionMetadata?: FetchSessionMetadata; @@ -204,16 +165,17 @@ export class FileCredentialManager implements CredentialManager { return storedCredential(record); } - async sessions(): Promise { + async sessions(): Promise { const state = await readCredentialState(this.#filePath); return storedSessions(state); } - async enrichSessions(): Promise { + async enrichSessions(): Promise { if (this.#fetchSessionMetadata === undefined) return this.sessions(); const state = await readCredentialState(this.#filePath); - const candidates = state.sessions.filter( - (session) => session.name === undefined || session.user === undefined, + const now = Date.now(); + const candidates = state.sessions.filter((session) => + lacksFetchableMetadata(session, now), ); if (candidates.length === 0) return storedSessions(state); @@ -259,7 +221,7 @@ export class FileCredentialManager implements CredentialManager { async createSession( credential: Credential, workspaceId: string, - ): Promise { + ): Promise { const environmentInForce = this.#environmentToken() !== undefined; const claimed = credentialWorkspaceId(credential.token); if (claimed !== undefined && claimed !== workspaceId) { @@ -328,7 +290,7 @@ export class FileCredentialManager implements CredentialManager { }); } - async selectSession(workspaceId: string): Promise { + async selectSession(workspaceId: string): Promise { const environmentInForce = this.#environmentToken() !== undefined; const selected = await this.#mutate((state) => { @@ -695,14 +657,27 @@ function resolvedMarker(state: CredentialState): string | null { return null; } -function storedSessions(state: CredentialState): AccountStoredSessions { +/** Whether a lookup with this session's token could add metadata. An + * expired token is rejected, and a workspace-only token has no user. */ +function lacksFetchableMetadata(session: StoredSession, now: number): boolean { + if (session.expiresAt !== undefined && Date.parse(session.expiresAt) <= now) { + return false; + } + if (session.name === undefined) return true; + return ( + session.user === undefined && + claimedIdentity(session.token)?.userId !== undefined + ); +} + +function storedSessions(state: CredentialState): StoredSessions { return { sessions: state.sessions.map((record) => toSession(record)), selectedWorkspaceId: resolvedMarker(state) ?? undefined, }; } -function toSession(record: StoredSession): AccountSession { +function toSession(record: StoredSession): Session { return { workspaceId: record.workspaceId, workspaceName: record.name, diff --git a/packages/cli/src/commands/auth/session-ref.ts b/packages/cli/src/commands/auth/session-ref.ts index 7d3ce478..ef737e78 100644 --- a/packages/cli/src/commands/auth/session-ref.ts +++ b/packages/cli/src/commands/auth/session-ref.ts @@ -8,7 +8,6 @@ */ import { noSessionForWorkspaceError, type Session } from "@prisma/cli-engine"; import { CliStructuredError } from "@prisma/cli-engine/protocol"; -import { sessionIdentity } from "../../auth/credential-manager"; import { CLI_NAME } from "../../cli-name"; export type SessionRefResolution = @@ -24,7 +23,7 @@ export interface SessionUser { /** The safe identity fields a command may expose for a stored session. */ export function sessionUser(session: Session): SessionUser | null { - const identity = sessionIdentity(session); + const identity = session.identity; if (identity === undefined) return null; return { id: identity.userId ?? null, @@ -35,7 +34,7 @@ export function sessionUser(session: Session): SessionUser | null { /** The shortest useful human identity for a workspace session. */ export function sessionUserLabel(session: Session): string | undefined { - const identity = sessionIdentity(session); + const identity = session.identity; return identity?.email ?? identity?.name ?? identity?.userId; } diff --git a/packages/cli/src/commands/auth/workspace-list.ts b/packages/cli/src/commands/auth/workspace-list.ts index 72651c5e..aabfec11 100644 --- a/packages/cli/src/commands/auth/workspace-list.ts +++ b/packages/cli/src/commands/auth/workspace-list.ts @@ -5,7 +5,6 @@ import { type Session, } from "@prisma/cli-engine"; import { ok } from "@prisma/cli-engine/protocol"; -import { sessionsForDisplay } from "../../auth/credential-manager"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; @@ -69,7 +68,17 @@ function listPresentations(result: WorkspaceListResult): Presentations { ] : [{ kind: "table", columns, rows } as const]), ], - stdout: () => rows.map((row) => row.join(" ").trimEnd()), + // Scripts read these columns by position, so the optional user stays out. + stdout: () => + result.sessions.map((session) => + [ + sessionLabel(session), + session.workspaceId, + session.workspaceId === result.selectedWorkspaceId ? "current" : "", + ] + .join(" ") + .trimEnd(), + ), json: () => serializeWorkspaceList(result), next: () => [ { @@ -93,7 +102,7 @@ export const authWorkspaceListCommand = defineCommand({ examples: ["auth workspace list", "auth workspace list --json"], }, handler: async (_args, ctx) => { - const stored = await sessionsForDisplay(ctx.credentialManager); + const stored = await ctx.credentialManager.enrichSessions(); const result: WorkspaceListResult = { sessions: stored.sessions, selectedWorkspaceId: stored.selectedWorkspaceId, diff --git a/packages/cli/src/commands/auth/workspace-use.ts b/packages/cli/src/commands/auth/workspace-use.ts index 47523878..39b8ee8a 100644 --- a/packages/cli/src/commands/auth/workspace-use.ts +++ b/packages/cli/src/commands/auth/workspace-use.ts @@ -8,7 +8,6 @@ import { type StoredSessions, } from "@prisma/cli-engine"; import { CliStructuredError, ok } from "@prisma/cli-engine/protocol"; -import { sessionsForDisplay } from "../../auth/credential-manager"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; @@ -116,7 +115,7 @@ export const authWorkspaceUseCommand = defineCommand({ examples: ["auth workspace use", "auth workspace use my-workspace"], }, handler: async (args, ctx) => { - const stored = await sessionsForDisplay(ctx.credentialManager); + const stored = await ctx.credentialManager.enrichSessions(); if (stored.sessions.length === 0) { throw noWorkspaceSessionsError(); } diff --git a/packages/cli/tests/auth.test.ts b/packages/cli/tests/auth.test.ts index 907e4c81..f79d177b 100644 --- a/packages/cli/tests/auth.test.ts +++ b/packages/cli/tests/auth.test.ts @@ -25,7 +25,6 @@ import { authWhoamiCommand } from "../src/commands/auth/whoami"; import { authWorkspaceListCommand } from "../src/commands/auth/workspace-list"; import { authWorkspaceLogoutCommand } from "../src/commands/auth/workspace-logout"; import { authWorkspaceUseCommand } from "../src/commands/auth/workspace-use"; -import { attachAccountMetadata } from "./helpers/account-aware-credential-manager"; vi.mock("../src/auth/operations", async (importOriginal) => ({ ...(await importOriginal()), @@ -111,11 +110,10 @@ function makeCli(spec?: { readonly client?: ManagementApiClient; readonly openUrl?: (url: string) => void; }) { - const sessions = spec?.sessions ?? []; - const cli = createTestCli({ + return createTestCli({ commands: COMMANDS, groups: GROUPS, - sessions, + sessions: spec?.sessions ?? [], selectedWorkspaceId: spec?.selectedWorkspaceId, environmentCredential: spec?.environmentToken === undefined @@ -125,10 +123,6 @@ function makeCli(spec?: { openUrl: spec?.openUrl, now: () => new Date(0), }); - if (cli.credentialManager !== undefined) { - attachAccountMetadata(cli.credentialManager, sessions); - } - return cli; } type ResultFrame = { @@ -459,10 +453,7 @@ describe("auth workspace list", () => { }); expect(result.exitCode).toBe(0); - expect(result.stdout).toBe( - "Acme Inc bob@example.com ws_1\n" + - "ws_2 bob@example.com ws_2 current\n", - ); + expect(result.stdout).toBe("Acme Inc ws_1\nws_2 ws_2 current\n"); }); it("serializes the sessions and the current marker for json", async () => { diff --git a/packages/cli/tests/credential-manager.test.ts b/packages/cli/tests/credential-manager.test.ts index 1c684c9a..a95038a3 100644 --- a/packages/cli/tests/credential-manager.test.ts +++ b/packages/cli/tests/credential-manager.test.ts @@ -1157,6 +1157,45 @@ describe("enrichSessions", () => { (await readCredentialState(stateFilePath)).sessions[0]?.user, ).toBeUndefined(); }); + + it("makes no request for a session whose access token has expired", async () => { + await makeManager().createSession( + { + token: mintToken(WORKSPACE_A), + refreshToken: "refresh-1", + expiresAt: new Date(Date.now() - 60_000), + }, + WORKSPACE_A, + ); + const fetchSessionMetadata = vi.fn(async () => ({ + workspaceName: "Workspace A", + })); + + const stored = await makeManager({ fetchSessionMetadata }).enrichSessions(); + + expect(fetchSessionMetadata).not.toHaveBeenCalled(); + expect(stored.sessions[0]?.workspaceName).toBeUndefined(); + }); + + it("makes no request for a named session whose token belongs to no user", async () => { + await makeManager({ + fetchSessionMetadata: async () => ({ workspaceName: "Workspace A" }), + }).createSession( + { + token: mintToken(WORKSPACE_A, { sub: `workspace:${WORKSPACE_A}` }), + refreshToken: "refresh-1", + expiresAt: undefined, + }, + WORKSPACE_A, + ); + const fetchSessionMetadata = vi.fn(async () => ({ + workspaceName: "Workspace A", + })); + + await makeManager({ fetchSessionMetadata }).enrichSessions(); + + expect(fetchSessionMetadata).not.toHaveBeenCalled(); + }); }); describe("the file-backed TokenStorage", () => { diff --git a/packages/cli/tests/golden-rendering.test.ts b/packages/cli/tests/golden-rendering.test.ts index 02dfc8b3..ca1654d8 100644 --- a/packages/cli/tests/golden-rendering.test.ts +++ b/packages/cli/tests/golden-rendering.test.ts @@ -24,7 +24,6 @@ import { authLogoutCommand } from "../src/commands/auth/logout"; import { authWorkspaceListCommand } from "../src/commands/auth/workspace-list"; import { authWorkspaceLogoutCommand } from "../src/commands/auth/workspace-logout"; import { bucketKeyCreateCommand } from "../src/commands/bucket/key-create"; -import { attachAccountMetadata } from "./helpers/account-aware-credential-manager"; function record(workspaceId: string, workspaceName: string): SessionRecord { return { @@ -47,7 +46,7 @@ function makeCli( current?: string, client?: ManagementApiClient, ) { - const cli = createTestCli({ + return createTestCli({ commands: { "auth logout": authLogoutCommand, "auth workspace list": authWorkspaceListCommand, @@ -65,10 +64,6 @@ function makeCli( ...(client === undefined ? {} : { managementApi: { client } }), now: () => new Date(0), }); - if (cli.credentialManager !== undefined) { - attachAccountMetadata(cli.credentialManager, sessions); - } - return cli; } const CREATED_KEY = { @@ -127,10 +122,7 @@ describe("golden rendering", () => { "\n" + "→ Authorize another workspace: prisma auth login\n", ); - expect(result.stdout).toBe( - "Acme Inc ws_1@example.com ws_1 current\n" + - "Globex ws_2@example.com ws_2\n", - ); + expect(result.stdout).toBe("Acme Inc ws_1 current\nGlobex ws_2\n"); }); /** diff --git a/packages/cli/tests/helpers/account-aware-credential-manager.ts b/packages/cli/tests/helpers/account-aware-credential-manager.ts deleted file mode 100644 index 34a1a9be..00000000 --- a/packages/cli/tests/helpers/account-aware-credential-manager.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { type CredentialManager, claimedIdentity } from "@prisma/cli-engine"; -import type { SessionRecord } from "@prisma/cli-engine/testing"; - -import type { AccountStoredSessions } from "../../src/auth/credential-manager"; - -/** The engine test manager deliberately models only the shared session - * contract. CLI auth tests add this package-local display capability to match - * FileCredentialManager without expanding the published engine API. */ -export function attachAccountMetadata( - manager: CredentialManager, - records: readonly SessionRecord[], -): void { - const identities = new Map( - records.map((record) => [ - record.workspaceId, - claimedIdentity(record.credential.token), - ]), - ); - const sessions = manager.sessions.bind(manager); - const createSession = manager.createSession.bind(manager); - const selectSession = manager.selectSession.bind(manager); - - Object.assign(manager, { - sessions: async (): Promise => { - const stored = await sessions(); - return { - sessions: stored.sessions.map((session) => ({ - ...session, - identity: identities.get(session.workspaceId), - })), - selectedWorkspaceId: stored.selectedWorkspaceId, - }; - }, - createSession: async ( - ...args: Parameters - ) => { - const session = await createSession(...args); - const identity = claimedIdentity(args[0].token); - identities.set(args[1], identity); - return { ...session, identity }; - }, - selectSession: async ( - ...args: Parameters - ) => { - const session = await selectSession(...args); - return { ...session, identity: identities.get(session.workspaceId) }; - }, - }); -} diff --git a/packages/prisma/package.json b/packages/prisma/package.json index 2f69d6a1..1a6804c6 100644 --- a/packages/prisma/package.json +++ b/packages/prisma/package.json @@ -50,7 +50,7 @@ }, "dependencies": { "@manypkg/tools": "^2.1.2", - "@prisma/cli-engine": "workspace:0.4.0", + "@prisma/cli-engine": "workspace:0.5.0", "@prisma/composer-cli": "0.20.0", "@prisma/compute-sdk": "0.42.0", "@prisma/management-api-sdk": "1.69.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8aadcbc8..82a7295a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,7 +27,7 @@ importers: specifier: ^2.1.2 version: 2.1.2 '@prisma/cli-engine': - specifier: workspace:0.4.0 + specifier: workspace:0.5.0 version: link:../cli-engine '@prisma/composer-cli': specifier: 0.20.0 @@ -207,7 +207,7 @@ importers: specifier: ^2.1.2 version: 2.1.2 '@prisma/cli-engine': - specifier: workspace:0.4.0 + specifier: workspace:0.5.0 version: link:../cli-engine '@prisma/composer-cli': specifier: 0.20.0 From efe5ab229b82f8297295bb273c592247a48f1876 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Thu, 17 Sep 2026 17:17:29 +0530 Subject: [PATCH 10/12] revert(auth): keep session identity out of the engine contract Undo the engine part of the previous commit. @prisma/composer-cli and @prisma/orm-toolchain pin @prisma/cli-engine at exactly 0.4.0, so an engine bump fails the conformance check until both packages republish. A display field does not justify that cross-repo release. Session identity stays CLI-local. The two lookups that used Reflect.get now use typed guards. The earlier fixes stay: enrichSessions skips lookups that cannot succeed, and the plain stdout rows of auth workspace list keep the columns they have on main. Co-Authored-By: Claude Fable 5.1 Signed-off-by: Aman Varshney --- packages/cli-engine/package.json | 2 +- packages/cli-engine/src/credential-manager.ts | 15 +---- .../src/environment-credential-manager.ts | 4 -- .../src/in-memory-credential-manager.ts | 5 -- .../tests/credential-manager.test.ts | 10 ---- packages/cli-engine/tests/engine.type-test.ts | 1 - .../cli-engine/tests/management-api.test.ts | 2 - packages/cli/package.json | 2 +- packages/cli/src/auth/credential-manager.ts | 57 +++++++++++++++++-- packages/cli/src/commands/auth/session-ref.ts | 5 +- .../cli/src/commands/auth/workspace-list.ts | 3 +- .../cli/src/commands/auth/workspace-use.ts | 3 +- packages/cli/tests/auth.test.ts | 10 +++- packages/cli/tests/golden-rendering.test.ts | 7 ++- .../account-aware-credential-manager.ts | 49 ++++++++++++++++ packages/prisma/package.json | 2 +- pnpm-lock.yaml | 4 +- 17 files changed, 129 insertions(+), 52 deletions(-) create mode 100644 packages/cli/tests/helpers/account-aware-credential-manager.ts diff --git a/packages/cli-engine/package.json b/packages/cli-engine/package.json index c839f45f..35b995b5 100644 --- a/packages/cli-engine/package.json +++ b/packages/cli-engine/package.json @@ -1,6 +1,6 @@ { "name": "@prisma/cli-engine", - "version": "0.5.0", + "version": "0.4.0", "description": "The execution engine of the unified Prisma CLI.", "type": "module", "exports": { diff --git a/packages/cli-engine/src/credential-manager.ts b/packages/cli-engine/src/credential-manager.ts index 665469c3..1405b200 100644 --- a/packages/cli-engine/src/credential-manager.ts +++ b/packages/cli-engine/src/credential-manager.ts @@ -26,10 +26,6 @@ export interface Credential { export interface Session { readonly workspaceId: string; readonly workspaceName: string | undefined; - /** Who authorized this workspace session. A persistent manager may enrich - * this from the account API and fall back to credential claims. It contains - * no token material and may be absent for workspace-only credentials. */ - readonly identity: CredentialIdentity | undefined; /** The stored ACCESS TOKEN's expiry, which rotation changes — not a * deadline on the logged-in-ness. */ readonly expiresAt: Date | undefined; @@ -109,18 +105,13 @@ export interface CredentialManager { /** The stored sessions and the selection, read fresh. Local-only. */ sessions(): Promise; - /** Best-effort remote enrichment for session display metadata. Persistent - * managers may cache safe account details; failure still returns the local - * sessions. Commands opt into this explicitly so normal reads stay local. */ - enrichSessions(): Promise; - /** * Login's write. The caller names the workspace that identifies the * session; for workspace-bound credentials the manager verifies the * workspace_id claim matches and refuses on mismatch. Upserts by - * workspaceId and selects it. The workspace name and safe user identity are - * fetched best-effort after the write — failure leaves either undefined and - * never fails login. + * workspaceId and selects it. The workspace name is fetched + * best-effort after the write — failure leaves it undefined, never + * fails login. */ createSession(credential: Credential, workspaceId: string): Promise; diff --git a/packages/cli-engine/src/environment-credential-manager.ts b/packages/cli-engine/src/environment-credential-manager.ts index 23653203..dedd1db2 100644 --- a/packages/cli-engine/src/environment-credential-manager.ts +++ b/packages/cli-engine/src/environment-credential-manager.ts @@ -76,10 +76,6 @@ export class EnvironmentCredentialManager implements CredentialManager { return { sessions: [], selectedWorkspaceId: undefined }; } - async enrichSessions(): Promise { - return this.sessions(); - } - async createSession( _credential: Credential, _workspaceId: string, diff --git a/packages/cli-engine/src/in-memory-credential-manager.ts b/packages/cli-engine/src/in-memory-credential-manager.ts index 9b26b34f..81b973c0 100644 --- a/packages/cli-engine/src/in-memory-credential-manager.ts +++ b/packages/cli-engine/src/in-memory-credential-manager.ts @@ -85,7 +85,6 @@ function asSession(record: SessionRecord): Session { return { workspaceId: record.workspaceId, workspaceName: record.workspaceName, - identity: claimedIdentity(record.credential.token), expiresAt: record.credential.expiresAt, }; } @@ -235,10 +234,6 @@ export class InMemoryCredentialManager implements CredentialManager { }; } - async enrichSessions(): Promise { - return this.sessions(); - } - async createSession( credential: Credential, workspaceId: string, diff --git a/packages/cli-engine/tests/credential-manager.test.ts b/packages/cli-engine/tests/credential-manager.test.ts index 861b07b8..d7050a88 100644 --- a/packages/cli-engine/tests/credential-manager.test.ts +++ b/packages/cli-engine/tests/credential-manager.test.ts @@ -442,11 +442,6 @@ describe("session mutations and state read-back", () => { expect(selected).toEqual({ workspaceId: "workspace-2", workspaceName: undefined, - identity: { - userId: "user-1", - email: undefined, - name: undefined, - }, expiresAt: undefined, }); expect(manager.state().selectedWorkspaceId).toBe("workspace-2"); @@ -512,11 +507,6 @@ describe("session mutations and state read-back", () => { { workspaceId: "workspace-1", workspaceName: undefined, - identity: { - userId: "user-1", - email: undefined, - name: undefined, - }, expiresAt: undefined, }, ], diff --git a/packages/cli-engine/tests/engine.type-test.ts b/packages/cli-engine/tests/engine.type-test.ts index c108fe1f..86d31a60 100644 --- a/packages/cli-engine/tests/engine.type-test.ts +++ b/packages/cli-engine/tests/engine.type-test.ts @@ -571,7 +571,6 @@ export const unmanagedIsUndeclared: false = unmanagedCommand.managesCredentials; export const sessionHasNoTokenMaterial: | "workspaceId" | "workspaceName" - | "identity" | "expiresAt" = undefined as unknown as keyof Session; export const activeCredentialHasNoTokenMaterial: diff --git a/packages/cli-engine/tests/management-api.test.ts b/packages/cli-engine/tests/management-api.test.ts index 16773dc1..224e89cf 100644 --- a/packages/cli-engine/tests/management-api.test.ts +++ b/packages/cli-engine/tests/management-api.test.ts @@ -51,7 +51,6 @@ function fakeCredentialManager( return { activeCredential: unusedManagerMethod("activeCredential"), sessions: unusedManagerMethod("sessions"), - enrichSessions: unusedManagerMethod("enrichSessions"), createSession: unusedManagerMethod("createSession"), selectSession: unusedManagerMethod("selectSession"), endSession: unusedManagerMethod("endSession"), @@ -74,7 +73,6 @@ const storedSessions = (...workspaceIds: readonly string[]) => ({ sessions: workspaceIds.map((workspaceId) => ({ workspaceId, workspaceName: undefined, - identity: undefined, expiresAt: undefined, })), selectedWorkspaceId: workspaceIds[0], diff --git a/packages/cli/package.json b/packages/cli/package.json index 84976467..20c240fe 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -49,7 +49,7 @@ }, "dependencies": { "@manypkg/tools": "^2.1.2", - "@prisma/cli-engine": "workspace:0.5.0", + "@prisma/cli-engine": "workspace:0.4.0", "@prisma/composer-cli": "0.20.0", "@prisma/compute-sdk": "0.42.0", "@prisma/management-api-sdk": "1.69.0", diff --git a/packages/cli/src/auth/credential-manager.ts b/packages/cli/src/auth/credential-manager.ts index e8bc57a9..90826e47 100644 --- a/packages/cli/src/auth/credential-manager.ts +++ b/packages/cli/src/auth/credential-manager.ts @@ -56,6 +56,51 @@ export type FetchSessionMetadata = ( credential: Pick, ) => Promise; +export type AccountSession = Session & { + readonly identity: CredentialIdentity | undefined; +}; + +export interface AccountStoredSessions { + readonly sessions: readonly AccountSession[]; + readonly selectedWorkspaceId: string | undefined; +} + +interface AccountAwareCredentialManager extends CredentialManager { + enrichSessions(): Promise; +} + +/** Session display metadata is a CLI concern, not part of the shared engine + * contract. FileCredentialManager provides it; other managers degrade to the + * standard local session shape without inventing an account identity. */ +export async function sessionsForDisplay( + manager: CredentialManager, +): Promise { + if (isAccountAwareCredentialManager(manager)) { + return manager.enrichSessions(); + } + return manager.sessions(); +} + +export function sessionIdentity( + session: Session, +): CredentialIdentity | undefined { + return isAccountSession(session) + ? normalizedIdentity(session.identity) + : undefined; +} + +function isAccountSession(session: Session): session is AccountSession { + return "identity" in session; +} + +function isAccountAwareCredentialManager( + manager: CredentialManager, +): manager is AccountAwareCredentialManager { + return ( + "enrichSessions" in manager && typeof manager.enrichSessions === "function" + ); +} + export interface FileCredentialManagerOptions { readonly env: Readonly>; readonly fetchSessionMetadata?: FetchSessionMetadata; @@ -165,12 +210,12 @@ export class FileCredentialManager implements CredentialManager { return storedCredential(record); } - async sessions(): Promise { + async sessions(): Promise { const state = await readCredentialState(this.#filePath); return storedSessions(state); } - async enrichSessions(): Promise { + async enrichSessions(): Promise { if (this.#fetchSessionMetadata === undefined) return this.sessions(); const state = await readCredentialState(this.#filePath); const now = Date.now(); @@ -221,7 +266,7 @@ export class FileCredentialManager implements CredentialManager { async createSession( credential: Credential, workspaceId: string, - ): Promise { + ): Promise { const environmentInForce = this.#environmentToken() !== undefined; const claimed = credentialWorkspaceId(credential.token); if (claimed !== undefined && claimed !== workspaceId) { @@ -290,7 +335,7 @@ export class FileCredentialManager implements CredentialManager { }); } - async selectSession(workspaceId: string): Promise { + async selectSession(workspaceId: string): Promise { const environmentInForce = this.#environmentToken() !== undefined; const selected = await this.#mutate((state) => { @@ -670,14 +715,14 @@ function lacksFetchableMetadata(session: StoredSession, now: number): boolean { ); } -function storedSessions(state: CredentialState): StoredSessions { +function storedSessions(state: CredentialState): AccountStoredSessions { return { sessions: state.sessions.map((record) => toSession(record)), selectedWorkspaceId: resolvedMarker(state) ?? undefined, }; } -function toSession(record: StoredSession): Session { +function toSession(record: StoredSession): AccountSession { return { workspaceId: record.workspaceId, workspaceName: record.name, diff --git a/packages/cli/src/commands/auth/session-ref.ts b/packages/cli/src/commands/auth/session-ref.ts index ef737e78..7d3ce478 100644 --- a/packages/cli/src/commands/auth/session-ref.ts +++ b/packages/cli/src/commands/auth/session-ref.ts @@ -8,6 +8,7 @@ */ import { noSessionForWorkspaceError, type Session } from "@prisma/cli-engine"; import { CliStructuredError } from "@prisma/cli-engine/protocol"; +import { sessionIdentity } from "../../auth/credential-manager"; import { CLI_NAME } from "../../cli-name"; export type SessionRefResolution = @@ -23,7 +24,7 @@ export interface SessionUser { /** The safe identity fields a command may expose for a stored session. */ export function sessionUser(session: Session): SessionUser | null { - const identity = session.identity; + const identity = sessionIdentity(session); if (identity === undefined) return null; return { id: identity.userId ?? null, @@ -34,7 +35,7 @@ export function sessionUser(session: Session): SessionUser | null { /** The shortest useful human identity for a workspace session. */ export function sessionUserLabel(session: Session): string | undefined { - const identity = session.identity; + const identity = sessionIdentity(session); return identity?.email ?? identity?.name ?? identity?.userId; } diff --git a/packages/cli/src/commands/auth/workspace-list.ts b/packages/cli/src/commands/auth/workspace-list.ts index aabfec11..cb2d1c99 100644 --- a/packages/cli/src/commands/auth/workspace-list.ts +++ b/packages/cli/src/commands/auth/workspace-list.ts @@ -5,6 +5,7 @@ import { type Session, } from "@prisma/cli-engine"; import { ok } from "@prisma/cli-engine/protocol"; +import { sessionsForDisplay } from "../../auth/credential-manager"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; @@ -102,7 +103,7 @@ export const authWorkspaceListCommand = defineCommand({ examples: ["auth workspace list", "auth workspace list --json"], }, handler: async (_args, ctx) => { - const stored = await ctx.credentialManager.enrichSessions(); + const stored = await sessionsForDisplay(ctx.credentialManager); const result: WorkspaceListResult = { sessions: stored.sessions, selectedWorkspaceId: stored.selectedWorkspaceId, diff --git a/packages/cli/src/commands/auth/workspace-use.ts b/packages/cli/src/commands/auth/workspace-use.ts index 39b8ee8a..47523878 100644 --- a/packages/cli/src/commands/auth/workspace-use.ts +++ b/packages/cli/src/commands/auth/workspace-use.ts @@ -8,6 +8,7 @@ import { type StoredSessions, } from "@prisma/cli-engine"; import { CliStructuredError, ok } from "@prisma/cli-engine/protocol"; +import { sessionsForDisplay } from "../../auth/credential-manager"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; @@ -115,7 +116,7 @@ export const authWorkspaceUseCommand = defineCommand({ examples: ["auth workspace use", "auth workspace use my-workspace"], }, handler: async (args, ctx) => { - const stored = await ctx.credentialManager.enrichSessions(); + const stored = await sessionsForDisplay(ctx.credentialManager); if (stored.sessions.length === 0) { throw noWorkspaceSessionsError(); } diff --git a/packages/cli/tests/auth.test.ts b/packages/cli/tests/auth.test.ts index f79d177b..906a92c9 100644 --- a/packages/cli/tests/auth.test.ts +++ b/packages/cli/tests/auth.test.ts @@ -25,6 +25,7 @@ import { authWhoamiCommand } from "../src/commands/auth/whoami"; import { authWorkspaceListCommand } from "../src/commands/auth/workspace-list"; import { authWorkspaceLogoutCommand } from "../src/commands/auth/workspace-logout"; import { authWorkspaceUseCommand } from "../src/commands/auth/workspace-use"; +import { attachAccountMetadata } from "./helpers/account-aware-credential-manager"; vi.mock("../src/auth/operations", async (importOriginal) => ({ ...(await importOriginal()), @@ -110,10 +111,11 @@ function makeCli(spec?: { readonly client?: ManagementApiClient; readonly openUrl?: (url: string) => void; }) { - return createTestCli({ + const sessions = spec?.sessions ?? []; + const cli = createTestCli({ commands: COMMANDS, groups: GROUPS, - sessions: spec?.sessions ?? [], + sessions, selectedWorkspaceId: spec?.selectedWorkspaceId, environmentCredential: spec?.environmentToken === undefined @@ -123,6 +125,10 @@ function makeCli(spec?: { openUrl: spec?.openUrl, now: () => new Date(0), }); + if (cli.credentialManager !== undefined) { + attachAccountMetadata(cli.credentialManager, sessions); + } + return cli; } type ResultFrame = { diff --git a/packages/cli/tests/golden-rendering.test.ts b/packages/cli/tests/golden-rendering.test.ts index ca1654d8..8c82edaa 100644 --- a/packages/cli/tests/golden-rendering.test.ts +++ b/packages/cli/tests/golden-rendering.test.ts @@ -24,6 +24,7 @@ import { authLogoutCommand } from "../src/commands/auth/logout"; import { authWorkspaceListCommand } from "../src/commands/auth/workspace-list"; import { authWorkspaceLogoutCommand } from "../src/commands/auth/workspace-logout"; import { bucketKeyCreateCommand } from "../src/commands/bucket/key-create"; +import { attachAccountMetadata } from "./helpers/account-aware-credential-manager"; function record(workspaceId: string, workspaceName: string): SessionRecord { return { @@ -46,7 +47,7 @@ function makeCli( current?: string, client?: ManagementApiClient, ) { - return createTestCli({ + const cli = createTestCli({ commands: { "auth logout": authLogoutCommand, "auth workspace list": authWorkspaceListCommand, @@ -64,6 +65,10 @@ function makeCli( ...(client === undefined ? {} : { managementApi: { client } }), now: () => new Date(0), }); + if (cli.credentialManager !== undefined) { + attachAccountMetadata(cli.credentialManager, sessions); + } + return cli; } const CREATED_KEY = { diff --git a/packages/cli/tests/helpers/account-aware-credential-manager.ts b/packages/cli/tests/helpers/account-aware-credential-manager.ts new file mode 100644 index 00000000..34a1a9be --- /dev/null +++ b/packages/cli/tests/helpers/account-aware-credential-manager.ts @@ -0,0 +1,49 @@ +import { type CredentialManager, claimedIdentity } from "@prisma/cli-engine"; +import type { SessionRecord } from "@prisma/cli-engine/testing"; + +import type { AccountStoredSessions } from "../../src/auth/credential-manager"; + +/** The engine test manager deliberately models only the shared session + * contract. CLI auth tests add this package-local display capability to match + * FileCredentialManager without expanding the published engine API. */ +export function attachAccountMetadata( + manager: CredentialManager, + records: readonly SessionRecord[], +): void { + const identities = new Map( + records.map((record) => [ + record.workspaceId, + claimedIdentity(record.credential.token), + ]), + ); + const sessions = manager.sessions.bind(manager); + const createSession = manager.createSession.bind(manager); + const selectSession = manager.selectSession.bind(manager); + + Object.assign(manager, { + sessions: async (): Promise => { + const stored = await sessions(); + return { + sessions: stored.sessions.map((session) => ({ + ...session, + identity: identities.get(session.workspaceId), + })), + selectedWorkspaceId: stored.selectedWorkspaceId, + }; + }, + createSession: async ( + ...args: Parameters + ) => { + const session = await createSession(...args); + const identity = claimedIdentity(args[0].token); + identities.set(args[1], identity); + return { ...session, identity }; + }, + selectSession: async ( + ...args: Parameters + ) => { + const session = await selectSession(...args); + return { ...session, identity: identities.get(session.workspaceId) }; + }, + }); +} diff --git a/packages/prisma/package.json b/packages/prisma/package.json index 1a6804c6..2f69d6a1 100644 --- a/packages/prisma/package.json +++ b/packages/prisma/package.json @@ -50,7 +50,7 @@ }, "dependencies": { "@manypkg/tools": "^2.1.2", - "@prisma/cli-engine": "workspace:0.5.0", + "@prisma/cli-engine": "workspace:0.4.0", "@prisma/composer-cli": "0.20.0", "@prisma/compute-sdk": "0.42.0", "@prisma/management-api-sdk": "1.69.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82a7295a..8aadcbc8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,7 +27,7 @@ importers: specifier: ^2.1.2 version: 2.1.2 '@prisma/cli-engine': - specifier: workspace:0.5.0 + specifier: workspace:0.4.0 version: link:../cli-engine '@prisma/composer-cli': specifier: 0.20.0 @@ -207,7 +207,7 @@ importers: specifier: ^2.1.2 version: 2.1.2 '@prisma/cli-engine': - specifier: workspace:0.5.0 + specifier: workspace:0.4.0 version: link:../cli-engine '@prisma/composer-cli': specifier: 0.20.0 From cee5d3fa2da5587ac21d179dee18851cf01564d4 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Thu, 17 Sep 2026 17:54:31 +0530 Subject: [PATCH 11/12] refactor(auth): use one stored user shape for session metadata The metadata lookup returned the engine identity shape, and the manager converted it to the stored user shape and normalized it a second time. The lookup now returns the stored shape and the state file's existing normalizer cleans it. This removes storedUser, normalizedIdentity, and a second normalizedString. Shorten the workspace session section of the output conventions to the output contract. Lock and lookup details live in the code and tests. Co-Authored-By: Claude Fable 5.1 Signed-off-by: Aman Varshney --- docs/product/output-conventions.md | 68 ++++++------------- packages/cli/src/auth/credential-manager.ts | 54 +++------------ packages/cli/src/auth/session-metadata.ts | 8 +-- packages/cli/src/auth/state-file.ts | 2 +- packages/cli/tests/credential-manager.test.ts | 28 ++++---- packages/cli/tests/session-metadata.test.ts | 6 +- 6 files changed, 53 insertions(+), 113 deletions(-) diff --git a/docs/product/output-conventions.md b/docs/product/output-conventions.md index a995ecb3..2de00aed 100644 --- a/docs/product/output-conventions.md +++ b/docs/product/output-conventions.md @@ -197,60 +197,31 @@ No current MVP command uses `verify` or `inspect`, but new commands must still c ### Workspace session identity -An OAuth login authorizes one workspace and stores one local workspace session. -Running `auth login` again may add another session, including a session owned by -a different Prisma user. Therefore, `auth workspace list` describes the -workspace sessions authorized on this machine; it must not present them as the -complete list of workspaces visible in Console for the currently selected user. - -At login, the CLI resolves the workspace name and authorizing user in one -`/v1/me` request and persists the name and safe user id, email, and name -alongside the session. This lookup is best-effort and times out after three -seconds without failing login. Existing state remains compatible; when -stored metadata is unavailable, the CLI falls back to identity claims in the -access token. Session-list and session-selection commands fill missing workspace -names and account metadata for older records without replacing known values. -Successful results are cached. Logout uses only locally stored metadata and -never waits for a metadata request. Ordinary `sessions()` reads remain local-only. - -The CLI sends no metadata request that cannot succeed. It skips a session whose -access token has expired, because the API rejects that token. It skips the user -lookup for a token that belongs to a workspace and not to a user. - -Metadata lookups must not overwrite a session replaced during the lookup. -Login returns the session still stored when the lookup finishes, even when no -metadata was found. If another process ended that session, login reports the -existing session-ended `CLI.CREDENTIALS_REQUIRED` error instead of success. - -Human workspace-session output shows the user email next to every workspace -when one is known. Selection prompts use the same identity so a user can -distinguish same-named workspaces and sessions belonging to different -accounts. When no email is known, output falls back to the user's name and then -id. Tables render the standard unknown-value marker when no user identity is -available, while selection prompts omit an identity they do not know. +Each `auth login` authorizes one workspace and stores one local session. Two +sessions can belong to different Prisma users. `auth workspace list` shows the +sessions authorized on this machine. It is not the full list of workspaces the +user can see in Console. + +Human output shows the user next to every workspace session: the email when it +is known, then the name, then the id. Selection prompts show the same identity. +A table renders the standard unknown-value marker when no identity is known, +and a prompt leaves it out. The plain stdout rows of `auth workspace list` keep their columns: workspace, id, status. Scripts read those columns by position, and the user is optional, so the user appears only in the table and in the structured output. -Structured workspace-session output includes a nullable `user` object on every -item. Its `context.scope` is `"local-sessions"`, making it explicit that the -collection is not a complete remote membership list: +Structured output carries a nullable `user` object on every item, and +`context.scope` is `"local-sessions"`: ```json { - "context": { - "scope": "local-sessions" - }, + "context": { "scope": "local-sessions" }, "items": [ { "workspaceId": "workspace_123", "workspaceName": "Acme Inc", - "user": { - "id": "usr_123", - "email": "developer@example.com", - "name": null - }, + "user": { "id": "usr_123", "email": "developer@example.com", "name": null }, "current": true, "expiresAt": "2026-08-19T09:10:49.000Z" } @@ -258,11 +229,14 @@ collection is not a complete remote membership list: } ``` -The `user` object is `null` when neither stored metadata nor token claims carry -a user identity. Individual user fields use `null` when unavailable. Token -material never reaches either output mode. `auth workspace list` always offers -`auth login` as the structured next action: it authorizes the first workspace -when the list is empty and another workspace when sessions already exist. +`user` is `null` when neither stored metadata nor token claims name a user. A +user field is `null` when it is unknown. Tokens never appear in any output. +`auth workspace list` always offers `auth login` as the next action. + +The CLI reads the workspace name and the user from one best-effort `/v1/me` +request at login and stores them with the session. Sessions saved before this +existed get the same lookup once, from `auth workspace list` and +`auth workspace use`. Logout never waits for a lookup. ### One-Time Secret Output diff --git a/packages/cli/src/auth/credential-manager.ts b/packages/cli/src/auth/credential-manager.ts index 90826e47..bea40a2e 100644 --- a/packages/cli/src/auth/credential-manager.ts +++ b/packages/cli/src/auth/credential-manager.ts @@ -26,6 +26,7 @@ import { type DebugLog, EMPTY_STATE, makeDebugLog, + normalizeStoredSessionUser, readCredentialState, resolveStateFilePath, type StoredSession, @@ -47,7 +48,7 @@ const NO_WORKSPACE_CLAIMED = "(no workspace)"; type SessionMetadata = { readonly workspaceName?: string | undefined; - readonly identity?: CredentialIdentity | undefined; + readonly user?: StoredSessionUser | undefined; }; /** Looks up workspace and safe account metadata in one request. @@ -84,9 +85,7 @@ export async function sessionsForDisplay( export function sessionIdentity( session: Session, ): CredentialIdentity | undefined { - return isAccountSession(session) - ? normalizedIdentity(session.identity) - : undefined; + return isAccountSession(session) ? session.identity : undefined; } function isAccountSession(session: Session): session is AccountSession { @@ -249,10 +248,7 @@ export class FileCredentialManager implements CredentialManager { return session; } const name = session.name ?? fetchedSession.metadata?.workspaceName; - const identity = fetchedSession.metadata?.identity; - const user = - session.user ?? - (identity === undefined ? undefined : storedUser(identity)); + const user = session.user ?? fetchedSession.metadata?.user; if (name === session.name && user === session.user) return session; changed = true; return { ...session, name, user }; @@ -303,7 +299,7 @@ export class FileCredentialManager implements CredentialManager { this.#actAs({ kind: "session", workspaceId }); } - const { workspaceName: name, identity } = + const { workspaceName: name, user } = (await this.#lookUpSessionMetadata(credential)) ?? {}; return this.#mutate((state) => { const record = state.sessions.find( @@ -316,14 +312,14 @@ export class FileCredentialManager implements CredentialManager { } if ( record.token !== credential.token || - (name === undefined && identity === undefined) + (name === undefined && user === undefined) ) { return { result: toSession(record) }; } const enriched: StoredSession = { ...record, ...(name === undefined ? {} : { name }), - ...(identity === undefined ? {} : { user: storedUser(identity) }), + ...(user === undefined ? {} : { user }), }; const next: CredentialState = { ...state, @@ -622,12 +618,10 @@ export class FileCredentialManager implements CredentialManager { if (this.#fetchSessionMetadata === undefined) return undefined; try { const metadata = await this.#fetchSessionMetadata(credential); - const workspaceName = normalizedString(metadata?.workspaceName); - const identity = normalizedIdentity(metadata?.identity); - if (workspaceName === undefined && identity === undefined) { - return undefined; - } - return { workspaceName, identity }; + const workspaceName = metadata?.workspaceName?.trim() || undefined; + const user = normalizeStoredSessionUser(metadata?.user); + if (workspaceName === undefined && user === undefined) return undefined; + return { workspaceName, user }; } catch { return undefined; } @@ -750,32 +744,6 @@ function storedIdentity(record: StoredSession): CredentialIdentity | undefined { : { userId: user.id, email: user.email, name: user.name }; } -function storedUser(identity: CredentialIdentity): StoredSessionUser { - return { - ...(identity.userId === undefined ? {} : { id: identity.userId }), - ...(identity.email === undefined ? {} : { email: identity.email }), - ...(identity.name === undefined ? {} : { name: identity.name }), - }; -} - -function normalizedIdentity( - identity: CredentialIdentity | undefined, -): CredentialIdentity | undefined { - if (identity === undefined) return undefined; - const userId = normalizedString(identity.userId); - const email = normalizedString(identity.email); - const name = normalizedString(identity.name); - if (userId === undefined && email === undefined && name === undefined) { - return undefined; - } - return { userId, email, name }; -} - -function normalizedString(value: string | undefined): string | undefined { - const trimmed = value?.trim(); - return trimmed ? trimmed : undefined; -} - /** An environment token whose claims name no workspace reports no * workspace id — never the empty string. */ function environmentCredential(token: string): ActiveCredential { diff --git a/packages/cli/src/auth/session-metadata.ts b/packages/cli/src/auth/session-metadata.ts index 13f572bf..16e5d14f 100644 --- a/packages/cli/src/auth/session-metadata.ts +++ b/packages/cli/src/auth/session-metadata.ts @@ -16,11 +16,11 @@ export function fetchSessionMetadata(apiBaseUrl: string): FetchSessionMetadata { const { user, workspace } = data.data; return { workspaceName: workspace?.name ?? undefined, - identity: user + user: user ? { - userId: user.id ?? undefined, - email: user.email ?? undefined, - name: user.name ?? undefined, + id: user.id, + email: user.email, + ...(user.name ? { name: user.name } : {}), } : undefined, }; diff --git a/packages/cli/src/auth/state-file.ts b/packages/cli/src/auth/state-file.ts index ea27bdb7..f824578a 100644 --- a/packages/cli/src/auth/state-file.ts +++ b/packages/cli/src/auth/state-file.ts @@ -202,7 +202,7 @@ function normalizeSession(session: StoredSession): StoredSession { }; } -function normalizeStoredSessionUser( +export function normalizeStoredSessionUser( value: unknown, ): StoredSessionUser | undefined { if (typeof value !== "object" || value === null || Array.isArray(value)) { diff --git a/packages/cli/tests/credential-manager.test.ts b/packages/cli/tests/credential-manager.test.ts index a95038a3..aeaf41ce 100644 --- a/packages/cli/tests/credential-manager.test.ts +++ b/packages/cli/tests/credential-manager.test.ts @@ -799,8 +799,8 @@ describe("createSession", () => { const manager = makeManager({ fetchSessionMetadata: async () => ({ workspaceName: " Workspace A ", - identity: { - userId: "usr_work", + user: { + id: "usr_work", email: "developer@prisma.io", name: "Prisma Developer", }, @@ -955,10 +955,9 @@ describe("createSession", () => { return hasMetadata ? { workspaceName: "Stale Workspace", - identity: { - userId: "usr_first", + user: { + id: "usr_first", email: "first@example.com", - name: undefined, }, } : undefined; @@ -1030,8 +1029,8 @@ describe("enrichSessions", () => { ); const fetchSessionMetadata = vi.fn(async () => ({ workspaceName: "Different name", - identity: { - userId: "usr_work", + user: { + id: "usr_work", email: "developer@prisma.io", name: "Prisma Developer", }, @@ -1062,14 +1061,14 @@ describe("enrichSessions", () => { true, false, ])("persists name-only metadata (account already stored: %s)", async (hasAccount) => { - const identity = { - userId: "usr_work", + const user = { + id: "usr_work", email: "developer@prisma.io", name: "Prisma Developer", }; await makeManager({ fetchSessionMetadata: async () => ({ - identity: hasAccount ? identity : undefined, + user: hasAccount ? user : undefined, }), }).createSession(credentialFor(WORKSPACE_A), WORKSPACE_A); const manager = makeManager({ @@ -1108,10 +1107,9 @@ describe("enrichSessions", () => { await released; return { workspaceName: "Stale name", - identity: { - userId: "usr_stale", + user: { + id: "usr_stale", email: "stale@example.com", - name: undefined, }, }; }, @@ -1203,8 +1201,8 @@ describe("the file-backed TokenStorage", () => { const manager = makeManager({ fetchSessionMetadata: async () => ({ workspaceName: "Workspace A", - identity: { - userId: "usr_work", + user: { + id: "usr_work", email: "developer@prisma.io", name: "Prisma Developer", }, diff --git a/packages/cli/tests/session-metadata.test.ts b/packages/cli/tests/session-metadata.test.ts index 02c14907..38f060ce 100644 --- a/packages/cli/tests/session-metadata.test.ts +++ b/packages/cli/tests/session-metadata.test.ts @@ -28,8 +28,8 @@ describe("login session metadata", () => { expect(metadata).toEqual({ workspaceName: "Acme Inc", - identity: { - userId: "usr_456", + user: { + id: "usr_456", email: "dev@example.com", name: "Dev", }, @@ -52,7 +52,7 @@ describe("login session metadata", () => { expect(await fetchSessionMetadata(api.baseUrl)(CREDENTIAL)).toEqual({ workspaceName: "Acme Inc", - identity: undefined, + user: undefined, }); expect(api.requests).toEqual(["GET /v1/me"]); }); From 15fe7f5b983e59fbd36a14ecd5369fca88fff645 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Mon, 21 Sep 2026 19:15:57 +0530 Subject: [PATCH 12/12] fix(auth): offer login only on an empty workspace list A populated list is not a dead end, so `auth workspace list` offers `auth login` only when there are no sessions, like the other list commands. `auth workspace use ` resolves an explicit argument against local state and makes no request. It looks metadata up only when the argument matches no stored session, so a session saved before names were stored still resolves by name. Command-level tests now cover the lookup path for list and use. The error reference documents the `sessions` meta on AUTH.WORKSPACE_AMBIGUOUS. Co-Authored-By: Claude Fable 5.1 --- docs/product/output-conventions.md | 7 +- docs/reference/error-reference.md | 2 +- .../cli/src/commands/auth/workspace-list.ts | 19 ++-- .../cli/src/commands/auth/workspace-use.ts | 22 ++++- packages/cli/tests/auth.test.ts | 95 +++++++++++++++++-- packages/cli/tests/golden-rendering.test.ts | 8 +- 6 files changed, 122 insertions(+), 31 deletions(-) diff --git a/docs/product/output-conventions.md b/docs/product/output-conventions.md index 2de00aed..f7dd38bf 100644 --- a/docs/product/output-conventions.md +++ b/docs/product/output-conventions.md @@ -231,12 +231,13 @@ Structured output carries a nullable `user` object on every item, and `user` is `null` when neither stored metadata nor token claims name a user. A user field is `null` when it is unknown. Tokens never appear in any output. -`auth workspace list` always offers `auth login` as the next action. The CLI reads the workspace name and the user from one best-effort `/v1/me` request at login and stores them with the session. Sessions saved before this -existed get the same lookup once, from `auth workspace list` and -`auth workspace use`. Logout never waits for a lookup. +existed get the same lookup once, from `auth workspace list` and the +`auth workspace use` picker. `auth workspace use ` is a local switch: +it looks metadata up only when the argument matches no stored session. Logout +never waits for a lookup. ### One-Time Secret Output diff --git a/docs/reference/error-reference.md b/docs/reference/error-reference.md index 75964ad0..6f3ac3cf 100644 --- a/docs/reference/error-reference.md +++ b/docs/reference/error-reference.md @@ -64,7 +64,7 @@ A command that needs an active workspace found an authenticated credential that ### AUTH.WORKSPACE_AMBIGUOUS -A user-typed workspace name matched more than one workspace, from two raise sites with different meta: the session-ref resolver behind `prisma auth workspace use`/`logout` when several stored sessions share the name (meta carries `workspaceIds`), and `prisma project transfer` when a `--to-workspace` reference matches several authenticated workspaces (meta carries `workspaceRef` and `matches`, each match holding `id`, `name`, `credentialWorkspaceId`). Both point the user at `prisma auth workspace list` to retry with an exact workspace id. Meta: `workspaceIds` (workspace commands) or `workspaceRef`, `matches` (project transfer). +A user-typed workspace name matched more than one workspace, from two raise sites with different meta: the session-ref resolver behind `prisma auth workspace use`/`logout` when several stored sessions share the name (meta carries `workspaceIds` and `sessions`, each session holding `workspaceId` and a nullable `user`), and `prisma project transfer` when a `--to-workspace` reference matches several authenticated workspaces (meta carries `workspaceRef` and `matches`, each match holding `id`, `name`, `credentialWorkspaceId`). Both point the user at `prisma auth workspace list` to retry with an exact workspace id. Meta: `workspaceIds`, `sessions` (workspace commands) or `workspaceRef`, `matches` (project transfer). ### AUTH.WORKSPACE_NOT_AUTHENTICATED diff --git a/packages/cli/src/commands/auth/workspace-list.ts b/packages/cli/src/commands/auth/workspace-list.ts index cb2d1c99..bcd44c42 100644 --- a/packages/cli/src/commands/auth/workspace-list.ts +++ b/packages/cli/src/commands/auth/workspace-list.ts @@ -4,13 +4,19 @@ import { type Presentations, type Session, } from "@prisma/cli-engine"; -import { ok } from "@prisma/cli-engine/protocol"; +import { type NextAction, ok } from "@prisma/cli-engine/protocol"; import { sessionsForDisplay } from "../../auth/credential-manager"; import { environmentCredentialInForce } from "../../auth/service-token"; import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; import { sessionLabel, sessionUser, sessionUserLabel } from "./session-ref"; +const LOGIN_NEXT_ACTION: NextAction = { + kind: "run-command", + label: "Authorize a workspace", + command: `${CLI_NAME} auth login`, +}; + export interface WorkspaceListResult { readonly sessions: readonly Session[]; readonly selectedWorkspaceId: string | undefined; @@ -81,16 +87,7 @@ function listPresentations(result: WorkspaceListResult): Presentations { .trimEnd(), ), json: () => serializeWorkspaceList(result), - next: () => [ - { - kind: "run-command", - label: - result.sessions.length === 0 - ? "Authorize a workspace" - : "Authorize another workspace", - command: `${CLI_NAME} auth login`, - }, - ], + next: () => (result.sessions.length === 0 ? [LOGIN_NEXT_ACTION] : []), }; } diff --git a/packages/cli/src/commands/auth/workspace-use.ts b/packages/cli/src/commands/auth/workspace-use.ts index 47523878..fa0a4ad0 100644 --- a/packages/cli/src/commands/auth/workspace-use.ts +++ b/packages/cli/src/commands/auth/workspace-use.ts @@ -1,6 +1,7 @@ /** The `auth workspace use` command: it SELECTS among the sessions you * have — it never creates one, and never opens a browser. */ import { + type CredentialManager, defineCommand, type Presentations, positional, @@ -14,6 +15,7 @@ import { CLI_NAME } from "../../cli-name"; import { ENVIRONMENT_CREDENTIAL_NOTICE } from "./credential-card"; import { requireSession, + resolveSessionRef, type SessionUser, sessionChoiceLabel, sessionLabel, @@ -116,11 +118,13 @@ export const authWorkspaceUseCommand = defineCommand({ examples: ["auth workspace use", "auth workspace use my-workspace"], }, handler: async (args, ctx) => { - const stored = await sessionsForDisplay(ctx.credentialManager); + const ref = args.positionals.workspace?.trim(); + const stored = ref + ? await sessionsForRef(ctx.credentialManager, ref) + : await sessionsForDisplay(ctx.credentialManager); if (stored.sessions.length === 0) { throw noWorkspaceSessionsError(); } - const ref = args.positionals.workspace?.trim(); const chosen = ref ? requireSession(stored.sessions, ref) : await promptForSession(stored, ctx.prompt.select); @@ -155,6 +159,20 @@ export const authWorkspaceUseCommand = defineCommand({ }, }); +/** An explicit ref is a local switch: it resolves against stored state and + * waits for no lookup. Only a ref that matches nothing looks metadata up, + * because a session saved before names were stored may be the one meant. */ +async function sessionsForRef( + manager: CredentialManager, + ref: string, +): Promise { + const stored = await manager.sessions(); + if (resolveSessionRef(stored.sessions, ref).kind !== "no-match") { + return stored; + } + return sessionsForDisplay(manager); +} + async function promptForSession( stored: StoredSessions, select: ( diff --git a/packages/cli/tests/auth.test.ts b/packages/cli/tests/auth.test.ts index 906a92c9..18f10c0e 100644 --- a/packages/cli/tests/auth.test.ts +++ b/packages/cli/tests/auth.test.ts @@ -547,7 +547,7 @@ describe("auth workspace list", () => { ]); }); - it("distinguishes sessions from different users and offers another authorization", async () => { + it("distinguishes sessions from different users and offers no next action", async () => { const cli = makeCli({ sessions: [ record("ws_personal", "Personal workspace", { @@ -579,13 +579,39 @@ describe("auth workspace list", () => { }, ], }); - expect(result.presented?.presentation.next).toEqual([ - { - kind: "run-command", - label: "Authorize another workspace", - command: "prisma auth login", - }, - ]); + expect(result.presented?.presentation.next).toEqual([]); + }); + + it("lists what the metadata lookup returns", async () => { + const cli = makeCli({ + sessions: [record("ws_legacy", undefined)], + selectedWorkspaceId: "ws_legacy", + }); + const enrichSessions = vi.fn(async () => ({ + sessions: [ + { + workspaceId: "ws_legacy", + workspaceName: "Acme Inc", + identity: { userId: "usr_1", email: "alice@example.com" }, + expiresAt: undefined, + }, + ], + selectedWorkspaceId: "ws_legacy", + })); + Object.assign(cli.credentialManager, { enrichSessions }); + + const result = await cli.run(["auth", "workspace", "list", "--json"]); + + expect(enrichSessions).toHaveBeenCalledTimes(1); + expect(resultOf(result)).toMatchObject({ + items: [ + { + workspaceId: "ws_legacy", + workspaceName: "Acme Inc", + user: { id: "usr_1", email: "alice@example.com", name: null }, + }, + ], + }); }); }); @@ -631,6 +657,59 @@ describe("auth workspace use", () => { expect(cli.credentialManager?.state().selectedWorkspaceId).toBe("ws_2"); }); + it("switches to an explicit workspace without a network lookup", async () => { + const cli = makeCli({ sessions: twoSessions, selectedWorkspaceId: "ws_1" }); + const enrichSessions = vi.fn(async () => { + throw new Error("Metadata lookup must not block a local switch"); + }); + Object.assign(cli.credentialManager, { enrichSessions }); + + const result = await cli.run([ + "auth", + "workspace", + "use", + "Globex", + "--json", + ]); + + expect(result.exitCode).toBe(0); + expect(cli.credentialManager?.state().selectedWorkspaceId).toBe("ws_2"); + expect(enrichSessions).not.toHaveBeenCalled(); + }); + + it("looks metadata up when the workspace matches no stored name", async () => { + const cli = makeCli({ + sessions: [record("ws_1", "Acme Inc"), record("ws_legacy", undefined)], + selectedWorkspaceId: "ws_1", + }); + const enrichSessions = vi.fn(async () => { + const stored = await cli.credentialManager?.sessions(); + return { + selectedWorkspaceId: stored?.selectedWorkspaceId, + sessions: (stored?.sessions ?? []).map((session) => + session.workspaceId === "ws_legacy" + ? { ...session, workspaceName: "Globex" } + : session, + ), + }; + }); + Object.assign(cli.credentialManager, { enrichSessions }); + + const result = await cli.run([ + "auth", + "workspace", + "use", + "Globex", + "--json", + ]); + + expect(result.exitCode).toBe(0); + expect(enrichSessions).toHaveBeenCalledTimes(1); + expect(cli.credentialManager?.state().selectedWorkspaceId).toBe( + "ws_legacy", + ); + }); + it("refuses an ambiguous name, listing the workspaces that matched", async () => { const cli = makeCli({ sessions: [record("ws_1", "Acme Inc"), record("ws_9", "Acme Inc")], diff --git a/packages/cli/tests/golden-rendering.test.ts b/packages/cli/tests/golden-rendering.test.ts index 8c82edaa..3bd72bbf 100644 --- a/packages/cli/tests/golden-rendering.test.ts +++ b/packages/cli/tests/golden-rendering.test.ts @@ -123,9 +123,7 @@ describe("golden rendering", () => { "\n" + "Workspace User Id Status\n" + "Acme Inc ws_1@example.com ws_1 current\n" + - "Globex ws_2@example.com ws_2 \u2014\n" + - "\n" + - "→ Authorize another workspace: prisma auth login\n", + "Globex ws_2@example.com ws_2 \u2014\n", ); expect(result.stdout).toBe("Acme Inc ws_1 current\nGlobex ws_2\n"); }); @@ -220,9 +218,7 @@ describe("golden rendering", () => { "\n" + "\u001b[36mWorkspace\u001b[39m \u001b[36mUser \u001b[39m \u001b[36mId \u001b[39m \u001b[36mStatus\u001b[39m\n" + "Acme Inc ws_1@example.com ws_1 current\n" + - "Globex ws_2@example.com ws_2 \u2014\n" + - "\n" + - "\u001b[36m→\u001b[39m Authorize another workspace: \u001b[36mprisma auth login\u001b[39m\n", + "Globex ws_2@example.com ws_2 \u2014\n", ); }); });