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

  • Identityz.infer<typeof identitySchema>