Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/export import stage 3 #2879

Open
wants to merge 60 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
9673c06
use existing route to get all chatflows
chungyau97 Jul 10, 2024
79c7a32
add export all chatflows functionality
chungyau97 Jul 11, 2024
d40d4de
add read exported all chatflows json file functionality
chungyau97 Jul 11, 2024
0683e7c
add save chatflows functionality in server
chungyau97 Jul 12, 2024
92eba35
chore rename saveChatflows to importChatflows and others
chungyau97 Jul 12, 2024
624dbf1
chore rewrite snackbar message
chungyau97 Jul 12, 2024
43716da
Merge branch 'main' into feature/extract-import-all
chungyau97 Jul 14, 2024
1dc98b1
fix import chatflows when no data in chatflows db
chungyau97 Jul 14, 2024
43a3db4
add handle when import file array length is 0
chungyau97 Jul 14, 2024
2dedff1
chore update and add meaning comment in importChatflows
chungyau97 Jul 14, 2024
708d52f
update method of storing flowdata for importChatflows function
chungyau97 Jul 14, 2024
ff7e898
Refresh/redirect to chatflows when import is successful
0xi4o Jul 15, 2024
0a11be9
fix lint
chungyau97 Jul 16, 2024
6895266
Merge branch 'main' into feature/extract-import-all
chungyau97 Jul 16, 2024
1851207
Merge branch 'main' into feature/extract-import-all
chungyau97 Jul 17, 2024
e3bedb5
add import-export api
chungyau97 Jul 18, 2024
8023748
add credentialResponse
chungyau97 Jul 18, 2024
0e167d9
add encryption entities and interface
chungyau97 Jul 19, 2024
1466a8e
add migration scripts for encryption sqlite
chungyau97 Jul 19, 2024
a6cf4a3
add migration scripts for encryption postgres
chungyau97 Jul 19, 2024
d624053
add migration script for encryption mysql
chungyau97 Jul 19, 2024
f4b4d44
add migration script for encryption mariadb
chungyau97 Jul 19, 2024
a20198a
fix encryption script for sqlite
chungyau97 Jul 19, 2024
1c90370
fix encryption script for mysql
chungyau97 Jul 19, 2024
dbb2fc1
Merge branch 'feature/extract-import-all' of https://github.com/Flowi…
chungyau97 Jul 19, 2024
6606e06
fix migration script for encryption postgres
chungyau97 Jul 19, 2024
5d1b3a8
fix encryption script for sqlite
chungyau97 Jul 19, 2024
21c62fa
Merge branch 'main' into feature/extract-import-all
chungyau97 Jul 22, 2024
8477974
modify getEncryptionKey function
chungyau97 Jul 22, 2024
b5d2d7e
fix no metadata was found
chungyau97 Jul 22, 2024
72ce144
modify logics of generateEncryptKey and getEncryptionKey
chungyau97 Jul 25, 2024
39485f0
Merge branch 'main' into feature/extract-import-all
chungyau97 Jul 25, 2024
54d7306
modify to follow coding standard
chungyau97 Jul 29, 2024
1865217
add encrypt method
chungyau97 Jul 29, 2024
7aad0e3
modify error message of encryptionService
chungyau97 Jul 29, 2024
d4d8843
add create fucntion in encryptionService
chungyau97 Jul 29, 2024
fd76aae
add basic functions for encryptionCredential service
chungyau97 Jul 30, 2024
3dc8b76
add init, resync and decrypt functions into encryption service
chungyau97 Jul 30, 2024
ccfb11c
Merge branch 'main' into feature/extract-import-all
chungyau97 Jul 30, 2024
8e7f4dc
add column for credential isEncrytionKeyLost in sqlite
chungyau97 Aug 2, 2024
6b2dee5
fix change C to c in sqlite script
chungyau97 Aug 2, 2024
6551803
add column for credential isEncryptionKeyLost in postgres
chungyau97 Aug 2, 2024
dc5d797
add column for credential isEncryptionKeyLost in mysql
chungyau97 Aug 2, 2024
72bb9c0
add column for credential isEncryptionKeyLost in mariadb
chungyau97 Aug 2, 2024
f47f2dd
add functions to do resync encryption Key and encrypted data
chungyau97 Aug 2, 2024
d985582
Merge branch 'main' into feature/extract-import-all
chungyau97 Aug 2, 2024
66826f0
fix merge
chungyau97 Aug 2, 2024
bb5a4eb
Merge branch 'main' into feature/extract-import-all
chungyau97 Aug 5, 2024
61e6ede
fix NOT NULL constraint failed: credential.isEncryptionKeyLost
chungyau97 Aug 5, 2024
719fe7a
modify createCredential to insert encryptionEncryption with transaction
chungyau97 Aug 5, 2024
52ec366
modify deleteCredentials to also delete related encryptionCredential …
chungyau97 Aug 5, 2024
5710829
modify updateCredential to use encryption.decrypt
chungyau97 Aug 6, 2024
41f8818
modify getCredentialById to use encryption.decrypt
chungyau97 Aug 6, 2024
69e3f89
Merge branch 'main' into feature/extract-import-all
chungyau97 Aug 6, 2024
8ca38ca
fix missing await for queryRunner
chungyau97 Aug 6, 2024
c3ef92b
fix lint
chungyau97 Aug 28, 2024
e28bbe8
Merge branch 'main' into feature/extract-import-all
chungyau97 Aug 28, 2024
6b30d5e
fix merge main
chungyau97 Aug 28, 2024
f79a6ce
refactor error message in encryptionCredentialService
chungyau97 Aug 30, 2024
3ba5940
refeactor external services in encryptionService
chungyau97 Aug 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions packages/components/src/utils.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { AIMessage, BaseMessage, HumanMessage } from '@langchain/core/messages'
import axios from 'axios'
import { load } from 'cheerio'
import { AES, enc } from 'crypto-js'
import * as fs from 'fs'
import * as path from 'path'
import { JSDOM } from 'jsdom'
import { z } from 'zod'
import * as path from 'path'
import { DataSource } from 'typeorm'
import { z } from 'zod'
import { ICommonObject, IDatabaseEntity, IMessage, INodeData, IVariable } from './Interface'
import { AES, enc } from 'crypto-js'
import { AIMessage, HumanMessage, BaseMessage } from '@langchain/core/messages'

export const numberOrExpressionRegex = '^(\\d+\\.?\\d*|{{.*}})$' //return true if string consists only numbers OR expression {{}}
export const notEmptyRegex = '(.|\\s)*\\S(.|\\s)*' //return true if string is not empty or blank
Expand Down
20 changes: 18 additions & 2 deletions packages/server/src/Interface.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { IAction } from 'flowise-components'
import { ICommonObject, IFileUpload, INode, INodeData as INodeDataFromComponent, INodeParams } from 'flowise-components'
import { IAction, ICommonObject, IFileUpload, INode, INodeData as INodeDataFromComponent, INodeParams } from 'flowise-components'

export type MessageType = 'apiMessage' | 'userMessage'

Expand Down Expand Up @@ -90,6 +89,23 @@ export interface ICredential {
encryptedData: string
updatedDate: Date
createdDate: Date
isEncryptionKeyLost: boolean
}

export interface IEncryption {
id: string
name: string
encryptionKey: string
updatedDate: Date
createdDate: Date
}

export interface IEncryptionCredential {
id: string
encryptionId: string
credentialId: string
updatedDate: Date
createdDate: Date
}

export interface IVariable {
Expand Down
15 changes: 15 additions & 0 deletions packages/server/src/controllers/export-import/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { NextFunction, Request, Response } from 'express'
import exportImportService from '../../services/export-import'

const getAll = async (req: Request, res: Response, next: NextFunction) => {
try {
const apiResponse = await exportImportService.getAll()
return res.json(apiResponse)
} catch (error) {
next(error)
}
}

export default {
getAll
}
5 changes: 4 additions & 1 deletion packages/server/src/database/entities/Credential.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* eslint-disable */
import { Entity, Column, PrimaryGeneratedColumn, Index, CreateDateColumn, UpdateDateColumn } from 'typeorm'
import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
import { ICredential } from '../../Interface'

@Entity()
Expand All @@ -23,4 +23,7 @@ export class Credential implements ICredential {
@Column({ type: 'timestamp' })
@UpdateDateColumn()
updatedDate: Date

@Column({ type: 'boolean', default: false })
isEncryptionKeyLost: boolean
}
23 changes: 23 additions & 0 deletions packages/server/src/database/entities/Encryption.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/* eslint-disable */
import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
import { IEncryption } from '../../Interface'

@Entity()
export class Encryption implements IEncryption {
@PrimaryGeneratedColumn('uuid')
id: string

@Column()
name: string

@Column()
encryptionKey: string

@Column({ type: 'timestamp' })
@CreateDateColumn()
createdDate: Date

@Column({ type: 'timestamp' })
@UpdateDateColumn()
updatedDate: Date
}
23 changes: 23 additions & 0 deletions packages/server/src/database/entities/EncryptionCredential.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/* eslint-disable */
import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
import { IEncryptionCredential } from '../../Interface'

@Entity()
export class EncryptionCredential implements IEncryptionCredential {
@PrimaryGeneratedColumn('uuid')
id: string

@Column()
encryptionId: string

@Column()
credentialId: string

@Column({ type: 'timestamp' })
@CreateDateColumn()
createdDate: Date

@Column({ type: 'timestamp' })
@UpdateDateColumn()
updatedDate: Date
}
10 changes: 7 additions & 3 deletions packages/server/src/database/entities/index.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
import { Assistant } from './Assistant'
import { ChatFlow } from './ChatFlow'
import { ChatMessage } from './ChatMessage'
import { ChatMessageFeedback } from './ChatMessageFeedback'
import { Credential } from './Credential'
import { Tool } from './Tool'
import { Assistant } from './Assistant'
import { Variable } from './Variable'
import { DocumentStore } from './DocumentStore'
import { DocumentStoreFileChunk } from './DocumentStoreFileChunk'
import { Encryption } from './Encryption'
import { EncryptionCredential } from './EncryptionCredential'
import { Lead } from './Lead'
import { Tool } from './Tool'
import { UpsertHistory } from './UpsertHistory'
import { Variable } from './Variable'
import { ApiKey } from './ApiKey'

export const entities = {
ChatFlow,
ChatMessage,
ChatMessageFeedback,
Credential,
Encryption,
EncryptionCredential,
Tool,
Assistant,
Variable,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { MigrationInterface, QueryRunner } from 'typeorm'

export class AddEncryption1721308320215 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE TABLE IF NOT EXISTS \`encryption\` (
\`id\` VARCHAR(36) NOT NULL,
\`name\` VARCHAR(255) NOT NULL,
\`encryptionKey\` VARCHAR(255) NOT NULL,
\`createdDate\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
\`updatedDate\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
PRIMARY KEY (\`id\`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;`
)
await queryRunner.query(
`CREATE TABLE IF NOT EXISTS \`encryption_credential\` (
\`id\` VARCHAR(255) NOT NULL,
\`encryptionId\` VARCHAR(36) NOT NULL,
\`credentialId\` VARCHAR(36) NOT NULL,
\`createdDate\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
\`updatedDate\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
FOREIGN KEY (\`encryptionId\`) REFERENCES \`encryption\`(\`id\`),
FOREIGN KEY (\`credentialId\`) REFERENCES \`credential\`(\`id\`),
PRIMARY KEY (\`id\`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;`
)
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE IF EXISTS \`encryption_credential\`;`)
await queryRunner.query(`DROP TABLE IF EXISTS \`encryption\`;`)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { MigrationInterface, QueryRunner } from 'typeorm'

export class AddIsEncryptionKeyLostToCredential1722473901281 implements MigrationInterface {
name = 'AddIsEncryptionKeyLostToCredential1722473901281'

public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`credential\` ADD COLUMN \`isEncryptionKeyLost\` TINYINT(1) NOT NULL DEFAULT 0;`)
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`credential\` DROP COLUMN \`isEncryptionKeyLost\`;`)
}
}
4 changes: 4 additions & 0 deletions packages/server/src/database/migrations/mariadb/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ import { AddAgentReasoningToChatMessage1714679514451 } from './1714679514451-Add
import { AddTypeToChatFlow1716300000000 } from './1716300000000-AddTypeToChatFlow'
import { AddApiKey1720230151480 } from './1720230151480-AddApiKey'
import { AddActionToChatMessage1721078251523 } from './1721078251523-AddActionToChatMessage'
import { AddEncryption1721308320215 } from './1721309779046-AddEncryption'
import { LongTextColumn1722301395521 } from './1722301395521-LongTextColumn'
import { AddIsEncryptionKeyLostToCredential1722473901281 } from './1722473901281-AddIsEncryptionKeyLostToCredential'

export const mariadbMigrations = [
Init1693840429259,
Expand All @@ -46,8 +48,10 @@ export const mariadbMigrations = [
AddLead1710832127079,
AddLeadToChatMessage1711538023578,
AddAgentReasoningToChatMessage1714679514451,
AddEncryption1721308320215,
AddTypeToChatFlow1716300000000,
AddApiKey1720230151480,
AddActionToChatMessage1721078251523,
AddIsEncryptionKeyLostToCredential1722473901281,
LongTextColumn1722301395521
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import { MigrationInterface, QueryRunner } from 'typeorm'

export class AddEncryption1721308320215 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE TABLE IF NOT EXISTS \`encryption\` (
\`id\` VARCHAR(36) PRIMARY KEY NOT NULL,
\`name\` VARCHAR(255) NOT NULL, \`encryptionKey\` VARCHAR(255) NOT NULL,
\`createdDate\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
\`updatedDate\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;`
)
await queryRunner.query(
`CREATE TABLE IF NOT EXISTS \`encryption_credential\` (
\`id\` VARCHAR(255) PRIMARY KEY NOT NULL,
\`encryptionId\` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
\`credentialId\` VARCHAR(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
\`createdDate\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
\`updatedDate\` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
FOREIGN KEY (\`encryptionId\`) REFERENCES \`encryption\`(\`id\`),
FOREIGN KEY (\`credentialId\`) REFERENCES \`credential\`(\`id\`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;`
)
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE IF EXISTS \`encryption_credential\`;`)
await queryRunner.query(`DROP TABLE IF EXISTS \`encryption\`;`)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { MigrationInterface, QueryRunner } from 'typeorm'

export class AddIsEncryptionKeyLostToCredential1722473901281 implements MigrationInterface {
name = 'AddIsEncryptionKeyLostToCredential1722473901281'

public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`credential\` ADD COLUMN \`isEncryptionKeyLost\` TINYINT(1) NOT NULL DEFAULT 0;`)
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE \`credential\` DROP COLUMN \`isEncryptionKeyLost\`;`)
}
}
6 changes: 5 additions & 1 deletion packages/server/src/database/migrations/mysql/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@ import { AddFeedback1707213626553 } from './1707213626553-AddFeedback'
import { AddUpsertHistoryEntity1709814301358 } from './1709814301358-AddUpsertHistoryEntity'
import { AddLead1710832127079 } from './1710832127079-AddLead'
import { AddLeadToChatMessage1711538023578 } from './1711538023578-AddLeadToChatMessage'
import { AddVectorStoreConfigToDocStore1715861032479 } from './1715861032479-AddVectorStoreConfigToDocStore'
import { AddDocumentStore1711637331047 } from './1711637331047-AddDocumentStore'
import { AddAgentReasoningToChatMessage1714679514451 } from './1714679514451-AddAgentReasoningToChatMessage'
import { AddVectorStoreConfigToDocStore1715861032479 } from './1715861032479-AddVectorStoreConfigToDocStore'
import { AddTypeToChatFlow1716300000000 } from './1716300000000-AddTypeToChatFlow'
import { AddApiKey1720230151480 } from './1720230151480-AddApiKey'
import { AddActionToChatMessage1721078251523 } from './1721078251523-AddActionToChatMessage'
import { AddEncryption1721308320215 } from './1721309779046-AddEncryption'
import { LongTextColumn1722301395521 } from './1722301395521-LongTextColumn'
import { AddIsEncryptionKeyLostToCredential1722473901281 } from './1722473901281-AddIsEncryptionKeyLostToCredential'

export const mysqlMigrations = [
Init1693840429259,
Expand All @@ -47,9 +49,11 @@ export const mysqlMigrations = [
AddLead1710832127079,
AddLeadToChatMessage1711538023578,
AddAgentReasoningToChatMessage1714679514451,
AddEncryption1721308320215,
AddTypeToChatFlow1716300000000,
AddVectorStoreConfigToDocStore1715861032479,
AddApiKey1720230151480,
AddActionToChatMessage1721078251523,
AddIsEncryptionKeyLostToCredential1722473901281,
LongTextColumn1722301395521
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { MigrationInterface, QueryRunner } from 'typeorm'

export class AddEncryption1721308320215 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE TABLE IF NOT EXISTS "encryption" (
"id" UUID PRIMARY KEY NOT NULL DEFAULT uuid_generate_v4(),
"name" VARCHAR NOT NULL,
"encryptionKey" VARCHAR NOT NULL,
"createdDate" TIMESTAMP NOT NULL DEFAULT now(),
"updatedDate" TIMESTAMP NOT NULL DEFAULT now()
);`
)
await queryRunner.query(
`CREATE TABLE IF NOT EXISTS "encryption_credential" (
"id" UUID PRIMARY KEY NOT NULL DEFAULT uuid_generate_v4(),
"encryptionId" UUID NOT NULL,
"credentialId" UUID NOT NULL,
"createdDate" TIMESTAMP NOT NULL DEFAULT now(),
"updatedDate" TIMESTAMP NOT NULL DEFAULT now(),
CONSTRAINT "fk_encryption" FOREIGN KEY ("encryptionId") REFERENCES "encryption"("id"),
CONSTRAINT "fk_credential" FOREIGN KEY ("credentialId") REFERENCES "credential"("id"));`
)
await queryRunner.query(`CREATE INDEX IF NOT EXISTS "idx_encryptionId" ON"encryption_credential"("encryptionId");`)
await queryRunner.query(`CREATE INDEX IF NOT EXISTS "idx_credentialId" ON"encryption_credential"("credentialId");`)
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE IF EXISTS encryption_credential;`)
await queryRunner.query(`DROP TABLE IF EXISTS encryption;`)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { MigrationInterface, QueryRunner } from 'typeorm'

export class AddIsEncryptionKeyLostToCredential1722473901281 implements MigrationInterface {
name = 'AddIsEncryptionKeyLostToCredential1722473901281'

public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "credential" ADD COLUMN "isEncryptionKeyLost" BOOLEAN NOT NULL DEFAULT FALSE;`)
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "credential" DROP COLUMN "isEncryptionKeyLost";`)
}
}
8 changes: 6 additions & 2 deletions packages/server/src/database/migrations/postgres/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,14 @@ import { AddUpsertHistoryEntity1709814301358 } from './1709814301358-AddUpsertHi
import { FieldTypes1710497452584 } from './1710497452584-FieldTypes'
import { AddLead1710832137905 } from './1710832137905-AddLead'
import { AddLeadToChatMessage1711538016098 } from './1711538016098-AddLeadToChatMessage'
import { AddVectorStoreConfigToDocStore1715861032479 } from './1715861032479-AddVectorStoreConfigToDocStore'
import { AddDocumentStore1711637331047 } from './1711637331047-AddDocumentStore'
import { AddAgentReasoningToChatMessage1714679514451 } from './1714679514451-AddAgentReasoningToChatMessage'
import { AddVectorStoreConfigToDocStore1715861032479 } from './1715861032479-AddVectorStoreConfigToDocStore'
import { AddTypeToChatFlow1716300000000 } from './1716300000000-AddTypeToChatFlow'
import { AddApiKey1720230151480 } from './1720230151480-AddApiKey'
import { AddActionToChatMessage1721078251523 } from './1721078251523-AddActionToChatMessage'
import { AddEncryption1721308320215 } from './1721309779046-AddEncryption'
import { AddIsEncryptionKeyLostToCredential1722473901281 } from './1722473901281-AddIsEncryptionKeyLostToCredential'

export const postgresMigrations = [
Init1693891895163,
Expand All @@ -48,8 +50,10 @@ export const postgresMigrations = [
AddLead1710832137905,
AddLeadToChatMessage1711538016098,
AddAgentReasoningToChatMessage1714679514451,
AddEncryption1721308320215,
AddTypeToChatFlow1716300000000,
AddVectorStoreConfigToDocStore1715861032479,
AddApiKey1720230151480,
AddActionToChatMessage1721078251523
AddActionToChatMessage1721078251523,
AddIsEncryptionKeyLostToCredential1722473901281
]
Loading
Loading