generator client { provider = "prisma-client-js" } datasource db { provider = "sqlite" url = "file:../storage/anythingllm.db" } // datasource db { // provider = "mysql" // url = env("DATABASE_URL") // } model api_keys { id Int @id @default(autoincrement()) secret String? @unique createdBy Int? createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) } model workspace_documents { id Int @id @default(autoincrement()) docId String @unique filename String docpath String workspaceId Int metadata String? createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) pinned Boolean? @default(false) watched Boolean? @default(false) document_sync_queues document_sync_queues? workspace workspaces @relation(fields: [workspaceId], references: [id]) } model invites { id Int @id @default(autoincrement()) code String @unique status String @default("pending") claimedBy Int? createdAt DateTime @default(now()) createdBy Int lastUpdatedAt DateTime @default(now()) workspaceIds String? } model system_settings { id Int @id @default(autoincrement()) label String @unique value String? createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) } model users { id Int @id @default(autoincrement()) username String? @unique password String role String @default("default") suspended Int @default(0) createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) pfpFilename String? seen_recovery_codes Boolean? @default(false) dailyMessageLimit Int? browser_extension_api_keys browser_extension_api_keys[] dept_users dept_users[] embed_chats embed_chats[] embed_configs embed_configs[] password_reset_tokens password_reset_tokens[] recovery_codes recovery_codes[] slash_command_presets slash_command_presets[] temporary_auth_tokens temporary_auth_tokens[] workspace_agent_invocations workspace_agent_invocations[] workspace_chats workspace_chats[] threads workspace_threads[] workspace_users workspace_users[] } model recovery_codes { id Int @id @default(autoincrement()) user_id Int code_hash String createdAt DateTime @default(now()) user users @relation(fields: [user_id], references: [id], onDelete: Cascade) @@index([user_id]) } model password_reset_tokens { id Int @id @default(autoincrement()) user_id Int token String @unique expiresAt DateTime createdAt DateTime @default(now()) user users @relation(fields: [user_id], references: [id], onDelete: Cascade) @@index([user_id]) } model document_vectors { id Int @id @default(autoincrement()) docId String vectorId String createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) } model welcome_messages { id Int @id @default(autoincrement()) user String response String orderIndex Int? createdAt DateTime @default(now()) } model workspaces { id Int @id @default(autoincrement()) name String slug String @unique vectorTag String? createdAt DateTime @default(now()) openAiTemp Float? openAiHistory Int @default(20) lastUpdatedAt DateTime @default(now()) openAiPrompt String? similarityThreshold Float? @default(0.25) chatModel String? topN Int? @default(4) chatMode String? @default("chat") pfpFilename String? chatProvider String? agentModel String? agentProvider String? queryRefusalResponse String? vectorSearchMode String? @default("default") embed_configs embed_configs[] workspace_agent_invocations workspace_agent_invocations[] documents workspace_documents[] workspace_suggested_messages workspace_suggested_messages[] threads workspace_threads[] workspace_users workspace_users[] } model workspace_threads { id Int @id @default(autoincrement()) name String slug String @unique workspace_id Int user_id Int? createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) user users? @relation(fields: [user_id], references: [id], onDelete: Cascade) workspace workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade) @@index([workspace_id]) @@index([user_id]) } model workspace_suggested_messages { id Int @id @default(autoincrement()) workspaceId Int heading String message String createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) workspace workspaces @relation(fields: [workspaceId], references: [id], onDelete: Cascade) @@index([workspaceId]) } model workspace_chats { id Int @id @default(autoincrement()) workspaceId Int prompt String response String include Boolean @default(true) user_id Int? createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) thread_id Int? feedbackScore Boolean? api_session_id String? users users? @relation(fields: [user_id], references: [id], onDelete: Cascade) } model workspace_agent_invocations { id Int @id @default(autoincrement()) uuid String @unique prompt String closed Boolean @default(false) user_id Int? thread_id Int? workspace_id Int createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) workspace workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade) user users? @relation(fields: [user_id], references: [id], onDelete: Cascade) @@index([uuid]) } model workspace_users { id Int @id @default(autoincrement()) user_id Int workspace_id Int createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) users users @relation(fields: [user_id], references: [id], onDelete: Cascade) workspaces workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade) } model cache_data { id Int @id @default(autoincrement()) name String data String belongsTo String? byId Int? expiresAt DateTime? createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) } model embed_configs { id Int @id @default(autoincrement()) uuid String @unique enabled Boolean @default(false) chat_mode String @default("query") allowlist_domains String? allow_model_override Boolean @default(false) allow_temperature_override Boolean @default(false) allow_prompt_override Boolean @default(false) max_chats_per_day Int? max_chats_per_session Int? workspace_id Int createdBy Int? usersId Int? createdAt DateTime @default(now()) embed_chats embed_chats[] users users? @relation(fields: [usersId], references: [id]) workspace workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade) } model embed_chats { id Int @id @default(autoincrement()) prompt String response String session_id String include Boolean @default(true) connection_information String? embed_id Int usersId Int? createdAt DateTime @default(now()) users users? @relation(fields: [usersId], references: [id]) embed_config embed_configs @relation(fields: [embed_id], references: [id], onDelete: Cascade) } model event_logs { id Int @id @default(autoincrement()) event String metadata String? userId Int? occurredAt DateTime @default(now()) @@index([event]) } model slash_command_presets { id Int @id @default(autoincrement()) command String prompt String description String uid Int @default(0) userId Int? createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) user users? @relation(fields: [userId], references: [id], onDelete: Cascade) @@unique([uid, command]) } model document_sync_queues { id Int @id @default(autoincrement()) staleAfterMs Int @default(604800000) nextSyncAt DateTime createdAt DateTime @default(now()) lastSyncedAt DateTime @default(now()) workspaceDocId Int @unique runs document_sync_executions[] workspaceDoc workspace_documents @relation(fields: [workspaceDocId], references: [id], onDelete: Cascade) } model document_sync_executions { id Int @id @default(autoincrement()) queueId Int status String @default("unknown") result String? createdAt DateTime @default(now()) queue document_sync_queues @relation(fields: [queueId], references: [id], onDelete: Cascade) } model browser_extension_api_keys { id Int @id @default(autoincrement()) key String @unique user_id Int? createdAt DateTime @default(now()) lastUpdatedAt DateTime @updatedAt user users? @relation(fields: [user_id], references: [id], onDelete: Cascade) @@index([user_id]) } model temporary_auth_tokens { id Int @id @default(autoincrement()) token String @unique userId Int expiresAt DateTime createdAt DateTime @default(now()) user users @relation(fields: [userId], references: [id], onDelete: Cascade) @@index([token]) @@index([userId]) } model dept { deptId Int @id @default(autoincrement()) parentId Int? ancestors String? deptName String? orderNum Int? status Int @default(0) delFlag Int @default(0) createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) dept_users dept_users[] dept_document dept_document[] } model dept_users { id Int @id @default(autoincrement()) deptId Int userId Int createdAt DateTime? @default(now()) updatedAt DateTime? @default(now()) @updatedAt user users @relation(fields: [userId], references: [id], onDelete: Cascade, onUpdate: NoAction) dept dept @relation(fields: [deptId], references: [deptId], onDelete: Cascade, onUpdate: NoAction) } model dept_document { id Int @id @default(autoincrement()) deptId Int dept dept @relation(fields: [deptId], references: [deptId], onDelete: Cascade) parsedFileName String parsedFilePath String realFileName String realFileAlias String realFilePath String isPublic Int? tags String? delTag Boolean @default(false) createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) }