alepha
Version:
Easy-to-use modern TypeScript framework for building many kind of applications.
72 lines (58 loc) • 1.49 kB
text/typescript
import type { Static } from "alepha";
import { z } from "alepha";
export const userAccountInfoSchema = z.object({
id: z.text({
description: "Unique identifier for the user.",
}),
name: z
.text({
description: "Full name of the user.",
})
.optional(),
firstName: z
.text({
description: "Given name of the user (OIDC `given_name`).",
})
.optional(),
lastName: z
.text({
description: "Family name of the user (OIDC `family_name`).",
})
.optional(),
email: z
.text({
description: "Email address of the user.",
format: "email",
})
.optional(),
username: z
.text({
description: "Preferred username of the user.",
})
.optional(),
picture: z
.text({
description: "URL to the user's profile picture.",
})
.optional(),
sessionId: z
.text({
description: "Session identifier for the user, if applicable.",
})
.optional(),
// -------------------------------------------------------------------------------------------------------------------
organization: z
.uuid()
.describe("Organization the user belongs to.")
.optional(),
roles: z
.array(z.text())
.describe("List of roles assigned to the user.")
.optional(),
realm: z
.text({
description: "The realm (issuer) the user was authenticated from.",
})
.optional(),
});
export type UserAccount = Static<typeof userAccountInfoSchema>;