Commit a9c9ed8
authored
feat(knowledge): add Live sync option to KB connectors + fix embedding billing (#3916)
* feat(knowledge): add Live sync option to KB connector modal for Max/Enterprise users
Adds a "Live" (every 5 min) sync frequency option gated to Max and Enterprise plan users.
Includes client-side badge + disabled state, shared sync intervals constant, and server-side
plan validation on both POST and PATCH connector routes.
* fix(knowledge): record embedding usage cost for KB document processing
Adds billing tracking to the KB embedding pipeline, which was previously
generating OpenAI API calls with no cost recorded. Token counts are now
captured from the actual API response and recorded via recordUsage after
successful embedding insertion. BYOK workspaces are excluded from billing.
Applies to all execution paths: direct, BullMQ, and Trigger.dev.
* fix(knowledge): simplify embedding billing — use calculateCost, return modelName
- Use calculateCost() from @/providers/utils instead of inline formula, consistent
with how LLM billing works throughout the platform
- Return modelName from GenerateEmbeddingsResult so billing uses the actual model
(handles custom Azure deployments) instead of a hardcoded fallback string
- Fix docs-chunker.ts empty-path fallback to satisfy full GenerateEmbeddingsResult type
* fix(knowledge): remove dev bypass from hasLiveSyncAccess
* chore(knowledge): rename sync-intervals to consts, fix stale TSDoc comment
* improvement(knowledge): extract MaxBadge component, capture billing config once per document
* fix(knowledge): add knowledge-base to usage_log_source enum, fix docs-chunker type
* fix(knowledge): generate migration for knowledge-base usage_log_source enum value
* fix(knowledge): add knowledge-base to usage_log_source enum via drizzle-kit
* fix(knowledge): fix search embedding test mocks, parallelize billing lookups
* fix(knowledge): warn when embedding model has no pricing entry
* fix(knowledge): call checkAndBillOverageThreshold after embedding usage1 parent b744cd2 commit a9c9ed8
File tree
18 files changed
+14873
-93
lines changed- apps/sim
- app
- api/knowledge
- [id]/connectors
- [connectorId]
- search
- workspace/[workspaceId]/knowledge/[id]/components
- add-connector-modal
- edit-connector-modal
- lib
- billing/core
- chunkers
- knowledge
- chunks
- documents
- packages/db
- migrations
- meta
18 files changed
+14873
-93
lines changedLines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
116 | 117 | | |
117 | 118 | | |
118 | 119 | | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
119 | 134 | | |
120 | 135 | | |
121 | 136 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
| |||
97 | 98 | | |
98 | 99 | | |
99 | 100 | | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
100 | 111 | | |
101 | 112 | | |
102 | 113 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | 18 | | |
28 | 19 | | |
29 | 20 | | |
| |||
178 | 169 | | |
179 | 170 | | |
180 | 171 | | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
| 172 | + | |
| 173 | + | |
185 | 174 | | |
186 | | - | |
187 | | - | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
188 | 178 | | |
189 | 179 | | |
190 | 180 | | |
191 | | - | |
| 181 | + | |
192 | 182 | | |
193 | 183 | | |
194 | 184 | | |
| |||
209 | 199 | | |
210 | 200 | | |
211 | 201 | | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
| 202 | + | |
| 203 | + | |
216 | 204 | | |
217 | | - | |
218 | | - | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
219 | 208 | | |
220 | 209 | | |
221 | 210 | | |
222 | | - | |
| 211 | + | |
223 | 212 | | |
224 | 213 | | |
225 | 214 | | |
| |||
243 | 232 | | |
244 | 233 | | |
245 | 234 | | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
| 235 | + | |
| 236 | + | |
250 | 237 | | |
251 | | - | |
252 | | - | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
253 | 241 | | |
254 | 242 | | |
255 | 243 | | |
256 | | - | |
| 244 | + | |
257 | 245 | | |
258 | 246 | | |
259 | 247 | | |
| |||
273 | 261 | | |
274 | 262 | | |
275 | 263 | | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
| 264 | + | |
| 265 | + | |
280 | 266 | | |
281 | | - | |
282 | | - | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
283 | 270 | | |
284 | 271 | | |
285 | 272 | | |
286 | | - | |
| 273 | + | |
287 | 274 | | |
288 | 275 | | |
289 | 276 | | |
| |||
311 | 298 | | |
312 | 299 | | |
313 | 300 | | |
314 | | - | |
315 | | - | |
| 301 | + | |
316 | 302 | | |
317 | 303 | | |
318 | 304 | | |
319 | | - | |
320 | | - | |
| 305 | + | |
| 306 | + | |
321 | 307 | | |
322 | 308 | | |
323 | 309 | | |
| |||
332 | 318 | | |
333 | 319 | | |
334 | 320 | | |
335 | | - | |
336 | | - | |
| 321 | + | |
337 | 322 | | |
338 | 323 | | |
339 | 324 | | |
340 | | - | |
341 | | - | |
| 325 | + | |
| 326 | + | |
342 | 327 | | |
343 | 328 | | |
344 | 329 | | |
| |||
356 | 341 | | |
357 | 342 | | |
358 | 343 | | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
| 344 | + | |
| 345 | + | |
363 | 346 | | |
364 | | - | |
365 | | - | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
366 | 350 | | |
367 | 351 | | |
368 | 352 | | |
369 | | - | |
| 353 | + | |
370 | 354 | | |
371 | 355 | | |
372 | 356 | | |
| |||
387 | 371 | | |
388 | 372 | | |
389 | 373 | | |
390 | | - | |
391 | | - | |
392 | | - | |
393 | | - | |
| 374 | + | |
| 375 | + | |
394 | 376 | | |
395 | | - | |
396 | | - | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
397 | 380 | | |
398 | 381 | | |
399 | 382 | | |
400 | | - | |
| 383 | + | |
401 | 384 | | |
402 | 385 | | |
403 | 386 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
| 80 | + | |
80 | 81 | | |
81 | 82 | | |
82 | 83 | | |
| |||
294 | 295 | | |
295 | 296 | | |
296 | 297 | | |
297 | | - | |
| 298 | + | |
298 | 299 | | |
299 | 300 | | |
300 | 301 | | |
| |||
313 | 314 | | |
314 | 315 | | |
315 | 316 | | |
| 317 | + | |
316 | 318 | | |
317 | 319 | | |
318 | 320 | | |
| |||
342 | 344 | | |
343 | 345 | | |
344 | 346 | | |
| 347 | + | |
345 | 348 | | |
346 | 349 | | |
347 | 350 | | |
| |||
Lines changed: 15 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
26 | 30 | | |
27 | 31 | | |
28 | 32 | | |
29 | 33 | | |
30 | 34 | | |
| 35 | + | |
31 | 36 | | |
32 | 37 | | |
33 | 38 | | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | 39 | | |
43 | 40 | | |
44 | 41 | | |
| |||
67 | 64 | | |
68 | 65 | | |
69 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
70 | 71 | | |
71 | 72 | | |
72 | 73 | | |
| |||
516 | 517 | | |
517 | 518 | | |
518 | 519 | | |
519 | | - | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
520 | 525 | | |
| 526 | + | |
521 | 527 | | |
522 | 528 | | |
523 | 529 | | |
| |||
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
0 commit comments