@rudderhq/db 0.4.2-canary.0 → 0.4.2-canary.2
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/local-postgres-provider.d.ts +4 -0
- package/dist/local-postgres-provider.d.ts.map +1 -1
- package/dist/local-postgres-provider.js +115 -20
- package/dist/local-postgres-provider.js.map +1 -1
- package/dist/local-postgres-provider.test.js +37 -6
- package/dist/local-postgres-provider.test.js.map +1 -1
- package/dist/migrations/0096_agent_custom_integrations.sql +86 -0
- package/dist/migrations/meta/0096_snapshot.json +18464 -0
- package/dist/migrations/meta/_journal.json +7 -0
- package/dist/schema/custom_integrations.d.ts +891 -0
- package/dist/schema/custom_integrations.d.ts.map +1 -0
- package/dist/schema/custom_integrations.js +79 -0
- package/dist/schema/custom_integrations.js.map +1 -0
- package/dist/schema/index.d.ts +1 -0
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/plugin_entities.d.ts +2 -2
- package/dist/schema/plugin_state.d.ts +2 -2
- package/dist/schema/plugin_webhooks.d.ts +2 -2
- package/package.json +2 -2
|
@@ -28,6 +28,10 @@ export declare function resolveOfficialPostgresBinaries(binDir: string): {
|
|
|
28
28
|
pgCtl: string;
|
|
29
29
|
postgres: string;
|
|
30
30
|
};
|
|
31
|
+
export declare function resolveOfficialPostgresRuntimeFiles(binDir: string): {
|
|
32
|
+
postgresBkiCandidates: string[];
|
|
33
|
+
};
|
|
34
|
+
export declare function resolveOfficialPostgresTemplateDir(binDir: string): string | null;
|
|
31
35
|
export declare function validateOfficialPostgresBinDir(binDir: string): {
|
|
32
36
|
ok: true;
|
|
33
37
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-postgres-provider.d.ts","sourceRoot":"","sources":["../src/local-postgres-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-postgres-provider.d.ts","sourceRoot":"","sources":["../src/local-postgres-provider.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,2BAA2B,4BAA4B,CAAC;AACrE,eAAO,MAAM,kCAAkC,SAAS,CAAC;AAIzD,MAAM,MAAM,qBAAqB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE9E,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC,CAAC;AAIF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEpF,wBAAgB,6BAA6B,CAAC,QAAQ,qBAA2C,GAAG,MAAM,GAAG,IAAI,CAIhH;AAMD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,GAAG;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAMA;AAED,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM,GAAG;IACnE,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC,CAOA;AAcD,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqBhF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAQ9G;AAwBD,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,MAAM,EACd,iBAAiB,GAAE,qBAAoD,GACtE,OAAO,CAAC,IAAI,CAAC,CAiBf;AAUD,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAWzH;AA2CD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CAiFvB;AAaD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,8BAA8B,CAAC,CAgBzC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { execFile,
|
|
1
|
+
import { execFile, execFileSync, spawn } from "node:child_process";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { promisify } from "node:util";
|
|
7
|
+
import postgres from "postgres";
|
|
8
|
+
import { cleanupStaleSysvSharedMemorySegments, isEmbeddedPostgresSharedMemoryError, } from "./embedded-postgres-recovery.js";
|
|
7
9
|
export const RUDDER_POSTGRES_BIN_DIR_ENV = "RUDDER_POSTGRES_BIN_DIR";
|
|
8
10
|
export const RUDDER_PRODUCTION_POSTGRES_VERSION = "18.4";
|
|
9
11
|
const execFileAsync = promisify(execFile);
|
|
@@ -23,9 +25,59 @@ export function resolveOfficialPostgresBinaries(binDir) {
|
|
|
23
25
|
postgres: path.join(binDir, executableName("postgres")),
|
|
24
26
|
};
|
|
25
27
|
}
|
|
28
|
+
export function resolveOfficialPostgresRuntimeFiles(binDir) {
|
|
29
|
+
return {
|
|
30
|
+
postgresBkiCandidates: [
|
|
31
|
+
path.join(binDir, "..", "share", "postgresql", "postgres.bki"),
|
|
32
|
+
path.join(binDir, "..", "share", "postgres.bki"),
|
|
33
|
+
],
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function debianSharedirCandidate(binDir) {
|
|
37
|
+
const normalized = path.resolve(binDir);
|
|
38
|
+
const parts = normalized.split(path.sep);
|
|
39
|
+
const libIndex = parts.lastIndexOf("lib");
|
|
40
|
+
if (libIndex < 0)
|
|
41
|
+
return null;
|
|
42
|
+
if (parts[libIndex + 1] !== "postgresql")
|
|
43
|
+
return null;
|
|
44
|
+
const version = parts[libIndex + 2];
|
|
45
|
+
if (!version || parts[libIndex + 3] !== "bin")
|
|
46
|
+
return null;
|
|
47
|
+
const prefix = parts.slice(0, libIndex).join(path.sep) || path.sep;
|
|
48
|
+
return path.join(prefix, "share", "postgresql", version);
|
|
49
|
+
}
|
|
50
|
+
export function resolveOfficialPostgresTemplateDir(binDir) {
|
|
51
|
+
const { postgresBkiCandidates } = resolveOfficialPostgresRuntimeFiles(binDir);
|
|
52
|
+
for (const candidatePath of postgresBkiCandidates) {
|
|
53
|
+
if (existsSync(candidatePath))
|
|
54
|
+
return path.dirname(candidatePath);
|
|
55
|
+
}
|
|
56
|
+
const debianSharedir = debianSharedirCandidate(binDir);
|
|
57
|
+
if (debianSharedir && existsSync(path.join(debianSharedir, "postgres.bki"))) {
|
|
58
|
+
return debianSharedir;
|
|
59
|
+
}
|
|
60
|
+
const pgConfigPath = path.join(binDir, process.platform === "win32" ? "pg_config.exe" : "pg_config");
|
|
61
|
+
if (!existsSync(pgConfigPath))
|
|
62
|
+
return null;
|
|
63
|
+
try {
|
|
64
|
+
const sharedir = execFileSync(pgConfigPath, ["--sharedir"], { encoding: "utf8" }).trim();
|
|
65
|
+
if (!sharedir)
|
|
66
|
+
return null;
|
|
67
|
+
const postgresBkiPath = path.join(sharedir, "postgres.bki");
|
|
68
|
+
return existsSync(postgresBkiPath) ? sharedir : null;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
26
74
|
export function validateOfficialPostgresBinDir(binDir) {
|
|
27
75
|
const binaries = resolveOfficialPostgresBinaries(binDir);
|
|
76
|
+
const runtimeFiles = resolveOfficialPostgresRuntimeFiles(binDir);
|
|
28
77
|
const missing = Object.values(binaries).filter((binaryPath) => !existsSync(binaryPath));
|
|
78
|
+
if (!resolveOfficialPostgresTemplateDir(binDir)) {
|
|
79
|
+
missing.push(runtimeFiles.postgresBkiCandidates[0]);
|
|
80
|
+
}
|
|
29
81
|
return missing.length === 0 ? { ok: true } : { ok: false, missing };
|
|
30
82
|
}
|
|
31
83
|
function requireOfficialPostgresBinDir(binDir) {
|
|
@@ -76,12 +128,37 @@ export function buildOfficialPostgresInitdbArgs(options, passwordFilePath) {
|
|
|
76
128
|
...(options.initdbFlags ?? []),
|
|
77
129
|
];
|
|
78
130
|
}
|
|
131
|
+
function buildOfficialPostgresInitdbArgsForBinDir(binDir, options, passwordFilePath) {
|
|
132
|
+
const args = buildOfficialPostgresInitdbArgs(options, passwordFilePath);
|
|
133
|
+
const templateDir = resolveOfficialPostgresTemplateDir(binDir);
|
|
134
|
+
return templateDir ? [...args, "-L", templateDir] : args;
|
|
135
|
+
}
|
|
79
136
|
function buildOfficialPostgresCommandEnv(binDir, password) {
|
|
80
137
|
const env = { ...process.env, PGPASSWORD: password };
|
|
81
138
|
const pathKey = process.platform === "win32" && env.Path !== undefined ? "Path" : "PATH";
|
|
82
139
|
env[pathKey] = [binDir, env[pathKey]].filter(Boolean).join(path.delimiter);
|
|
83
140
|
return env;
|
|
84
141
|
}
|
|
142
|
+
async function waitForOfficialPostgresReady(options) {
|
|
143
|
+
const connectionString = `postgres://${encodeURIComponent(options.user)}:${encodeURIComponent(options.password)}@127.0.0.1:${options.port}/postgres`;
|
|
144
|
+
const deadline = Date.now() + 10_000;
|
|
145
|
+
let lastError = null;
|
|
146
|
+
while (Date.now() < deadline) {
|
|
147
|
+
const sql = postgres(connectionString, { max: 1, connect_timeout: 1, onnotice: () => { } });
|
|
148
|
+
try {
|
|
149
|
+
await sql `select 1`;
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
lastError = error;
|
|
154
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
155
|
+
}
|
|
156
|
+
finally {
|
|
157
|
+
await sql.end({ timeout: 0 }).catch(() => { });
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
throw new Error(`PostgreSQL ${RUDDER_PRODUCTION_POSTGRES_VERSION} start did not become ready on port ${options.port}: ${lastError instanceof Error ? lastError.message : String(lastError ?? "timed out")}`);
|
|
161
|
+
}
|
|
85
162
|
export function createOfficialPostgresInstance(binDir, options) {
|
|
86
163
|
const binaries = requireOfficialPostgresBinDir(binDir);
|
|
87
164
|
const run = async (command, args, phase) => {
|
|
@@ -99,17 +176,18 @@ export function createOfficialPostgresInstance(binDir, options) {
|
|
|
99
176
|
throw new Error(`PostgreSQL ${RUDDER_PRODUCTION_POSTGRES_VERSION} ${phase} failed: ${execError.message}`);
|
|
100
177
|
}
|
|
101
178
|
};
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
stdio: "ignore",
|
|
106
|
-
windowsHide: true,
|
|
107
|
-
});
|
|
108
|
-
if (result.error) {
|
|
109
|
-
throw new Error(`PostgreSQL ${RUDDER_PRODUCTION_POSTGRES_VERSION} ${phase} failed: ${result.error.message}`);
|
|
179
|
+
const runWithSharedMemoryRecovery = async (command, args, phase) => {
|
|
180
|
+
try {
|
|
181
|
+
await run(command, args, phase);
|
|
110
182
|
}
|
|
111
|
-
|
|
112
|
-
|
|
183
|
+
catch (error) {
|
|
184
|
+
if (!isEmbeddedPostgresSharedMemoryError(error))
|
|
185
|
+
throw error;
|
|
186
|
+
const recovered = await cleanupStaleSysvSharedMemorySegments();
|
|
187
|
+
if (recovered.removedIds.length === 0)
|
|
188
|
+
throw error;
|
|
189
|
+
process.emitWarning(`Recovered ${recovered.removedIds.length} stale SysV shared memory segment(s) before retrying PostgreSQL ${RUDDER_PRODUCTION_POSTGRES_VERSION} ${phase}.`);
|
|
190
|
+
await run(command, args, phase);
|
|
113
191
|
}
|
|
114
192
|
};
|
|
115
193
|
return {
|
|
@@ -118,21 +196,38 @@ export function createOfficialPostgresInstance(binDir, options) {
|
|
|
118
196
|
const passwordFilePath = path.join(tempDir, "pwfile");
|
|
119
197
|
try {
|
|
120
198
|
await writeFile(passwordFilePath, `${options.password}\n`, { encoding: "utf8", mode: 0o600 });
|
|
121
|
-
await
|
|
199
|
+
await runWithSharedMemoryRecovery(binaries.initdb, buildOfficialPostgresInitdbArgsForBinDir(binDir, options, passwordFilePath), "initdb");
|
|
122
200
|
}
|
|
123
201
|
finally {
|
|
124
202
|
await rm(tempDir, { recursive: true, force: true });
|
|
125
203
|
}
|
|
126
204
|
},
|
|
127
205
|
async start() {
|
|
128
|
-
|
|
129
|
-
"-D",
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
206
|
+
const startPostgres = () => {
|
|
207
|
+
const child = spawn(binaries.postgres, ["-D", options.databaseDir, "-h", "127.0.0.1", "-p", String(options.port)], {
|
|
208
|
+
env: buildOfficialPostgresCommandEnv(binDir, options.password),
|
|
209
|
+
stdio: ["ignore", "ignore", "pipe"],
|
|
210
|
+
windowsHide: true,
|
|
211
|
+
detached: process.platform !== "win32",
|
|
212
|
+
});
|
|
213
|
+
child.stderr?.on("data", (chunk) => appendProcessOutput(chunk, options.onError));
|
|
214
|
+
child.unref();
|
|
215
|
+
return child;
|
|
216
|
+
};
|
|
217
|
+
startPostgres();
|
|
218
|
+
try {
|
|
219
|
+
await waitForOfficialPostgresReady(options);
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
if (!isEmbeddedPostgresSharedMemoryError(error))
|
|
223
|
+
throw error;
|
|
224
|
+
const recovered = await cleanupStaleSysvSharedMemorySegments();
|
|
225
|
+
if (recovered.removedIds.length === 0)
|
|
226
|
+
throw error;
|
|
227
|
+
process.emitWarning(`Recovered ${recovered.removedIds.length} stale SysV shared memory segment(s) before retrying PostgreSQL ${RUDDER_PRODUCTION_POSTGRES_VERSION} start.`);
|
|
228
|
+
startPostgres();
|
|
229
|
+
await waitForOfficialPostgresReady(options);
|
|
230
|
+
}
|
|
136
231
|
},
|
|
137
232
|
async stop() {
|
|
138
233
|
await run(binaries.pgCtl, ["-D", options.databaseDir, "-m", "fast", "-w", "stop"], "stop");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-postgres-provider.js","sourceRoot":"","sources":["../src/local-postgres-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-postgres-provider.js","sourceRoot":"","sources":["../src/local-postgres-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,31 @@
|
|
|
1
|
-
import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
1
|
+
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { afterEach, describe, expect, it } from "vitest";
|
|
5
5
|
import { assertOfficialPostgresVersion, buildOfficialPostgresInitdbArgs, createLocalPostgresInstance, resolveOfficialPostgresBinaries, resolveOfficialPostgresBinDir, RUDDER_POSTGRES_BIN_DIR_ENV, RUDDER_PRODUCTION_POSTGRES_VERSION, validateOfficialPostgresBinDir, } from "./local-postgres-provider.js";
|
|
6
6
|
const originalPostgresBinDir = process.env[RUDDER_POSTGRES_BIN_DIR_ENV];
|
|
7
|
+
const tempRoots = [];
|
|
7
8
|
function createTempDir() {
|
|
8
|
-
|
|
9
|
+
const root = mkdtempSync(path.join(os.tmpdir(), "rudder-pg-bin-"));
|
|
10
|
+
tempRoots.push(root);
|
|
11
|
+
const binDir = path.join(root, "pgsql", "bin");
|
|
12
|
+
mkdirSync(binDir, { recursive: true });
|
|
13
|
+
return binDir;
|
|
9
14
|
}
|
|
10
15
|
function touchRequiredPostgresBinaries(binDir) {
|
|
11
16
|
for (const binaryPath of Object.values(resolveOfficialPostgresBinaries(binDir))) {
|
|
12
17
|
writeFileSync(binaryPath, "", "utf8");
|
|
13
18
|
}
|
|
14
19
|
}
|
|
20
|
+
function touchRequiredPostgresTemplate(binDir) {
|
|
21
|
+
const templatePath = path.join(binDir, "..", "share", "postgresql", "postgres.bki");
|
|
22
|
+
mkdirSync(path.dirname(templatePath), { recursive: true });
|
|
23
|
+
writeFileSync(templatePath, "postgres template", "utf8");
|
|
24
|
+
}
|
|
25
|
+
function touchCompletePostgresRuntime(binDir) {
|
|
26
|
+
touchRequiredPostgresBinaries(binDir);
|
|
27
|
+
touchRequiredPostgresTemplate(binDir);
|
|
28
|
+
}
|
|
15
29
|
afterEach(() => {
|
|
16
30
|
if (originalPostgresBinDir === undefined) {
|
|
17
31
|
delete process.env[RUDDER_POSTGRES_BIN_DIR_ENV];
|
|
@@ -19,6 +33,9 @@ afterEach(() => {
|
|
|
19
33
|
else {
|
|
20
34
|
process.env[RUDDER_POSTGRES_BIN_DIR_ENV] = originalPostgresBinDir;
|
|
21
35
|
}
|
|
36
|
+
for (const root of tempRoots.splice(0)) {
|
|
37
|
+
rmSync(root, { recursive: true, force: true });
|
|
38
|
+
}
|
|
22
39
|
});
|
|
23
40
|
describe("local postgres provider", () => {
|
|
24
41
|
it("pins Rudder's production embedded database provider to PostgreSQL 18.4", () => {
|
|
@@ -27,7 +44,7 @@ describe("local postgres provider", () => {
|
|
|
27
44
|
it("resolves and validates an official PostgreSQL bin directory", () => {
|
|
28
45
|
const binDir = createTempDir();
|
|
29
46
|
try {
|
|
30
|
-
|
|
47
|
+
touchCompletePostgresRuntime(binDir);
|
|
31
48
|
expect(resolveOfficialPostgresBinDir(binDir)).toBe(path.resolve(binDir));
|
|
32
49
|
expect(validateOfficialPostgresBinDir(binDir)).toEqual({ ok: true });
|
|
33
50
|
}
|
|
@@ -48,10 +65,24 @@ describe("local postgres provider", () => {
|
|
|
48
65
|
rmSync(binDir, { recursive: true, force: true });
|
|
49
66
|
}
|
|
50
67
|
});
|
|
51
|
-
it("
|
|
68
|
+
it("reports missing PostgreSQL initdb template files before startup", () => {
|
|
52
69
|
const binDir = createTempDir();
|
|
53
70
|
try {
|
|
54
71
|
touchRequiredPostgresBinaries(binDir);
|
|
72
|
+
const validation = validateOfficialPostgresBinDir(binDir);
|
|
73
|
+
expect(validation.ok).toBe(false);
|
|
74
|
+
if (!validation.ok) {
|
|
75
|
+
expect(validation.missing).toContain(path.join(binDir, "..", "share", "postgresql", "postgres.bki"));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
rmSync(binDir, { recursive: true, force: true });
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
it("accepts PostgreSQL 18.4 version output", async () => {
|
|
83
|
+
const binDir = createTempDir();
|
|
84
|
+
try {
|
|
85
|
+
touchCompletePostgresRuntime(binDir);
|
|
55
86
|
await expect(assertOfficialPostgresVersion(binDir, async () => "postgres (PostgreSQL) 18.4")).resolves.toBeUndefined();
|
|
56
87
|
}
|
|
57
88
|
finally {
|
|
@@ -61,7 +92,7 @@ describe("local postgres provider", () => {
|
|
|
61
92
|
it("rejects official PostgreSQL bin directories that are not 18.4", async () => {
|
|
62
93
|
const binDir = createTempDir();
|
|
63
94
|
try {
|
|
64
|
-
|
|
95
|
+
touchCompletePostgresRuntime(binDir);
|
|
65
96
|
await expect(assertOfficialPostgresVersion(binDir, async () => "postgres (PostgreSQL) 18.1")).rejects.toThrow("Expected PostgreSQL 18.4");
|
|
66
97
|
}
|
|
67
98
|
finally {
|
|
@@ -71,7 +102,7 @@ describe("local postgres provider", () => {
|
|
|
71
102
|
it("checks the PostgreSQL version before selecting the official provider", async () => {
|
|
72
103
|
const binDir = createTempDir();
|
|
73
104
|
try {
|
|
74
|
-
|
|
105
|
+
touchCompletePostgresRuntime(binDir);
|
|
75
106
|
process.env[RUDDER_POSTGRES_BIN_DIR_ENV] = binDir;
|
|
76
107
|
await expect(createLocalPostgresInstance({
|
|
77
108
|
databaseDir: path.join(binDir, "data"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-postgres-provider.test.js","sourceRoot":"","sources":["../src/local-postgres-provider.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"local-postgres-provider.test.js","sourceRoot":"","sources":["../src/local-postgres-provider.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EACL,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,+BAA+B,EAC/B,6BAA6B,EAC7B,2BAA2B,EAC3B,kCAAkC,EAClC,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AAEtC,MAAM,sBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AACxE,MAAM,SAAS,GAAa,EAAE,CAAC;AAE/B,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACnE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAc;IACnD,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAChF,aAAa,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAc;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IACpF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,aAAa,CAAC,YAAY,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAc;IAClD,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,6BAA6B,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,CAAC,GAAG,EAAE;IACb,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAClD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,sBAAsB,CAAC;IACpE,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,kCAAkC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAErC,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACzE,MAAM,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;YAE1D,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACnB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACrH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAEtC,MAAM,UAAU,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAC;YAE1D,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACnB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAErC,MAAM,MAAM,CACV,6BAA6B,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,4BAA4B,CAAC,CAChF,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,4BAA4B,CAAC,MAAM,CAAC,CAAC;YAErC,MAAM,MAAM,CACV,6BAA6B,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,4BAA4B,CAAC,CAChF,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,4BAA4B,CAAC,MAAM,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,MAAM,CAAC;YAElD,MAAM,MAAM,CACV,2BAA2B,CAAC;gBAC1B,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;gBACtC,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,KAAK;gBACX,UAAU,EAAE,IAAI;aACjB,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,CACJ,+BAA+B,CAC7B;YACE,WAAW,EAAE,gBAAgB;YAC7B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;SAC/C,EACD,aAAa,CACd,CACF,CAAC,OAAO,CAAC;YACR,IAAI;YACJ,gBAAgB;YAChB,IAAI;YACJ,QAAQ;YACR,sBAAsB;YACtB,UAAU;YACV,aAAa;YACb,iBAAiB;YACjB,YAAY;SACb,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
CREATE TABLE "custom_integrations" (
|
|
2
|
+
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
3
|
+
"org_id" uuid NOT NULL,
|
|
4
|
+
"owner_agent_id" uuid,
|
|
5
|
+
"scope" text NOT NULL,
|
|
6
|
+
"kind" text NOT NULL,
|
|
7
|
+
"slug" text NOT NULL,
|
|
8
|
+
"display_name" text NOT NULL,
|
|
9
|
+
"description" text,
|
|
10
|
+
"status" text DEFAULT 'active' NOT NULL,
|
|
11
|
+
"config" jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
12
|
+
"credential_secret_id" uuid,
|
|
13
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
14
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
15
|
+
"revoked_at" timestamp with time zone
|
|
16
|
+
);
|
|
17
|
+
--> statement-breakpoint
|
|
18
|
+
CREATE TABLE "custom_integration_tools" (
|
|
19
|
+
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
20
|
+
"org_id" uuid NOT NULL,
|
|
21
|
+
"integration_id" uuid NOT NULL,
|
|
22
|
+
"external_tool_name" text NOT NULL,
|
|
23
|
+
"rudder_tool_name" text NOT NULL,
|
|
24
|
+
"description" text,
|
|
25
|
+
"input_schema" jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
26
|
+
"config" jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
27
|
+
"status" text DEFAULT 'active' NOT NULL,
|
|
28
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
29
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
30
|
+
);
|
|
31
|
+
--> statement-breakpoint
|
|
32
|
+
CREATE TABLE "agent_custom_integration_bindings" (
|
|
33
|
+
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
34
|
+
"org_id" uuid NOT NULL,
|
|
35
|
+
"agent_id" uuid NOT NULL,
|
|
36
|
+
"integration_id" uuid NOT NULL,
|
|
37
|
+
"status" text DEFAULT 'active' NOT NULL,
|
|
38
|
+
"enabled_tool_ids" jsonb DEFAULT '[]'::jsonb NOT NULL,
|
|
39
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
40
|
+
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
41
|
+
"revoked_at" timestamp with time zone
|
|
42
|
+
);
|
|
43
|
+
--> statement-breakpoint
|
|
44
|
+
CREATE TABLE "custom_integration_tool_calls" (
|
|
45
|
+
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
|
|
46
|
+
"org_id" uuid NOT NULL,
|
|
47
|
+
"integration_id" uuid NOT NULL,
|
|
48
|
+
"tool_id" uuid NOT NULL,
|
|
49
|
+
"agent_id" uuid NOT NULL,
|
|
50
|
+
"run_id" uuid,
|
|
51
|
+
"conversation_id" uuid,
|
|
52
|
+
"issue_id" uuid,
|
|
53
|
+
"status" text NOT NULL,
|
|
54
|
+
"sanitized_input" jsonb DEFAULT '{}'::jsonb NOT NULL,
|
|
55
|
+
"sanitized_result" jsonb,
|
|
56
|
+
"error_code" text,
|
|
57
|
+
"error_message" text,
|
|
58
|
+
"started_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
59
|
+
"completed_at" timestamp with time zone,
|
|
60
|
+
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
61
|
+
);
|
|
62
|
+
--> statement-breakpoint
|
|
63
|
+
ALTER TABLE "custom_integrations" ADD CONSTRAINT "custom_integrations_org_id_organizations_id_fk" FOREIGN KEY ("org_id") REFERENCES "public"."organizations"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
64
|
+
ALTER TABLE "custom_integrations" ADD CONSTRAINT "custom_integrations_owner_agent_id_agents_id_fk" FOREIGN KEY ("owner_agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
65
|
+
ALTER TABLE "custom_integrations" ADD CONSTRAINT "custom_integrations_credential_secret_id_organization_secrets_id_fk" FOREIGN KEY ("credential_secret_id") REFERENCES "public"."organization_secrets"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
|
|
66
|
+
ALTER TABLE "custom_integration_tools" ADD CONSTRAINT "custom_integration_tools_org_id_organizations_id_fk" FOREIGN KEY ("org_id") REFERENCES "public"."organizations"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
67
|
+
ALTER TABLE "custom_integration_tools" ADD CONSTRAINT "custom_integration_tools_integration_id_custom_integrations_id_fk" FOREIGN KEY ("integration_id") REFERENCES "public"."custom_integrations"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
68
|
+
ALTER TABLE "agent_custom_integration_bindings" ADD CONSTRAINT "agent_custom_integration_bindings_org_id_organizations_id_fk" FOREIGN KEY ("org_id") REFERENCES "public"."organizations"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
69
|
+
ALTER TABLE "agent_custom_integration_bindings" ADD CONSTRAINT "agent_custom_integration_bindings_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
70
|
+
ALTER TABLE "agent_custom_integration_bindings" ADD CONSTRAINT "agent_custom_integration_bindings_integration_id_custom_integrations_id_fk" FOREIGN KEY ("integration_id") REFERENCES "public"."custom_integrations"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
71
|
+
ALTER TABLE "custom_integration_tool_calls" ADD CONSTRAINT "custom_integration_tool_calls_org_id_organizations_id_fk" FOREIGN KEY ("org_id") REFERENCES "public"."organizations"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
72
|
+
ALTER TABLE "custom_integration_tool_calls" ADD CONSTRAINT "custom_integration_tool_calls_integration_id_custom_integrations_id_fk" FOREIGN KEY ("integration_id") REFERENCES "public"."custom_integrations"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
73
|
+
ALTER TABLE "custom_integration_tool_calls" ADD CONSTRAINT "custom_integration_tool_calls_tool_id_custom_integration_tools_id_fk" FOREIGN KEY ("tool_id") REFERENCES "public"."custom_integration_tools"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
74
|
+
ALTER TABLE "custom_integration_tool_calls" ADD CONSTRAINT "custom_integration_tool_calls_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
75
|
+
CREATE INDEX "custom_integrations_org_scope_idx" ON "custom_integrations" USING btree ("org_id","scope");--> statement-breakpoint
|
|
76
|
+
CREATE INDEX "custom_integrations_org_kind_idx" ON "custom_integrations" USING btree ("org_id","kind");--> statement-breakpoint
|
|
77
|
+
CREATE INDEX "custom_integrations_owner_agent_idx" ON "custom_integrations" USING btree ("owner_agent_id");--> statement-breakpoint
|
|
78
|
+
CREATE INDEX "custom_integrations_secret_idx" ON "custom_integrations" USING btree ("credential_secret_id");--> statement-breakpoint
|
|
79
|
+
CREATE UNIQUE INDEX "custom_integrations_org_slug_uq" ON "custom_integrations" USING btree ("org_id","slug");--> statement-breakpoint
|
|
80
|
+
CREATE INDEX "custom_integration_tools_org_integration_idx" ON "custom_integration_tools" USING btree ("org_id","integration_id");--> statement-breakpoint
|
|
81
|
+
CREATE UNIQUE INDEX "custom_integration_tools_org_tool_name_uq" ON "custom_integration_tools" USING btree ("org_id","rudder_tool_name");--> statement-breakpoint
|
|
82
|
+
CREATE INDEX "agent_custom_integration_bindings_org_agent_idx" ON "agent_custom_integration_bindings" USING btree ("org_id","agent_id");--> statement-breakpoint
|
|
83
|
+
CREATE INDEX "agent_custom_integration_bindings_org_integration_idx" ON "agent_custom_integration_bindings" USING btree ("org_id","integration_id");--> statement-breakpoint
|
|
84
|
+
CREATE UNIQUE INDEX "agent_custom_integration_bindings_agent_integration_uq" ON "agent_custom_integration_bindings" USING btree ("org_id","agent_id","integration_id");--> statement-breakpoint
|
|
85
|
+
CREATE INDEX "custom_integration_tool_calls_org_agent_started_idx" ON "custom_integration_tool_calls" USING btree ("org_id","agent_id","started_at");--> statement-breakpoint
|
|
86
|
+
CREATE INDEX "custom_integration_tool_calls_org_integration_started_idx" ON "custom_integration_tool_calls" USING btree ("org_id","integration_id","started_at");
|