Compare commits

...

1 Commits

Author SHA1 Message Date
MarioJames c291caedb6 feat(database): extract openapi database changes 2026-03-09 22:27:19 +08:00
5 changed files with 12443 additions and 2 deletions
@@ -0,0 +1,3 @@
ALTER TABLE "api_keys" ADD COLUMN IF NOT EXISTS "key_hash" varchar(128);--> statement-breakpoint
ALTER TABLE "api_keys" DROP CONSTRAINT IF EXISTS "api_keys_key_hash_unique";--> statement-breakpoint
ALTER TABLE "api_keys" ADD CONSTRAINT "api_keys_key_hash_unique" UNIQUE("key_hash");
File diff suppressed because it is too large Load Diff
@@ -623,6 +623,13 @@
"when": 1772277762014,
"tag": "0088_fix_benchmark_add_bot_provider",
"breakpoints": true
},
{
"idx": 89,
"version": "7",
"when": 1772723999146,
"tag": "0089_add_api_key_hash",
"breakpoints": true
}
],
"version": "6"
+2 -1
View File
@@ -13,7 +13,8 @@ export const apiKeys = pgTable(
.notNull()
.primaryKey(),
name: varchar('name', { length: 256 }).notNull(), // name of the API key
key: varchar('key', { length: 256 }).notNull().unique(), // API key
key: varchar('key', { length: 256 }).notNull().unique(), // encrypted API key
keyHash: varchar('key_hash', { length: 128 }).unique(), // hash of api key for authentication lookup
enabled: boolean('enabled').default(true), // whether the API key is enabled
expiresAt: timestamptz('expires_at'), // expires time
lastUsedAt: timestamptz('last_used_at'), // last used time
+5 -1
View File
@@ -14,7 +14,7 @@ import { asyncTasks } from './asyncTask';
import { chatGroups, chatGroupsAgents } from './chatGroup';
import { documents, files, knowledgeBases } from './file';
import { generationBatches, generations, generationTopics } from './generation';
import { messageGroups, messages, messagesFiles } from './message';
import { messageGroups, messages, messagesFiles, messageTranslates } from './message';
import { chunks, documentChunks, unstructuredChunks } from './rag';
import { sessionGroups, sessions } from './session';
import { threads, topicDocuments, topics } from './topic';
@@ -98,6 +98,10 @@ export const threadsRelations = relations(threads, ({ one }) => ({
export const messagesRelations = relations(messages, ({ many, one }) => ({
filesToMessages: many(messagesFiles),
translation: one(messageTranslates, {
fields: [messages.id],
references: [messageTranslates.id],
}),
session: one(sessions, {
fields: [messages.sessionId],