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
This commit is contained in:
Michael Young
2025-03-13 03:57:38 -07:00
committed by GitHub
parent 9d9aaaa886
commit 4130156397
8 changed files with 52 additions and 19 deletions
@@ -83,6 +83,14 @@ class Postgres_VectorStores implements INode {
placeholder: getPort(),
optional: true
},
{
label: 'SSL',
name: 'ssl',
description: 'Use SSL to connect to Postgres',
type: 'boolean',
additionalParams: true,
optional: true
},
{
label: 'Table Name',
name: 'tableName',
@@ -4,15 +4,16 @@ Postgres Vector Store integration for Flowise
## 🌱 Env Variables
| Variable | Description | Type | Default |
| ---------------------------------------- | ----------------------------------------------------- | ------ | ----------- |
| POSTGRES_VECTORSTORE_HOST | Default `host` for Postgres Vector Store | String | |
| POSTGRES_VECTORSTORE_PORT | Default `port` for Postgres Vector Store | Number | 5432 |
| POSTGRES_VECTORSTORE_USER | Default `user` for Postgres Vector Store | String | |
| POSTGRES_VECTORSTORE_PASSWORD | Default `password` for Postgres Vector Store | String | |
| POSTGRES_VECTORSTORE_DATABASE | Default `database` for Postgres Vector Store | String | |
| POSTGRES_VECTORSTORE_TABLE_NAME | Default `tableName` for Postgres Vector Store | String | documents |
| POSTGRES_VECTORSTORE_CONTENT_COLUMN_NAME | Default `contentColumnName` for Postgres Vector Store | String | pageContent |
| Variable | Description | Type | Default |
| ---------------------------------------- | ----------------------------------------------------- | ------- | ----------- |
| POSTGRES_VECTORSTORE_HOST | Default `host` for Postgres Vector Store | String | |
| POSTGRES_VECTORSTORE_PORT | Default `port` for Postgres Vector Store | Number | 5432 |
| POSTGRES_VECTORSTORE_USER | Default `user` for Postgres Vector Store | String | |
| POSTGRES_VECTORSTORE_PASSWORD | Default `password` for Postgres Vector Store | String | |
| POSTGRES_VECTORSTORE_DATABASE | Default `database` for Postgres Vector Store | String | |
| POSTGRES_VECTORSTORE_TABLE_NAME | Default `tableName` for Postgres Vector Store | String | documents |
| POSTGRES_VECTORSTORE_CONTENT_COLUMN_NAME | Default `contentColumnName` for Postgres Vector Store | String | pageContent |
| POSTGRES_VECTORSTORE_SSL | Default `ssl` for Postgres Vector Store | Boolean | false |
## License
@@ -2,7 +2,7 @@ import { VectorStore } from '@langchain/core/vectorstores'
import { getCredentialData, getCredentialParam, ICommonObject, INodeData } from '../../../../src'
import { Document } from '@langchain/core/documents'
import { Embeddings } from '@langchain/core/embeddings'
import { getDatabase, getHost, getPort, getTableName } from '../utils'
import { getDatabase, getHost, getPort, getSSL, getTableName } from '../utils'
export abstract class VectorStoreDriver {
constructor(protected nodeData: INodeData, protected options: ICommonObject) {}
@@ -23,6 +23,10 @@ export abstract class VectorStoreDriver {
return getPort(this.nodeData) as number
}
getSSL() {
return getSSL(this.nodeData) as boolean
}
getDatabase() {
return getDatabase(this.nodeData) as string
}
@@ -29,6 +29,7 @@ export class TypeORMDriver extends VectorStoreDriver {
type: 'postgres',
host: this.getHost(),
port: this.getPort(),
ssl: this.getSSL(),
username: user, // Required by TypeORMVectorStore
user: user, // Required by Pool in similaritySearchVectorWithScore
password: password,
@@ -12,6 +12,10 @@ export function getPort(nodeData?: INodeData) {
return defaultChain(nodeData?.inputs?.port, process.env.POSTGRES_VECTORSTORE_PORT, '5432')
}
export function getSSL(nodeData?: INodeData) {
return defaultChain(nodeData?.inputs?.ssl, process.env.POSTGRES_VECTORSTORE_SSL, false)
}
export function getTableName(nodeData?: INodeData) {
return defaultChain(nodeData?.inputs?.tableName, process.env.POSTGRES_VECTORSTORE_TABLE_NAME, 'documents')
}