Skip to content

Commit

Permalink
Merge pull request #4570 from activepieces/refactor/unify-cloud-with-ee
Browse files Browse the repository at this point in the history
refactor: unify cloud database entities with enterprise
  • Loading branch information
abuaboud committed Apr 27, 2024
2 parents cadb76d + 9fe0615 commit 820c38f
Show file tree
Hide file tree
Showing 61 changed files with 555 additions and 85 deletions.
6 changes: 6 additions & 0 deletions packages/server/api/src/app/database/database-common.ts
@@ -1,5 +1,7 @@
import { EntitySchemaColumnOptions } from 'typeorm'
import { getEdition } from '../helper/secret-helper'
import { DatabaseType, system, SystemProp } from '@activepieces/server-shared'
import { ApEdition } from '@activepieces/shared'

const databaseType = system.get(SystemProp.DB_TYPE)

Expand Down Expand Up @@ -43,3 +45,7 @@ export const BaseColumnSchemaPart = {
updateDate: true,
} as EntitySchemaColumnOptions,
}

export function isNotOneOfTheseEditions(editions: ApEdition[]): boolean {
return !editions.includes(getEdition())
}
26 changes: 7 additions & 19 deletions packages/server/api/src/app/database/database-connection.ts
Expand Up @@ -72,25 +72,6 @@ function getEntities(): EntitySchema<unknown>[] {

switch (edition) {
case ApEdition.CLOUD:
entities.push(
ProjectMemberEntity,
AppSumoEntity,
ReferralEntity,
ProjectPlanEntity,
FlowTemplateEntity,
ConnectionKeyEntity,
AppCredentialEntity,
CustomDomainEntity,
SigningKeyEntity,
OAuthAppEntity,
OtpEntity,
ApiKeyEntity,
GitRepoEntity,
AuditEventEntity,
ActivityEntity,
ProjectBillingEntity,
)
break
case ApEdition.ENTERPRISE:
entities.push(
ProjectMemberEntity,
Expand All @@ -104,6 +85,13 @@ function getEntities(): EntitySchema<unknown>[] {
GitRepoEntity,
AuditEventEntity,
ActivityEntity,

// CLOUD
AppSumoEntity,
ReferralEntity,
ConnectionKeyEntity,
AppCredentialEntity,
ProjectBillingEntity,
)
break
case ApEdition.COMMUNITY:
Expand Down
@@ -1,8 +1,13 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { logger } from '@activepieces/server-shared'
import { ApEdition } from '@activepieces/shared'
export class AddPieceTypeAndPackageTypeToFlowTemplate1696245170062
implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD])) {
return
}
const connection = queryRunner.connection
const templates = await connection.query('SELECT * FROM flow_template')
for (const template of templates) {
Expand All @@ -21,6 +26,9 @@ implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD])) {
return
}
const connection = queryRunner.connection
const templates = await connection.query('SELECT * FROM flow_template')
for (const template of templates) {
Expand Down
@@ -1,10 +1,15 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { logger } from '@activepieces/server-shared'
import { ApEdition } from '@activepieces/shared'

export class AddSigningKey1698602417745 implements MigrationInterface {
name = 'AddSigningKey1698602417745'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
CREATE TABLE "signing_key" (
"id" character varying(21) NOT NULL,
Expand All @@ -30,6 +35,9 @@ export class AddSigningKey1698602417745 implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "signing_key" DROP CONSTRAINT "fk_signing_key_generated_by"
`)
Expand Down
@@ -1,17 +1,25 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { ApEdition } from '@activepieces/shared'

export class AddDisplayNameToSigningKey1698698190965
implements MigrationInterface {
name = 'AddDisplayNameToSigningKey1698698190965'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "signing_key"
ADD "displayName" character varying NOT NULL
`)
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "signing_key" DROP COLUMN "displayName"
`)
Expand Down
@@ -1,9 +1,14 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { ApEdition } from '@activepieces/shared'

export class AddOAuth2AppEntiity1699221414907 implements MigrationInterface {
name = 'AddOAuth2AppEntiity1699221414907'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
CREATE TABLE "oauth_app" (
"id" character varying(21) NOT NULL,
Expand All @@ -26,6 +31,9 @@ export class AddOAuth2AppEntiity1699221414907 implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "oauth_app" DROP CONSTRAINT "fk_oauth_app_platform_id"
`)
Expand Down
@@ -1,10 +1,15 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { ApEdition } from '@activepieces/shared'

export class AddFilteredPiecesToPlatform1699281870038
implements MigrationInterface {
name = 'AddFilteredPiecesToPlatform1699281870038'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "platform"
ADD "filteredPieceNames" character varying array,
Expand All @@ -24,6 +29,9 @@ implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "platform" DROP COLUMN "filteredPieceBehavior"
`)
Expand Down
@@ -1,10 +1,15 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { ApEdition } from '@activepieces/shared'

export class AddSmtpAndPrivacyUrlToPlatform1699491705906
implements MigrationInterface {
name = 'AddSmtpAndPrivacyUrlToPlatform1699491705906'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "platform"
ADD "smtpHost" character varying
Expand Down Expand Up @@ -59,6 +64,9 @@ implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "platform" DROP COLUMN "cloudAuthEnabled"
`)
Expand Down
@@ -1,10 +1,15 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { ApEdition } from '@activepieces/shared'

export class RemoveUnusedFieldsinBilling1700132368636
implements MigrationInterface {
name = 'RemoveUnusedFieldsinBilling1700132368636'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "project_plan" DROP COLUMN "activeFlows"
`)
Expand Down Expand Up @@ -37,6 +42,9 @@ implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "project_usage"
ADD "bots" integer NOT NULL DEFAULT '0'
Expand Down
@@ -1,10 +1,15 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { logger } from '@activepieces/server-shared'
import { ApEdition } from '@activepieces/shared'

export class AddOtpEntity1700396157624 implements MigrationInterface {
name = 'AddOtpEntity1700396157624'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
CREATE TABLE "otp" (
"id" character varying(21) NOT NULL,
Expand All @@ -28,6 +33,9 @@ export class AddOtpEntity1700396157624 implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "otp" DROP CONSTRAINT "fk_otp_user_id"
`)
Expand Down
@@ -1,17 +1,25 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { ApEdition } from '@activepieces/shared'

export class AddPlatformDefaultLanguage1700406308445
implements MigrationInterface {
name = 'AddPlatformDefaultLanguage1700406308445'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "platform"
ADD "defaultLocale" character varying
`)
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "platform" DROP COLUMN "defaultLocale"
`)
Expand Down
@@ -1,11 +1,16 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { logger } from '@activepieces/server-shared'
import { ApEdition } from '@activepieces/shared'

export class MakeStripeCustomerIdNullable1700751925992
implements MigrationInterface {
name = 'MakeStripeCustomerIdNullable1700751925992'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
logger.info('MakeStripeCustomerIdNullable1700751925992 is up')
await queryRunner.query(`
ALTER TABLE "project_plan"
Expand All @@ -18,6 +23,9 @@ implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
logger.info('MakeStripeCustomerIdNullable1700751925992 is down')
await queryRunner.query(`
ALTER TABLE "project_plan"
Expand Down
@@ -1,10 +1,15 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { logger } from '@activepieces/server-shared'
import { ApEdition } from '@activepieces/shared'

export class AddStateToOtp1701084418793 implements MigrationInterface {
name = 'AddStateToOtp1701084418793'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "otp"
ADD "state" character varying NOT NULL
Expand All @@ -14,6 +19,9 @@ export class AddStateToOtp1701084418793 implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "otp" DROP COLUMN "state"
`)
Expand Down
@@ -1,11 +1,15 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNil } from '@activepieces/shared'
import { isNotOneOfTheseEditions } from '../../database-common'
import { ApEdition, isNil } from '@activepieces/shared'

export class MigrateEeUsersToOldestPlatform1701261357197
implements MigrationInterface {
name = 'MigrateEeUsersToOldestPlatform1701261357197'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.ENTERPRISE])) {
return
}
const result = await queryRunner.query(`
SELECT *
FROM platform
Expand All @@ -25,6 +29,9 @@ implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
UPDATE "user"
SET "platformId" = NULL
Expand Down
@@ -1,10 +1,15 @@
import { MigrationInterface, QueryRunner } from 'typeorm'
import { isNotOneOfTheseEditions } from '../../database-common'
import { ApEdition } from '@activepieces/shared'

export class ModifyProjectMembersAndRemoveUserId1701647565290
implements MigrationInterface {
name = 'ModifyProjectMembersAndRemoveUserId1701647565290'

public async up(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
ALTER TABLE "project_member"
ADD "email" character varying
Expand Down Expand Up @@ -40,6 +45,9 @@ implements MigrationInterface {
}

public async down(queryRunner: QueryRunner): Promise<void> {
if (isNotOneOfTheseEditions([ApEdition.CLOUD, ApEdition.ENTERPRISE])) {
return
}
await queryRunner.query(`
DROP INDEX "public"."idx_project_member_project_id_email_platform_id"
`)
Expand Down

0 comments on commit 820c38f

Please sign in to comment.