diff options
author | Mathias Magnusson <mathias@magnusson.space> | 2025-08-14 18:42:27 +0200 |
---|---|---|
committer | Mathias Magnusson <mathias@magnusson.space> | 2025-08-14 18:44:44 +0200 |
commit | 815de9906a014c2eb1a4fe2bd8cf1b3077f03c9c (patch) | |
tree | 9b773698f66dbc325f7823496db30477e0cbdd07 /src/db | |
parent | 923c7c6b1a6549a6c5012713a22d5cf6e478f994 (diff) | |
download | uneven-815de9906a014c2eb1a4fe2bd8cf1b3077f03c9c.tar.gz |
Add passkey authentication
Diffstat (limited to 'src/db')
-rw-r--r-- | src/db/schema.ts | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/src/db/schema.ts b/src/db/schema.ts index 15da652..01b7228 100644 --- a/src/db/schema.ts +++ b/src/db/schema.ts @@ -1,5 +1,33 @@ -import { text, sqliteTable } from "drizzle-orm/sqlite-core"; +import { relations } from "drizzle-orm"; +import { text, sqliteTable, integer } from "drizzle-orm/sqlite-core"; -export const groupsTable = sqliteTable("groups", { - name: text("name").notNull(), +export const groupTable = sqliteTable("groups", { + id: integer().primaryKey(), + name: text().notNull(), +}); + +export const userTable = sqliteTable("users", { + id: integer().primaryKey(), + name: text().unique().notNull(), + passkey: text(), + passkeyId: text("passkey_id").notNull(), +}); + +export const sessionTable = sqliteTable("sessions", { + id: integer().primaryKey(), + uuid: text().unique().notNull(), + userId: integer("user_id").notNull(), +}); + +export const sessionRelations = relations(sessionTable, ({ one }) => ({ + user: one(userTable, { + fields: [sessionTable.userId], + references: [userTable.id], + }), +})); + +export const webauthnChallenges = sqliteTable("webauthn_challenges", { + id: integer().primaryKey(), + challenge: text().notNull(), + key: text().notNull(), }); |