@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.
@@ -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":"AAOA,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,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,CAI9G;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;AAYD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,4BAA4B,GACpC,qBAAqB,CAmEvB;AAaD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,8BAA8B,CAAC,CAgBzC"}
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, spawnSync } from "node:child_process";
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 runControlCommand = async (command, args, phase) => {
103
- const result = spawnSync(command, args, {
104
- env: buildOfficialPostgresCommandEnv(binDir, options.password),
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
- if (result.status !== 0) {
112
- throw new Error(`PostgreSQL ${RUDDER_PRODUCTION_POSTGRES_VERSION} ${phase} failed with ${result.signal ? `signal ${result.signal}` : `exit code ${result.status}`}`);
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 run(binaries.initdb, buildOfficialPostgresInitdbArgs(options, passwordFilePath), "initdb");
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
- await runControlCommand(binaries.pgCtl, [
129
- "-D",
130
- options.databaseDir,
131
- "-o",
132
- `-h 127.0.0.1 -p ${options.port}`,
133
- "-w",
134
- "start",
135
- ], "start");
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
- return mkdtempSync(path.join(os.tmpdir(), "rudder-pg-bin-"));
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
- touchRequiredPostgresBinaries(binDir);
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("accepts PostgreSQL 18.4 version output", async () => {
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
- touchRequiredPostgresBinaries(binDir);
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
- touchRequiredPostgresBinaries(binDir);
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":"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"}
1
+ {"version":3,"file":"local-postgres-provider.test.js","sourceRoot":"","sources":["../src/local-postgres-provider.test.ts"],"names":[],"mappings":"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"}
@@ -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");