Merge remote-tracking branch 'origin/master' into poc/generate-tables-using-ai

This commit is contained in:
Adria Navarro 2025-04-14 12:28:42 +02:00
commit 1233400872
12 changed files with 77 additions and 54 deletions

View File

@ -1,6 +1,6 @@
{
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
"version": "3.8.6",
"version": "3.9.0",
"npmClient": "yarn",
"concurrency": 20,
"command": {

View File

@ -44,7 +44,7 @@
"bcryptjs": "2.4.3",
"bull": "4.10.1",
"correlation-id": "4.0.0",
"dd-trace": "5.43.0",
"dd-trace": "5.47.0",
"dotenv": "16.0.1",
"google-auth-library": "^8.0.1",
"google-spreadsheet": "npm:@budibase/google-spreadsheet@4.1.5",

View File

@ -2,9 +2,12 @@ import { API } from "@/api"
import PosthogClient from "./PosthogClient"
import { Events, EventSource } from "./constants"
const posthog = new PosthogClient(process.env.POSTHOG_TOKEN)
const posthog = new PosthogClient(process.env.POSTHOG_TOKEN!)
class AnalyticsHub {
private initialised: boolean
private clients: PosthogClient[]
constructor() {
this.clients = [posthog]
this.initialised = false
@ -21,13 +24,13 @@ class AnalyticsHub {
}
}
identify(id) {
identify(id: string) {
posthog.identify(id)
}
captureException(_err) {}
captureException(_err: any) {}
captureEvent(eventName, props = {}) {
captureEvent(eventName: string, props = {}) {
posthog.captureEvent(eventName, props)
}

View File

@ -48,7 +48,7 @@ class AuthStore extends BudiStore<PortalAuthStore> {
analytics
.activate()
.then(() => {
analytics.identify(user._id)
analytics.identify(user._id!)
})
.catch(() => {
// This request may fail due to browser extensions blocking requests

View File

@ -12,7 +12,7 @@ export const getColumnIcon = column => {
return "Calculator"
}
if (column.schema.autocolumn) {
return "MagicWand"
return "Shapes"
}
if (helpers.schema.isDeprecatedSingleUserColumn(column.schema)) {
return "User"

@ -1 +1 @@
Subproject commit 7d637cdb569623909df02a56d0b6e308472c8172
Subproject commit 764069afd1dbb99cde73c6ad6ba550cd77398d7d

View File

@ -86,7 +86,7 @@
"csvtojson": "2.0.10",
"curlconverter": "3.21.0",
"dayjs": "^1.10.8",
"dd-trace": "5.43.0",
"dd-trace": "5.47.0",
"dotenv": "8.2.0",
"extract-zip": "^2.0.1",
"form-data": "4.0.0",

View File

@ -15,6 +15,7 @@ import { context } from "@budibase/backend-core"
import { mocks } from "@budibase/backend-core/tests"
import { MockLLMResponseFn } from "../../../tests/utilities/mocks/ai"
import { mockAnthropicResponse } from "../../../tests/utilities/mocks/ai/anthropic"
import { quotas } from "@budibase/pro"
function dedent(str: string) {
return str
@ -301,13 +302,29 @@ describe("BudibaseAI", () => {
.reply(200, license)
})
async function getQuotaUsage() {
return await context.doInSelfHostTenantUsingCloud(
config.getTenantId(),
async () => {
return await quotas.getQuotaUsage()
}
)
}
it("handles correct chat response", async () => {
let usage = await getQuotaUsage()
expect(usage._id).toBe(`quota_usage_${config.getTenantId()}`)
expect(usage.monthly.current.budibaseAICredits).toBe(0)
mockChatGPTResponse("Hi there!")
const { message } = await config.api.ai.chat({
messages: [{ role: "user", content: "Hello!" }],
licenseKey: licenseKey,
})
expect(message).toBe("Hi there!")
usage = await getQuotaUsage()
expect(usage.monthly.current.budibaseAICredits).toBeGreaterThan(0)
})
it("handles chat response error", async () => {

View File

@ -11,6 +11,7 @@ export interface ChatCompletionRequest {
export interface ChatCompletionResponse {
message?: string
tokensUsed?: number
}
export interface GenerateJsRequest {

View File

@ -50,7 +50,7 @@
"bcrypt": "5.1.0",
"bcryptjs": "2.4.3",
"bull": "4.10.1",
"dd-trace": "5.43.0",
"dd-trace": "5.47.0",
"dotenv": "8.6.0",
"email-validator": "^2.0.4",
"global-agent": "3.0.0",

View File

@ -3006,45 +3006,37 @@
resolved "https://registry.yarnpkg.com/@dagrejs/graphlib/-/graphlib-2.2.4.tgz#d77bfa9ff49e2307c0c6e6b8b26b5dd3c05816c4"
integrity sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw==
"@datadog/libdatadog@^0.5.0":
version "0.5.0"
resolved "https://registry.yarnpkg.com/@datadog/libdatadog/-/libdatadog-0.5.0.tgz#0ef2a2a76bb9505a0e7e5bc9be1415b467dbf368"
integrity sha512-YvLUVOhYVjJssm0f22/RnDQMc7ZZt/w1bA0nty1vvjyaDz5EWaHfWaaV4GYpCt5MRvnGjCBxIwwbRivmGseKeQ==
"@datadog/libdatadog@^0.5.1":
version "0.5.1"
resolved "https://registry.yarnpkg.com/@datadog/libdatadog/-/libdatadog-0.5.1.tgz#fe5c101c457998b74cb66f555f63197b34cad4ba"
integrity sha512-KsdOxTUmtjoygaZInSS5U0+KnqoxPKGpcBjGgOHR9NDKfXzmbpy5AmoaPL7JxmMxQzwknpxSi7qzBOSB3yMoJg==
"@datadog/native-appsec@8.5.0":
version "8.5.0"
resolved "https://registry.yarnpkg.com/@datadog/native-appsec/-/native-appsec-8.5.0.tgz#cf4eea74a07085a0dc9f3e98c130736b38cd61c9"
integrity sha512-95y+fm7jd+3iknzuu57pWEPw9fcK9uSBCPiB4kSPHszHu3bESlZM553tc4ANsz+X3gMkYGVg2pgSydG77nSDJw==
"@datadog/native-appsec@8.5.2":
version "8.5.2"
resolved "https://registry.yarnpkg.com/@datadog/native-appsec/-/native-appsec-8.5.2.tgz#93a2c15c71c2a90e19e12506fbbdec9ccbc91541"
integrity sha512-lETBaVhBk+9o0pc+LDnXvp2ImDyT8K2deuqLf8A6q4/QjzCCXyR/yZO9R5+Kdoc93jZMRTWV9Pr4pBwHEdJSVA==
dependencies:
node-gyp-build "^3.9.0"
"@datadog/native-iast-rewriter@2.8.0":
version "2.8.0"
resolved "https://registry.yarnpkg.com/@datadog/native-iast-rewriter/-/native-iast-rewriter-2.8.0.tgz#8a7eddf5e33266643afcdfb920ff5ccb30e1894a"
integrity sha512-DKmtvlmCld9RIJwDcPKWNkKYWYQyiuOrOtynmBppJiUv/yfCOuZtsQV4Zepj40H33sLiQyi5ct6dbWl53vxqkA==
dependencies:
lru-cache "^7.14.0"
node-gyp-build "^4.5.0"
"@datadog/native-iast-taint-tracking@3.3.0":
version "3.3.0"
resolved "https://registry.yarnpkg.com/@datadog/native-iast-taint-tracking/-/native-iast-taint-tracking-3.3.0.tgz#5a9c87e07376e7c5a4b4d4985f140a60388eee00"
integrity sha512-OzmjOncer199ATSYeCAwSACCRyQimo77LKadSHDUcxa/n9FYU+2U/bYQTYsK3vquSA2E47EbSVq9rytrlTdvnA==
"@datadog/native-iast-taint-tracking@3.3.1":
version "3.3.1"
resolved "https://registry.yarnpkg.com/@datadog/native-iast-taint-tracking/-/native-iast-taint-tracking-3.3.1.tgz#71d2c9bdb102b4482fea145d3f22ed5453628500"
integrity sha512-TgXpoX/CDgPfYAKu9qLmEyb9UXvRVC00D71islcSb70MCFmxQwkgXGl/gAk6YA6/NmZ4j8+cgY1lSNqStGvOMg==
dependencies:
node-gyp-build "^3.9.0"
"@datadog/native-metrics@^3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@datadog/native-metrics/-/native-metrics-3.1.0.tgz#c2378841accd9fdd6866d0e49bdf6e3d76e79f22"
integrity sha512-yOBi4x0OQRaGNPZ2bx9TGvDIgEdQ8fkudLTFAe7gEM1nAlvFmbE5YfpH8WenEtTSEBwojSau06m2q7axtEEmCg==
"@datadog/native-metrics@^3.1.1":
version "3.1.1"
resolved "https://registry.yarnpkg.com/@datadog/native-metrics/-/native-metrics-3.1.1.tgz#4e5c9775751af13e353e64e573ab724104538cee"
integrity sha512-MU1gHrolwryrU4X9g+fylA1KPH3S46oqJPEtVyrO+3Kh29z80fegmtyrU22bNt8LigPUK/EdPCnSbMe88QbnxQ==
dependencies:
node-addon-api "^6.1.0"
node-gyp-build "^3.9.0"
"@datadog/pprof@5.6.0":
version "5.6.0"
resolved "https://registry.yarnpkg.com/@datadog/pprof/-/pprof-5.6.0.tgz#b6f5c566512ba5e55c6dbf46e9f0f020cfd5c6b5"
integrity sha512-x7yN0s4wMnRqv3PWQ6eXKH5XE5qvCOwWbOsXqpT2Irbsc7Wcl5w5JrJUcbPCdSJGihpIh6kAeIrS6w/ZCcHy2Q==
"@datadog/pprof@5.7.1":
version "5.7.1"
resolved "https://registry.yarnpkg.com/@datadog/pprof/-/pprof-5.7.1.tgz#3ed62372af7331c37de401319bde9e3d4dc5a8c0"
integrity sha512-D5XTxsaPG36x41vZZn8hsAeC7QQDx0rv1a1Uhxo5xCXUB/9rc19+I7iCnjgJS5aH0ShXdPVOWRClo16hOSKKSw==
dependencies:
delay "^5.0.0"
node-gyp-build "<4.0"
@ -3057,6 +3049,16 @@
resolved "https://registry.yarnpkg.com/@datadog/sketches-js/-/sketches-js-2.1.0.tgz#8c7e8028a5fc22ad102fa542b0a446c956830455"
integrity sha512-smLocSfrt3s53H/XSVP3/1kP42oqvrkjUPtyaFd1F79ux24oE31BKt+q0c6lsa6hOYrFzsIwyc5GXAI5JmfOew==
"@datadog/wasm-js-rewriter@4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@datadog/wasm-js-rewriter/-/wasm-js-rewriter-4.0.0.tgz#46963ffa39365f4bc0aff6114bba6545635f9c69"
integrity sha512-atw1uocrNlG3Fi7usLG5irTpasoz519YTZUyAxp7ZCppDNA+iLHpK1NksV9E2uCGMzF6dGifGmDaui0nK12nYg==
dependencies:
js-yaml "^4.1.0"
lru-cache "^7.14.0"
module-details-from-path "^1.0.3"
node-gyp-build "^4.5.0"
"@elastic/elasticsearch@7.10.0":
version "7.10.0"
resolved "https://registry.yarnpkg.com/@elastic/elasticsearch/-/elasticsearch-7.10.0.tgz#da105a9c1f14146f9f2cab4e7026cb7949121b8d"
@ -9978,28 +9980,28 @@ dayjs@^1.10.8:
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c"
integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==
dc-polyfill@^0.1.4:
version "0.1.6"
resolved "https://registry.yarnpkg.com/dc-polyfill/-/dc-polyfill-0.1.6.tgz#c2940fa68ffb24a7bf127cc6cfdd15b39f0e7f02"
integrity sha512-UV33cugmCC49a5uWAApM+6Ev9ZdvIUMTrtCO9fj96TPGOQiea54oeO3tiEVdVeo3J9N2UdJEmbS4zOkkEA35uQ==
dc-polyfill@0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/dc-polyfill/-/dc-polyfill-0.1.8.tgz#2d91dd4dd0f2e3575ce038d013f346161f5a413a"
integrity sha512-F9+06papa9GOFUMjxGiqM1bS98pOkinZpBF3Sygb46owrXaHdR2uLkftE6nygrqNcAurdwKjLAtX+0GJkSwIFQ==
dd-trace@5.43.0:
version "5.43.0"
resolved "https://registry.yarnpkg.com/dd-trace/-/dd-trace-5.43.0.tgz#f321debd74c01d9e1e6d63b99539e7247d89f10f"
integrity sha512-WtPUSZfEosSHYVBFR48FqfYBFor8QchKwAKo+LYtbgTPtFzYKyBV/FJUqYE6sDF15Raf4sJVt/LOscywgj2zEw==
dd-trace@5.47.0:
version "5.47.0"
resolved "https://registry.yarnpkg.com/dd-trace/-/dd-trace-5.47.0.tgz#c9da1469f752c002ea9947fa6535538eb496d0f5"
integrity sha512-1IrJ3LYPS/ylQdeOKpc8VscshgfngK1Ht7ZWJpNI6KlSZ6JB1rQmuDdGmhUYt7tXTTKRStTmaC4uSMJKADu8Xg==
dependencies:
"@datadog/libdatadog" "^0.5.0"
"@datadog/native-appsec" "8.5.0"
"@datadog/native-iast-rewriter" "2.8.0"
"@datadog/native-iast-taint-tracking" "3.3.0"
"@datadog/native-metrics" "^3.1.0"
"@datadog/pprof" "5.6.0"
"@datadog/libdatadog" "^0.5.1"
"@datadog/native-appsec" "8.5.2"
"@datadog/native-iast-taint-tracking" "3.3.1"
"@datadog/native-metrics" "^3.1.1"
"@datadog/pprof" "5.7.1"
"@datadog/sketches-js" "^2.1.0"
"@datadog/wasm-js-rewriter" "4.0.0"
"@isaacs/ttlcache" "^1.4.1"
"@opentelemetry/api" ">=1.0.0 <1.9.0"
"@opentelemetry/core" "^1.14.0"
crypto-randomuuid "^1.0.0"
dc-polyfill "^0.1.4"
dc-polyfill "0.1.8"
ignore "^5.2.4"
import-in-the-middle "1.13.1"
istanbul-lib-coverage "3.2.0"