You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

327 lines
12 KiB

11 months ago
  1. generator client {
  2. provider = "prisma-client-js"
  3. }
  4. // Uncomment the following lines and comment out the SQLite datasource block above to use PostgreSQL
  5. // Make sure to set the correct DATABASE_URL in your .env file
  6. // After swapping run `yarn prisma:setup` from the root directory to migrate the database
  7. //
  8. // datasource db {
  9. // provider = "postgresql"
  10. // url = env("DATABASE_URL")
  11. // }
  12. datasource db {
  13. provider = "sqlite"
  14. url = "file:../storage/anythingllm.db"
  15. }
  16. model api_keys {
  17. id Int @id @default(autoincrement())
  18. secret String? @unique
  19. createdBy Int?
  20. createdAt DateTime @default(now())
  21. lastUpdatedAt DateTime @default(now())
  22. }
  23. model workspace_documents {
  24. id Int @id @default(autoincrement())
  25. docId String @unique
  26. filename String
  27. docpath String
  28. workspaceId Int
  29. metadata String?
  30. pinned Boolean? @default(false)
  31. watched Boolean? @default(false)
  32. createdAt DateTime @default(now())
  33. lastUpdatedAt DateTime @default(now())
  34. workspace workspaces @relation(fields: [workspaceId], references: [id])
  35. document_sync_queues document_sync_queues?
  36. }
  37. model invites {
  38. id Int @id @default(autoincrement())
  39. code String @unique
  40. status String @default("pending")
  41. claimedBy Int?
  42. workspaceIds String?
  43. createdAt DateTime @default(now())
  44. createdBy Int
  45. lastUpdatedAt DateTime @default(now())
  46. }
  47. model system_settings {
  48. id Int @id @default(autoincrement())
  49. label String @unique
  50. value String?
  51. createdAt DateTime @default(now())
  52. lastUpdatedAt DateTime @default(now())
  53. }
  54. model users {
  55. id Int @id @default(autoincrement())
  56. username String? @unique
  57. password String
  58. pfpFilename String?
  59. role String @default("default")
  60. suspended Int @default(0)
  61. seen_recovery_codes Boolean? @default(false)
  62. createdAt DateTime @default(now())
  63. lastUpdatedAt DateTime @default(now())
  64. dailyMessageLimit Int?
  65. workspace_chats workspace_chats[]
  66. workspace_users workspace_users[]
  67. embed_configs embed_configs[]
  68. embed_chats embed_chats[]
  69. threads workspace_threads[]
  70. recovery_codes recovery_codes[]
  71. password_reset_tokens password_reset_tokens[]
  72. workspace_agent_invocations workspace_agent_invocations[]
  73. slash_command_presets slash_command_presets[]
  74. browser_extension_api_keys browser_extension_api_keys[]
  75. temporary_auth_tokens temporary_auth_tokens[]
  76. }
  77. model recovery_codes {
  78. id Int @id @default(autoincrement())
  79. user_id Int
  80. code_hash String
  81. createdAt DateTime @default(now())
  82. user users @relation(fields: [user_id], references: [id], onDelete: Cascade)
  83. @@index([user_id])
  84. }
  85. model password_reset_tokens {
  86. id Int @id @default(autoincrement())
  87. user_id Int
  88. token String @unique
  89. expiresAt DateTime
  90. createdAt DateTime @default(now())
  91. user users @relation(fields: [user_id], references: [id], onDelete: Cascade)
  92. @@index([user_id])
  93. }
  94. model document_vectors {
  95. id Int @id @default(autoincrement())
  96. docId String
  97. vectorId String
  98. createdAt DateTime @default(now())
  99. lastUpdatedAt DateTime @default(now())
  100. }
  101. model welcome_messages {
  102. id Int @id @default(autoincrement())
  103. user String
  104. response String
  105. orderIndex Int?
  106. createdAt DateTime @default(now())
  107. }
  108. model workspaces {
  109. id Int @id @default(autoincrement())
  110. name String
  111. slug String @unique
  112. vectorTag String?
  113. createdAt DateTime @default(now())
  114. openAiTemp Float?
  115. openAiHistory Int @default(20)
  116. lastUpdatedAt DateTime @default(now())
  117. openAiPrompt String?
  118. similarityThreshold Float? @default(0.25)
  119. chatProvider String?
  120. chatModel String?
  121. topN Int? @default(4)
  122. chatMode String? @default("chat")
  123. pfpFilename String?
  124. agentProvider String?
  125. agentModel String?
  126. queryRefusalResponse String?
  127. vectorSearchMode String? @default("default")
  128. workspace_users workspace_users[]
  129. documents workspace_documents[]
  130. workspace_suggested_messages workspace_suggested_messages[]
  131. embed_configs embed_configs[]
  132. threads workspace_threads[]
  133. workspace_agent_invocations workspace_agent_invocations[]
  134. }
  135. model workspace_threads {
  136. id Int @id @default(autoincrement())
  137. name String
  138. slug String @unique
  139. workspace_id Int
  140. user_id Int?
  141. createdAt DateTime @default(now())
  142. lastUpdatedAt DateTime @default(now())
  143. workspace workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade)
  144. user users? @relation(fields: [user_id], references: [id], onDelete: Cascade)
  145. @@index([workspace_id])
  146. @@index([user_id])
  147. }
  148. model workspace_suggested_messages {
  149. id Int @id @default(autoincrement())
  150. workspaceId Int
  151. heading String
  152. message String
  153. createdAt DateTime @default(now())
  154. lastUpdatedAt DateTime @default(now())
  155. workspace workspaces @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
  156. @@index([workspaceId])
  157. }
  158. model workspace_chats {
  159. id Int @id @default(autoincrement())
  160. workspaceId Int
  161. prompt String
  162. response String
  163. include Boolean @default(true)
  164. user_id Int?
  165. thread_id Int? // No relation to prevent whole table migration
  166. api_session_id String? // String identifier for only the dev API to parition chats in any mode.
  167. createdAt DateTime @default(now())
  168. lastUpdatedAt DateTime @default(now())
  169. feedbackScore Boolean?
  170. users users? @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
  171. }
  172. model workspace_agent_invocations {
  173. id Int @id @default(autoincrement())
  174. uuid String @unique
  175. prompt String // Contains agent invocation to parse + option additional text for seed.
  176. closed Boolean @default(false)
  177. user_id Int?
  178. thread_id Int? // No relation to prevent whole table migration
  179. workspace_id Int
  180. createdAt DateTime @default(now())
  181. lastUpdatedAt DateTime @default(now())
  182. user users? @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
  183. workspace workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
  184. @@index([uuid])
  185. }
  186. model workspace_users {
  187. id Int @id @default(autoincrement())
  188. user_id Int
  189. workspace_id Int
  190. createdAt DateTime @default(now())
  191. lastUpdatedAt DateTime @default(now())
  192. workspaces workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
  193. users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: Cascade)
  194. }
  195. model cache_data {
  196. id Int @id @default(autoincrement())
  197. name String
  198. data String
  199. belongsTo String?
  200. byId Int?
  201. expiresAt DateTime?
  202. createdAt DateTime @default(now())
  203. lastUpdatedAt DateTime @default(now())
  204. }
  205. model embed_configs {
  206. id Int @id @default(autoincrement())
  207. uuid String @unique
  208. enabled Boolean @default(false)
  209. chat_mode String @default("query")
  210. allowlist_domains String?
  211. allow_model_override Boolean @default(false)
  212. allow_temperature_override Boolean @default(false)
  213. allow_prompt_override Boolean @default(false)
  214. max_chats_per_day Int?
  215. max_chats_per_session Int?
  216. workspace_id Int
  217. createdBy Int?
  218. usersId Int?
  219. createdAt DateTime @default(now())
  220. workspace workspaces @relation(fields: [workspace_id], references: [id], onDelete: Cascade)
  221. embed_chats embed_chats[]
  222. users users? @relation(fields: [usersId], references: [id])
  223. }
  224. model embed_chats {
  225. id Int @id @default(autoincrement())
  226. prompt String
  227. response String
  228. session_id String
  229. include Boolean @default(true)
  230. connection_information String?
  231. embed_id Int
  232. usersId Int?
  233. createdAt DateTime @default(now())
  234. embed_config embed_configs @relation(fields: [embed_id], references: [id], onDelete: Cascade)
  235. users users? @relation(fields: [usersId], references: [id])
  236. }
  237. model event_logs {
  238. id Int @id @default(autoincrement())
  239. event String
  240. metadata String?
  241. userId Int?
  242. occurredAt DateTime @default(now())
  243. @@index([event])
  244. }
  245. model slash_command_presets {
  246. id Int @id @default(autoincrement())
  247. command String
  248. prompt String
  249. description String
  250. uid Int @default(0) // 0 is null user
  251. userId Int?
  252. createdAt DateTime @default(now())
  253. lastUpdatedAt DateTime @default(now())
  254. user users? @relation(fields: [userId], references: [id], onDelete: Cascade)
  255. @@unique([uid, command])
  256. }
  257. model document_sync_queues {
  258. id Int @id @default(autoincrement())
  259. staleAfterMs Int @default(604800000) // 7 days
  260. nextSyncAt DateTime
  261. createdAt DateTime @default(now())
  262. lastSyncedAt DateTime @default(now())
  263. workspaceDocId Int @unique
  264. workspaceDoc workspace_documents? @relation(fields: [workspaceDocId], references: [id], onDelete: Cascade)
  265. runs document_sync_executions[]
  266. }
  267. model document_sync_executions {
  268. id Int @id @default(autoincrement())
  269. queueId Int
  270. status String @default("unknown")
  271. result String?
  272. createdAt DateTime @default(now())
  273. queue document_sync_queues @relation(fields: [queueId], references: [id], onDelete: Cascade)
  274. }
  275. model browser_extension_api_keys {
  276. id Int @id @default(autoincrement())
  277. key String @unique
  278. user_id Int?
  279. createdAt DateTime @default(now())
  280. lastUpdatedAt DateTime @updatedAt
  281. user users? @relation(fields: [user_id], references: [id], onDelete: Cascade)
  282. @@index([user_id])
  283. }
  284. model temporary_auth_tokens {
  285. id Int @id @default(autoincrement())
  286. token String @unique
  287. userId Int
  288. expiresAt DateTime
  289. createdAt DateTime @default(now())
  290. user users @relation(fields: [userId], references: [id], onDelete: Cascade)
  291. @@index([token])
  292. @@index([userId])
  293. }