From 191f1be98e1a0e1ae9278b657491e712eabc8ae2 Mon Sep 17 00:00:00 2001 From: Cali <32299095+Cali93@users.noreply.github.com> Date: Fri, 19 Apr 2024 02:22:43 +0700 Subject: [PATCH] fix(identities): update identities table definition (#23) --- .vscode/settings.json | 5 +++++ prisma/schema.prisma | 7 +++++-- src/services/prisma.ts | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9af13af --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "prettier.singleQuote": true, + "prettier.trailingComma": "none", + "prettier.semi": false +} diff --git a/prisma/schema.prisma b/prisma/schema.prisma index e15acdf..4201c60 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -23,7 +23,7 @@ model audit_log_entries { } model identities { - id String + provider_id String user_id String @db.Uuid identity_data Json provider String @@ -31,9 +31,10 @@ model identities { created_at DateTime? @default(now()) @db.Timestamptz(6) updated_at DateTime? @updatedAt @db.Timestamptz(6) email String? @default(dbgenerated("lower((identity_data ->> 'email'::text))")) + id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: NoAction) - @@id([provider, id]) + @@unique([provider_id, provider], map: "identities_provider_id_provider_unique") @@index([email]) @@index([user_id]) @@schema("auth") @@ -228,11 +229,13 @@ model users { reauthentication_sent_at DateTime? @db.Timestamptz(6) is_sso_user Boolean @default(false) deleted_at DateTime? @db.Timestamptz(6) + is_anonymous Boolean @default(false) identities identities[] mfa_factors mfa_factors[] sessions sessions[] @@index([instance_id]) + @@index([is_anonymous]) @@schema("auth") } diff --git a/src/services/prisma.ts b/src/services/prisma.ts index 69fc621..279216a 100644 --- a/src/services/prisma.ts +++ b/src/services/prisma.ts @@ -99,6 +99,7 @@ export async function createOrUpdateUser(siweMsg: SiweMessage) { id: existingUser.id, provider: 'eth', user_id: existingUser.id, + provider_id: siweMsg.address, identity_data: { sub: existingUser.id, address: siweMsg.address @@ -157,6 +158,7 @@ export async function createOrUpdateUser(siweMsg: SiweMessage) { id: newUser.id, provider: 'eth', user_id: newUser.id, + provider_id: siweMsg.address, identity_data: { sub: newUser.id, address: siweMsg.address