Skip to main content

Identity

Source: src/data/identity/

Service​

createIdentityService / IdentityService​

Factory: createIdentityService(repo: IdentityRepository) — returns IdentityService.

MethodParametersReturnsDescription
linkIdentity(ctx: RequestContext, input: { userId: string, tenantId?: string, provider: string, providerUserId: string, profile?: Record<string, unknown>, secrets?: Record<string, unknown> })Promise<IdentityRecord>Links an external identity to a user; upserts if the provider+providerUserId+tenant combination already exists
listUserIdentities(ctx: RequestContext, userId: string)Promise<IdentityRecord[]>Lists all linked identities for a user

Repository​

IdentityRepository​

MethodParametersReturns
getById(ctx: RequestContext, id: string)Promise<IdentityRecord | null>
findByProviderIdentity(provider: string, providerUserId: string, tenantId?: string)Promise<IdentityRecord | null>
listByUser(ctx: RequestContext, userId: string)Promise<IdentityRecord[]>
create(ctx: RequestContext, input: IdentityCreateInput)Promise<IdentityRecord>
update(ctx: RequestContext, id: string, patch: Partial<IdentityCreateInput>)Promise<IdentityRecord>

IdentityRecord​

FieldType
idstring
userIdstring
tenantIdstring (optional)
providerstring
providerUserIdstring
profileRecord<string, unknown>
secretsRecord<string, unknown> (optional)
createdAtDate
updatedAtDate

Validators​

identitySchema​

FieldTypeRequiredDefault
userIdstringYes—
tenantIdstringNo—
providerstringYes—
providerUserIdstringYes—
profileRecord<string, unknown>No{}
secretsRecord<string, unknown>No—

Inferred Types​

  • Identity — z.infer<typeof identitySchema>