diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bda3b5e119b..711f92ec186 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -141,6 +141,7 @@ Flowise support different environment variables to configure your instance. You | DATABASE_NAME | Database name (When DATABASE_TYPE is not sqlite) | String | | | DATABASE_SSL_KEY_BASE64 | Database SSL client cert in base64 (takes priority over DATABASE_SSL) | Boolean | false | | DATABASE_SSL | Database connection overssl (When DATABASE_TYPE is postgre) | Boolean | false | +| DATABASE_PGSCHEMA | Set the schema (When DATABASE_TYPE is postgre) | String | | | SECRETKEY_PATH | Location where encryption key (used to encrypt/decrypt credentials) is saved | String | `your-path/Flowise/packages/server` | | FLOWISE_SECRETKEY_OVERWRITE | Encryption key to be used instead of the key stored in SECRETKEY_PATH | String | | | MODEL_LIST_CONFIG_JSON | File path to load list of models from your local config file | String | `/your_model_list_config_file_path` | diff --git a/docker/docker-compose-queue-prebuilt.yml b/docker/docker-compose-queue-prebuilt.yml index 3777cd9d180..262f60fbd5c 100644 --- a/docker/docker-compose-queue-prebuilt.yml +++ b/docker/docker-compose-queue-prebuilt.yml @@ -32,6 +32,7 @@ services: - DATABASE_PASSWORD=${DATABASE_PASSWORD} - DATABASE_SSL=${DATABASE_SSL} - DATABASE_SSL_KEY_BASE64=${DATABASE_SSL_KEY_BASE64} + - DATABASE_PGSCHEMA=${DATABASE_PGSCHEMA} # SECRET KEYS - SECRETKEY_STORAGE_TYPE=${SECRETKEY_STORAGE_TYPE} @@ -168,7 +169,8 @@ services: - DATABASE_PASSWORD=${DATABASE_PASSWORD} - DATABASE_SSL=${DATABASE_SSL} - DATABASE_SSL_KEY_BASE64=${DATABASE_SSL_KEY_BASE64} - + - DATABASE_PGSCHEMA=${DATABASE_PGSCHEMA} + # SECRET KEYS - SECRETKEY_STORAGE_TYPE=${SECRETKEY_STORAGE_TYPE} - SECRETKEY_PATH=${SECRETKEY_PATH} diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 3f7529983db..c640a46994d 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -17,7 +17,8 @@ services: - DATABASE_PASSWORD=${DATABASE_PASSWORD} - DATABASE_SSL=${DATABASE_SSL} - DATABASE_SSL_KEY_BASE64=${DATABASE_SSL_KEY_BASE64} - + - DATABASE_PGSCHEMA=${DATABASE_PGSCHEMA} + # SECRET KEYS - SECRETKEY_STORAGE_TYPE=${SECRETKEY_STORAGE_TYPE} - SECRETKEY_PATH=${SECRETKEY_PATH} diff --git a/docker/worker/docker-compose.yml b/docker/worker/docker-compose.yml index 4a8924dd23d..b556388d37f 100644 --- a/docker/worker/docker-compose.yml +++ b/docker/worker/docker-compose.yml @@ -17,6 +17,7 @@ services: - DATABASE_PASSWORD=${DATABASE_PASSWORD} - DATABASE_SSL=${DATABASE_SSL} - DATABASE_SSL_KEY_BASE64=${DATABASE_SSL_KEY_BASE64} + - DATABASE_PGSCHEMA=${DATABASE_PGSCHEMA} # SECRET KEYS - SECRETKEY_STORAGE_TYPE=${SECRETKEY_STORAGE_TYPE} diff --git a/packages/server/src/DataSource.ts b/packages/server/src/DataSource.ts index f6e43ba7293..7436d020a08 100644 --- a/packages/server/src/DataSource.ts +++ b/packages/server/src/DataSource.ts @@ -1,13 +1,13 @@ -import 'reflect-metadata' -import path from 'path' import * as fs from 'fs' +import path from 'path' +import 'reflect-metadata' import { DataSource } from 'typeorm' -import { getUserHome } from './utils' import { entities } from './database/entities' -import { sqliteMigrations } from './database/migrations/sqlite' -import { mysqlMigrations } from './database/migrations/mysql' import { mariadbMigrations } from './database/migrations/mariadb' +import { mysqlMigrations } from './database/migrations/mysql' import { postgresMigrations } from './database/migrations/postgres' +import { sqliteMigrations } from './database/migrations/sqlite' +import { getUserHome } from './utils' import logger from './utils/logger' let appDataSource: DataSource @@ -65,6 +65,7 @@ export const init = async (): Promise => { case 'postgres': appDataSource = new DataSource({ type: 'postgres', + schema: process.env.DATABASE_PGSCHEMA, host: process.env.DATABASE_HOST, port: parseInt(process.env.DATABASE_PORT || '5432'), username: process.env.DATABASE_USER, diff --git a/packages/server/src/commands/base.ts b/packages/server/src/commands/base.ts index bdffb8f620e..2a381e566c7 100644 --- a/packages/server/src/commands/base.ts +++ b/packages/server/src/commands/base.ts @@ -32,6 +32,7 @@ export abstract class BaseCommand extends Command { DATABASE_PASSWORD: Flags.string(), DATABASE_SSL: Flags.string(), DATABASE_SSL_KEY_BASE64: Flags.string(), + DATABASE_PGSCHEMA: Flags.string(), LANGCHAIN_TRACING_V2: Flags.string(), LANGCHAIN_ENDPOINT: Flags.string(), LANGCHAIN_API_KEY: Flags.string(), @@ -157,6 +158,7 @@ export abstract class BaseCommand extends Command { if (flags.DATABASE_PASSWORD) process.env.DATABASE_PASSWORD = flags.DATABASE_PASSWORD if (flags.DATABASE_SSL) process.env.DATABASE_SSL = flags.DATABASE_SSL if (flags.DATABASE_SSL_KEY_BASE64) process.env.DATABASE_SSL_KEY_BASE64 = flags.DATABASE_SSL_KEY_BASE64 + if (flags.DATABASE_PGSCHEMA) process.env.DATABASE_PGSCHEMA = flags.DATABASE_PGSCHEMA // Langsmith tracing if (flags.LANGCHAIN_TRACING_V2) process.env.LANGCHAIN_TRACING_V2 = flags.LANGCHAIN_TRACING_V2