@budibase/backend-core 3.23.47 → 3.23.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budibase/backend-core",
3
- "version": "3.23.47",
3
+ "version": "3.23.48",
4
4
  "description": "Budibase backend core libraries used in server and worker",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -113,5 +113,5 @@
113
113
  }
114
114
  }
115
115
  },
116
- "gitHead": "534845c38ed0fe209406ebe45fd87f3de79f1da5"
116
+ "gitHead": "0a78faa2adbb8fb3b81de2b9b00352e60178f12f"
117
117
  }
@@ -58,7 +58,8 @@ export declare const generateDevInfoID: (userId: string) => string;
58
58
  export declare const generatePluginID: (name: string) => string;
59
59
  export declare const generateOAuth2LogID: (id: string) => string;
60
60
  export declare const generateAgentID: () => string;
61
- export declare const generateAgentChatID: (agentId: string) => string;
61
+ export declare const generateChatAppID: () => string;
62
+ export declare const generateChatConversationID: () => string;
62
63
  export declare const generateAgentToolSourceID: () => string;
63
64
  export declare const generateAIConfigID: () => string;
64
65
  export declare const generateWorkspaceAppID: () => string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateWorkspaceFavouriteID = exports.generateWorkspaceAppID = exports.generateAIConfigID = exports.generateAgentToolSourceID = exports.generateAgentChatID = exports.generateAgentID = exports.generateOAuth2LogID = exports.generatePluginID = exports.generateDevInfoID = exports.generateWorkspaceID = void 0;
3
+ exports.generateWorkspaceFavouriteID = exports.generateWorkspaceAppID = exports.generateAIConfigID = exports.generateAgentToolSourceID = exports.generateChatConversationID = exports.generateChatAppID = exports.generateAgentID = exports.generateOAuth2LogID = exports.generatePluginID = exports.generateDevInfoID = exports.generateWorkspaceID = void 0;
4
4
  exports.generateTableID = generateTableID;
5
5
  exports.generateRowID = generateRowID;
6
6
  exports.generateGlobalUserID = generateGlobalUserID;
@@ -122,10 +122,14 @@ const generateAgentID = () => {
122
122
  return `${constants_1.DocumentType.AGENT}${constants_1.SEPARATOR}${(0, newid_1.newid)()}`;
123
123
  };
124
124
  exports.generateAgentID = generateAgentID;
125
- const generateAgentChatID = (agentId) => {
126
- return `${constants_1.DocumentType.AGENT_CHAT}${constants_1.SEPARATOR}${constants_1.DocumentType.AGENT}${constants_1.SEPARATOR}${agentId}${constants_1.SEPARATOR}${(0, newid_1.newid)()}`;
125
+ const generateChatAppID = () => {
126
+ return `${constants_1.DocumentType.CHAT_APP}${constants_1.SEPARATOR}${(0, newid_1.newid)()}`;
127
127
  };
128
- exports.generateAgentChatID = generateAgentChatID;
128
+ exports.generateChatAppID = generateChatAppID;
129
+ const generateChatConversationID = () => {
130
+ return `${constants_1.DocumentType.CHAT_CONVERSATION}${constants_1.SEPARATOR}${(0, newid_1.newid)()}`;
131
+ };
132
+ exports.generateChatConversationID = generateChatConversationID;
129
133
  const generateAgentToolSourceID = () => {
130
134
  return `${constants_1.DocumentType.AGENT_TOOL_SOURCE}${constants_1.SEPARATOR}${(0, newid_1.newid)()}`;
131
135
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/docIds/ids.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/docIds/ids.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
- import { ProxyAgent } from "undici";
1
+ import { Dispatcher } from "undici";
2
2
  /**
3
- * Get or create a cached proxy dispatcher.
4
- * The dispatcher is cached to avoid creating a new ProxyAgent for every request.
3
+ * Get a dispatcher for fetch requests.
4
+ * Always returns a usable Dispatcher - either a ProxyAgent or a direct Agent.
5
+ * The dispatcher respects GLOBAL_AGENT_HTTP_PROXY, GLOBAL_AGENT_HTTPS_PROXY,
6
+ * GLOBAL_AGENT_NO_PROXY, and their standard equivalents.
5
7
  *
6
- * @param options Optional configuration for the ProxyAgent
8
+ * @param options Configuration for the dispatcher
9
+ * @returns A Dispatcher ready to use with fetch
7
10
  */
8
- export declare function getProxyDispatcher(options?: {
11
+ export declare function getDispatcher(options: {
9
12
  rejectUnauthorized?: boolean;
10
- }): ProxyAgent | boolean;
11
- /**
12
- * Reset the cached proxy dispatcher. Used for testing.
13
- */
14
- export declare function resetProxyDispatcherCache(): void;
13
+ url: string;
14
+ }): Dispatcher;
@@ -1,80 +1,155 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProxyDispatcher = getProxyDispatcher;
4
- exports.resetProxyDispatcherCache = resetProxyDispatcherCache;
3
+ exports.getDispatcher = getDispatcher;
5
4
  const undici_1 = require("undici");
6
5
  /**
7
- * Creates a fetch dispatcher (ProxyAgent) that respects global-agent environment variables.
8
- * This is necessary because Node.js's native fetch uses undici which doesn't respect
9
- * the global-agent proxy configuration.
6
+ * Check if a URL matches any pattern in the NO_PROXY list.
7
+ * Supports patterns like: *.foo.com, baz.com, .example.com
10
8
  *
11
- * @param options Optional configuration for the ProxyAgent
12
- * @returns ProxyAgent if proxy is configured, undefined otherwise
9
+ * @param url The URL to check
10
+ * @param noProxy Comma or space separated list of NO_PROXY patterns
11
+ * @returns true if the URL should bypass the proxy
13
12
  */
14
- function createProxyDispatcher(options) {
13
+ function isUrlMatchingNoProxy(url, noProxy) {
14
+ let hostname;
15
+ let port = null;
16
+ try {
17
+ const parsed = new URL(url);
18
+ hostname = parsed.hostname;
19
+ port = parsed.port || null;
20
+ }
21
+ catch (_a) {
22
+ return false;
23
+ }
24
+ const rules = noProxy.split(/[\s,]+/).filter(r => r.length > 0);
25
+ for (const rule of rules) {
26
+ // Handle leading dot (e.g., .foo.com) by converting to wildcard
27
+ const normalizedRule = rule.replace(/^\./, "*");
28
+ // Parse rule into hostname and optional port
29
+ // Match: hostname optionally followed by :port
30
+ const ruleMatch = normalizedRule.match(/^(.+?)(?::(\d+))?$/);
31
+ if (!ruleMatch || !ruleMatch[1]) {
32
+ continue;
33
+ }
34
+ const ruleHostname = ruleMatch[1].toLowerCase();
35
+ const rulePort = ruleMatch[2] || null;
36
+ // Check hostname match (supports wildcards like *.foo.com)
37
+ let hostnameMatches = false;
38
+ if (ruleHostname === "*") {
39
+ hostnameMatches = true;
40
+ }
41
+ else if (ruleHostname.startsWith("*")) {
42
+ // Wildcard pattern like *.foo.com
43
+ const suffix = ruleHostname.slice(1); // .foo.com
44
+ hostnameMatches =
45
+ hostname === suffix.slice(1) || hostname.endsWith(suffix);
46
+ }
47
+ else {
48
+ hostnameMatches = hostname === ruleHostname;
49
+ }
50
+ // Check port match (if rule specifies a port)
51
+ const portMatches = !rulePort || port === rulePort;
52
+ if (hostnameMatches && portMatches) {
53
+ return true;
54
+ }
55
+ }
56
+ return false;
57
+ }
58
+ /**
59
+ * Determines if the request should bypass the proxy.
60
+ *
61
+ * @param url The target URL
62
+ * @returns true if the request should go direct (no proxy)
63
+ */
64
+ function shouldBypassProxy(url) {
15
65
  const httpProxy = process.env.GLOBAL_AGENT_HTTP_PROXY || process.env.HTTP_PROXY;
16
66
  const httpsProxy = process.env.GLOBAL_AGENT_HTTPS_PROXY || process.env.HTTPS_PROXY;
17
67
  const proxyUrl = httpsProxy || httpProxy;
68
+ // No proxy configured
18
69
  if (!proxyUrl || !proxyUrl.trim()) {
19
- return false;
70
+ return true;
20
71
  }
21
- const trimmedProxyUrl = proxyUrl.trim();
22
- // Validate URL format
72
+ // Validate proxy URL format
23
73
  try {
24
- new URL(trimmedProxyUrl);
74
+ new URL(proxyUrl.trim());
25
75
  }
26
- catch (error) {
76
+ catch (_a) {
27
77
  console.log("[fetch] Invalid proxy URL format:", proxyUrl);
28
- return false;
78
+ return true;
79
+ }
80
+ // Check NO_PROXY patterns
81
+ if (url) {
82
+ const noProxy = process.env.GLOBAL_AGENT_NO_PROXY || process.env.NO_PROXY || "";
83
+ if (noProxy && isUrlMatchingNoProxy(url, noProxy)) {
84
+ console.log("[fetch] URL matches NO_PROXY pattern, bypassing proxy", {
85
+ url,
86
+ noProxy,
87
+ });
88
+ return true;
89
+ }
29
90
  }
30
- const rejectUnauthorized = (options === null || options === void 0 ? void 0 : options.rejectUnauthorized) !== undefined
31
- ? options === null || options === void 0 ? void 0 : options.rejectUnauthorized
32
- : true;
91
+ return false;
92
+ }
93
+ /**
94
+ * Creates a direct Agent (no proxy).
95
+ */
96
+ function createDirectAgent(rejectUnauthorized) {
97
+ return new undici_1.Agent({
98
+ connect: {
99
+ rejectUnauthorized,
100
+ },
101
+ });
102
+ }
103
+ /**
104
+ * Creates a ProxyAgent for proxied requests.
105
+ */
106
+ function createProxyAgent(rejectUnauthorized) {
107
+ const httpProxy = process.env.GLOBAL_AGENT_HTTP_PROXY || process.env.HTTP_PROXY;
108
+ const httpsProxy = process.env.GLOBAL_AGENT_HTTPS_PROXY || process.env.HTTPS_PROXY;
109
+ const proxyUrl = (httpsProxy || httpProxy).trim();
33
110
  console.log("[fetch] Creating ProxyAgent", {
34
- proxyUrl: trimmedProxyUrl,
111
+ proxyUrl,
35
112
  rejectUnauthorized,
36
113
  });
37
114
  const proxyConfig = {
38
- uri: trimmedProxyUrl,
115
+ uri: proxyUrl,
39
116
  requestTls: {
40
117
  rejectUnauthorized,
41
118
  },
42
119
  };
43
120
  // Only configure proxyTls if the proxy itself uses HTTPS
44
- if (trimmedProxyUrl.startsWith("https://")) {
121
+ if (proxyUrl.startsWith("https://")) {
45
122
  proxyConfig.proxyTls = {
46
123
  rejectUnauthorized,
47
124
  };
48
125
  }
49
- try {
50
- return new undici_1.ProxyAgent(proxyConfig);
51
- }
52
- catch (error) {
53
- console.log("[fetch] Failed to create ProxyAgent:", error);
54
- return false;
55
- }
126
+ return new undici_1.ProxyAgent(proxyConfig);
56
127
  }
57
- let cachedDispatcher = null;
58
128
  /**
59
- * Get or create a cached proxy dispatcher.
60
- * The dispatcher is cached to avoid creating a new ProxyAgent for every request.
129
+ * Creates a fetch dispatcher that respects global-agent environment variables.
130
+ * Always returns a usable Dispatcher - either a ProxyAgent or a direct Agent.
61
131
  *
62
- * @param options Optional configuration for the ProxyAgent
132
+ * @param options Configuration for the dispatcher
133
+ * @returns A Dispatcher (ProxyAgent for proxied requests, Agent for direct requests)
63
134
  */
64
- function getProxyDispatcher(options) {
65
- // Don't cache if custom options are provided
66
- if (options) {
67
- return createProxyDispatcher(options) || false;
68
- }
69
- if (cachedDispatcher === null) {
70
- cachedDispatcher = createProxyDispatcher();
135
+ function createDispatcher(options) {
136
+ var _a;
137
+ const rejectUnauthorized = (_a = options === null || options === void 0 ? void 0 : options.rejectUnauthorized) !== null && _a !== void 0 ? _a : true;
138
+ if (shouldBypassProxy(options === null || options === void 0 ? void 0 : options.url)) {
139
+ return createDirectAgent(rejectUnauthorized);
71
140
  }
72
- return cachedDispatcher || false;
141
+ return createProxyAgent(rejectUnauthorized);
73
142
  }
74
143
  /**
75
- * Reset the cached proxy dispatcher. Used for testing.
144
+ * Get a dispatcher for fetch requests.
145
+ * Always returns a usable Dispatcher - either a ProxyAgent or a direct Agent.
146
+ * The dispatcher respects GLOBAL_AGENT_HTTP_PROXY, GLOBAL_AGENT_HTTPS_PROXY,
147
+ * GLOBAL_AGENT_NO_PROXY, and their standard equivalents.
148
+ *
149
+ * @param options Configuration for the dispatcher
150
+ * @returns A Dispatcher ready to use with fetch
76
151
  */
77
- function resetProxyDispatcherCache() {
78
- cachedDispatcher = null;
152
+ function getDispatcher(options) {
153
+ return createDispatcher(options);
79
154
  }
80
155
  //# sourceMappingURL=fetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/utils/fetch.ts"],"names":[],"mappings":";;AA8EA,gDAYC;AAKD,8DAEC;AAjGD,mCAAmC;AAEnC;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,OAE9B;IACC,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA;IAC/D,MAAM,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAA;IAEjE,MAAM,QAAQ,GAAG,UAAU,IAAI,SAAS,CAAA;IAExC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAClC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;IAEvC,sBAAsB;IACtB,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,eAAe,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,QAAQ,CAAC,CAAA;QAC1D,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,kBAAkB,GACtB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,MAAK,SAAS;QACvC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB;QAC7B,CAAC,CAAC,IAAI,CAAA;IAEV,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE;QACzC,QAAQ,EAAE,eAAe;QACzB,kBAAkB;KACnB,CAAC,CAAA;IAEF,MAAM,WAAW,GAIb;QACF,GAAG,EAAE,eAAe;QACpB,UAAU,EAAE;YACV,kBAAkB;SACnB;KACF,CAAA;IAED,yDAAyD;IACzD,IAAI,eAAe,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,WAAW,CAAC,QAAQ,GAAG;YACrB,kBAAkB;SACnB,CAAA;IACH,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,mBAAU,CAAC,WAAW,CAAC,CAAA;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAA;QAC1D,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,IAAI,gBAAgB,GAAgC,IAAI,CAAA;AAExD;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,OAElC;IACC,6CAA6C;IAC7C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,qBAAqB,CAAC,OAAO,CAAC,IAAI,KAAK,CAAA;IAChD,CAAC;IAED,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC9B,gBAAgB,GAAG,qBAAqB,EAAE,CAAA;IAC5C,CAAC;IACD,OAAO,gBAAgB,IAAI,KAAK,CAAA;AAClC,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB;IACvC,gBAAgB,GAAG,IAAI,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/utils/fetch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budibase/backend-core",
3
- "version": "3.23.47",
3
+ "version": "3.23.48",
4
4
  "description": "Budibase backend core libraries used in server and worker",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -113,5 +113,5 @@
113
113
  }
114
114
  }
115
115
  },
116
- "gitHead": "534845c38ed0fe209406ebe45fd87f3de79f1da5"
116
+ "gitHead": "0a78faa2adbb8fb3b81de2b9b00352e60178f12f"
117
117
  }