Skip to content

Commit 4130156

Browse files
authored
feat: Add SSL configuration option for Postgres connections (#4130)
Update README files for Postgres Record Manager and Vector Store to include a new SSL environment variable, allowing optional SSL configuration for database connections
1 parent 9d9aaaa commit 4130156

File tree

8 files changed

+52
-19
lines changed

8 files changed

+52
-19
lines changed

packages/components/nodes/recordmanager/PostgresRecordManager/PostgresRecordManager.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Inter
22
import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils'
33
import { ListKeyOptions, RecordManagerInterface, UpdateOptions } from '@langchain/community/indexes/base'
44
import { DataSource } from 'typeorm'
5-
import { getHost } from '../../vectorstores/Postgres/utils'
5+
import { getHost, getSSL } from '../../vectorstores/Postgres/utils'
66
import { getDatabase, getPort, getTableName } from './utils'
7+
import fs from 'fs'
78

89
const serverCredentialsExists = !!process.env.POSTGRES_RECORDMANAGER_USER && !!process.env.POSTGRES_RECORDMANAGER_PASSWORD
910

@@ -51,6 +52,14 @@ class PostgresRecordManager_RecordManager implements INode {
5152
placeholder: getPort(),
5253
optional: true
5354
},
55+
{
56+
label: 'SSL',
57+
name: 'ssl',
58+
description: 'Use SSL to connect to Postgres',
59+
type: 'boolean',
60+
additionalParams: true,
61+
optional: true
62+
},
5463
{
5564
label: 'Additional Connection Configuration',
5665
name: 'additionalConfig',
@@ -149,6 +158,7 @@ class PostgresRecordManager_RecordManager implements INode {
149158
type: 'postgres',
150159
host: getHost(nodeData),
151160
port: getPort(nodeData),
161+
ssl: getSSL(nodeData),
152162
username: user,
153163
password: password,
154164
database: getDatabase(nodeData)

packages/components/nodes/recordmanager/PostgresRecordManager/README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ Postgres Record Manager integration for Flowise
44

55
## 🌱 Env Variables
66

7-
| Variable | Description | Type | Default |
8-
| --------------------------------- | ----------------------------------------------- | ------ | ----------------- |
9-
| POSTGRES_RECORDMANAGER_HOST | Default `host` for Postgres Record Manager | String | |
10-
| POSTGRES_RECORDMANAGER_PORT | Default `port` for Postgres Record Manager | Number | 5432 |
11-
| POSTGRES_RECORDMANAGER_USER | Default `user` for Postgres Record Manager | String | |
12-
| POSTGRES_RECORDMANAGER_PASSWORD | Default `password` for Postgres Record Manager | String | |
13-
| POSTGRES_RECORDMANAGER_DATABASE | Default `database` for Postgres Record Manager | String | |
14-
| POSTGRES_RECORDMANAGER_TABLE_NAME | Default `tableName` for Postgres Record Manager | String | upsertion_records |
7+
| Variable | Description | Type | Default |
8+
| --------------------------------- | ----------------------------------------------- | ------- | ----------------- |
9+
| POSTGRES_RECORDMANAGER_HOST | Default `host` for Postgres Record Manager | String | |
10+
| POSTGRES_RECORDMANAGER_PORT | Default `port` for Postgres Record Manager | Number | 5432 |
11+
| POSTGRES_RECORDMANAGER_USER | Default `user` for Postgres Record Manager | String | |
12+
| POSTGRES_RECORDMANAGER_PASSWORD | Default `password` for Postgres Record Manager | String | |
13+
| POSTGRES_RECORDMANAGER_DATABASE | Default `database` for Postgres Record Manager | String | |
14+
| POSTGRES_RECORDMANAGER_TABLE_NAME | Default `tableName` for Postgres Record Manager | String | upsertion_records |
15+
| POSTGRES_RECORDMANAGER_SSL | Default `ssl` for Postgres Vector Store | Boolean | false |
1516

1617
## License
1718

packages/components/nodes/recordmanager/PostgresRecordManager/utils.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ export function getPort(nodeData?: INodeData) {
1212
return defaultChain(nodeData?.inputs?.port, process.env.POSTGRES_RECORDMANAGER_PORT, '5432')
1313
}
1414

15+
export function getSSL(nodeData?: INodeData) {
16+
return defaultChain(nodeData?.inputs?.ssl, process.env.POSTGRES_RECORDMANAGER_SSL, false)
17+
}
18+
1519
export function getTableName(nodeData?: INodeData) {
1620
return defaultChain(nodeData?.inputs?.tableName, process.env.POSTGRES_RECORDMANAGER_TABLE_NAME, 'upsertion_records')
1721
}

packages/components/nodes/vectorstores/Postgres/Postgres.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,14 @@ class Postgres_VectorStores implements INode {
8383
placeholder: getPort(),
8484
optional: true
8585
},
86+
{
87+
label: 'SSL',
88+
name: 'ssl',
89+
description: 'Use SSL to connect to Postgres',
90+
type: 'boolean',
91+
additionalParams: true,
92+
optional: true
93+
},
8694
{
8795
label: 'Table Name',
8896
name: 'tableName',

packages/components/nodes/vectorstores/Postgres/README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@ Postgres Vector Store integration for Flowise
44

55
## 🌱 Env Variables
66

7-
| Variable | Description | Type | Default |
8-
| ---------------------------------------- | ----------------------------------------------------- | ------ | ----------- |
9-
| POSTGRES_VECTORSTORE_HOST | Default `host` for Postgres Vector Store | String | |
10-
| POSTGRES_VECTORSTORE_PORT | Default `port` for Postgres Vector Store | Number | 5432 |
11-
| POSTGRES_VECTORSTORE_USER | Default `user` for Postgres Vector Store | String | |
12-
| POSTGRES_VECTORSTORE_PASSWORD | Default `password` for Postgres Vector Store | String | |
13-
| POSTGRES_VECTORSTORE_DATABASE | Default `database` for Postgres Vector Store | String | |
14-
| POSTGRES_VECTORSTORE_TABLE_NAME | Default `tableName` for Postgres Vector Store | String | documents |
15-
| POSTGRES_VECTORSTORE_CONTENT_COLUMN_NAME | Default `contentColumnName` for Postgres Vector Store | String | pageContent |
7+
| Variable | Description | Type | Default |
8+
| ---------------------------------------- | ----------------------------------------------------- | ------- | ----------- |
9+
| POSTGRES_VECTORSTORE_HOST | Default `host` for Postgres Vector Store | String | |
10+
| POSTGRES_VECTORSTORE_PORT | Default `port` for Postgres Vector Store | Number | 5432 |
11+
| POSTGRES_VECTORSTORE_USER | Default `user` for Postgres Vector Store | String | |
12+
| POSTGRES_VECTORSTORE_PASSWORD | Default `password` for Postgres Vector Store | String | |
13+
| POSTGRES_VECTORSTORE_DATABASE | Default `database` for Postgres Vector Store | String | |
14+
| POSTGRES_VECTORSTORE_TABLE_NAME | Default `tableName` for Postgres Vector Store | String | documents |
15+
| POSTGRES_VECTORSTORE_CONTENT_COLUMN_NAME | Default `contentColumnName` for Postgres Vector Store | String | pageContent |
16+
| POSTGRES_VECTORSTORE_SSL | Default `ssl` for Postgres Vector Store | Boolean | false |
1617

1718
## License
1819

packages/components/nodes/vectorstores/Postgres/driver/Base.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { VectorStore } from '@langchain/core/vectorstores'
22
import { getCredentialData, getCredentialParam, ICommonObject, INodeData } from '../../../../src'
33
import { Document } from '@langchain/core/documents'
44
import { Embeddings } from '@langchain/core/embeddings'
5-
import { getDatabase, getHost, getPort, getTableName } from '../utils'
5+
import { getDatabase, getHost, getPort, getSSL, getTableName } from '../utils'
66

77
export abstract class VectorStoreDriver {
88
constructor(protected nodeData: INodeData, protected options: ICommonObject) {}
@@ -23,6 +23,10 @@ export abstract class VectorStoreDriver {
2323
return getPort(this.nodeData) as number
2424
}
2525

26+
getSSL() {
27+
return getSSL(this.nodeData) as boolean
28+
}
29+
2630
getDatabase() {
2731
return getDatabase(this.nodeData) as string
2832
}

packages/components/nodes/vectorstores/Postgres/driver/TypeORM.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export class TypeORMDriver extends VectorStoreDriver {
2929
type: 'postgres',
3030
host: this.getHost(),
3131
port: this.getPort(),
32+
ssl: this.getSSL(),
3233
username: user, // Required by TypeORMVectorStore
3334
user: user, // Required by Pool in similaritySearchVectorWithScore
3435
password: password,

packages/components/nodes/vectorstores/Postgres/utils.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ export function getPort(nodeData?: INodeData) {
1212
return defaultChain(nodeData?.inputs?.port, process.env.POSTGRES_VECTORSTORE_PORT, '5432')
1313
}
1414

15+
export function getSSL(nodeData?: INodeData) {
16+
return defaultChain(nodeData?.inputs?.ssl, process.env.POSTGRES_VECTORSTORE_SSL, false)
17+
}
18+
1519
export function getTableName(nodeData?: INodeData) {
1620
return defaultChain(nodeData?.inputs?.tableName, process.env.POSTGRES_VECTORSTORE_TABLE_NAME, 'documents')
1721
}

0 commit comments

Comments
 (0)