mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-28 23:01:09 +03:00
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:
+11
-1
@@ -2,8 +2,9 @@ import { ICommonObject, INode, INodeData, INodeParams } from '../../../src/Inter
|
|||||||
import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils'
|
import { getBaseClasses, getCredentialData, getCredentialParam } from '../../../src/utils'
|
||||||
import { ListKeyOptions, RecordManagerInterface, UpdateOptions } from '@langchain/community/indexes/base'
|
import { ListKeyOptions, RecordManagerInterface, UpdateOptions } from '@langchain/community/indexes/base'
|
||||||
import { DataSource } from 'typeorm'
|
import { DataSource } from 'typeorm'
|
||||||
import { getHost } from '../../vectorstores/Postgres/utils'
|
import { getHost, getSSL } from '../../vectorstores/Postgres/utils'
|
||||||
import { getDatabase, getPort, getTableName } from './utils'
|
import { getDatabase, getPort, getTableName } from './utils'
|
||||||
|
import fs from 'fs'
|
||||||
|
|
||||||
const serverCredentialsExists = !!process.env.POSTGRES_RECORDMANAGER_USER && !!process.env.POSTGRES_RECORDMANAGER_PASSWORD
|
const serverCredentialsExists = !!process.env.POSTGRES_RECORDMANAGER_USER && !!process.env.POSTGRES_RECORDMANAGER_PASSWORD
|
||||||
|
|
||||||
@@ -51,6 +52,14 @@ class PostgresRecordManager_RecordManager implements INode {
|
|||||||
placeholder: getPort(),
|
placeholder: getPort(),
|
||||||
optional: true
|
optional: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'SSL',
|
||||||
|
name: 'ssl',
|
||||||
|
description: 'Use SSL to connect to Postgres',
|
||||||
|
type: 'boolean',
|
||||||
|
additionalParams: true,
|
||||||
|
optional: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: 'Additional Connection Configuration',
|
label: 'Additional Connection Configuration',
|
||||||
name: 'additionalConfig',
|
name: 'additionalConfig',
|
||||||
@@ -149,6 +158,7 @@ class PostgresRecordManager_RecordManager implements INode {
|
|||||||
type: 'postgres',
|
type: 'postgres',
|
||||||
host: getHost(nodeData),
|
host: getHost(nodeData),
|
||||||
port: getPort(nodeData),
|
port: getPort(nodeData),
|
||||||
|
ssl: getSSL(nodeData),
|
||||||
username: user,
|
username: user,
|
||||||
password: password,
|
password: password,
|
||||||
database: getDatabase(nodeData)
|
database: getDatabase(nodeData)
|
||||||
|
|||||||
@@ -4,14 +4,15 @@ Postgres Record Manager integration for Flowise
|
|||||||
|
|
||||||
## 🌱 Env Variables
|
## 🌱 Env Variables
|
||||||
|
|
||||||
| Variable | Description | Type | Default |
|
| Variable | Description | Type | Default |
|
||||||
| --------------------------------- | ----------------------------------------------- | ------ | ----------------- |
|
| --------------------------------- | ----------------------------------------------- | ------- | ----------------- |
|
||||||
| POSTGRES_RECORDMANAGER_HOST | Default `host` for Postgres Record Manager | String | |
|
| POSTGRES_RECORDMANAGER_HOST | Default `host` for Postgres Record Manager | String | |
|
||||||
| POSTGRES_RECORDMANAGER_PORT | Default `port` for Postgres Record Manager | Number | 5432 |
|
| POSTGRES_RECORDMANAGER_PORT | Default `port` for Postgres Record Manager | Number | 5432 |
|
||||||
| POSTGRES_RECORDMANAGER_USER | Default `user` for Postgres Record Manager | String | |
|
| POSTGRES_RECORDMANAGER_USER | Default `user` for Postgres Record Manager | String | |
|
||||||
| POSTGRES_RECORDMANAGER_PASSWORD | Default `password` for Postgres Record Manager | String | |
|
| POSTGRES_RECORDMANAGER_PASSWORD | Default `password` for Postgres Record Manager | String | |
|
||||||
| POSTGRES_RECORDMANAGER_DATABASE | Default `database` for Postgres Record Manager | String | |
|
| POSTGRES_RECORDMANAGER_DATABASE | Default `database` for Postgres Record Manager | String | |
|
||||||
| POSTGRES_RECORDMANAGER_TABLE_NAME | Default `tableName` for Postgres Record Manager | String | upsertion_records |
|
| POSTGRES_RECORDMANAGER_TABLE_NAME | Default `tableName` for Postgres Record Manager | String | upsertion_records |
|
||||||
|
| POSTGRES_RECORDMANAGER_SSL | Default `ssl` for Postgres Vector Store | Boolean | false |
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,10 @@ export function getPort(nodeData?: INodeData) {
|
|||||||
return defaultChain(nodeData?.inputs?.port, process.env.POSTGRES_RECORDMANAGER_PORT, '5432')
|
return defaultChain(nodeData?.inputs?.port, process.env.POSTGRES_RECORDMANAGER_PORT, '5432')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getSSL(nodeData?: INodeData) {
|
||||||
|
return defaultChain(nodeData?.inputs?.ssl, process.env.POSTGRES_RECORDMANAGER_SSL, false)
|
||||||
|
}
|
||||||
|
|
||||||
export function getTableName(nodeData?: INodeData) {
|
export function getTableName(nodeData?: INodeData) {
|
||||||
return defaultChain(nodeData?.inputs?.tableName, process.env.POSTGRES_RECORDMANAGER_TABLE_NAME, 'upsertion_records')
|
return defaultChain(nodeData?.inputs?.tableName, process.env.POSTGRES_RECORDMANAGER_TABLE_NAME, 'upsertion_records')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,6 +83,14 @@ class Postgres_VectorStores implements INode {
|
|||||||
placeholder: getPort(),
|
placeholder: getPort(),
|
||||||
optional: true
|
optional: true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'SSL',
|
||||||
|
name: 'ssl',
|
||||||
|
description: 'Use SSL to connect to Postgres',
|
||||||
|
type: 'boolean',
|
||||||
|
additionalParams: true,
|
||||||
|
optional: true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: 'Table Name',
|
label: 'Table Name',
|
||||||
name: 'tableName',
|
name: 'tableName',
|
||||||
|
|||||||
@@ -4,15 +4,16 @@ Postgres Vector Store integration for Flowise
|
|||||||
|
|
||||||
## 🌱 Env Variables
|
## 🌱 Env Variables
|
||||||
|
|
||||||
| Variable | Description | Type | Default |
|
| Variable | Description | Type | Default |
|
||||||
| ---------------------------------------- | ----------------------------------------------------- | ------ | ----------- |
|
| ---------------------------------------- | ----------------------------------------------------- | ------- | ----------- |
|
||||||
| POSTGRES_VECTORSTORE_HOST | Default `host` for Postgres Vector Store | String | |
|
| POSTGRES_VECTORSTORE_HOST | Default `host` for Postgres Vector Store | String | |
|
||||||
| POSTGRES_VECTORSTORE_PORT | Default `port` for Postgres Vector Store | Number | 5432 |
|
| POSTGRES_VECTORSTORE_PORT | Default `port` for Postgres Vector Store | Number | 5432 |
|
||||||
| POSTGRES_VECTORSTORE_USER | Default `user` for Postgres Vector Store | String | |
|
| POSTGRES_VECTORSTORE_USER | Default `user` for Postgres Vector Store | String | |
|
||||||
| POSTGRES_VECTORSTORE_PASSWORD | Default `password` 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_DATABASE | Default `database` for Postgres Vector Store | String | |
|
||||||
| POSTGRES_VECTORSTORE_TABLE_NAME | Default `tableName` for Postgres Vector Store | String | documents |
|
| 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_CONTENT_COLUMN_NAME | Default `contentColumnName` for Postgres Vector Store | String | pageContent |
|
||||||
|
| POSTGRES_VECTORSTORE_SSL | Default `ssl` for Postgres Vector Store | Boolean | false |
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { VectorStore } from '@langchain/core/vectorstores'
|
|||||||
import { getCredentialData, getCredentialParam, ICommonObject, INodeData } from '../../../../src'
|
import { getCredentialData, getCredentialParam, ICommonObject, INodeData } from '../../../../src'
|
||||||
import { Document } from '@langchain/core/documents'
|
import { Document } from '@langchain/core/documents'
|
||||||
import { Embeddings } from '@langchain/core/embeddings'
|
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 {
|
export abstract class VectorStoreDriver {
|
||||||
constructor(protected nodeData: INodeData, protected options: ICommonObject) {}
|
constructor(protected nodeData: INodeData, protected options: ICommonObject) {}
|
||||||
@@ -23,6 +23,10 @@ export abstract class VectorStoreDriver {
|
|||||||
return getPort(this.nodeData) as number
|
return getPort(this.nodeData) as number
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getSSL() {
|
||||||
|
return getSSL(this.nodeData) as boolean
|
||||||
|
}
|
||||||
|
|
||||||
getDatabase() {
|
getDatabase() {
|
||||||
return getDatabase(this.nodeData) as string
|
return getDatabase(this.nodeData) as string
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ export class TypeORMDriver extends VectorStoreDriver {
|
|||||||
type: 'postgres',
|
type: 'postgres',
|
||||||
host: this.getHost(),
|
host: this.getHost(),
|
||||||
port: this.getPort(),
|
port: this.getPort(),
|
||||||
|
ssl: this.getSSL(),
|
||||||
username: user, // Required by TypeORMVectorStore
|
username: user, // Required by TypeORMVectorStore
|
||||||
user: user, // Required by Pool in similaritySearchVectorWithScore
|
user: user, // Required by Pool in similaritySearchVectorWithScore
|
||||||
password: password,
|
password: password,
|
||||||
|
|||||||
@@ -12,6 +12,10 @@ export function getPort(nodeData?: INodeData) {
|
|||||||
return defaultChain(nodeData?.inputs?.port, process.env.POSTGRES_VECTORSTORE_PORT, '5432')
|
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) {
|
export function getTableName(nodeData?: INodeData) {
|
||||||
return defaultChain(nodeData?.inputs?.tableName, process.env.POSTGRES_VECTORSTORE_TABLE_NAME, 'documents')
|
return defaultChain(nodeData?.inputs?.tableName, process.env.POSTGRES_VECTORSTORE_TABLE_NAME, 'documents')
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user