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

refactor: unify cloud database entities with enterprise #4570

Merged
merged 1 commit into from Apr 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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