@cfxlabsinc/b2b-services
    Preparing search index...

    A dashboard user's sign-in, as the app read it; dates are ISO strings.

    type SignInSecurityView = {
        lastSignInAt: string | null;
        login:
            | { kind: "none" }
            | {
                enabled: boolean;
                kind: "identity-provider";
                providers: string[];
                status: string;
            }
            | {
                enabled: boolean;
                kind: "password";
                preferred: SecondFactor
                | null;
                secondFactors: SecondFactor[];
                state: "confirmed" | "must-set-password" | "email-unconfirmed" | "other";
                status: string;
            };
        passkey: boolean;
        passkeyEnrolledAt: string
        | null;
        stuckInSetup: { lastRejectedAt: string; rejections: number } | null;
    }
    Index
    lastSignInAt: string | null
    login:
        | { kind: "none" }
        | {
            enabled: boolean;
            kind: "identity-provider";
            providers: string[];
            status: string;
        }
        | {
            enabled: boolean;
            kind: "password";
            preferred: SecondFactor
            | null;
            secondFactors: SecondFactor[];
            state: "confirmed" | "must-set-password" | "email-unconfirmed" | "other";
            status: string;
        }

    Type Declaration

    • { kind: "none" }
    • {
          enabled: boolean;
          kind: "identity-provider";
          providers: string[];
          status: string;
      }
    • {
          enabled: boolean;
          kind: "password";
          preferred: SecondFactor | null;
          secondFactors: SecondFactor[];
          state: "confirmed" | "must-set-password" | "email-unconfirmed" | "other";
          status: string;
      }
      • enabled: boolean
      • kind: "password"
      • preferred: SecondFactor | null
      • secondFactors: SecondFactor[]
      • state: "confirmed" | "must-set-password" | "email-unconfirmed" | "other"
      • status: string

        The raw login status, shown beside its reading.

    passkey: boolean

    The login holds a passkey.

    passkeyEnrolledAt: string | null

    When their last sign-in recorded the passkey; null when none did.

    stuckInSetup: { lastRejectedAt: string; rejections: number } | null

    Set when every sign-in sends them back to second-factor setup.