generator client { provider = "prisma-client-js" } // Uncomment the following lines and comment out the SQLite datasource block above to use PostgreSQL // Make sure to set the correct DATABASE_URL in your .env file // After swapping run `yarn prisma:setup` from the root directory to migrate the database // // datasource db { // provider = "postgresql" // url = env("DATABASE_URL") // } datasource db { provider = "sqlite" url = "file:../storage/anythingllm.db" } 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? pinned Boolean? @default(false) createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) workspace workspaces @relation(fields: [workspaceId], references: [id]) } model invites { id Int @id @default(autoincrement()) code String @unique status String @default("pending") claimedBy Int? workspaceIds String? createdAt DateTime @default(now()) createdBy Int lastUpdatedAt DateTime @default(now()) } 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 pfpFilename String? role String @default("default") suspended Int @default(0) createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) workspace_chats workspace_chats[] workspace_users workspace_users[] embed_configs embed_configs[] embed_chats embed_chats[] threads workspace_threads[] } 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) chatProvider String? chatModel String? topN Int? @default(4) chatMode String? @default("chat") pfpFilename String? workspace_users workspace_users[] documents workspace_documents[] workspace_suggested_messages workspace_suggested_messages[] embed_configs embed_configs[] threads workspace_threads[] } 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()) workspace workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade) user users? @relation(fields: [user_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? thread_id Int? // No relation to prevent whole table migration createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) feedbackScore Boolean? users users? @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade) } model workspace_users { id Int @id @default(autoincrement()) user_id Int workspace_id Int createdAt DateTime @default(now()) lastUpdatedAt DateTime @default(now()) workspaces workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade, onUpdate: Cascade) users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: 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()) workspace workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade) embed_chats embed_chats[] users users? @relation(fields: [usersId], references: [id]) } 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()) embed_config embed_configs @relation(fields: [embed_id], references: [id], onDelete: Cascade) users users? @relation(fields: [usersId], references: [id]) } model event_logs { id Int @id @default(autoincrement()) event String metadata String? userId Int? occurredAt DateTime @default(now()) @@index([event]) }