diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index d356d67fab..2378a24383 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -78,6 +78,7 @@ "morgan": "^1.10.0", "node-fetch": "^2.6.7", "node-forge": "^1.3.1", + "pg": "^8.9.0", "raw-body": "^2.4.1", "request": "^2.88.2", "selfsigned": "^2.0.0", @@ -110,6 +111,7 @@ "@types/mock-fs": "^4.13.0", "@types/morgan": "^1.9.0", "@types/node-forge": "^1.3.0", + "@types/pg": "^8.6.6", "@types/recursive-readdir": "^2.2.0", "@types/stoppable": "^1.1.0", "@types/supertest": "^2.0.8", diff --git a/packages/backend-common/src/database/connectors/postgres.ts b/packages/backend-common/src/database/connectors/postgres.ts index afa0d1f732..7dab81dcbb 100644 --- a/packages/backend-common/src/database/connectors/postgres.ts +++ b/packages/backend-common/src/database/connectors/postgres.ts @@ -22,6 +22,7 @@ import { mergeDatabaseConfig } from '../config'; import { DatabaseConnector } from '../types'; import defaultNameOverride from './defaultNameOverride'; import defaultSchemaOverride from './defaultSchemaOverride'; +import { Client } from 'pg'; /** * Creates a knex postgres database connection @@ -41,7 +42,7 @@ export function createPgDatabaseClient( if (role) { database.client.pool.on( 'createSuccess', - (_event: number, pgClient: Knex.Client) => { + (_event: number, pgClient: Client) => { pgClient.query(`SET ROLE ${role}`, (err: Error, _res: any) => { if (err) throw err; }); diff --git a/yarn.lock b/yarn.lock index 7d00ad8f19..e8567c9620 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3453,6 +3453,7 @@ __metadata: "@types/mock-fs": ^4.13.0 "@types/morgan": ^1.9.0 "@types/node-forge": ^1.3.0 + "@types/pg": ^8.6.6 "@types/recursive-readdir": ^2.2.0 "@types/stoppable": ^1.1.0 "@types/supertest": ^2.0.8 @@ -3489,6 +3490,7 @@ __metadata: mysql2: ^2.2.5 node-fetch: ^2.6.7 node-forge: ^1.3.1 + pg: ^8.9.0 raw-body: ^2.4.1 recursive-readdir: ^2.2.2 request: ^2.88.2 @@ -15117,6 +15119,17 @@ __metadata: languageName: node linkType: hard +"@types/pg@npm:^8.6.6": + version: 8.6.6 + resolution: "@types/pg@npm:8.6.6" + dependencies: + "@types/node": "*" + pg-protocol: "*" + pg-types: ^2.2.0 + checksum: ac145553a8ad2f357feacad1bceaf5d6ce904eb9d66233b84c469a2b4fa3738d4ebdf29b7ea45387be2d07f915fd873a229f90a2f766d7c377afa7c41fbcf8d1 + languageName: node + linkType: hard + "@types/pluralize@npm:^0.0.29": version: 0.0.29 resolution: "@types/pluralize@npm:0.0.29" @@ -31569,14 +31582,14 @@ __metadata: languageName: node linkType: hard -"pg-protocol@npm:^1.5.0": - version: 1.5.0 - resolution: "pg-protocol@npm:1.5.0" - checksum: b839d12cafe942ef9cbc5b13c174eb2356804fb4fe8ead8279f46a36be90722d19a91409955beb8a3d5301639c44854e49749de4aef02dc361fee3e2a61fb1e4 +"pg-protocol@npm:*, pg-protocol@npm:^1.6.0": + version: 1.6.0 + resolution: "pg-protocol@npm:1.6.0" + checksum: e12662d2de2011e0c3a03f6a09f435beb1025acdc860f181f18a600a5495dc38a69d753bbde1ace279c8c442536af9c1a7c11e1d0fe3fad3aa1348b28d9d2683 languageName: node linkType: hard -"pg-types@npm:^2.1.0": +"pg-types@npm:^2.1.0, pg-types@npm:^2.2.0": version: 2.2.0 resolution: "pg-types@npm:2.2.0" dependencies: @@ -31589,15 +31602,15 @@ __metadata: languageName: node linkType: hard -"pg@npm:^8.3.0, pg@npm:^8.4.0": - version: 8.8.0 - resolution: "pg@npm:8.8.0" +"pg@npm:^8.3.0, pg@npm:^8.4.0, pg@npm:^8.9.0": + version: 8.9.0 + resolution: "pg@npm:8.9.0" dependencies: buffer-writer: 2.0.0 packet-reader: 1.0.0 pg-connection-string: ^2.5.0 pg-pool: ^3.5.2 - pg-protocol: ^1.5.0 + pg-protocol: ^1.6.0 pg-types: ^2.1.0 pgpass: 1.x peerDependencies: @@ -31605,7 +31618,7 @@ __metadata: peerDependenciesMeta: pg-native: optional: true - checksum: fa30a85814dd7238b582c3bc6c0b9e2b0ae38dd0a6bb485ef480e64bb5ce589de6cb873ce4d3cd10c37a3e0a1e1281ba75dc7d80b1a68bae91999cd5b70d398b + checksum: dfd158955318f9ffb9428eaada29f3ee98b9eb07e87ed4b56589a19984d109f23bb8f88db78b7d7f870553e5b75ca0d58d0ed55755a8c6aed5df44e038c1d529 languageName: node linkType: hard