From 20834abb563933504a9e2147fd93ad1b6cf7a406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Fri, 2 May 2025 12:19:32 +0200 Subject: [PATCH] refactor(core): Move interrelated entities to `@n8n/db` (#15050) --- packages/@n8n/db/package.json | 5 +- .../db/src}/entities/api-key.ts | 2 +- .../db/src}/entities/auth-identity.ts | 5 +- .../db/src}/entities/credentials-entity.ts | 5 +- .../db/src}/entities/folder-tag-mapping.ts | 0 .../db/src}/entities/folder.ts | 9 +- packages/@n8n/db/src/entities/index.ts | 28 +++++ .../db/src}/entities/project-relation.ts | 5 +- .../db/src}/entities/project.ts | 7 +- .../db/src}/entities/shared-credentials.ts | 5 +- .../db/src}/entities/shared-workflow.ts | 5 +- .../db/src}/entities/tag-entity.ts | 2 +- .../src => @n8n/db/src/entities}/types-db.ts | 36 ++++-- .../db/src}/entities/user.ts | 16 +-- .../db/src}/entities/workflow-entity.ts | 6 +- .../db/src}/entities/workflow-statistics.ts | 11 +- .../db/src}/entities/workflow-tag-mapping.ts | 0 packages/@n8n/db/src/index.ts | 12 +- .../__tests__/no-url.validator.test.ts | 27 ++++ .../__tests__/no-xss.validator.test.ts | 118 ++++++++++++++++++ .../src/utils/validators/no-url.validator.ts | 27 ++++ .../src/utils/validators/no-xss.validator.ts | 33 +++++ .../permissions/src/global-roles.ee.ts} | 2 +- packages/@n8n/permissions/src/index.ts | 3 + .../permissions/src/project-roles.ee.ts} | 2 +- .../permissions/src/resource-roles.ee.ts} | 2 +- .../__tests__/active-workflow-manager.test.ts | 2 +- .../cli/src/__tests__/project.test-data.ts | 3 +- .../cli/src/__tests__/wait-tracker.test.ts | 4 +- .../workflow-execute-additional-data.test.ts | 2 +- .../cli/src/__tests__/workflow-runner.test.ts | 2 +- packages/cli/src/active-executions.ts | 2 +- packages/cli/src/active-workflow-manager.ts | 3 +- .../src/auth/__tests__/auth.service.test.ts | 2 +- packages/cli/src/auth/auth.service.ts | 2 +- packages/cli/src/auth/jwt.ts | 3 +- packages/cli/src/auth/methods/email.ts | 2 +- packages/cli/src/auth/methods/ldap.ts | 2 +- .../collaboration/collaboration.service.ts | 2 +- .../src/collaboration/collaboration.state.ts | 2 +- .../commands/__tests__/community-node.test.ts | 5 +- packages/cli/src/commands/community-node.ts | 3 +- packages/cli/src/commands/execute-batch.ts | 2 +- .../cli/src/commands/export/credentials.ts | 2 +- .../cli/src/commands/import/credentials.ts | 5 +- packages/cli/src/commands/import/workflow.ts | 2 +- .../cli/src/commands/user-management/reset.ts | 4 +- .../__tests__/api-keys.controller.test.ts | 4 +- .../__tests__/auth.controller.test.ts | 2 +- .../__tests__/me.controller.test.ts | 4 +- .../__tests__/owner.controller.test.ts | 4 +- .../__tests__/users.controller.test.ts | 2 +- .../cli/src/controllers/auth.controller.ts | 3 +- .../src/controllers/invitation.controller.ts | 2 +- packages/cli/src/controllers/me.controller.ts | 3 +- .../oauth1-credential.controller.test.ts | 4 +- .../oauth2-credential.controller.test.ts | 4 +- .../oauth/abstract-oauth.controller.ts | 3 +- .../cli/src/controllers/project.controller.ts | 2 +- .../cli/src/controllers/users.controller.ts | 6 +- .../workflow-statistics.controller.ts | 4 +- packages/cli/src/credentials-helper.ts | 3 +- .../__tests__/credentials.service.test.ts | 2 +- .../credentials/credentials-finder.service.ts | 7 +- .../src/credentials/credentials.controller.ts | 2 +- .../src/credentials/credentials.service.ee.ts | 6 +- .../src/credentials/credentials.service.ts | 7 +- .../entities/__tests__/user.entity.test.ts | 2 +- .../entities/auth-provider-sync-history.ts | 4 +- .../cli/src/databases/entities/auth-user.ts | 3 +- .../databases/entities/execution-entity.ts | 3 +- packages/cli/src/databases/entities/index.ts | 28 ++--- .../databases/entities/test-definition.ee.ts | 3 +- .../databases/entities/workflow-history.ts | 4 +- .../1620821879465-UniqueWorkflowNames.ts | 3 +- ...1630330987096-UpdateWorkflowCredentials.ts | 3 +- .../common/1658930531669-AddNodeIds.ts | 2 +- ...1726148419-RemoveWorkflowDataLoadedFlag.ts | 3 +- ...0580449-PurgeInvalidWorkflowConnections.ts | 2 +- .../common/1714133768519-CreateProject.ts | 2 +- .../common/1724951148974-AddApiKeysTable.ts | 2 +- .../1742918400000-AddScopesColumnToApiKeys.ts | 2 +- .../1681134145996-AddUserActivatedProperty.ts | 3 +- .../1681134145996-AddUserActivatedProperty.ts | 3 +- .../1681134145996-AddUserActivatedProperty.ts | 3 +- .../sqlite/1724951148974-AddApiKeysTable.ts | 2 +- .../__tests__/credentials.repository.test.ts | 2 +- .../__tests__/execution.repository.test.ts | 2 +- .../__tests__/folder.repository.test.ts | 6 +- .../__tests__/workflow-statistics.test.ts | 2 +- .../repositories/api-key.repository.ts | 3 +- .../repositories/auth-identity.repository.ts | 3 +- .../repositories/credentials.repository.ts | 3 +- .../repositories/execution.repository.ts | 18 ++- .../folder-tag-mapping.repository.ts | 3 +- .../repositories/folder.repository.ts | 7 +- .../project-relation.repository.ts | 3 +- .../repositories/project.repository.ts | 3 +- .../shared-credentials.repository.ts | 5 +- .../shared-workflow.repository.ts | 5 +- .../databases/repositories/tag.repository.ts | 6 +- .../databases/repositories/user.repository.ts | 5 +- .../workflow-statistics.repository.ts | 6 +- .../workflow-tag-mapping.repository.ts | 3 +- .../repositories/workflow.repository.ts | 14 ++- .../databases/subscribers/user-subscriber.ts | 3 +- .../source-control-export.service.test.ts | 4 +- .../source-control-git.service.test.ts | 3 +- .../source-control-import.service.ee.test.ts | 2 +- .../__tests__/source-control.service.test.ts | 6 +- .../source-control-export.service.ee.ts | 2 +- .../source-control-git.service.ee.ts | 2 +- .../source-control-import.service.ee.ts | 8 +- .../source-control.service.ee.ts | 4 +- .../source-control/types/import-result.ts | 3 +- .../errors/subworkflow-policy-denial.error.ts | 3 +- .../__tests__/test-runner.service.ee.test.ts | 2 +- .../test-runner/test-runner.service.ee.ts | 2 +- .../event-message-workflow.ts | 3 +- .../log-streaming-event-relay.test.ts | 2 +- .../__tests__/telemetry-event-relay.test.ts | 6 +- .../cli/src/events/maps/relay.event-map.ts | 4 +- .../execution-lifecycle-hooks.test.ts | 2 +- .../__tests__/save-execution-progress.test.ts | 2 +- .../shared/shared-hook-functions.ts | 2 +- .../__tests__/execution.service.test.ts | 2 +- .../__tests__/executions.controller.test.ts | 2 +- .../executions/execution-recovery.service.ts | 2 +- .../src/executions/execution.service.ee.ts | 2 +- .../cli/src/executions/execution.service.ts | 3 +- .../cli/src/executions/execution.types.ts | 2 +- .../src/executions/executions.controller.ts | 3 +- .../credentials-permission-checker.test.ts | 4 +- .../subworkflow-policy-checker.test.ts | 6 +- .../credentials-permission-checker.ts | 2 +- .../subworkflow-policy-checker.ts | 2 +- packages/cli/src/external-hooks.ts | 4 +- packages/cli/src/generic-helpers.ts | 5 +- packages/cli/src/interfaces.ts | 2 +- .../cli/src/ldap.ee/__tests__/helpers.test.ts | 4 +- packages/cli/src/ldap.ee/helpers.ee.ts | 3 +- packages/cli/src/ldap.ee/ldap.service.ee.ts | 2 +- packages/cli/src/license/license.service.ts | 2 +- .../list-query/__tests__/list-query.test.ts | 2 +- .../insights-collection.service.test.ts | 6 +- .../__tests__/insights.service.test.ts | 6 +- .../database/entities/__tests__/db-utils.ts | 2 +- .../insights/insights-collection.service.ts | 2 +- .../cli/src/permissions.ee/check-access.ts | 2 +- packages/cli/src/posthog/index.ts | 3 +- packages/cli/src/public-api/types.ts | 3 +- .../credentials/credentials.handler.ts | 2 +- .../credentials/credentials.service.ts | 6 +- .../v1/handlers/tags/tags.handler.ts | 2 +- .../v1/handlers/users/users.service.ee.ts | 2 +- .../handlers/workflows/workflows.handler.ts | 2 +- .../handlers/workflows/workflows.service.ts | 7 +- packages/cli/src/push/__tests__/index.test.ts | 2 +- .../src/push/__tests__/websocket.push.test.ts | 2 +- packages/cli/src/push/abstract.push.ts | 2 +- packages/cli/src/push/index.ts | 2 +- packages/cli/src/push/sse.push.ts | 3 +- packages/cli/src/push/types.ts | 2 +- packages/cli/src/push/websocket.push.ts | 3 +- packages/cli/src/requests.ts | 8 +- .../__tests__/job-processor.service.test.ts | 2 +- .../active-workflows.service.test.ts | 4 +- .../credentials-finder.service.test.ts | 8 +- .../services/__tests__/naming.service.test.ts | 5 +- .../__tests__/ownership.service.test.ts | 8 +- .../services/__tests__/user.service.test.ts | 2 +- .../workflow-statistics.service.test.ts | 6 +- packages/cli/src/services/access.service.ts | 2 +- .../src/services/active-workflows.service.ts | 2 +- .../services/credentials-tester.service.ts | 2 +- packages/cli/src/services/cta.service.ts | 2 +- packages/cli/src/services/folder.service.ts | 2 +- packages/cli/src/services/hooks.service.ts | 5 +- packages/cli/src/services/import.service.ts | 8 +- .../cli/src/services/ownership.service.ts | 4 +- .../cli/src/services/project.service.ee.ts | 5 +- .../src/services/public-api-key.service.ts | 4 +- packages/cli/src/services/role.service.ts | 32 +++-- packages/cli/src/services/tag.service.ts | 3 +- packages/cli/src/services/user.service.ts | 4 +- .../services/workflow-statistics.service.ts | 2 +- .../saml/__tests__/saml-helpers.test.ts | 4 +- .../__tests__/saml.controller.ee.test.ts | 2 +- packages/cli/src/sso.ee/saml/saml-helpers.ts | 4 +- .../cli/src/sso.ee/saml/saml.service.ee.ts | 3 +- packages/cli/src/sso.ee/sso-helpers.ts | 2 +- .../email/user-management-mailer.ts | 2 +- .../webhooks/__tests__/waiting-forms.test.ts | 2 +- .../__tests__/waiting-webhooks.test.ts | 2 +- packages/cli/src/webhooks/waiting-forms.ts | 2 +- packages/cli/src/webhooks/waiting-webhooks.ts | 2 +- packages/cli/src/webhooks/webhook-helpers.ts | 2 +- .../workflow-execution.service.test.ts | 2 +- .../workflows/workflow-execution.service.ts | 4 +- .../src/workflows/workflow-finder.service.ts | 3 +- .../workflow-history.service.ee.test.ts | 2 +- .../workflow-history.service.ee.ts | 2 +- .../src/workflows/workflow-sharing.service.ts | 3 +- .../cli/src/workflows/workflow.service.ee.ts | 15 ++- .../cli/src/workflows/workflow.service.ts | 6 +- .../cli/src/workflows/workflows.controller.ts | 5 +- .../cli/test/integration/ai/ai.api.test.ts | 4 +- .../cli/test/integration/api-keys.api.test.ts | 2 +- .../cli/test/integration/auth.api.test.ts | 2 +- .../collaboration.service.test.ts | 2 +- .../integration/commands/reset.cmd.test.ts | 2 +- .../controllers/invitation/assertions.ts | 3 +- .../invitation.controller.integration.test.ts | 2 +- .../controllers/oauth/oauth2.api.test.ts | 4 +- .../integration/credentials-helper.test.ts | 2 +- .../credentials/credentials.api.ee.test.ts | 6 +- .../credentials/credentials.api.test.ts | 6 +- .../credentials/credentials.service.test.ts | 4 +- .../cli/test/integration/cta.service.test.ts | 4 +- .../repositories/project.repository.test.ts | 2 +- .../test/integration/debug.controller.test.ts | 2 +- .../environments/source-control.api.test.ts | 2 +- .../evaluation/test-definitions.api.test.ts | 2 +- .../evaluation/test-runs.api.test.ts | 2 +- .../cli/test/integration/eventbus.ee.test.ts | 2 +- .../cli/test/integration/eventbus.test.ts | 3 +- .../execution.service.integration.test.ts | 2 +- .../integration/executions.controller.test.ts | 3 +- .../credentials-permission-checker.test.ts | 4 +- .../folder/folder.controller.test.ts | 4 +- .../test/integration/import.service.test.ts | 6 +- .../test/integration/ldap/ldap.api.test.ts | 2 +- .../license-metrics.repository.test.ts | 2 +- .../cli/test/integration/license.api.test.ts | 2 +- packages/cli/test/integration/me.api.test.ts | 2 +- .../cli/test/integration/mfa/mfa.api.test.ts | 2 +- .../cli/test/integration/owner.api.test.ts | 2 +- .../integration/password-reset.api.test.ts | 2 +- .../cli/test/integration/project.api.test.ts | 2 +- .../public-api/credentials.test.ts | 2 +- .../endpoints-with-scopes-enabled.test.ts | 2 +- .../integration/public-api/executions.test.ts | 3 +- .../test/integration/public-api/tags.test.ts | 2 +- .../integration/public-api/users.ee.test.ts | 2 +- .../integration/public-api/workflows.test.ts | 6 +- .../cli/test/integration/role.api.test.ts | 4 +- .../test/integration/saml/saml.api.test.ts | 3 +- .../test/integration/shared/db/credentials.ts | 10 +- .../cli/test/integration/shared/db/folders.ts | 6 +- .../test/integration/shared/db/projects.ts | 6 +- .../cli/test/integration/shared/db/tags.ts | 4 +- .../cli/test/integration/shared/db/users.ts | 4 +- .../shared/db/workflow-statistics.ts | 2 +- .../test/integration/shared/db/workflows.ts | 8 +- packages/cli/test/integration/shared/types.ts | 9 +- .../test/integration/shared/utils/index.ts | 2 +- .../integration/shared/utils/test-server.ts | 2 +- .../test/integration/shared/utils/users.ts | 4 +- .../cli/test/integration/shared/workflow.ts | 3 +- .../cli/test/integration/users.api.test.ts | 2 +- .../cli/test/integration/webhooks.api.test.ts | 2 +- .../integration/workflow-history.api.test.ts | 2 +- .../workflow-sharing.service.test.ts | 2 +- .../workflows/workflow.service.ee.test.ts | 2 +- ...er-with-active-workflow-manager.ee.test.ts | 3 +- .../workflows/workflows.controller.ee.test.ts | 6 +- .../workflows/workflows.controller.test.ts | 4 +- packages/cli/test/shared/mock-objects.ts | 7 +- pnpm-lock.yaml | 9 ++ turbo.json | 1 + 270 files changed, 699 insertions(+), 566 deletions(-) rename packages/{cli/src/databases => @n8n/db/src}/entities/api-key.ts (88%) rename packages/{cli/src/databases => @n8n/db/src}/entities/auth-identity.ts (86%) rename packages/{cli/src/databases => @n8n/db/src}/entities/credentials-entity.ts (90%) rename packages/{cli/src/databases => @n8n/db/src}/entities/folder-tag-mapping.ts (100%) rename packages/{cli/src/databases => @n8n/db/src}/entities/folder.ts (81%) rename packages/{cli/src/databases => @n8n/db/src}/entities/project-relation.ts (75%) rename packages/{cli/src/databases => @n8n/db/src}/entities/project.ts (81%) rename packages/{cli/src/databases => @n8n/db/src}/entities/shared-credentials.ts (80%) rename packages/{cli/src/databases => @n8n/db/src}/entities/shared-workflow.ts (80%) rename packages/{cli/src/databases => @n8n/db/src}/entities/tag-entity.ts (93%) rename packages/{cli/src => @n8n/db/src/entities}/types-db.ts (87%) rename packages/{cli/src/databases => @n8n/db/src}/entities/user.ts (89%) rename packages/{cli/src/databases => @n8n/db/src}/entities/workflow-entity.ts (93%) rename packages/{cli/src/databases => @n8n/db/src}/entities/workflow-statistics.ts (62%) rename packages/{cli/src/databases => @n8n/db/src}/entities/workflow-tag-mapping.ts (100%) create mode 100644 packages/@n8n/db/src/utils/validators/__tests__/no-url.validator.test.ts create mode 100644 packages/@n8n/db/src/utils/validators/__tests__/no-xss.validator.test.ts create mode 100644 packages/@n8n/db/src/utils/validators/no-url.validator.ts create mode 100644 packages/@n8n/db/src/utils/validators/no-xss.validator.ts rename packages/{cli/src/permissions.ee/global-roles.ts => @n8n/permissions/src/global-roles.ee.ts} (97%) rename packages/{cli/src/permissions.ee/project-roles.ts => @n8n/permissions/src/project-roles.ee.ts} (97%) rename packages/{cli/src/permissions.ee/resource-roles.ts => @n8n/permissions/src/resource-roles.ee.ts} (92%) diff --git a/packages/@n8n/db/package.json b/packages/@n8n/db/package.json index 01b476eb3a..7a5b798a9e 100644 --- a/packages/@n8n/db/package.json +++ b/packages/@n8n/db/package.json @@ -23,11 +23,14 @@ "dependencies": { "@n8n/config": "workspace:^", "@n8n/di": "workspace:^", + "@n8n/permissions": "workspace:^", "@n8n/typeorm": "catalog:", + "class-validator": "0.14.0", "n8n-core": "workspace:^", "n8n-workflow": "workspace:^", "nanoid": "catalog:", - "reflect-metadata": "catalog:" + "reflect-metadata": "catalog:", + "xss": "catalog:" }, "devDependencies": { "@n8n/typescript-config": "workspace:*" diff --git a/packages/cli/src/databases/entities/api-key.ts b/packages/@n8n/db/src/entities/api-key.ts similarity index 88% rename from packages/cli/src/databases/entities/api-key.ts rename to packages/@n8n/db/src/entities/api-key.ts index db29187a4e..4c7cfb41ce 100644 --- a/packages/cli/src/databases/entities/api-key.ts +++ b/packages/@n8n/db/src/entities/api-key.ts @@ -1,7 +1,7 @@ -import { JsonColumn, WithTimestampsAndStringId } from '@n8n/db'; import type { ApiKeyScope } from '@n8n/permissions'; import { Column, Entity, Index, ManyToOne, Unique } from '@n8n/typeorm'; +import { JsonColumn, WithTimestampsAndStringId } from './abstract-entity'; import { User } from './user'; @Entity('user_api_keys') diff --git a/packages/cli/src/databases/entities/auth-identity.ts b/packages/@n8n/db/src/entities/auth-identity.ts similarity index 86% rename from packages/cli/src/databases/entities/auth-identity.ts rename to packages/@n8n/db/src/entities/auth-identity.ts index ee0c2283fd..3046c467a3 100644 --- a/packages/cli/src/databases/entities/auth-identity.ts +++ b/packages/@n8n/db/src/entities/auth-identity.ts @@ -1,10 +1,9 @@ -import { WithTimestamps } from '@n8n/db'; import { Column, Entity, ManyToOne, PrimaryColumn, Unique } from '@n8n/typeorm'; +import { WithTimestamps } from './abstract-entity'; +import { AuthProviderType } from './types-db'; import { User } from './user'; -export type AuthProviderType = 'ldap' | 'email' | 'saml'; // | 'google'; - @Entity() @Unique(['providerId', 'providerType']) export class AuthIdentity extends WithTimestamps { diff --git a/packages/cli/src/databases/entities/credentials-entity.ts b/packages/@n8n/db/src/entities/credentials-entity.ts similarity index 90% rename from packages/cli/src/databases/entities/credentials-entity.ts rename to packages/@n8n/db/src/entities/credentials-entity.ts index 58457237b0..fa42709392 100644 --- a/packages/cli/src/databases/entities/credentials-entity.ts +++ b/packages/@n8n/db/src/entities/credentials-entity.ts @@ -1,10 +1,9 @@ -import { WithTimestampsAndStringId } from '@n8n/db'; import { Column, Entity, Index, OneToMany } from '@n8n/typeorm'; import { IsObject, IsString, Length } from 'class-validator'; -import type { ICredentialsDb } from '@/types-db'; - +import { WithTimestampsAndStringId } from './abstract-entity'; import type { SharedCredentials } from './shared-credentials'; +import type { ICredentialsDb } from './types-db'; @Entity() export class CredentialsEntity extends WithTimestampsAndStringId implements ICredentialsDb { diff --git a/packages/cli/src/databases/entities/folder-tag-mapping.ts b/packages/@n8n/db/src/entities/folder-tag-mapping.ts similarity index 100% rename from packages/cli/src/databases/entities/folder-tag-mapping.ts rename to packages/@n8n/db/src/entities/folder-tag-mapping.ts diff --git a/packages/cli/src/databases/entities/folder.ts b/packages/@n8n/db/src/entities/folder.ts similarity index 81% rename from packages/cli/src/databases/entities/folder.ts rename to packages/@n8n/db/src/entities/folder.ts index 224d2c1e69..e388f768d0 100644 --- a/packages/cli/src/databases/entities/folder.ts +++ b/packages/@n8n/db/src/entities/folder.ts @@ -1,4 +1,3 @@ -import { WithTimestampsAndStringId } from '@n8n/db'; import { Column, Entity, @@ -9,14 +8,10 @@ import { OneToMany, } from '@n8n/typeorm'; +import { WithTimestampsAndStringId } from './abstract-entity'; import { Project } from './project'; import { TagEntity } from './tag-entity'; -import { type WorkflowEntity } from './workflow-entity'; - -export type FolderWithWorkflowAndSubFolderCount = Folder & { - workflowCount: boolean; - subFolderCount: number; -}; +import type { WorkflowEntity } from './workflow-entity'; @Entity() export class Folder extends WithTimestampsAndStringId { diff --git a/packages/@n8n/db/src/entities/index.ts b/packages/@n8n/db/src/entities/index.ts index de4d04be7e..cd53a9fda2 100644 --- a/packages/@n8n/db/src/entities/index.ts +++ b/packages/@n8n/db/src/entities/index.ts @@ -1,11 +1,25 @@ +import { ApiKey } from './api-key'; +import { AuthIdentity } from './auth-identity'; +import { CredentialsEntity } from './credentials-entity'; import { EventDestinations } from './event-destinations'; +import { Folder } from './folder'; +import { FolderTagMapping } from './folder-tag-mapping'; import { InstalledNodes } from './installed-nodes'; import { InstalledPackages } from './installed-packages'; import { InvalidAuthToken } from './invalid-auth-token'; import { ProcessedData } from './processed-data'; +import { Project } from './project'; +import { ProjectRelation } from './project-relation'; import { Settings } from './settings'; +import { SharedCredentials } from './shared-credentials'; +import { SharedWorkflow } from './shared-workflow'; +import { TagEntity } from './tag-entity'; +import { User } from './user'; import { Variables } from './variables'; import { WebhookEntity } from './webhook-entity'; +import { WorkflowEntity } from './workflow-entity'; +import { WorkflowStatistics } from './workflow-statistics'; +import { WorkflowTagMapping } from './workflow-tag-mapping'; export { EventDestinations, @@ -15,5 +29,19 @@ export { ProcessedData, Settings, Variables, + ApiKey, WebhookEntity, + AuthIdentity, + CredentialsEntity, + Folder, + Project, + ProjectRelation, + SharedCredentials, + SharedWorkflow, + TagEntity, + User, + WorkflowEntity, + WorkflowStatistics, + WorkflowTagMapping, + FolderTagMapping, }; diff --git a/packages/cli/src/databases/entities/project-relation.ts b/packages/@n8n/db/src/entities/project-relation.ts similarity index 75% rename from packages/cli/src/databases/entities/project-relation.ts rename to packages/@n8n/db/src/entities/project-relation.ts index c1ca7c967d..4d345d417f 100644 --- a/packages/cli/src/databases/entities/project-relation.ts +++ b/packages/@n8n/db/src/entities/project-relation.ts @@ -1,14 +1,13 @@ -import { ProjectRole } from '@n8n/api-types'; -import { WithTimestamps } from '@n8n/db'; import { Column, Entity, ManyToOne, PrimaryColumn } from '@n8n/typeorm'; +import { WithTimestamps } from './abstract-entity'; import { Project } from './project'; import { User } from './user'; @Entity() export class ProjectRelation extends WithTimestamps { @Column({ type: 'varchar' }) - role: ProjectRole; + role: 'project:personalOwner' | 'project:admin' | 'project:editor' | 'project:viewer'; @ManyToOne('User', 'projectRelations') user: User; diff --git a/packages/cli/src/databases/entities/project.ts b/packages/@n8n/db/src/entities/project.ts similarity index 81% rename from packages/cli/src/databases/entities/project.ts rename to packages/@n8n/db/src/entities/project.ts index 789b4fb5fb..f95a31da3a 100644 --- a/packages/cli/src/databases/entities/project.ts +++ b/packages/@n8n/db/src/entities/project.ts @@ -1,7 +1,6 @@ -import { ProjectIcon, ProjectType } from '@n8n/api-types'; -import { WithTimestampsAndStringId } from '@n8n/db'; import { Column, Entity, OneToMany } from '@n8n/typeorm'; +import { WithTimestampsAndStringId } from './abstract-entity'; import type { ProjectRelation } from './project-relation'; import type { SharedCredentials } from './shared-credentials'; import type { SharedWorkflow } from './shared-workflow'; @@ -12,10 +11,10 @@ export class Project extends WithTimestampsAndStringId { name: string; @Column({ type: 'varchar', length: 36 }) - type: ProjectType; + type: 'personal' | 'team'; @Column({ type: 'json', nullable: true }) - icon: ProjectIcon; + icon: { type: 'emoji' | 'icon'; value: string } | null; @OneToMany('ProjectRelation', 'project') projectRelations: ProjectRelation[]; diff --git a/packages/cli/src/databases/entities/shared-credentials.ts b/packages/@n8n/db/src/entities/shared-credentials.ts similarity index 80% rename from packages/cli/src/databases/entities/shared-credentials.ts rename to packages/@n8n/db/src/entities/shared-credentials.ts index 4eb9bb5695..c121c1a022 100644 --- a/packages/cli/src/databases/entities/shared-credentials.ts +++ b/packages/@n8n/db/src/entities/shared-credentials.ts @@ -1,10 +1,9 @@ -import { WithTimestamps } from '@n8n/db'; import { Column, Entity, ManyToOne, PrimaryColumn } from '@n8n/typeorm'; +import { WithTimestamps } from './abstract-entity'; import { CredentialsEntity } from './credentials-entity'; import { Project } from './project'; - -export type CredentialSharingRole = 'credential:owner' | 'credential:user'; +import { CredentialSharingRole } from './types-db'; @Entity() export class SharedCredentials extends WithTimestamps { diff --git a/packages/cli/src/databases/entities/shared-workflow.ts b/packages/@n8n/db/src/entities/shared-workflow.ts similarity index 80% rename from packages/cli/src/databases/entities/shared-workflow.ts rename to packages/@n8n/db/src/entities/shared-workflow.ts index 3422dcabba..43d42e57f0 100644 --- a/packages/cli/src/databases/entities/shared-workflow.ts +++ b/packages/@n8n/db/src/entities/shared-workflow.ts @@ -1,11 +1,10 @@ -import { WithTimestamps } from '@n8n/db'; import { Column, Entity, ManyToOne, PrimaryColumn } from '@n8n/typeorm'; +import { WithTimestamps } from './abstract-entity'; import { Project } from './project'; +import { WorkflowSharingRole } from './types-db'; import { WorkflowEntity } from './workflow-entity'; -export type WorkflowSharingRole = 'workflow:owner' | 'workflow:editor'; - @Entity() export class SharedWorkflow extends WithTimestamps { @Column() diff --git a/packages/cli/src/databases/entities/tag-entity.ts b/packages/@n8n/db/src/entities/tag-entity.ts similarity index 93% rename from packages/cli/src/databases/entities/tag-entity.ts rename to packages/@n8n/db/src/entities/tag-entity.ts index bbb3b1c307..b0d539af17 100644 --- a/packages/cli/src/databases/entities/tag-entity.ts +++ b/packages/@n8n/db/src/entities/tag-entity.ts @@ -1,7 +1,7 @@ -import { WithTimestampsAndStringId } from '@n8n/db'; import { Column, Entity, Index, ManyToMany, OneToMany } from '@n8n/typeorm'; import { IsString, Length } from 'class-validator'; +import { WithTimestampsAndStringId } from './abstract-entity'; import type { FolderTagMapping } from './folder-tag-mapping'; import type { WorkflowEntity } from './workflow-entity'; import type { WorkflowTagMapping } from './workflow-tag-mapping'; diff --git a/packages/cli/src/types-db.ts b/packages/@n8n/db/src/entities/types-db.ts similarity index 87% rename from packages/cli/src/types-db.ts rename to packages/@n8n/db/src/entities/types-db.ts index d43eeb80bf..8495e6e808 100644 --- a/packages/cli/src/types-db.ts +++ b/packages/@n8n/db/src/entities/types-db.ts @@ -12,15 +12,14 @@ import type { IUser, } from 'n8n-workflow'; -import type { AuthProviderType } from '@/databases/entities/auth-identity'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { Folder } from '@/databases/entities/folder'; -import type { Project } from '@/databases/entities/project'; -import type { SharedCredentials } from '@/databases/entities/shared-credentials'; -import type { SharedWorkflow } from '@/databases/entities/shared-workflow'; -import type { TagEntity } from '@/databases/entities/tag-entity'; -import type { User } from '@/databases/entities/user'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; +import type { CredentialsEntity } from './credentials-entity'; +import type { Folder } from './folder'; +import type { Project } from './project'; +import type { SharedCredentials } from './shared-credentials'; +import type { SharedWorkflow } from './shared-workflow'; +import type { TagEntity } from './tag-entity'; +import type { User } from './user'; +import type { WorkflowEntity } from './workflow-entity'; export type UsageCount = { usageCount: number; @@ -260,3 +259,22 @@ export namespace ListQueryDb { type SlimUser = Pick; export type ScopesField = { scopes: Scope[] }; + +export const enum StatisticsNames { + productionSuccess = 'production_success', + productionError = 'production_error', + manualSuccess = 'manual_success', + manualError = 'manual_error', + dataLoaded = 'data_loaded', +} + +export type CredentialSharingRole = 'credential:owner' | 'credential:user'; + +export type WorkflowSharingRole = 'workflow:owner' | 'workflow:editor'; + +export type AuthProviderType = 'ldap' | 'email' | 'saml'; // | 'google'; + +export type FolderWithWorkflowAndSubFolderCount = Folder & { + workflowCount: boolean; + subFolderCount: number; +}; diff --git a/packages/cli/src/databases/entities/user.ts b/packages/@n8n/db/src/entities/user.ts similarity index 89% rename from packages/cli/src/databases/entities/user.ts rename to packages/@n8n/db/src/entities/user.ts index f80cc670c8..729dd32ce4 100644 --- a/packages/cli/src/databases/entities/user.ts +++ b/packages/@n8n/db/src/entities/user.ts @@ -1,5 +1,5 @@ -import { JsonColumn, WithTimestamps, objectRetriever, lowerCaser } from '@n8n/db'; import { hasScope, type ScopeOptions, type Scope, GlobalRole } from '@n8n/permissions'; +import { GLOBAL_OWNER_SCOPES, GLOBAL_MEMBER_SCOPES, GLOBAL_ADMIN_SCOPES } from '@n8n/permissions'; import { AfterLoad, AfterUpdate, @@ -14,20 +14,16 @@ import { import { IsEmail, IsString, Length } from 'class-validator'; import type { IUser, IUserSettings } from 'n8n-workflow'; -import { - GLOBAL_OWNER_SCOPES, - GLOBAL_MEMBER_SCOPES, - GLOBAL_ADMIN_SCOPES, -} from '@/permissions.ee/global-roles'; -import type { IPersonalizationSurveyAnswers } from '@/types-db'; -import { NoUrl } from '@/validators/no-url.validator'; -import { NoXss } from '@/validators/no-xss.validator'; - +import { JsonColumn, WithTimestamps } from './abstract-entity'; import type { ApiKey } from './api-key'; import type { AuthIdentity } from './auth-identity'; import type { ProjectRelation } from './project-relation'; import type { SharedCredentials } from './shared-credentials'; import type { SharedWorkflow } from './shared-workflow'; +import type { IPersonalizationSurveyAnswers } from './types-db'; +import { lowerCaser, objectRetriever } from '../utils/transformers'; +import { NoUrl } from '../utils/validators/no-url.validator'; +import { NoXss } from '../utils/validators/no-xss.validator'; const STATIC_SCOPE_MAP: Record = { 'global:owner': GLOBAL_OWNER_SCOPES, diff --git a/packages/cli/src/databases/entities/workflow-entity.ts b/packages/@n8n/db/src/entities/workflow-entity.ts similarity index 93% rename from packages/cli/src/databases/entities/workflow-entity.ts rename to packages/@n8n/db/src/entities/workflow-entity.ts index a331014e7e..e673011df4 100644 --- a/packages/cli/src/databases/entities/workflow-entity.ts +++ b/packages/@n8n/db/src/entities/workflow-entity.ts @@ -1,4 +1,3 @@ -import { JsonColumn, WithTimestampsAndStringId, dbType, objectRetriever, sqlite } from '@n8n/db'; import { Column, Entity, @@ -13,13 +12,14 @@ import { Length } from 'class-validator'; import { IConnections, IDataObject, IWorkflowSettings, WorkflowFEMeta } from 'n8n-workflow'; import type { IBinaryKeyData, INode, IPairedItemData } from 'n8n-workflow'; -import type { IWorkflowDb } from '@/types-db'; - +import { JsonColumn, WithTimestampsAndStringId, dbType } from './abstract-entity'; import { type Folder } from './folder'; import type { SharedWorkflow } from './shared-workflow'; import type { TagEntity } from './tag-entity'; +import type { IWorkflowDb } from './types-db'; import type { WorkflowStatistics } from './workflow-statistics'; import type { WorkflowTagMapping } from './workflow-tag-mapping'; +import { objectRetriever, sqlite } from '../utils/transformers'; @Entity() export class WorkflowEntity extends WithTimestampsAndStringId implements IWorkflowDb { diff --git a/packages/cli/src/databases/entities/workflow-statistics.ts b/packages/@n8n/db/src/entities/workflow-statistics.ts similarity index 62% rename from packages/cli/src/databases/entities/workflow-statistics.ts rename to packages/@n8n/db/src/entities/workflow-statistics.ts index f2971f3750..e189462d42 100644 --- a/packages/cli/src/databases/entities/workflow-statistics.ts +++ b/packages/@n8n/db/src/entities/workflow-statistics.ts @@ -1,16 +1,9 @@ -import { DateTimeColumn } from '@n8n/db'; import { Column, Entity, ManyToOne, PrimaryColumn } from '@n8n/typeorm'; +import { DateTimeColumn } from './abstract-entity'; +import { StatisticsNames } from './types-db'; import { WorkflowEntity } from './workflow-entity'; -export const enum StatisticsNames { - productionSuccess = 'production_success', - productionError = 'production_error', - manualSuccess = 'manual_success', - manualError = 'manual_error', - dataLoaded = 'data_loaded', -} - @Entity() export class WorkflowStatistics { @Column() diff --git a/packages/cli/src/databases/entities/workflow-tag-mapping.ts b/packages/@n8n/db/src/entities/workflow-tag-mapping.ts similarity index 100% rename from packages/cli/src/databases/entities/workflow-tag-mapping.ts rename to packages/@n8n/db/src/entities/workflow-tag-mapping.ts diff --git a/packages/@n8n/db/src/index.ts b/packages/@n8n/db/src/index.ts index 3378270ec7..ca3aa32096 100644 --- a/packages/@n8n/db/src/index.ts +++ b/packages/@n8n/db/src/index.ts @@ -14,13 +14,5 @@ export { isStringArray } from './utils/is-string-array'; export { separate } from './utils/separate'; export { idStringifier, lowerCaser, objectRetriever, sqlite } from './utils/transformers'; -export { - EventDestinations, - InstalledNodes, - InstalledPackages, - InvalidAuthToken, - ProcessedData, - Settings, - Variables, - WebhookEntity, -} from './entities'; +export * from './entities'; +export * from './entities/types-db'; diff --git a/packages/@n8n/db/src/utils/validators/__tests__/no-url.validator.test.ts b/packages/@n8n/db/src/utils/validators/__tests__/no-url.validator.test.ts new file mode 100644 index 0000000000..82a0281cc2 --- /dev/null +++ b/packages/@n8n/db/src/utils/validators/__tests__/no-url.validator.test.ts @@ -0,0 +1,27 @@ +import { validate } from 'class-validator'; + +import { NoUrl } from '../no-url.validator'; + +describe('NoUrl', () => { + class Entity { + @NoUrl() + name = ''; + } + + const entity = new Entity(); + + describe('URLs', () => { + const URLS = ['http://google.com', 'www.domain.tld', 'n8n.io']; + + for (const str of URLS) { + test(`should block ${str}`, async () => { + entity.name = str; + const errors = await validate(entity); + expect(errors).toHaveLength(1); + const [error] = errors; + expect(error.property).toEqual('name'); + expect(error.constraints).toEqual({ NoUrl: 'Potentially malicious string' }); + }); + } + }); +}); diff --git a/packages/@n8n/db/src/utils/validators/__tests__/no-xss.validator.test.ts b/packages/@n8n/db/src/utils/validators/__tests__/no-xss.validator.test.ts new file mode 100644 index 0000000000..d755cf3e92 --- /dev/null +++ b/packages/@n8n/db/src/utils/validators/__tests__/no-xss.validator.test.ts @@ -0,0 +1,118 @@ +import { validate } from 'class-validator'; + +import { NoXss } from '../no-xss.validator'; + +describe('NoXss', () => { + class Entity { + @NoXss() + name = ''; + + @NoXss() + timestamp = ''; + + @NoXss() + version = ''; + + @NoXss({ each: true }) + categories: string[] = []; + } + + const entity = new Entity(); + + describe('Scripts', () => { + // eslint-disable-next-line n8n-local-rules/no-unneeded-backticks + const XSS_STRINGS = ['", `Jack`]; + + for (const str of XSS_STRINGS) { + test(`should block ${str}`, async () => { + entity.name = str; + const errors = await validate(entity); + expect(errors).toHaveLength(1); + const [error] = errors; + expect(error.property).toEqual('name'); + expect(error.constraints).toEqual({ NoXss: 'Potentially malicious string' }); + }); + } + }); + + describe('Names', () => { + const VALID_NAMES = [ + 'Johann Strauß', + 'Вагиф Сәмәдоғлу', + 'René Magritte', + 'সুকুমার রায়', + 'མགོན་པོ་རྡོ་རྗེ།', + 'عبدالحليم حافظ', + ]; + + for (const name of VALID_NAMES) { + test(`should allow ${name}`, async () => { + entity.name = name; + await expect(validate(entity)).resolves.toHaveLength(0); + }); + } + }); + + describe('ISO-8601 timestamps', () => { + const VALID_TIMESTAMPS = ['2022-01-01T00:00:00.000Z', '2022-01-01T00:00:00.000+02:00']; + + for (const timestamp of VALID_TIMESTAMPS) { + test(`should allow ${timestamp}`, async () => { + entity.timestamp = timestamp; + await expect(validate(entity)).resolves.toHaveLength(0); + }); + } + }); + + describe('Semver versions', () => { + const VALID_VERSIONS = ['1.0.0', '1.0.0-alpha.1']; + + for (const version of VALID_VERSIONS) { + test(`should allow ${version}`, async () => { + entity.version = version; + await expect(validate(entity)).resolves.toHaveLength(0); + }); + } + }); + + describe('Miscellaneous strings', () => { + const VALID_MISCELLANEOUS_STRINGS = ['CI/CD']; + + for (const str of VALID_MISCELLANEOUS_STRINGS) { + test(`should allow ${str}`, async () => { + entity.name = str; + await expect(validate(entity)).resolves.toHaveLength(0); + }); + } + }); + + describe('Array of strings', () => { + const VALID_STRING_ARRAYS = [ + ['cloud-infrastructure-orchestration', 'ci-cd', 'reporting'], + ['automationGoalDevops', 'cloudComputing', 'containerization'], + ]; + + for (const arr of VALID_STRING_ARRAYS) { + test(`should allow array: ${JSON.stringify(arr)}`, async () => { + entity.categories = arr; + await expect(validate(entity)).resolves.toHaveLength(0); + }); + } + + const INVALID_STRING_ARRAYS = [ + ['valid-string', '', 'another-valid-string'], + ['', 'valid-string'], + ]; + + for (const arr of INVALID_STRING_ARRAYS) { + test(`should reject array containing invalid string: ${JSON.stringify(arr)}`, async () => { + entity.categories = arr; + const errors = await validate(entity); + expect(errors).toHaveLength(1); + const [error] = errors; + expect(error.property).toEqual('categories'); + expect(error.constraints).toEqual({ NoXss: 'Potentially malicious string' }); + }); + } + }); +}); diff --git a/packages/@n8n/db/src/utils/validators/no-url.validator.ts b/packages/@n8n/db/src/utils/validators/no-url.validator.ts new file mode 100644 index 0000000000..0cdacaddc1 --- /dev/null +++ b/packages/@n8n/db/src/utils/validators/no-url.validator.ts @@ -0,0 +1,27 @@ +import type { ValidationOptions, ValidatorConstraintInterface } from 'class-validator'; +import { registerDecorator, ValidatorConstraint } from 'class-validator'; + +const URL_REGEX = /^(https?:\/\/|www\.)|(\.[\p{L}\d-]+)/iu; + +@ValidatorConstraint({ name: 'NoUrl', async: false }) +class NoUrlConstraint implements ValidatorConstraintInterface { + validate(value: string) { + return !URL_REGEX.test(value); + } + + defaultMessage() { + return 'Potentially malicious string'; + } +} + +export function NoUrl(options?: ValidationOptions) { + return function (object: object, propertyName: string) { + registerDecorator({ + name: 'NoUrl', + target: object.constructor, + propertyName, + options, + validator: NoUrlConstraint, + }); + }; +} diff --git a/packages/@n8n/db/src/utils/validators/no-xss.validator.ts b/packages/@n8n/db/src/utils/validators/no-xss.validator.ts new file mode 100644 index 0000000000..0171cba070 --- /dev/null +++ b/packages/@n8n/db/src/utils/validators/no-xss.validator.ts @@ -0,0 +1,33 @@ +import type { ValidationOptions, ValidatorConstraintInterface } from 'class-validator'; +import { registerDecorator, ValidatorConstraint } from 'class-validator'; +import xss from 'xss'; + +@ValidatorConstraint({ name: 'NoXss', async: false }) +class NoXssConstraint implements ValidatorConstraintInterface { + validate(value: unknown) { + if (typeof value !== 'string') return false; + + return ( + value === + xss(value, { + whiteList: {}, // no tags are allowed + }) + ); + } + + defaultMessage() { + return 'Potentially malicious string'; + } +} + +export function NoXss(options?: ValidationOptions) { + return function (object: object, propertyName: string) { + registerDecorator({ + name: 'NoXss', + target: object.constructor, + propertyName, + options, + validator: NoXssConstraint, + }); + }; +} diff --git a/packages/cli/src/permissions.ee/global-roles.ts b/packages/@n8n/permissions/src/global-roles.ee.ts similarity index 97% rename from packages/cli/src/permissions.ee/global-roles.ts rename to packages/@n8n/permissions/src/global-roles.ee.ts index e15153ffba..73f6b8a6f3 100644 --- a/packages/cli/src/permissions.ee/global-roles.ts +++ b/packages/@n8n/permissions/src/global-roles.ee.ts @@ -1,4 +1,4 @@ -import type { Scope } from '@n8n/permissions'; +import type { Scope } from './types.ee'; export const GLOBAL_OWNER_SCOPES: Scope[] = [ 'annotationTag:create', diff --git a/packages/@n8n/permissions/src/index.ts b/packages/@n8n/permissions/src/index.ts index ae20358303..0373844c41 100644 --- a/packages/@n8n/permissions/src/index.ts +++ b/packages/@n8n/permissions/src/index.ts @@ -2,3 +2,6 @@ export type * from './types.ee'; export * from './constants.ee'; export * from './hasScope.ee'; export * from './combineScopes.ee'; +export * from './global-roles.ee'; +export * from './project-roles.ee'; +export * from './resource-roles.ee'; diff --git a/packages/cli/src/permissions.ee/project-roles.ts b/packages/@n8n/permissions/src/project-roles.ee.ts similarity index 97% rename from packages/cli/src/permissions.ee/project-roles.ts rename to packages/@n8n/permissions/src/project-roles.ee.ts index 9a4547ea43..cd6b4fbef4 100644 --- a/packages/cli/src/permissions.ee/project-roles.ts +++ b/packages/@n8n/permissions/src/project-roles.ee.ts @@ -1,4 +1,4 @@ -import type { Scope } from '@n8n/permissions'; +import type { Scope } from './types.ee'; /** * Diff between admin in personal project and admin in other projects: diff --git a/packages/cli/src/permissions.ee/resource-roles.ts b/packages/@n8n/permissions/src/resource-roles.ee.ts similarity index 92% rename from packages/cli/src/permissions.ee/resource-roles.ts rename to packages/@n8n/permissions/src/resource-roles.ee.ts index e1be52f430..36aa44f086 100644 --- a/packages/cli/src/permissions.ee/resource-roles.ts +++ b/packages/@n8n/permissions/src/resource-roles.ee.ts @@ -1,4 +1,4 @@ -import type { Scope } from '@n8n/permissions'; +import type { Scope } from './types.ee'; export const CREDENTIALS_SHARING_OWNER_SCOPES: Scope[] = [ 'credential:read', diff --git a/packages/cli/src/__tests__/active-workflow-manager.test.ts b/packages/cli/src/__tests__/active-workflow-manager.test.ts index 2e579a3df1..15a5363e2d 100644 --- a/packages/cli/src/__tests__/active-workflow-manager.test.ts +++ b/packages/cli/src/__tests__/active-workflow-manager.test.ts @@ -1,3 +1,4 @@ +import type { WorkflowEntity } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import type { InstanceSettings } from 'n8n-core'; import type { @@ -10,7 +11,6 @@ import type { import { Workflow } from 'n8n-workflow'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import type { NodeTypes } from '@/node-types'; diff --git a/packages/cli/src/__tests__/project.test-data.ts b/packages/cli/src/__tests__/project.test-data.ts index cd176bd291..c279c18da6 100644 --- a/packages/cli/src/__tests__/project.test-data.ts +++ b/packages/cli/src/__tests__/project.test-data.ts @@ -1,8 +1,7 @@ +import type { Project } from '@n8n/db'; import { nanoId, date, firstName, lastName, email } from 'minifaker'; import 'minifaker/locales/en'; -import type { Project } from '@/databases/entities/project'; - type RawProjectData = Pick; const projectName = `${firstName()} ${lastName()} <${email}>`; diff --git a/packages/cli/src/__tests__/wait-tracker.test.ts b/packages/cli/src/__tests__/wait-tracker.test.ts index ba23293f7b..2af5b399f4 100644 --- a/packages/cli/src/__tests__/wait-tracker.test.ts +++ b/packages/cli/src/__tests__/wait-tracker.test.ts @@ -1,14 +1,14 @@ +import type { Project } from '@n8n/db'; +import type { IExecutionResponse } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import type { InstanceSettings } from 'n8n-core'; import type { IRun, IWorkflowBase } from 'n8n-workflow'; import { createDeferredPromise } from 'n8n-workflow'; import type { ActiveExecutions } from '@/active-executions'; -import type { Project } from '@/databases/entities/project'; import type { ExecutionRepository } from '@/databases/repositories/execution.repository'; import type { MultiMainSetup } from '@/scaling/multi-main-setup.ee'; import type { OwnershipService } from '@/services/ownership.service'; -import type { IExecutionResponse } from '@/types-db'; import { WaitTracker } from '@/wait-tracker'; import type { WorkflowRunner } from '@/workflow-runner'; import { mockLogger } from '@test/mocking'; diff --git a/packages/cli/src/__tests__/workflow-execute-additional-data.test.ts b/packages/cli/src/__tests__/workflow-execute-additional-data.test.ts index b06698875c..743749a2de 100644 --- a/packages/cli/src/__tests__/workflow-execute-additional-data.test.ts +++ b/packages/cli/src/__tests__/workflow-execute-additional-data.test.ts @@ -1,4 +1,5 @@ import { GlobalConfig } from '@n8n/config'; +import type { WorkflowEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; import type { IWorkflowBase } from 'n8n-workflow'; @@ -13,7 +14,6 @@ import type PCancelable from 'p-cancelable'; import { ActiveExecutions } from '@/active-executions'; import { CredentialsHelper } from '@/credentials-helper'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { ExecutionRepository } from '@/databases/repositories/execution.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { VariablesService } from '@/environments.ee/variables/variables.service.ee'; diff --git a/packages/cli/src/__tests__/workflow-runner.test.ts b/packages/cli/src/__tests__/workflow-runner.test.ts index 5473b717fc..09fbcb24d8 100644 --- a/packages/cli/src/__tests__/workflow-runner.test.ts +++ b/packages/cli/src/__tests__/workflow-runner.test.ts @@ -1,3 +1,4 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; import { DirectedGraph, WorkflowExecute } from 'n8n-core'; @@ -20,7 +21,6 @@ import PCancelable from 'p-cancelable'; import { ActiveExecutions } from '@/active-executions'; import config from '@/config'; import type { ExecutionEntity } from '@/databases/entities/execution-entity'; -import type { User } from '@/databases/entities/user'; import { ExecutionNotFoundError } from '@/errors/execution-not-found-error'; import { CredentialsPermissionChecker } from '@/executions/pre-execution-checks'; import { ManualExecutionService } from '@/manual-execution.service'; diff --git a/packages/cli/src/active-executions.ts b/packages/cli/src/active-executions.ts index 60d8f73262..869c1e3c78 100644 --- a/packages/cli/src/active-executions.ts +++ b/packages/cli/src/active-executions.ts @@ -1,3 +1,4 @@ +import type { CreateExecutionPayload, IExecutionDb } from '@n8n/db'; import { Service } from '@n8n/di'; import { Logger } from 'n8n-core'; import type { @@ -18,7 +19,6 @@ import { isWorkflowIdValid } from '@/utils'; import { ConcurrencyControlService } from './concurrency/concurrency-control.service'; import config from './config'; -import type { CreateExecutionPayload, IExecutionDb } from './types-db'; @Service() export class ActiveExecutions { diff --git a/packages/cli/src/active-workflow-manager.ts b/packages/cli/src/active-workflow-manager.ts index 4c94f16a7b..fe1b60c384 100644 --- a/packages/cli/src/active-workflow-manager.ts +++ b/packages/cli/src/active-workflow-manager.ts @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { WorkflowsConfig } from '@n8n/config'; +import type { WorkflowEntity, IWorkflowDb } from '@n8n/db'; import { OnLeaderStepdown, OnLeaderTakeover, OnShutdown } from '@n8n/decorators'; import { Service } from '@n8n/di'; import { chunk } from 'lodash'; @@ -41,7 +42,6 @@ import { WORKFLOW_REACTIVATE_INITIAL_TIMEOUT, WORKFLOW_REACTIVATE_MAX_TIMEOUT, } from '@/constants'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { executeErrorWorkflow } from '@/execution-lifecycle/execute-error-workflow'; import { ExecutionService } from '@/executions/execution.service'; @@ -50,7 +50,6 @@ import { NodeTypes } from '@/node-types'; import { Publisher } from '@/scaling/pubsub/publisher.service'; import { ActiveWorkflowsService } from '@/services/active-workflows.service'; import { OrchestrationService } from '@/services/orchestration.service'; -import type { IWorkflowDb } from '@/types-db'; import * as WebhookHelpers from '@/webhooks/webhook-helpers'; import { WebhookService } from '@/webhooks/webhook.service'; import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data'; diff --git a/packages/cli/src/auth/__tests__/auth.service.test.ts b/packages/cli/src/auth/__tests__/auth.service.test.ts index 268d929eac..db93ec1bc6 100644 --- a/packages/cli/src/auth/__tests__/auth.service.test.ts +++ b/packages/cli/src/auth/__tests__/auth.service.test.ts @@ -1,4 +1,5 @@ import type { GlobalConfig } from '@n8n/config'; +import type { User } from '@n8n/db'; import type { NextFunction, Response } from 'express'; import { mock } from 'jest-mock-extended'; import jwt from 'jsonwebtoken'; @@ -6,7 +7,6 @@ import jwt from 'jsonwebtoken'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; import { AUTH_COOKIE_NAME, Time } from '@/constants'; -import type { User } from '@/databases/entities/user'; import type { InvalidAuthTokenRepository } from '@/databases/repositories/invalid-auth-token.repository'; import type { UserRepository } from '@/databases/repositories/user.repository'; import type { AuthenticatedRequest } from '@/requests'; diff --git a/packages/cli/src/auth/auth.service.ts b/packages/cli/src/auth/auth.service.ts index c646081853..e53c4ee0b1 100644 --- a/packages/cli/src/auth/auth.service.ts +++ b/packages/cli/src/auth/auth.service.ts @@ -1,4 +1,5 @@ import { GlobalConfig } from '@n8n/config'; +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import { createHash } from 'crypto'; import type { NextFunction, Response } from 'express'; @@ -7,7 +8,6 @@ import { Logger } from 'n8n-core'; import config from '@/config'; import { AUTH_COOKIE_NAME, RESPONSE_ERROR_MESSAGES, Time } from '@/constants'; -import type { User } from '@/databases/entities/user'; import { InvalidAuthTokenRepository } from '@/databases/repositories/invalid-auth-token.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; diff --git a/packages/cli/src/auth/jwt.ts b/packages/cli/src/auth/jwt.ts index 0e35263462..67baab4de3 100644 --- a/packages/cli/src/auth/jwt.ts +++ b/packages/cli/src/auth/jwt.ts @@ -1,8 +1,7 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Response } from 'express'; -import type { User } from '@/databases/entities/user'; - import { AuthService } from './auth.service'; // This method is still used by cloud hooks. diff --git a/packages/cli/src/auth/methods/email.ts b/packages/cli/src/auth/methods/email.ts index 61f344afaf..d2088d4036 100644 --- a/packages/cli/src/auth/methods/email.ts +++ b/packages/cli/src/auth/methods/email.ts @@ -1,6 +1,6 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/auth/methods/ldap.ts b/packages/cli/src/auth/methods/ldap.ts index 5466d0d8cb..ecb2b7a0d7 100644 --- a/packages/cli/src/auth/methods/ldap.ts +++ b/packages/cli/src/auth/methods/ldap.ts @@ -1,6 +1,6 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; -import type { User } from '@/databases/entities/user'; import { EventService } from '@/events/event.service'; import { createLdapUserOnLocalDb, diff --git a/packages/cli/src/collaboration/collaboration.service.ts b/packages/cli/src/collaboration/collaboration.service.ts index 34575de4cd..70c5334f4c 100644 --- a/packages/cli/src/collaboration/collaboration.service.ts +++ b/packages/cli/src/collaboration/collaboration.service.ts @@ -1,11 +1,11 @@ import type { PushPayload } from '@n8n/api-types'; +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import { ErrorReporter } from 'n8n-core'; import type { Workflow } from 'n8n-workflow'; import { UnexpectedError } from 'n8n-workflow'; import { CollaborationState } from '@/collaboration/collaboration.state'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { Push } from '@/push'; import type { OnPushMessage } from '@/push/types'; diff --git a/packages/cli/src/collaboration/collaboration.state.ts b/packages/cli/src/collaboration/collaboration.state.ts index f2a3b31f24..49eae0d14d 100644 --- a/packages/cli/src/collaboration/collaboration.state.ts +++ b/packages/cli/src/collaboration/collaboration.state.ts @@ -1,9 +1,9 @@ import type { Iso8601DateTimeString } from '@n8n/api-types'; +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import type { Workflow } from 'n8n-workflow'; import { Time } from '@/constants'; -import type { User } from '@/databases/entities/user'; import { CacheService } from '@/services/cache/cache.service'; type WorkflowCacheHash = Record; diff --git a/packages/cli/src/commands/__tests__/community-node.test.ts b/packages/cli/src/commands/__tests__/community-node.test.ts index 31d461a851..63892b5bea 100644 --- a/packages/cli/src/commands/__tests__/community-node.test.ts +++ b/packages/cli/src/commands/__tests__/community-node.test.ts @@ -1,10 +1,9 @@ import { type InstalledNodes } from '@n8n/db'; +import { type CredentialsEntity } from '@n8n/db'; +import { type User } from '@n8n/db'; import { type Config } from '@oclif/core'; import { mock } from 'jest-mock-extended'; -import { type CredentialsEntity } from '@/databases/entities/credentials-entity'; -import { type User } from '@/databases/entities/user'; - import { CommunityNode } from '../community-node'; describe('uninstallCredential', () => { diff --git a/packages/cli/src/commands/community-node.ts b/packages/cli/src/commands/community-node.ts index d628535914..b06bc0958a 100644 --- a/packages/cli/src/commands/community-node.ts +++ b/packages/cli/src/commands/community-node.ts @@ -1,9 +1,8 @@ -import { type InstalledNodes, type InstalledPackages } from '@n8n/db'; +import { type InstalledNodes, type InstalledPackages, type User } from '@n8n/db'; import { Container } from '@n8n/di'; import { Flags } from '@oclif/core'; import { CredentialsService } from '@/credentials/credentials.service'; -import { type User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; diff --git a/packages/cli/src/commands/execute-batch.ts b/packages/cli/src/commands/execute-batch.ts index cc63528e8f..42ff4e8e12 100644 --- a/packages/cli/src/commands/execute-batch.ts +++ b/packages/cli/src/commands/execute-batch.ts @@ -1,4 +1,5 @@ /* eslint-disable @typescript-eslint/no-loop-func */ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { Flags } from '@oclif/core'; import fs from 'fs'; @@ -10,7 +11,6 @@ import os from 'os'; import { sep } from 'path'; import { ActiveExecutions } from '@/active-executions'; -import type { User } from '@/databases/entities/user'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { OwnershipService } from '@/services/ownership.service'; import { findCliWorkflowStart } from '@/utils'; diff --git a/packages/cli/src/commands/export/credentials.ts b/packages/cli/src/commands/export/credentials.ts index d30fe93251..335c91bade 100644 --- a/packages/cli/src/commands/export/credentials.ts +++ b/packages/cli/src/commands/export/credentials.ts @@ -1,3 +1,4 @@ +import type { ICredentialsDb } from '@n8n/db'; import { Container } from '@n8n/di'; import { Flags } from '@oclif/core'; import fs from 'fs'; @@ -7,7 +8,6 @@ import path from 'path'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import type { ICredentialsDecryptedDb } from '@/interfaces'; -import type { ICredentialsDb } from '@/types-db'; import { BaseCommand } from '../base-command'; diff --git a/packages/cli/src/commands/import/credentials.ts b/packages/cli/src/commands/import/credentials.ts index 0108a994fd..092e729a50 100644 --- a/packages/cli/src/commands/import/credentials.ts +++ b/packages/cli/src/commands/import/credentials.ts @@ -1,3 +1,4 @@ +import { CredentialsEntity, Project, User, SharedCredentials } from '@n8n/db'; import { Container } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import type { EntityManager } from '@n8n/typeorm'; @@ -9,10 +10,6 @@ import type { ICredentialsEncrypted } from 'n8n-workflow'; import { jsonParse, UserError } from 'n8n-workflow'; import { UM_FIX_INSTRUCTION } from '@/constants'; -import { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import { Project } from '@/databases/entities/project'; -import { SharedCredentials } from '@/databases/entities/shared-credentials'; -import { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import * as Db from '@/db'; diff --git a/packages/cli/src/commands/import/workflow.ts b/packages/cli/src/commands/import/workflow.ts index f790e692f6..d13270534e 100644 --- a/packages/cli/src/commands/import/workflow.ts +++ b/packages/cli/src/commands/import/workflow.ts @@ -1,4 +1,5 @@ import { generateNanoId } from '@n8n/db'; +import type { WorkflowEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import { Flags } from '@oclif/core'; import glob from 'fast-glob'; @@ -7,7 +8,6 @@ import type { IWorkflowBase, WorkflowId } from 'n8n-workflow'; import { jsonParse, UserError } from 'n8n-workflow'; import { UM_FIX_INSTRUCTION } from '@/constants'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; diff --git a/packages/cli/src/commands/user-management/reset.ts b/packages/cli/src/commands/user-management/reset.ts index 3e8a1c14f1..63f46707c9 100644 --- a/packages/cli/src/commands/user-management/reset.ts +++ b/packages/cli/src/commands/user-management/reset.ts @@ -1,7 +1,7 @@ +import type { CredentialsEntity } from '@n8n/db'; +import { User } from '@n8n/db'; import { Container } from '@n8n/di'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SettingsRepository } from '@/databases/repositories/settings.repository'; diff --git a/packages/cli/src/controllers/__tests__/api-keys.controller.test.ts b/packages/cli/src/controllers/__tests__/api-keys.controller.test.ts index 3fd0bc5ba2..a58a312d77 100644 --- a/packages/cli/src/controllers/__tests__/api-keys.controller.test.ts +++ b/packages/cli/src/controllers/__tests__/api-keys.controller.test.ts @@ -1,8 +1,8 @@ +import type { User } from '@n8n/db'; +import type { ApiKey } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; -import type { ApiKey } from '@/databases/entities/api-key'; -import type { User } from '@/databases/entities/user'; import { EventService } from '@/events/event.service'; import type { AuthenticatedRequest } from '@/requests'; import { PublicApiKeyService } from '@/services/public-api-key.service'; diff --git a/packages/cli/src/controllers/__tests__/auth.controller.test.ts b/packages/cli/src/controllers/__tests__/auth.controller.test.ts index 0abebb5ecf..43c37401ac 100644 --- a/packages/cli/src/controllers/__tests__/auth.controller.test.ts +++ b/packages/cli/src/controllers/__tests__/auth.controller.test.ts @@ -1,4 +1,5 @@ import type { LoginRequestDto } from '@n8n/api-types'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Response } from 'express'; import { mock } from 'jest-mock-extended'; @@ -7,7 +8,6 @@ import { Logger } from 'n8n-core'; import * as auth from '@/auth'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { EventService } from '@/events/event.service'; import { License } from '@/license'; diff --git a/packages/cli/src/controllers/__tests__/me.controller.test.ts b/packages/cli/src/controllers/__tests__/me.controller.test.ts index d960065ef5..8fb7da2fcf 100644 --- a/packages/cli/src/controllers/__tests__/me.controller.test.ts +++ b/packages/cli/src/controllers/__tests__/me.controller.test.ts @@ -1,4 +1,6 @@ import { UserUpdateRequestDto } from '@n8n/api-types'; +import type { User } from '@n8n/db'; +import type { PublicUser } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Response } from 'express'; import { mock, anyObject } from 'jest-mock-extended'; @@ -6,7 +8,6 @@ import jwt from 'jsonwebtoken'; import { AUTH_COOKIE_NAME } from '@/constants'; import { MeController } from '@/controllers/me.controller'; -import type { User } from '@/databases/entities/user'; import { AuthUserRepository } from '@/databases/repositories/auth-user.repository'; import { InvalidAuthTokenRepository } from '@/databases/repositories/invalid-auth-token.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; @@ -18,7 +19,6 @@ import { License } from '@/license'; import { MfaService } from '@/mfa/mfa.service'; import type { AuthenticatedRequest, MeRequest } from '@/requests'; import { UserService } from '@/services/user.service'; -import type { PublicUser } from '@/types-db'; import { mockInstance } from '@test/mocking'; import { badPasswords } from '@test/test-data'; diff --git a/packages/cli/src/controllers/__tests__/owner.controller.test.ts b/packages/cli/src/controllers/__tests__/owner.controller.test.ts index 5d2fc4c971..44a8888d09 100644 --- a/packages/cli/src/controllers/__tests__/owner.controller.test.ts +++ b/packages/cli/src/controllers/__tests__/owner.controller.test.ts @@ -1,4 +1,6 @@ import type { DismissBannerRequestDto, OwnerSetupRequestDto } from '@n8n/api-types'; +import type { User } from '@n8n/db'; +import type { PublicUser } from '@n8n/db'; import type { Response } from 'express'; import { mock } from 'jest-mock-extended'; import type { Logger } from 'n8n-core'; @@ -6,7 +8,6 @@ import type { Logger } from 'n8n-core'; import type { AuthService } from '@/auth/auth.service'; import config from '@/config'; import { OwnerController } from '@/controllers/owner.controller'; -import type { User } from '@/databases/entities/user'; import type { SettingsRepository } from '@/databases/repositories/settings.repository'; import type { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; @@ -14,7 +15,6 @@ import type { EventService } from '@/events/event.service'; import type { AuthenticatedRequest } from '@/requests'; import type { PasswordUtility } from '@/services/password.utility'; import type { UserService } from '@/services/user.service'; -import type { PublicUser } from '@/types-db'; describe('OwnerController', () => { const configGetSpy = jest.spyOn(config, 'getEnv'); diff --git a/packages/cli/src/controllers/__tests__/users.controller.test.ts b/packages/cli/src/controllers/__tests__/users.controller.test.ts index 3afa448801..b266e2aee7 100644 --- a/packages/cli/src/controllers/__tests__/users.controller.test.ts +++ b/packages/cli/src/controllers/__tests__/users.controller.test.ts @@ -1,6 +1,6 @@ +import type { User } from '@n8n/db'; import { mock } from 'jest-mock-extended'; -import type { User } from '@/databases/entities/user'; import type { UserRepository } from '@/databases/repositories/user.repository'; import type { EventService } from '@/events/event.service'; import type { AuthenticatedRequest } from '@/requests'; diff --git a/packages/cli/src/controllers/auth.controller.ts b/packages/cli/src/controllers/auth.controller.ts index d2e5e58cc8..0d4f85f997 100644 --- a/packages/cli/src/controllers/auth.controller.ts +++ b/packages/cli/src/controllers/auth.controller.ts @@ -1,4 +1,5 @@ import { LoginRequestDto, ResolveSignupTokenQueryDto } from '@n8n/api-types'; +import type { User, PublicUser } from '@n8n/db'; import { Body, Get, Post, Query, RestController } from '@n8n/decorators'; import { isEmail } from 'class-validator'; import { Response } from 'express'; @@ -7,7 +8,6 @@ import { Logger } from 'n8n-core'; import { handleEmailLogin, handleLdapLogin } from '@/auth'; import { AuthService } from '@/auth/auth.service'; import { RESPONSE_ERROR_MESSAGES } from '@/constants'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; @@ -23,7 +23,6 @@ import { isLdapCurrentAuthenticationMethod, isSamlCurrentAuthenticationMethod, } from '@/sso.ee/sso-helpers'; -import type { PublicUser } from '@/types-db'; @RestController() export class AuthController { diff --git a/packages/cli/src/controllers/invitation.controller.ts b/packages/cli/src/controllers/invitation.controller.ts index 89013547e0..088c15d60f 100644 --- a/packages/cli/src/controllers/invitation.controller.ts +++ b/packages/cli/src/controllers/invitation.controller.ts @@ -1,4 +1,5 @@ import { AcceptInvitationRequestDto, InviteUsersRequestDto } from '@n8n/api-types'; +import type { User } from '@n8n/db'; import { Post, GlobalScope, RestController, Body, Param } from '@n8n/decorators'; import { Response } from 'express'; import { Logger } from 'n8n-core'; @@ -6,7 +7,6 @@ import { Logger } from 'n8n-core'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; import { RESPONSE_ERROR_MESSAGES } from '@/constants'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { ForbiddenError } from '@/errors/response-errors/forbidden.error'; diff --git a/packages/cli/src/controllers/me.controller.ts b/packages/cli/src/controllers/me.controller.ts index 5c058f700f..15d0314247 100644 --- a/packages/cli/src/controllers/me.controller.ts +++ b/packages/cli/src/controllers/me.controller.ts @@ -4,13 +4,13 @@ import { SettingsUpdateRequestDto, UserUpdateRequestDto, } from '@n8n/api-types'; +import type { User, PublicUser } from '@n8n/db'; import { Body, Patch, Post, RestController } from '@n8n/decorators'; import { plainToInstance } from 'class-transformer'; import { Response } from 'express'; import { Logger } from 'n8n-core'; import { AuthService } from '@/auth/auth.service'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { InvalidMfaCodeError } from '@/errors/response-errors/invalid-mfa-code.error'; @@ -22,7 +22,6 @@ import { AuthenticatedRequest, MeRequest } from '@/requests'; import { PasswordUtility } from '@/services/password.utility'; import { UserService } from '@/services/user.service'; import { isSamlLicensedAndEnabled } from '@/sso.ee/saml/saml-helpers'; -import type { PublicUser } from '@/types-db'; import { PersonalizationSurveyAnswersV4 } from './survey-answers.dto'; @RestController('/me') diff --git a/packages/cli/src/controllers/oauth/__tests__/oauth1-credential.controller.test.ts b/packages/cli/src/controllers/oauth/__tests__/oauth1-credential.controller.test.ts index 1a98545d3c..faae8bebfa 100644 --- a/packages/cli/src/controllers/oauth/__tests__/oauth1-credential.controller.test.ts +++ b/packages/cli/src/controllers/oauth/__tests__/oauth1-credential.controller.test.ts @@ -1,3 +1,5 @@ +import type { CredentialsEntity } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import Csrf from 'csrf'; import type { Response } from 'express'; @@ -10,8 +12,6 @@ import { Time } from '@/constants'; import { OAuth1CredentialController } from '@/controllers/oauth/oauth1-credential.controller'; import { CredentialsFinderService } from '@/credentials/credentials-finder.service'; import { CredentialsHelper } from '@/credentials-helper'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { VariablesService } from '@/environments.ee/variables/variables.service.ee'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; diff --git a/packages/cli/src/controllers/oauth/__tests__/oauth2-credential.controller.test.ts b/packages/cli/src/controllers/oauth/__tests__/oauth2-credential.controller.test.ts index 063347a60e..19fb5ec276 100644 --- a/packages/cli/src/controllers/oauth/__tests__/oauth2-credential.controller.test.ts +++ b/packages/cli/src/controllers/oauth/__tests__/oauth2-credential.controller.test.ts @@ -1,3 +1,5 @@ +import type { CredentialsEntity } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import Csrf from 'csrf'; import { type Response } from 'express'; @@ -10,8 +12,6 @@ import { CREDENTIAL_BLANKING_VALUE, Time } from '@/constants'; import { OAuth2CredentialController } from '@/controllers/oauth/oauth2-credential.controller'; import { CredentialsFinderService } from '@/credentials/credentials-finder.service'; import { CredentialsHelper } from '@/credentials-helper'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { VariablesService } from '@/environments.ee/variables/variables.service.ee'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; diff --git a/packages/cli/src/controllers/oauth/abstract-oauth.controller.ts b/packages/cli/src/controllers/oauth/abstract-oauth.controller.ts index 61e3f6b9bf..ad6c76caaf 100644 --- a/packages/cli/src/controllers/oauth/abstract-oauth.controller.ts +++ b/packages/cli/src/controllers/oauth/abstract-oauth.controller.ts @@ -1,4 +1,5 @@ import { GlobalConfig } from '@n8n/config'; +import type { CredentialsEntity, ICredentialsDb } from '@n8n/db'; import { Service } from '@n8n/di'; import Csrf from 'csrf'; import type { Response } from 'express'; @@ -9,7 +10,6 @@ import { jsonParse, UnexpectedError } from 'n8n-workflow'; import { RESPONSE_ERROR_MESSAGES, Time } from '@/constants'; import { CredentialsFinderService } from '@/credentials/credentials-finder.service'; import { CredentialsHelper } from '@/credentials-helper'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; @@ -17,7 +17,6 @@ import { NotFoundError } from '@/errors/response-errors/not-found.error'; import { ExternalHooks } from '@/external-hooks'; import type { AuthenticatedRequest, OAuthRequest } from '@/requests'; import { UrlService } from '@/services/url.service'; -import type { ICredentialsDb } from '@/types-db'; import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data'; type CsrfStateParam = { diff --git a/packages/cli/src/controllers/project.controller.ts b/packages/cli/src/controllers/project.controller.ts index 2563054d97..e2676f1433 100644 --- a/packages/cli/src/controllers/project.controller.ts +++ b/packages/cli/src/controllers/project.controller.ts @@ -1,4 +1,5 @@ import { CreateProjectDto, DeleteProjectDto, UpdateProjectDto } from '@n8n/api-types'; +import type { Project } from '@n8n/db'; import { Get, Post, @@ -18,7 +19,6 @@ import type { Scope } from '@n8n/permissions'; import { In, Not } from '@n8n/typeorm'; import { Response } from 'express'; -import type { Project } from '@/databases/entities/project'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; diff --git a/packages/cli/src/controllers/users.controller.ts b/packages/cli/src/controllers/users.controller.ts index 6a1f19d2cb..83d637fe51 100644 --- a/packages/cli/src/controllers/users.controller.ts +++ b/packages/cli/src/controllers/users.controller.ts @@ -1,4 +1,6 @@ import { RoleChangeRequestDto, SettingsUpdateRequestDto } from '@n8n/api-types'; +import type { PublicUser } from '@n8n/db'; +import { Project, User, AuthIdentity } from '@n8n/db'; import { GlobalScope, Delete, @@ -14,9 +16,6 @@ import { Logger } from 'n8n-core'; import { AuthService } from '@/auth/auth.service'; import { CredentialsService } from '@/credentials/credentials.service'; -import { AuthIdentity } from '@/databases/entities/auth-identity'; -import { Project } from '@/databases/entities/project'; -import { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; @@ -31,7 +30,6 @@ import { ListQuery, AuthenticatedRequest, UserRequest } from '@/requests'; import { FolderService } from '@/services/folder.service'; import { ProjectService } from '@/services/project.service.ee'; import { UserService } from '@/services/user.service'; -import type { PublicUser } from '@/types-db'; import { WorkflowService } from '@/workflows/workflow.service'; @RestController('/users') diff --git a/packages/cli/src/controllers/workflow-statistics.controller.ts b/packages/cli/src/controllers/workflow-statistics.controller.ts index b64fa6ba79..8e8c82dd55 100644 --- a/packages/cli/src/controllers/workflow-statistics.controller.ts +++ b/packages/cli/src/controllers/workflow-statistics.controller.ts @@ -1,9 +1,9 @@ +import type { WorkflowStatistics } from '@n8n/db'; +import { StatisticsNames } from '@n8n/db'; import { Get, Middleware, RestController } from '@n8n/decorators'; import { Response, NextFunction } from 'express'; import { Logger } from 'n8n-core'; -import type { WorkflowStatistics } from '@/databases/entities/workflow-statistics'; -import { StatisticsNames } from '@/databases/entities/workflow-statistics'; import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; import type { IWorkflowStatisticsDataLoaded } from '@/interfaces'; diff --git a/packages/cli/src/credentials-helper.ts b/packages/cli/src/credentials-helper.ts index a600f9bdae..00ecee8770 100644 --- a/packages/cli/src/credentials-helper.ts +++ b/packages/cli/src/credentials-helper.ts @@ -2,6 +2,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-return */ +import type { CredentialsEntity, ICredentialsDb } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; @@ -30,10 +31,8 @@ import { ICredentialsHelper, NodeHelpers, Workflow, UnexpectedError } from 'n8n- import { CredentialTypes } from '@/credential-types'; import { CredentialsOverwrites } from '@/credentials-overwrites'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; -import type { ICredentialsDb } from '@/types-db'; import { RESPONSE_ERROR_MESSAGES } from './constants'; import { CredentialNotFoundError } from './errors/credential-not-found.error'; diff --git a/packages/cli/src/credentials/__tests__/credentials.service.test.ts b/packages/cli/src/credentials/__tests__/credentials.service.test.ts index 97a81c2721..7c18022d38 100644 --- a/packages/cli/src/credentials/__tests__/credentials.service.test.ts +++ b/packages/cli/src/credentials/__tests__/credentials.service.test.ts @@ -1,3 +1,4 @@ +import type { CredentialsEntity } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { CREDENTIAL_ERRORS, CredentialDataError, Credentials, type ErrorReporter } from 'n8n-core'; import { CREDENTIAL_EMPTY_VALUE, type ICredentialType } from 'n8n-workflow'; @@ -5,7 +6,6 @@ import { CREDENTIAL_EMPTY_VALUE, type ICredentialType } from 'n8n-workflow'; import { CREDENTIAL_BLANKING_VALUE } from '@/constants'; import type { CredentialTypes } from '@/credential-types'; import { CredentialsService } from '@/credentials/credentials.service'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; import type { CredentialsRepository } from '@/databases/repositories/credentials.repository'; describe('CredentialsService', () => { diff --git a/packages/cli/src/credentials/credentials-finder.service.ts b/packages/cli/src/credentials/credentials-finder.service.ts index d8afb3f8be..c134a6848a 100644 --- a/packages/cli/src/credentials/credentials-finder.service.ts +++ b/packages/cli/src/credentials/credentials-finder.service.ts @@ -1,4 +1,5 @@ import type { ProjectRole } from '@n8n/api-types'; +import type { CredentialsEntity, SharedCredentials, CredentialSharingRole, User } from '@n8n/db'; import { Service } from '@n8n/di'; import type { Scope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -6,12 +7,6 @@ import type { EntityManager, FindOptionsWhere } from '@n8n/typeorm'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { - SharedCredentials, - CredentialSharingRole, -} from '@/databases/entities/shared-credentials'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { RoleService } from '@/services/role.service'; diff --git a/packages/cli/src/credentials/credentials.controller.ts b/packages/cli/src/credentials/credentials.controller.ts index 2a6c84360e..e7e0a340c1 100644 --- a/packages/cli/src/credentials/credentials.controller.ts +++ b/packages/cli/src/credentials/credentials.controller.ts @@ -5,6 +5,7 @@ import { GenerateCredentialNameRequestQuery, } from '@n8n/api-types'; import { GlobalConfig } from '@n8n/config'; +import { SharedCredentials } from '@n8n/db'; import { Delete, Get, @@ -25,7 +26,6 @@ import { deepCopy } from 'n8n-workflow'; import type { ICredentialDataDecryptedObject } from 'n8n-workflow'; import { z } from 'zod'; -import { SharedCredentials } from '@/databases/entities/shared-credentials'; import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import * as Db from '@/db'; diff --git a/packages/cli/src/credentials/credentials.service.ee.ts b/packages/cli/src/credentials/credentials.service.ee.ts index 896c67474d..81700be805 100644 --- a/packages/cli/src/credentials/credentials.service.ee.ts +++ b/packages/cli/src/credentials/credentials.service.ee.ts @@ -1,12 +1,10 @@ +import { Project, SharedCredentials } from '@n8n/db'; +import type { CredentialsEntity, User } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In, type EntityManager } from '@n8n/typeorm'; import type { ICredentialDataDecryptedObject } from 'n8n-workflow'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import { Project } from '@/databases/entities/project'; -import { SharedCredentials } from '@/databases/entities/shared-credentials'; -import type { User } from '@/databases/entities/user'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; import { TransferCredentialError } from '@/errors/response-errors/transfer-credential.error'; diff --git a/packages/cli/src/credentials/credentials.service.ts b/packages/cli/src/credentials/credentials.service.ts index 5a6b6725d9..a9528fe1e8 100644 --- a/packages/cli/src/credentials/credentials.service.ts +++ b/packages/cli/src/credentials/credentials.service.ts @@ -1,4 +1,6 @@ import type { CreateCredentialDto } from '@n8n/api-types'; +import type { Project, User, ICredentialsDb, ScopesField } from '@n8n/db'; +import { CredentialsEntity, SharedCredentials } from '@n8n/db'; import { Service } from '@n8n/di'; import type { Scope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -20,10 +22,6 @@ import { CREDENTIAL_EMPTY_VALUE, deepCopy, NodeHelpers, UnexpectedError } from ' import { CREDENTIAL_BLANKING_VALUE } from '@/constants'; import { CredentialTypes } from '@/credential-types'; import { createCredentialsFromCredentialsEntity } from '@/credentials-helper'; -import { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { Project } from '@/databases/entities/project'; -import { SharedCredentials } from '@/databases/entities/shared-credentials'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; @@ -39,7 +37,6 @@ import { CredentialsTester } from '@/services/credentials-tester.service'; import { OwnershipService } from '@/services/ownership.service'; import { ProjectService } from '@/services/project.service.ee'; import { RoleService } from '@/services/role.service'; -import type { ICredentialsDb, ScopesField } from '@/types-db'; import { CredentialsFinderService } from './credentials-finder.service'; diff --git a/packages/cli/src/databases/entities/__tests__/user.entity.test.ts b/packages/cli/src/databases/entities/__tests__/user.entity.test.ts index 5bd8b0f2cb..bc809fea11 100644 --- a/packages/cli/src/databases/entities/__tests__/user.entity.test.ts +++ b/packages/cli/src/databases/entities/__tests__/user.entity.test.ts @@ -1,4 +1,4 @@ -import { User } from '@/databases/entities/user'; +import { User } from '@n8n/db'; describe('User Entity', () => { describe('JSON.stringify', () => { diff --git a/packages/cli/src/databases/entities/auth-provider-sync-history.ts b/packages/cli/src/databases/entities/auth-provider-sync-history.ts index 29a03dc7eb..a724271184 100644 --- a/packages/cli/src/databases/entities/auth-provider-sync-history.ts +++ b/packages/cli/src/databases/entities/auth-provider-sync-history.ts @@ -1,8 +1,6 @@ -import { DateTimeColumn } from '@n8n/db'; +import { DateTimeColumn, AuthProviderType } from '@n8n/db'; import { Column, Entity, PrimaryGeneratedColumn } from '@n8n/typeorm'; -import { AuthProviderType } from './auth-identity'; - export type RunningMode = 'dry' | 'live'; export type SyncStatus = 'success' | 'error'; diff --git a/packages/cli/src/databases/entities/auth-user.ts b/packages/cli/src/databases/entities/auth-user.ts index 55cd7a9d34..2191e0c13f 100644 --- a/packages/cli/src/databases/entities/auth-user.ts +++ b/packages/cli/src/databases/entities/auth-user.ts @@ -1,7 +1,6 @@ +import { User } from '@n8n/db'; import { Column, Entity } from '@n8n/typeorm'; -import { User } from './user'; - @Entity({ name: 'user' }) export class AuthUser extends User { @Column({ type: String, nullable: true }) diff --git a/packages/cli/src/databases/entities/execution-entity.ts b/packages/cli/src/databases/entities/execution-entity.ts index 1e6401a6c2..e9cbb0216e 100644 --- a/packages/cli/src/databases/entities/execution-entity.ts +++ b/packages/cli/src/databases/entities/execution-entity.ts @@ -1,4 +1,4 @@ -import { DateTimeColumn, datetimeColumnType, idStringifier } from '@n8n/db'; +import { DateTimeColumn, datetimeColumnType, idStringifier, WorkflowEntity } from '@n8n/db'; import { Column, Entity, @@ -18,7 +18,6 @@ import type { ExecutionAnnotation } from '@/databases/entities/execution-annotat import type { ExecutionData } from './execution-data'; import type { ExecutionMetadata } from './execution-metadata'; -import { WorkflowEntity } from './workflow-entity'; @Entity() @Index(['workflowId', 'id']) diff --git a/packages/cli/src/databases/entities/index.ts b/packages/cli/src/databases/entities/index.ts index 03fd329471..00a9d6f763 100644 --- a/packages/cli/src/databases/entities/index.ts +++ b/packages/cli/src/databases/entities/index.ts @@ -7,35 +7,35 @@ import { Settings, Variables, WebhookEntity, + AuthIdentity, + User, + WorkflowEntity, + CredentialsEntity, + ApiKey, + Folder, + FolderTagMapping, + Project, + ProjectRelation, + SharedCredentials, + SharedWorkflow, + TagEntity, + WorkflowStatistics, + WorkflowTagMapping, } from '@n8n/db'; import { AnnotationTagEntity } from './annotation-tag-entity.ee'; import { AnnotationTagMapping } from './annotation-tag-mapping.ee'; -import { ApiKey } from './api-key'; -import { AuthIdentity } from './auth-identity'; import { AuthProviderSyncHistory } from './auth-provider-sync-history'; import { AuthUser } from './auth-user'; -import { CredentialsEntity } from './credentials-entity'; import { ExecutionAnnotation } from './execution-annotation.ee'; import { ExecutionData } from './execution-data'; import { ExecutionEntity } from './execution-entity'; import { ExecutionMetadata } from './execution-metadata'; -import { Folder } from './folder'; -import { FolderTagMapping } from './folder-tag-mapping'; -import { Project } from './project'; -import { ProjectRelation } from './project-relation'; -import { SharedCredentials } from './shared-credentials'; -import { SharedWorkflow } from './shared-workflow'; -import { TagEntity } from './tag-entity'; import { TestCaseExecution } from './test-case-execution.ee'; import { TestDefinition } from './test-definition.ee'; import { TestMetric } from './test-metric.ee'; import { TestRun } from './test-run.ee'; -import { User } from './user'; -import { WorkflowEntity } from './workflow-entity'; import { WorkflowHistory } from './workflow-history'; -import { WorkflowStatistics } from './workflow-statistics'; -import { WorkflowTagMapping } from './workflow-tag-mapping'; import { InsightsByPeriod } from '../../modules/insights/database/entities/insights-by-period'; import { InsightsMetadata } from '../../modules/insights/database/entities/insights-metadata'; import { InsightsRaw } from '../../modules/insights/database/entities/insights-raw'; diff --git a/packages/cli/src/databases/entities/test-definition.ee.ts b/packages/cli/src/databases/entities/test-definition.ee.ts index 44f8a00341..a6daad5d65 100644 --- a/packages/cli/src/databases/entities/test-definition.ee.ts +++ b/packages/cli/src/databases/entities/test-definition.ee.ts @@ -1,10 +1,9 @@ -import { JsonColumn, WithTimestampsAndStringId } from '@n8n/db'; +import { JsonColumn, WithTimestampsAndStringId, WorkflowEntity } from '@n8n/db'; import { Column, Entity, Index, ManyToOne, OneToMany, RelationId } from '@n8n/typeorm'; import { Length } from 'class-validator'; import { AnnotationTagEntity } from '@/databases/entities/annotation-tag-entity.ee'; import type { TestMetric } from '@/databases/entities/test-metric.ee'; -import { WorkflowEntity } from '@/databases/entities/workflow-entity'; // Entity representing a node in a workflow under test, for which data should be mocked during test execution export type MockedNodeItem = { diff --git a/packages/cli/src/databases/entities/workflow-history.ts b/packages/cli/src/databases/entities/workflow-history.ts index a0f2ccab23..ec4e9b0fe4 100644 --- a/packages/cli/src/databases/entities/workflow-history.ts +++ b/packages/cli/src/databases/entities/workflow-history.ts @@ -1,10 +1,8 @@ -import { JsonColumn, WithTimestamps } from '@n8n/db'; +import { JsonColumn, WithTimestamps, WorkflowEntity } from '@n8n/db'; import { Column, Entity, ManyToOne, PrimaryColumn } from '@n8n/typeorm'; import { IConnections } from 'n8n-workflow'; import type { INode } from 'n8n-workflow'; -import { WorkflowEntity } from './workflow-entity'; - @Entity() export class WorkflowHistory extends WithTimestamps { @PrimaryColumn() diff --git a/packages/cli/src/databases/migrations/common/1620821879465-UniqueWorkflowNames.ts b/packages/cli/src/databases/migrations/common/1620821879465-UniqueWorkflowNames.ts index f959d8e91b..1847a674e3 100644 --- a/packages/cli/src/databases/migrations/common/1620821879465-UniqueWorkflowNames.ts +++ b/packages/cli/src/databases/migrations/common/1620821879465-UniqueWorkflowNames.ts @@ -1,4 +1,5 @@ -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; +import type { WorkflowEntity } from '@n8n/db'; + import type { MigrationContext, ReversibleMigration } from '@/databases/types'; export class UniqueWorkflowNames1620821879465 implements ReversibleMigration { diff --git a/packages/cli/src/databases/migrations/common/1630330987096-UpdateWorkflowCredentials.ts b/packages/cli/src/databases/migrations/common/1630330987096-UpdateWorkflowCredentials.ts index 3976ad3109..230cdc3821 100644 --- a/packages/cli/src/databases/migrations/common/1630330987096-UpdateWorkflowCredentials.ts +++ b/packages/cli/src/databases/migrations/common/1630330987096-UpdateWorkflowCredentials.ts @@ -1,7 +1,6 @@ +import type { CredentialsEntity, WorkflowEntity } from '@n8n/db'; import type { IWorkflowBase } from 'n8n-workflow'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { MigrationContext, ReversibleMigration } from '@/databases/types'; type Credential = Pick; diff --git a/packages/cli/src/databases/migrations/common/1658930531669-AddNodeIds.ts b/packages/cli/src/databases/migrations/common/1658930531669-AddNodeIds.ts index c47d496794..b96bfd99fa 100644 --- a/packages/cli/src/databases/migrations/common/1658930531669-AddNodeIds.ts +++ b/packages/cli/src/databases/migrations/common/1658930531669-AddNodeIds.ts @@ -1,7 +1,7 @@ +import type { WorkflowEntity } from '@n8n/db'; import type { INode } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { MigrationContext, ReversibleMigration } from '@/databases/types'; type Workflow = Pick & { nodes: string | INode[] }; diff --git a/packages/cli/src/databases/migrations/common/1671726148419-RemoveWorkflowDataLoadedFlag.ts b/packages/cli/src/databases/migrations/common/1671726148419-RemoveWorkflowDataLoadedFlag.ts index d3e38e2adf..053705b9a2 100644 --- a/packages/cli/src/databases/migrations/common/1671726148419-RemoveWorkflowDataLoadedFlag.ts +++ b/packages/cli/src/databases/migrations/common/1671726148419-RemoveWorkflowDataLoadedFlag.ts @@ -1,4 +1,5 @@ -import { StatisticsNames } from '@/databases/entities/workflow-statistics'; +import { StatisticsNames } from '@n8n/db'; + import type { MigrationContext, ReversibleMigration } from '@/databases/types'; export class RemoveWorkflowDataLoadedFlag1671726148419 implements ReversibleMigration { diff --git a/packages/cli/src/databases/migrations/common/1675940580449-PurgeInvalidWorkflowConnections.ts b/packages/cli/src/databases/migrations/common/1675940580449-PurgeInvalidWorkflowConnections.ts index d8aeb31f7c..cd9bfde848 100644 --- a/packages/cli/src/databases/migrations/common/1675940580449-PurgeInvalidWorkflowConnections.ts +++ b/packages/cli/src/databases/migrations/common/1675940580449-PurgeInvalidWorkflowConnections.ts @@ -1,6 +1,6 @@ +import { WorkflowEntity } from '@n8n/db'; import { UserError } from 'n8n-workflow'; -import { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { IrreversibleMigration, MigrationContext } from '@/databases/types'; export class PurgeInvalidWorkflowConnections1675940580449 implements IrreversibleMigration { diff --git a/packages/cli/src/databases/migrations/common/1714133768519-CreateProject.ts b/packages/cli/src/databases/migrations/common/1714133768519-CreateProject.ts index 01cacdabbd..1f4f9c5eb0 100644 --- a/packages/cli/src/databases/migrations/common/1714133768519-CreateProject.ts +++ b/packages/cli/src/databases/migrations/common/1714133768519-CreateProject.ts @@ -1,9 +1,9 @@ import type { ProjectRole } from '@n8n/api-types'; import { generateNanoId } from '@n8n/db'; +import type { User } from '@n8n/db'; import { UserError } from 'n8n-workflow'; import { nanoid } from 'nanoid'; -import type { User } from '@/databases/entities/user'; import type { MigrationContext, ReversibleMigration } from '@/databases/types'; const projectAdminRole: ProjectRole = 'project:personalOwner'; diff --git a/packages/cli/src/databases/migrations/common/1724951148974-AddApiKeysTable.ts b/packages/cli/src/databases/migrations/common/1724951148974-AddApiKeysTable.ts index 8dfebc5c26..a7fc0a85fb 100644 --- a/packages/cli/src/databases/migrations/common/1724951148974-AddApiKeysTable.ts +++ b/packages/cli/src/databases/migrations/common/1724951148974-AddApiKeysTable.ts @@ -1,6 +1,6 @@ import { generateNanoId } from '@n8n/db'; +import type { ApiKey } from '@n8n/db'; -import type { ApiKey } from '@/databases/entities/api-key'; import type { MigrationContext, ReversibleMigration } from '@/databases/types'; export class AddApiKeysTable1724951148974 implements ReversibleMigration { diff --git a/packages/cli/src/databases/migrations/common/1742918400000-AddScopesColumnToApiKeys.ts b/packages/cli/src/databases/migrations/common/1742918400000-AddScopesColumnToApiKeys.ts index b75c2031c6..a54d30d562 100644 --- a/packages/cli/src/databases/migrations/common/1742918400000-AddScopesColumnToApiKeys.ts +++ b/packages/cli/src/databases/migrations/common/1742918400000-AddScopesColumnToApiKeys.ts @@ -1,6 +1,6 @@ +import { ApiKey } from '@n8n/db'; import type { GlobalRole } from '@n8n/permissions'; -import { ApiKey } from '@/databases/entities/api-key'; import type { MigrationContext, ReversibleMigration } from '@/databases/types'; import { getApiKeyScopesForRole } from '@/public-api/permissions.ee'; diff --git a/packages/cli/src/databases/migrations/mysqldb/1681134145996-AddUserActivatedProperty.ts b/packages/cli/src/databases/migrations/mysqldb/1681134145996-AddUserActivatedProperty.ts index 4e9da99e0f..a76c785050 100644 --- a/packages/cli/src/databases/migrations/mysqldb/1681134145996-AddUserActivatedProperty.ts +++ b/packages/cli/src/databases/migrations/mysqldb/1681134145996-AddUserActivatedProperty.ts @@ -1,5 +1,6 @@ +import type { UserSettings } from '@n8n/db'; + import type { MigrationContext, ReversibleMigration } from '@/databases/types'; -import type { UserSettings } from '@/types-db'; export class AddUserActivatedProperty1681134145996 implements ReversibleMigration { async up({ queryRunner, tablePrefix }: MigrationContext) { diff --git a/packages/cli/src/databases/migrations/postgresdb/1681134145996-AddUserActivatedProperty.ts b/packages/cli/src/databases/migrations/postgresdb/1681134145996-AddUserActivatedProperty.ts index 4b4693d0ed..58a098c939 100644 --- a/packages/cli/src/databases/migrations/postgresdb/1681134145996-AddUserActivatedProperty.ts +++ b/packages/cli/src/databases/migrations/postgresdb/1681134145996-AddUserActivatedProperty.ts @@ -1,5 +1,6 @@ +import type { UserSettings } from '@n8n/db'; + import type { MigrationContext, ReversibleMigration } from '@/databases/types'; -import type { UserSettings } from '@/types-db'; export class AddUserActivatedProperty1681134145996 implements ReversibleMigration { async up({ queryRunner, tablePrefix }: MigrationContext) { diff --git a/packages/cli/src/databases/migrations/sqlite/1681134145996-AddUserActivatedProperty.ts b/packages/cli/src/databases/migrations/sqlite/1681134145996-AddUserActivatedProperty.ts index d09b823fa7..0698426bd0 100644 --- a/packages/cli/src/databases/migrations/sqlite/1681134145996-AddUserActivatedProperty.ts +++ b/packages/cli/src/databases/migrations/sqlite/1681134145996-AddUserActivatedProperty.ts @@ -1,5 +1,6 @@ +import type { UserSettings } from '@n8n/db'; + import type { MigrationContext, ReversibleMigration } from '@/databases/types'; -import type { UserSettings } from '@/types-db'; export class AddUserActivatedProperty1681134145996 implements ReversibleMigration { async up({ queryRunner, tablePrefix }: MigrationContext) { diff --git a/packages/cli/src/databases/migrations/sqlite/1724951148974-AddApiKeysTable.ts b/packages/cli/src/databases/migrations/sqlite/1724951148974-AddApiKeysTable.ts index 71d5868d6c..4cf3cc89ee 100644 --- a/packages/cli/src/databases/migrations/sqlite/1724951148974-AddApiKeysTable.ts +++ b/packages/cli/src/databases/migrations/sqlite/1724951148974-AddApiKeysTable.ts @@ -1,6 +1,6 @@ import { generateNanoId } from '@n8n/db'; +import type { ApiKey } from '@n8n/db'; -import type { ApiKey } from '@/databases/entities/api-key'; import type { MigrationContext, ReversibleMigration } from '@/databases/types'; export class AddApiKeysTable1724951148974 implements ReversibleMigration { diff --git a/packages/cli/src/databases/repositories/__tests__/credentials.repository.test.ts b/packages/cli/src/databases/repositories/__tests__/credentials.repository.test.ts index 7b70587d65..f8b305581a 100644 --- a/packages/cli/src/databases/repositories/__tests__/credentials.repository.test.ts +++ b/packages/cli/src/databases/repositories/__tests__/credentials.repository.test.ts @@ -1,7 +1,7 @@ +import { CredentialsEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; -import { CredentialsEntity } from '@/databases/entities/credentials-entity'; import { mockEntityManager } from '@test/mocking'; import { CredentialsRepository } from '../credentials.repository'; diff --git a/packages/cli/src/databases/repositories/__tests__/execution.repository.test.ts b/packages/cli/src/databases/repositories/__tests__/execution.repository.test.ts index 14dbaa0f23..64d9bd9c2d 100644 --- a/packages/cli/src/databases/repositories/__tests__/execution.repository.test.ts +++ b/packages/cli/src/databases/repositories/__tests__/execution.repository.test.ts @@ -1,5 +1,6 @@ import { GlobalConfig } from '@n8n/config'; import type { SqliteConfig } from '@n8n/config/src/configs/database.config'; +import type { IExecutionResponse } from '@n8n/db'; import { Container } from '@n8n/di'; import type { SelectQueryBuilder } from '@n8n/typeorm'; import { Not, LessThanOrEqual } from '@n8n/typeorm'; @@ -10,7 +11,6 @@ import { nanoid } from 'nanoid'; import { ExecutionEntity } from '@/databases/entities/execution-entity'; import { ExecutionRepository } from '@/databases/repositories/execution.repository'; -import type { IExecutionResponse } from '@/types-db'; import { mockInstance, mockEntityManager } from '@test/mocking'; describe('ExecutionRepository', () => { diff --git a/packages/cli/src/databases/repositories/__tests__/folder.repository.test.ts b/packages/cli/src/databases/repositories/__tests__/folder.repository.test.ts index 7aaef66dc7..6cc52d24ab 100644 --- a/packages/cli/src/databases/repositories/__tests__/folder.repository.test.ts +++ b/packages/cli/src/databases/repositories/__tests__/folder.repository.test.ts @@ -1,9 +1,9 @@ +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; +import type { Folder } from '@n8n/db'; import { Container } from '@n8n/di'; import { DateTime } from 'luxon'; -import type { Folder } from '@/databases/entities/folder'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import { createFolder } from '@test-integration/db/folders'; import { getPersonalProject } from '@test-integration/db/projects'; import { createTag } from '@test-integration/db/tags'; diff --git a/packages/cli/src/databases/repositories/__tests__/workflow-statistics.test.ts b/packages/cli/src/databases/repositories/__tests__/workflow-statistics.test.ts index f54aadb214..2d7404ca0f 100644 --- a/packages/cli/src/databases/repositories/__tests__/workflow-statistics.test.ts +++ b/packages/cli/src/databases/repositories/__tests__/workflow-statistics.test.ts @@ -1,8 +1,8 @@ +import { StatisticsNames, WorkflowStatistics } from '@n8n/db'; import { Container } from '@n8n/di'; import { type InsertResult, QueryFailedError } from '@n8n/typeorm'; import { mock, mockClear } from 'jest-mock-extended'; -import { StatisticsNames, WorkflowStatistics } from '@/databases/entities/workflow-statistics'; import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository'; import { mockEntityManager } from '@test/mocking'; import { createWorkflow } from '@test-integration/db/workflows'; diff --git a/packages/cli/src/databases/repositories/api-key.repository.ts b/packages/cli/src/databases/repositories/api-key.repository.ts index b24a8984dc..64dc27fa43 100644 --- a/packages/cli/src/databases/repositories/api-key.repository.ts +++ b/packages/cli/src/databases/repositories/api-key.repository.ts @@ -1,8 +1,7 @@ +import { ApiKey } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository } from '@n8n/typeorm'; -import { ApiKey } from '../entities/api-key'; - @Service() export class ApiKeyRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/auth-identity.repository.ts b/packages/cli/src/databases/repositories/auth-identity.repository.ts index 1036994680..efb9464bf6 100644 --- a/packages/cli/src/databases/repositories/auth-identity.repository.ts +++ b/packages/cli/src/databases/repositories/auth-identity.repository.ts @@ -1,8 +1,7 @@ +import { AuthIdentity } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository } from '@n8n/typeorm'; -import { AuthIdentity } from '../entities/auth-identity'; - @Service() export class AuthIdentityRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/credentials.repository.ts b/packages/cli/src/databases/repositories/credentials.repository.ts index ad9218a1b3..f32af0e0df 100644 --- a/packages/cli/src/databases/repositories/credentials.repository.ts +++ b/packages/cli/src/databases/repositories/credentials.repository.ts @@ -1,11 +1,10 @@ +import { CredentialsEntity } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, In, Repository, Like } from '@n8n/typeorm'; import type { FindManyOptions } from '@n8n/typeorm'; import type { ListQuery } from '@/requests'; -import { CredentialsEntity } from '../entities/credentials-entity'; - @Service() export class CredentialsRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/execution.repository.ts b/packages/cli/src/databases/repositories/execution.repository.ts index dff6a216a2..4b68bb9363 100644 --- a/packages/cli/src/databases/repositories/execution.repository.ts +++ b/packages/cli/src/databases/repositories/execution.repository.ts @@ -1,5 +1,12 @@ import { GlobalConfig } from '@n8n/config'; -import { separate } from '@n8n/db'; +import type { + CreateExecutionPayload, + IExecutionFlattedDb, + IExecutionBase, + IExecutionResponse, + ExecutionSummaries, +} from '@n8n/db'; +import { separate, SharedWorkflow, WorkflowEntity } from '@n8n/db'; import { Service } from '@n8n/di'; import type { FindManyOptions, @@ -36,20 +43,11 @@ import { AnnotationTagEntity } from '@/databases/entities/annotation-tag-entity. import { AnnotationTagMapping } from '@/databases/entities/annotation-tag-mapping.ee'; import { ExecutionAnnotation } from '@/databases/entities/execution-annotation.ee'; import { PostgresLiveRowsRetrievalError } from '@/errors/postgres-live-rows-retrieval.error'; -import type { - CreateExecutionPayload, - IExecutionFlattedDb, - IExecutionBase, - IExecutionResponse, - ExecutionSummaries, -} from '@/types-db'; import { ExecutionDataRepository } from './execution-data.repository'; import { ExecutionData } from '../entities/execution-data'; import { ExecutionEntity } from '../entities/execution-entity'; import { ExecutionMetadata } from '../entities/execution-metadata'; -import { SharedWorkflow } from '../entities/shared-workflow'; -import { WorkflowEntity } from '../entities/workflow-entity'; export interface IGetExecutionsQueryFilter { id?: FindOperator | string; diff --git a/packages/cli/src/databases/repositories/folder-tag-mapping.repository.ts b/packages/cli/src/databases/repositories/folder-tag-mapping.repository.ts index 360ea93362..d2b57af2a1 100644 --- a/packages/cli/src/databases/repositories/folder-tag-mapping.repository.ts +++ b/packages/cli/src/databases/repositories/folder-tag-mapping.repository.ts @@ -1,8 +1,7 @@ +import { FolderTagMapping } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository } from '@n8n/typeorm'; -import { FolderTagMapping } from '../entities/folder-tag-mapping'; - @Service() export class FolderTagMappingRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/folder.repository.ts b/packages/cli/src/databases/repositories/folder.repository.ts index 209942082c..e0d2827327 100644 --- a/packages/cli/src/databases/repositories/folder.repository.ts +++ b/packages/cli/src/databases/repositories/folder.repository.ts @@ -1,3 +1,5 @@ +import type { FolderWithWorkflowAndSubFolderCount } from '@n8n/db'; +import { Folder, FolderTagMapping, TagEntity } from '@n8n/db'; import { Service } from '@n8n/di'; import type { EntityManager, SelectQueryBuilder } from '@n8n/typeorm'; import { DataSource, Repository } from '@n8n/typeorm'; @@ -5,11 +7,6 @@ import { PROJECT_ROOT } from 'n8n-workflow'; import type { ListQuery } from '@/requests'; -import type { FolderWithWorkflowAndSubFolderCount } from '../entities/folder'; -import { Folder } from '../entities/folder'; -import { FolderTagMapping } from '../entities/folder-tag-mapping'; -import { TagEntity } from '../entities/tag-entity'; - @Service() export class FolderRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/project-relation.repository.ts b/packages/cli/src/databases/repositories/project-relation.repository.ts index 89e5028b19..b8825b29f3 100644 --- a/packages/cli/src/databases/repositories/project-relation.repository.ts +++ b/packages/cli/src/databases/repositories/project-relation.repository.ts @@ -1,9 +1,8 @@ import type { ProjectRole } from '@n8n/api-types'; +import { ProjectRelation } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, In, Repository } from '@n8n/typeorm'; -import { ProjectRelation } from '../entities/project-relation'; - @Service() export class ProjectRelationRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/project.repository.ts b/packages/cli/src/databases/repositories/project.repository.ts index 052668743b..91c3c0a47c 100644 --- a/packages/cli/src/databases/repositories/project.repository.ts +++ b/packages/cli/src/databases/repositories/project.repository.ts @@ -1,9 +1,8 @@ +import { Project } from '@n8n/db'; import { Service } from '@n8n/di'; import type { EntityManager } from '@n8n/typeorm'; import { DataSource, Repository } from '@n8n/typeorm'; -import { Project } from '../entities/project'; - @Service() export class ProjectRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/shared-credentials.repository.ts b/packages/cli/src/databases/repositories/shared-credentials.repository.ts index a190b33b09..9a21807ba7 100644 --- a/packages/cli/src/databases/repositories/shared-credentials.repository.ts +++ b/packages/cli/src/databases/repositories/shared-credentials.repository.ts @@ -1,11 +1,10 @@ import type { ProjectRole } from '@n8n/api-types'; +import { SharedCredentials } from '@n8n/db'; +import type { Project, CredentialSharingRole } from '@n8n/db'; import { Service } from '@n8n/di'; import type { EntityManager, FindOptionsWhere } from '@n8n/typeorm'; import { DataSource, In, Not, Repository } from '@n8n/typeorm'; -import type { Project } from '../entities/project'; -import { type CredentialSharingRole, SharedCredentials } from '../entities/shared-credentials'; - @Service() export class SharedCredentialsRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/shared-workflow.repository.ts b/packages/cli/src/databases/repositories/shared-workflow.repository.ts index 59f4f512c6..0ad91fc204 100644 --- a/packages/cli/src/databases/repositories/shared-workflow.repository.ts +++ b/packages/cli/src/databases/repositories/shared-workflow.repository.ts @@ -1,10 +1,9 @@ +import { SharedWorkflow } from '@n8n/db'; +import type { Project, WorkflowSharingRole } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository, In, Not } from '@n8n/typeorm'; import type { EntityManager, FindManyOptions, FindOptionsWhere } from '@n8n/typeorm'; -import type { Project } from '../entities/project'; -import { SharedWorkflow, type WorkflowSharingRole } from '../entities/shared-workflow'; - @Service() export class SharedWorkflowRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/tag.repository.ts b/packages/cli/src/databases/repositories/tag.repository.ts index cb70aea1a9..cca7bacb51 100644 --- a/packages/cli/src/databases/repositories/tag.repository.ts +++ b/packages/cli/src/databases/repositories/tag.repository.ts @@ -1,12 +1,10 @@ +import type { IWorkflowDb } from '@n8n/db'; +import { TagEntity } from '@n8n/db'; import { Service } from '@n8n/di'; import type { EntityManager } from '@n8n/typeorm'; import { DataSource, In, Repository } from '@n8n/typeorm'; import intersection from 'lodash/intersection'; -import type { IWorkflowDb } from '@/types-db'; - -import { TagEntity } from '../entities/tag-entity'; - @Service() export class TagRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/user.repository.ts b/packages/cli/src/databases/repositories/user.repository.ts index b69946f651..a52302717e 100644 --- a/packages/cli/src/databases/repositories/user.repository.ts +++ b/packages/cli/src/databases/repositories/user.repository.ts @@ -1,3 +1,4 @@ +import { Project, ProjectRelation, User } from '@n8n/db'; import { Service } from '@n8n/di'; import type { GlobalRole } from '@n8n/permissions'; import type { DeepPartial, EntityManager, FindManyOptions } from '@n8n/typeorm'; @@ -5,10 +6,6 @@ import { DataSource, In, IsNull, Not, Repository } from '@n8n/typeorm'; import type { ListQuery } from '@/requests'; -import { Project } from '../entities/project'; -import { ProjectRelation } from '../entities/project-relation'; -import { User } from '../entities/user'; - @Service() export class UserRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/workflow-statistics.repository.ts b/packages/cli/src/databases/repositories/workflow-statistics.repository.ts index 0067a10045..7cb68f20c3 100644 --- a/packages/cli/src/databases/repositories/workflow-statistics.repository.ts +++ b/packages/cli/src/databases/repositories/workflow-statistics.repository.ts @@ -1,11 +1,9 @@ import { GlobalConfig } from '@n8n/config'; +import type { User } from '@n8n/db'; +import { StatisticsNames, WorkflowStatistics } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, MoreThanOrEqual, QueryFailedError, Repository } from '@n8n/typeorm'; -import type { User } from '@/databases/entities/user'; - -import { StatisticsNames, WorkflowStatistics } from '../entities/workflow-statistics'; - type StatisticsInsertResult = 'insert' | 'failed' | 'alreadyExists'; type StatisticsUpsertResult = StatisticsInsertResult | 'update'; diff --git a/packages/cli/src/databases/repositories/workflow-tag-mapping.repository.ts b/packages/cli/src/databases/repositories/workflow-tag-mapping.repository.ts index 0196437891..a23db6aa9c 100644 --- a/packages/cli/src/databases/repositories/workflow-tag-mapping.repository.ts +++ b/packages/cli/src/databases/repositories/workflow-tag-mapping.repository.ts @@ -1,8 +1,7 @@ +import { WorkflowTagMapping } from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository } from '@n8n/typeorm'; -import { WorkflowTagMapping } from '../entities/workflow-tag-mapping'; - @Service() export class WorkflowTagMappingRepository extends Repository { constructor(dataSource: DataSource) { diff --git a/packages/cli/src/databases/repositories/workflow.repository.ts b/packages/cli/src/databases/repositories/workflow.repository.ts index 26d22e273c..32a4ab5777 100644 --- a/packages/cli/src/databases/repositories/workflow.repository.ts +++ b/packages/cli/src/databases/repositories/workflow.repository.ts @@ -1,5 +1,12 @@ import { GlobalConfig } from '@n8n/config'; -import { isStringArray, WebhookEntity } from '@n8n/db'; +import type { ListQueryDb, Folder, FolderWithWorkflowAndSubFolderCount } from '@n8n/db'; +import { + isStringArray, + WebhookEntity, + TagEntity, + WorkflowEntity, + WorkflowTagMapping, +} from '@n8n/db'; import { Service } from '@n8n/di'; import { DataSource, Repository, In, Like } from '@n8n/typeorm'; import type { @@ -14,13 +21,8 @@ import type { import { PROJECT_ROOT } from 'n8n-workflow'; import type { ListQuery } from '@/requests'; -import type { ListQueryDb } from '@/types-db'; import { FolderRepository } from './folder.repository'; -import type { Folder, FolderWithWorkflowAndSubFolderCount } from '../entities/folder'; -import { TagEntity } from '../entities/tag-entity'; -import { WorkflowEntity } from '../entities/workflow-entity'; -import { WorkflowTagMapping } from '../entities/workflow-tag-mapping'; type ResourceType = 'folder' | 'workflow'; diff --git a/packages/cli/src/databases/subscribers/user-subscriber.ts b/packages/cli/src/databases/subscribers/user-subscriber.ts index b579423424..8d9428839e 100644 --- a/packages/cli/src/databases/subscribers/user-subscriber.ts +++ b/packages/cli/src/databases/subscribers/user-subscriber.ts @@ -1,11 +1,10 @@ +import { Project, User } from '@n8n/db'; import { Container } from '@n8n/di'; import type { EntitySubscriberInterface, UpdateEvent } from '@n8n/typeorm'; import { EventSubscriber } from '@n8n/typeorm'; import { ErrorReporter, Logger } from 'n8n-core'; import { UnexpectedError } from 'n8n-workflow'; -import { Project } from '../entities/project'; -import { User } from '../entities/user'; import { UserRepository } from '../repositories/user.repository'; @EventSubscriber() diff --git a/packages/cli/src/environments.ee/source-control/__tests__/source-control-export.service.test.ts b/packages/cli/src/environments.ee/source-control/__tests__/source-control-export.service.test.ts index 773980bd47..adaf19f226 100644 --- a/packages/cli/src/environments.ee/source-control/__tests__/source-control-export.service.test.ts +++ b/packages/cli/src/environments.ee/source-control/__tests__/source-control-export.service.test.ts @@ -1,11 +1,11 @@ import type { SourceControlledFile } from '@n8n/api-types'; +import type { SharedCredentials } from '@n8n/db'; +import type { SharedWorkflow } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock, captor } from 'jest-mock-extended'; import { Cipher, type InstanceSettings } from 'n8n-core'; import fsp from 'node:fs/promises'; -import type { SharedCredentials } from '@/databases/entities/shared-credentials'; -import type { SharedWorkflow } from '@/databases/entities/shared-workflow'; import type { FolderRepository } from '@/databases/repositories/folder.repository'; import type { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import type { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; diff --git a/packages/cli/src/environments.ee/source-control/__tests__/source-control-git.service.test.ts b/packages/cli/src/environments.ee/source-control/__tests__/source-control-git.service.test.ts index acdc2d9c8e..473ee17796 100644 --- a/packages/cli/src/environments.ee/source-control/__tests__/source-control-git.service.test.ts +++ b/packages/cli/src/environments.ee/source-control/__tests__/source-control-git.service.test.ts @@ -1,9 +1,8 @@ +import type { User } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { simpleGit } from 'simple-git'; import type { SimpleGit } from 'simple-git'; -import type { User } from '@/databases/entities/user'; - import { SourceControlGitService } from '../source-control-git.service.ee'; import type { SourceControlPreferences } from '../types/source-control-preferences'; diff --git a/packages/cli/src/environments.ee/source-control/__tests__/source-control-import.service.ee.test.ts b/packages/cli/src/environments.ee/source-control/__tests__/source-control-import.service.ee.test.ts index 9bb56d6f03..06efc595f1 100644 --- a/packages/cli/src/environments.ee/source-control/__tests__/source-control-import.service.ee.test.ts +++ b/packages/cli/src/environments.ee/source-control/__tests__/source-control-import.service.ee.test.ts @@ -1,9 +1,9 @@ +import type { WorkflowEntity } from '@n8n/db'; import * as fastGlob from 'fast-glob'; import { mock } from 'jest-mock-extended'; import { type InstanceSettings } from 'n8n-core'; import fsp from 'node:fs/promises'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { FolderRepository } from '@/databases/repositories/folder.repository'; import type { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/src/environments.ee/source-control/__tests__/source-control.service.test.ts b/packages/cli/src/environments.ee/source-control/__tests__/source-control.service.test.ts index 78b3d7a2c9..643c1e17da 100644 --- a/packages/cli/src/environments.ee/source-control/__tests__/source-control.service.test.ts +++ b/packages/cli/src/environments.ee/source-control/__tests__/source-control.service.test.ts @@ -1,12 +1,12 @@ import type { SourceControlledFile } from '@n8n/api-types'; import type { Variables } from '@n8n/db'; +import type { FolderWithWorkflowAndSubFolderCount } from '@n8n/db'; +import type { TagEntity } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; import { InstanceSettings } from 'n8n-core'; -import type { FolderWithWorkflowAndSubFolderCount } from '@/databases/entities/folder'; -import type { TagEntity } from '@/databases/entities/tag-entity'; -import type { User } from '@/databases/entities/user'; import type { FolderRepository } from '@/databases/repositories/folder.repository'; import type { TagRepository } from '@/databases/repositories/tag.repository'; import { SourceControlPreferencesService } from '@/environments.ee/source-control/source-control-preferences.service.ee'; diff --git a/packages/cli/src/environments.ee/source-control/source-control-export.service.ee.ts b/packages/cli/src/environments.ee/source-control/source-control-export.service.ee.ts index cff6552f05..92cf618db7 100644 --- a/packages/cli/src/environments.ee/source-control/source-control-export.service.ee.ts +++ b/packages/cli/src/environments.ee/source-control/source-control-export.service.ee.ts @@ -1,4 +1,5 @@ import type { SourceControlledFile } from '@n8n/api-types'; +import type { IWorkflowDb } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; @@ -14,7 +15,6 @@ import { SharedWorkflowRepository } from '@/databases/repositories/shared-workfl import { TagRepository } from '@/databases/repositories/tag.repository'; import { WorkflowTagMappingRepository } from '@/databases/repositories/workflow-tag-mapping.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; -import type { IWorkflowDb } from '@/types-db'; import { formatWorkflow } from '@/workflows/workflow.formatter'; import { diff --git a/packages/cli/src/environments.ee/source-control/source-control-git.service.ee.ts b/packages/cli/src/environments.ee/source-control/source-control-git.service.ee.ts index 892cd9c425..98c06a1051 100644 --- a/packages/cli/src/environments.ee/source-control/source-control-git.service.ee.ts +++ b/packages/cli/src/environments.ee/source-control/source-control-git.service.ee.ts @@ -1,3 +1,4 @@ +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import { execSync } from 'child_process'; import { Logger } from 'n8n-core'; @@ -14,7 +15,6 @@ import type { StatusResult, } from 'simple-git'; -import type { User } from '@/databases/entities/user'; import { OwnershipService } from '@/services/ownership.service'; import { diff --git a/packages/cli/src/environments.ee/source-control/source-control-import.service.ee.ts b/packages/cli/src/environments.ee/source-control/source-control-import.service.ee.ts index 8c40b8024f..47698bdd25 100644 --- a/packages/cli/src/environments.ee/source-control/source-control-import.service.ee.ts +++ b/packages/cli/src/environments.ee/source-control/source-control-import.service.ee.ts @@ -1,5 +1,6 @@ import type { SourceControlledFile } from '@n8n/api-types'; -import type { Variables } from '@n8n/db'; +import { SharedCredentials } from '@n8n/db'; +import type { Variables, Project, TagEntity, User, WorkflowTagMapping } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; @@ -11,11 +12,6 @@ import path from 'path'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; import { CredentialsService } from '@/credentials/credentials.service'; -import type { Project } from '@/databases/entities/project'; -import { SharedCredentials } from '@/databases/entities/shared-credentials'; -import type { TagEntity } from '@/databases/entities/tag-entity'; -import type { User } from '@/databases/entities/user'; -import type { WorkflowTagMapping } from '@/databases/entities/workflow-tag-mapping'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { FolderRepository } from '@/databases/repositories/folder.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; diff --git a/packages/cli/src/environments.ee/source-control/source-control.service.ee.ts b/packages/cli/src/environments.ee/source-control/source-control.service.ee.ts index fbc1513c2c..bfb1e001eb 100644 --- a/packages/cli/src/environments.ee/source-control/source-control.service.ee.ts +++ b/packages/cli/src/environments.ee/source-control/source-control.service.ee.ts @@ -3,7 +3,7 @@ import type { PushWorkFolderRequestDto, SourceControlledFile, } from '@n8n/api-types'; -import type { Variables } from '@n8n/db'; +import type { Variables, TagEntity, User } from '@n8n/db'; import { Service } from '@n8n/di'; import { writeFileSync } from 'fs'; import { Logger } from 'n8n-core'; @@ -11,8 +11,6 @@ import { UnexpectedError, UserError } from 'n8n-workflow'; import path from 'path'; import type { PushResult } from 'simple-git'; -import type { TagEntity } from '@/databases/entities/tag-entity'; -import type { User } from '@/databases/entities/user'; import { FolderRepository } from '@/databases/repositories/folder.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; diff --git a/packages/cli/src/environments.ee/source-control/types/import-result.ts b/packages/cli/src/environments.ee/source-control/types/import-result.ts index 19b60bb57f..b93b5e21c1 100644 --- a/packages/cli/src/environments.ee/source-control/types/import-result.ts +++ b/packages/cli/src/environments.ee/source-control/types/import-result.ts @@ -1,5 +1,4 @@ -import type { TagEntity } from '@/databases/entities/tag-entity'; -import type { WorkflowTagMapping } from '@/databases/entities/workflow-tag-mapping'; +import type { TagEntity, WorkflowTagMapping } from '@n8n/db'; export interface ImportResult { workflows: Array<{ diff --git a/packages/cli/src/errors/subworkflow-policy-denial.error.ts b/packages/cli/src/errors/subworkflow-policy-denial.error.ts index 2e4b925534..a845969d96 100644 --- a/packages/cli/src/errors/subworkflow-policy-denial.error.ts +++ b/packages/cli/src/errors/subworkflow-policy-denial.error.ts @@ -1,8 +1,7 @@ +import type { Project } from '@n8n/db'; import { WorkflowOperationError } from 'n8n-workflow'; import type { INode } from 'n8n-workflow'; -import type { Project } from '@/databases/entities/project'; - type Options = { /** ID of the subworkflow whose execution was denied. */ subworkflowId: string; diff --git a/packages/cli/src/evaluation.ee/test-runner/__tests__/test-runner.service.ee.test.ts b/packages/cli/src/evaluation.ee/test-runner/__tests__/test-runner.service.ee.test.ts index 8d61fcb901..b2d9a91b47 100644 --- a/packages/cli/src/evaluation.ee/test-runner/__tests__/test-runner.service.ee.test.ts +++ b/packages/cli/src/evaluation.ee/test-runner/__tests__/test-runner.service.ee.test.ts @@ -1,3 +1,4 @@ +import type { User } from '@n8n/db'; import type { SelectQueryBuilder } from '@n8n/typeorm'; import { stringify } from 'flatted'; import { readFileSync } from 'fs'; @@ -13,7 +14,6 @@ import type { ExecutionEntity } from '@/databases/entities/execution-entity'; import type { TestDefinition } from '@/databases/entities/test-definition.ee'; import type { TestMetric } from '@/databases/entities/test-metric.ee'; import type { TestRun } from '@/databases/entities/test-run.ee'; -import type { User } from '@/databases/entities/user'; import type { ExecutionRepository } from '@/databases/repositories/execution.repository'; import type { TestCaseExecutionRepository } from '@/databases/repositories/test-case-execution.repository.ee'; import type { TestMetricRepository } from '@/databases/repositories/test-metric.repository.ee'; diff --git a/packages/cli/src/evaluation.ee/test-runner/test-runner.service.ee.ts b/packages/cli/src/evaluation.ee/test-runner/test-runner.service.ee.ts index c987523a7d..bb9bbc6d12 100644 --- a/packages/cli/src/evaluation.ee/test-runner/test-runner.service.ee.ts +++ b/packages/cli/src/evaluation.ee/test-runner/test-runner.service.ee.ts @@ -1,3 +1,4 @@ +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import { parse } from 'flatted'; import difference from 'lodash/difference'; @@ -19,7 +20,6 @@ import { EVALUATION_METRICS_NODE } from '@/constants'; import type { ExecutionEntity } from '@/databases/entities/execution-entity'; import type { MockedNodeItem, TestDefinition } from '@/databases/entities/test-definition.ee'; import type { TestRun } from '@/databases/entities/test-run.ee'; -import type { User } from '@/databases/entities/user'; import { ExecutionRepository } from '@/databases/repositories/execution.repository'; import { TestCaseExecutionRepository } from '@/databases/repositories/test-case-execution.repository.ee'; import { TestMetricRepository } from '@/databases/repositories/test-metric.repository.ee'; diff --git a/packages/cli/src/eventbus/event-message-classes/event-message-workflow.ts b/packages/cli/src/eventbus/event-message-classes/event-message-workflow.ts index bf58dfeae0..a26ea93ea5 100644 --- a/packages/cli/src/eventbus/event-message-classes/event-message-workflow.ts +++ b/packages/cli/src/eventbus/event-message-classes/event-message-workflow.ts @@ -1,8 +1,7 @@ +import type { IExecutionBase } from '@n8n/db'; import type { IWorkflowBase, JsonObject } from 'n8n-workflow'; import { EventMessageTypeNames } from 'n8n-workflow'; -import type { IExecutionBase } from '@/types-db'; - import type { EventNamesWorkflowType } from '.'; import { AbstractEventMessage, isEventMessageOptionsWithType } from './abstract-event-message'; import type { AbstractEventMessageOptions } from './abstract-event-message-options'; diff --git a/packages/cli/src/events/__tests__/log-streaming-event-relay.test.ts b/packages/cli/src/events/__tests__/log-streaming-event-relay.test.ts index 557a063bb1..55eaeb8965 100644 --- a/packages/cli/src/events/__tests__/log-streaming-event-relay.test.ts +++ b/packages/cli/src/events/__tests__/log-streaming-event-relay.test.ts @@ -1,3 +1,4 @@ +import type { IWorkflowDb } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import type { INode, IRun, IWorkflowBase } from 'n8n-workflow'; @@ -5,7 +6,6 @@ import type { MessageEventBus } from '@/eventbus/message-event-bus/message-event import { EventService } from '@/events/event.service'; import type { RelayEventMap } from '@/events/maps/relay.event-map'; import { LogStreamingEventRelay } from '@/events/relays/log-streaming.event-relay'; -import type { IWorkflowDb } from '@/types-db'; describe('LogStreamingEventRelay', () => { const eventBus = mock(); diff --git a/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts b/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts index 0e051d9f79..87c0686075 100644 --- a/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts +++ b/packages/cli/src/events/__tests__/telemetry-event-relay.test.ts @@ -1,12 +1,13 @@ import type { GlobalConfig } from '@n8n/config'; +import type { CredentialsEntity } from '@n8n/db'; +import type { WorkflowEntity } from '@n8n/db'; +import type { IWorkflowDb } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { type BinaryDataConfig, InstanceSettings } from 'n8n-core'; import type { INode, INodesGraphResult } from 'n8n-workflow'; import { NodeApiError, TelemetryHelpers, type IRun, type IWorkflowBase } from 'n8n-workflow'; import { N8N_VERSION } from '@/constants'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import type { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import type { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; @@ -17,7 +18,6 @@ import { TelemetryEventRelay } from '@/events/relays/telemetry.event-relay'; import type { License } from '@/license'; import type { NodeTypes } from '@/node-types'; import type { Telemetry } from '@/telemetry'; -import type { IWorkflowDb } from '@/types-db'; import { mockInstance } from '@test/mocking'; const flushPromises = async () => await new Promise((resolve) => setImmediate(resolve)); diff --git a/packages/cli/src/events/maps/relay.event-map.ts b/packages/cli/src/events/maps/relay.event-map.ts index 84929f937b..78c7b7d0da 100644 --- a/packages/cli/src/events/maps/relay.event-map.ts +++ b/packages/cli/src/events/maps/relay.event-map.ts @@ -1,4 +1,5 @@ import type { AuthenticationMethod, ProjectRelation } from '@n8n/api-types'; +import type { AuthProviderType, User, IWorkflowDb } from '@n8n/db'; import type { GlobalRole } from '@n8n/permissions'; import type { IPersonalizationSurveyAnswersV4, @@ -8,9 +9,6 @@ import type { } from 'n8n-workflow'; import type { ConcurrencyQueueType } from '@/concurrency/concurrency-control.service'; -import type { AuthProviderType } from '@/databases/entities/auth-identity'; -import type { User } from '@/databases/entities/user'; -import type { IWorkflowDb } from '@/types-db'; import type { AiEventMap } from './ai.event-map'; diff --git a/packages/cli/src/execution-lifecycle/__tests__/execution-lifecycle-hooks.test.ts b/packages/cli/src/execution-lifecycle/__tests__/execution-lifecycle-hooks.test.ts index e00a4af035..744b754e01 100644 --- a/packages/cli/src/execution-lifecycle/__tests__/execution-lifecycle-hooks.test.ts +++ b/packages/cli/src/execution-lifecycle/__tests__/execution-lifecycle-hooks.test.ts @@ -1,3 +1,4 @@ +import type { Project } from '@n8n/db'; import { stringify } from 'flatted'; import { mock } from 'jest-mock-extended'; import { @@ -21,7 +22,6 @@ import type { ITaskStartedData, } from 'n8n-workflow'; -import type { Project } from '@/databases/entities/project'; import { ExecutionRepository } from '@/databases/repositories/execution.repository'; import { EventService } from '@/events/event.service'; import { ExternalHooks } from '@/external-hooks'; diff --git a/packages/cli/src/execution-lifecycle/__tests__/save-execution-progress.test.ts b/packages/cli/src/execution-lifecycle/__tests__/save-execution-progress.test.ts index 591d7a7c7b..b5c0eb2527 100644 --- a/packages/cli/src/execution-lifecycle/__tests__/save-execution-progress.test.ts +++ b/packages/cli/src/execution-lifecycle/__tests__/save-execution-progress.test.ts @@ -1,10 +1,10 @@ +import type { IExecutionResponse } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { ErrorReporter } from 'n8n-core'; import { Logger } from 'n8n-core'; import type { IRunExecutionData, ITaskData } from 'n8n-workflow'; import { ExecutionRepository } from '@/databases/repositories/execution.repository'; -import type { IExecutionResponse } from '@/types-db'; import { mockInstance } from '@test/mocking'; import { saveExecutionProgress } from '../save-execution-progress'; diff --git a/packages/cli/src/execution-lifecycle/shared/shared-hook-functions.ts b/packages/cli/src/execution-lifecycle/shared/shared-hook-functions.ts index 5cd74269ad..8a42d44532 100644 --- a/packages/cli/src/execution-lifecycle/shared/shared-hook-functions.ts +++ b/packages/cli/src/execution-lifecycle/shared/shared-hook-functions.ts @@ -1,3 +1,4 @@ +import type { IExecutionDb } from '@n8n/db'; import { Container } from '@n8n/di'; import pick from 'lodash/pick'; import { Logger } from 'n8n-core'; @@ -6,7 +7,6 @@ import { ensureError, type ExecutionStatus, type IRun, type IWorkflowBase } from import { ExecutionRepository } from '@/databases/repositories/execution.repository'; import type { UpdateExecutionPayload } from '@/interfaces'; import { ExecutionMetadataService } from '@/services/execution-metadata.service'; -import type { IExecutionDb } from '@/types-db'; import { isWorkflowIdValid } from '@/utils'; export function determineFinalExecutionStatus(runData: IRun): ExecutionStatus { diff --git a/packages/cli/src/executions/__tests__/execution.service.test.ts b/packages/cli/src/executions/__tests__/execution.service.test.ts index 74eb6dd1b9..ffe5ee9288 100644 --- a/packages/cli/src/executions/__tests__/execution.service.test.ts +++ b/packages/cli/src/executions/__tests__/execution.service.test.ts @@ -1,3 +1,4 @@ +import type { IExecutionResponse } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { WorkflowOperationError } from 'n8n-workflow'; @@ -11,7 +12,6 @@ import { ExecutionService } from '@/executions/execution.service'; import type { ExecutionRequest } from '@/executions/execution.types'; import { ScalingService } from '@/scaling/scaling.service'; import type { Job } from '@/scaling/scaling.types'; -import type { IExecutionResponse } from '@/types-db'; import type { WaitTracker } from '@/wait-tracker'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/src/executions/__tests__/executions.controller.test.ts b/packages/cli/src/executions/__tests__/executions.controller.test.ts index ecd95e98ed..d5f8f849a3 100644 --- a/packages/cli/src/executions/__tests__/executions.controller.test.ts +++ b/packages/cli/src/executions/__tests__/executions.controller.test.ts @@ -1,3 +1,4 @@ +import type { ExecutionSummaries } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; @@ -5,7 +6,6 @@ import { NotFoundError } from '@/errors/response-errors/not-found.error'; import type { ExecutionService } from '@/executions/execution.service'; import type { ExecutionRequest } from '@/executions/execution.types'; import { ExecutionsController } from '@/executions/executions.controller'; -import type { ExecutionSummaries } from '@/types-db'; import type { WorkflowSharingService } from '@/workflows/workflow-sharing.service'; describe('ExecutionsController', () => { diff --git a/packages/cli/src/executions/execution-recovery.service.ts b/packages/cli/src/executions/execution-recovery.service.ts index 2b49105c4b..15b6c24cdf 100644 --- a/packages/cli/src/executions/execution-recovery.service.ts +++ b/packages/cli/src/executions/execution-recovery.service.ts @@ -1,3 +1,4 @@ +import type { IExecutionResponse } from '@n8n/db'; import { Service } from '@n8n/di'; import type { DateTime } from 'luxon'; import { InstanceSettings, Logger } from 'n8n-core'; @@ -10,7 +11,6 @@ import { NodeCrashedError } from '@/errors/node-crashed.error'; import { WorkflowCrashedError } from '@/errors/workflow-crashed.error'; import { getLifecycleHooksForRegularMain } from '@/execution-lifecycle/execution-lifecycle-hooks'; import { Push } from '@/push'; -import type { IExecutionResponse } from '@/types-db'; import type { EventMessageTypes } from '../eventbus/event-message-classes'; diff --git a/packages/cli/src/executions/execution.service.ee.ts b/packages/cli/src/executions/execution.service.ee.ts index 93f3b63a63..7e05e1699a 100644 --- a/packages/cli/src/executions/execution.service.ee.ts +++ b/packages/cli/src/executions/execution.service.ee.ts @@ -1,8 +1,8 @@ +import type { WorkflowWithSharingsAndCredentials, IExecutionResponse } from '@n8n/db'; import { Service } from '@n8n/di'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import type { IExecutionFlattedResponse } from '@/interfaces'; -import type { WorkflowWithSharingsAndCredentials, IExecutionResponse } from '@/types-db'; import { ExecutionService } from './execution.service'; import type { ExecutionRequest } from './execution.types'; diff --git a/packages/cli/src/executions/execution.service.ts b/packages/cli/src/executions/execution.service.ts index 76d729914e..4f2d7d5df7 100644 --- a/packages/cli/src/executions/execution.service.ts +++ b/packages/cli/src/executions/execution.service.ts @@ -1,4 +1,5 @@ import { GlobalConfig } from '@n8n/config'; +import type { User, CreateExecutionPayload, ExecutionSummaries, IExecutionResponse } from '@n8n/db'; import { Service } from '@n8n/di'; import { validate as jsonSchemaValidate } from 'jsonschema'; import { Logger } from 'n8n-core'; @@ -22,7 +23,6 @@ import { import { ActiveExecutions } from '@/active-executions'; import { ConcurrencyControlService } from '@/concurrency/concurrency-control.service'; import config from '@/config'; -import type { User } from '@/databases/entities/user'; import { AnnotationTagMappingRepository } from '@/databases/repositories/annotation-tag-mapping.repository.ee'; import { ExecutionAnnotationRepository } from '@/databases/repositories/execution-annotation.repository'; import { ExecutionRepository } from '@/databases/repositories/execution.repository'; @@ -36,7 +36,6 @@ import { NotFoundError } from '@/errors/response-errors/not-found.error'; import type { IExecutionFlattedResponse } from '@/interfaces'; import { License } from '@/license'; import { NodeTypes } from '@/node-types'; -import type { CreateExecutionPayload, ExecutionSummaries, IExecutionResponse } from '@/types-db'; import { WaitTracker } from '@/wait-tracker'; import { WorkflowRunner } from '@/workflow-runner'; import { WorkflowSharingService } from '@/workflows/workflow-sharing.service'; diff --git a/packages/cli/src/executions/execution.types.ts b/packages/cli/src/executions/execution.types.ts index 39305e28a3..5a166014a1 100644 --- a/packages/cli/src/executions/execution.types.ts +++ b/packages/cli/src/executions/execution.types.ts @@ -1,3 +1,4 @@ +import type { ExecutionSummaries } from '@n8n/db'; import type { AnnotationVote, ExecutionStatus, @@ -7,7 +8,6 @@ import type { import type { ExecutionEntity } from '@/databases/entities/execution-entity'; import type { AuthenticatedRequest } from '@/requests'; -import type { ExecutionSummaries } from '@/types-db'; export declare namespace ExecutionRequest { namespace QueryParams { diff --git a/packages/cli/src/executions/executions.controller.ts b/packages/cli/src/executions/executions.controller.ts index 8127efc55b..ec68a05df6 100644 --- a/packages/cli/src/executions/executions.controller.ts +++ b/packages/cli/src/executions/executions.controller.ts @@ -1,11 +1,10 @@ +import type { User, ExecutionSummaries } from '@n8n/db'; import { Get, Patch, Post, RestController } from '@n8n/decorators'; import type { Scope } from '@n8n/permissions'; -import type { User } from '@/databases/entities/user'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; import { License } from '@/license'; -import type { ExecutionSummaries } from '@/types-db'; import { isPositiveInteger } from '@/utils'; import { WorkflowSharingService } from '@/workflows/workflow-sharing.service'; diff --git a/packages/cli/src/executions/pre-execution-checks/__tests__/credentials-permission-checker.test.ts b/packages/cli/src/executions/pre-execution-checks/__tests__/credentials-permission-checker.test.ts index b957a3f517..5f6a5aece0 100644 --- a/packages/cli/src/executions/pre-execution-checks/__tests__/credentials-permission-checker.test.ts +++ b/packages/cli/src/executions/pre-execution-checks/__tests__/credentials-permission-checker.test.ts @@ -1,8 +1,8 @@ +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import type { INode } from 'n8n-workflow'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import type { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import type { OwnershipService } from '@/services/ownership.service'; import type { ProjectService } from '@/services/project.service.ee'; diff --git a/packages/cli/src/executions/pre-execution-checks/__tests__/subworkflow-policy-checker.test.ts b/packages/cli/src/executions/pre-execution-checks/__tests__/subworkflow-policy-checker.test.ts index 35eab2ceca..f34c20f85f 100644 --- a/packages/cli/src/executions/pre-execution-checks/__tests__/subworkflow-policy-checker.test.ts +++ b/packages/cli/src/executions/pre-execution-checks/__tests__/subworkflow-policy-checker.test.ts @@ -1,11 +1,11 @@ import type { GlobalConfig } from '@n8n/config'; +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; +import type { WorkflowEntity } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import type { INode, Workflow } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { SUBWORKFLOW_DENIAL_BASE_DESCRIPTION, SubworkflowPolicyDenialError, diff --git a/packages/cli/src/executions/pre-execution-checks/credentials-permission-checker.ts b/packages/cli/src/executions/pre-execution-checks/credentials-permission-checker.ts index 3123ea19d2..9fd6d8da94 100644 --- a/packages/cli/src/executions/pre-execution-checks/credentials-permission-checker.ts +++ b/packages/cli/src/executions/pre-execution-checks/credentials-permission-checker.ts @@ -1,8 +1,8 @@ +import type { Project } from '@n8n/db'; import { Service } from '@n8n/di'; import type { INode } from 'n8n-workflow'; import { UserError } from 'n8n-workflow'; -import type { Project } from '@/databases/entities/project'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { OwnershipService } from '@/services/ownership.service'; import { ProjectService } from '@/services/project.service.ee'; diff --git a/packages/cli/src/executions/pre-execution-checks/subworkflow-policy-checker.ts b/packages/cli/src/executions/pre-execution-checks/subworkflow-policy-checker.ts index 218c083c54..10ee72b1e1 100644 --- a/packages/cli/src/executions/pre-execution-checks/subworkflow-policy-checker.ts +++ b/packages/cli/src/executions/pre-execution-checks/subworkflow-policy-checker.ts @@ -1,9 +1,9 @@ import { GlobalConfig } from '@n8n/config'; +import type { Project } from '@n8n/db'; import { Service } from '@n8n/di'; import { Logger } from 'n8n-core'; import { type Workflow, type INode, type WorkflowSettings } from 'n8n-workflow'; -import type { Project } from '@/databases/entities/project'; import { SubworkflowPolicyDenialError } from '@/errors/subworkflow-policy-denial.error'; import { AccessService } from '@/services/access.service'; import { OwnershipService } from '@/services/ownership.service'; diff --git a/packages/cli/src/external-hooks.ts b/packages/cli/src/external-hooks.ts index af8168c068..1afb43264d 100644 --- a/packages/cli/src/external-hooks.ts +++ b/packages/cli/src/external-hooks.ts @@ -1,6 +1,7 @@ import type { FrontendSettings, UserUpdateRequestDto } from '@n8n/api-types'; import type { ClientOAuth2Options } from '@n8n/client-oauth2'; import { GlobalConfig } from '@n8n/config'; +import type { TagEntity, User, ICredentialsDb, PublicUser } from '@n8n/db'; import { Service } from '@n8n/di'; import { ErrorReporter, Logger } from 'n8n-core'; import type { IRun, IWorkflowBase, Workflow, WorkflowExecuteMode } from 'n8n-workflow'; @@ -9,13 +10,10 @@ import type clientOAuth1 from 'oauth-1.0a'; import type { AbstractServer } from '@/abstract-server'; import type { Config } from '@/config'; -import type { TagEntity } from '@/databases/entities/tag-entity'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { SettingsRepository } from '@/databases/repositories/settings.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; -import type { ICredentialsDb, PublicUser } from '@/types-db'; type Repositories = { User: UserRepository; diff --git a/packages/cli/src/generic-helpers.ts b/packages/cli/src/generic-helpers.ts index 89ed1369ef..a68b8164b8 100644 --- a/packages/cli/src/generic-helpers.ts +++ b/packages/cli/src/generic-helpers.ts @@ -1,11 +1,8 @@ +import type { CredentialsEntity, User, WorkflowEntity, TagEntity } from '@n8n/db'; import { validate } from 'class-validator'; import type { AnnotationTagEntity } from '@/databases/entities/annotation-tag-entity.ee'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { TagEntity } from '@/databases/entities/tag-entity'; import type { TestDefinition } from '@/databases/entities/test-definition.ee'; -import type { User } from '@/databases/entities/user'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { PersonalizationSurveyAnswersV4 } from './controllers/survey-answers.dto'; import { BadRequestError } from './errors/response-errors/bad-request.error'; diff --git a/packages/cli/src/interfaces.ts b/packages/cli/src/interfaces.ts index 3f99c304f4..30066ccc94 100644 --- a/packages/cli/src/interfaces.ts +++ b/packages/cli/src/interfaces.ts @@ -1,3 +1,4 @@ +import type { ICredentialsBase, IExecutionBase, IExecutionDb, ITagBase } from '@n8n/db'; import type { AssignableRole } from '@n8n/permissions'; import type { Application } from 'express'; import type { @@ -19,7 +20,6 @@ import type PCancelable from 'p-cancelable'; import type { ActiveWorkflowManager } from '@/active-workflow-manager'; import type { ExternalHooks } from '@/external-hooks'; -import type { ICredentialsBase, IExecutionBase, IExecutionDb, ITagBase } from '@/types-db'; export interface ICredentialsTypeData { [key: string]: CredentialLoadingDetails; diff --git a/packages/cli/src/ldap.ee/__tests__/helpers.test.ts b/packages/cli/src/ldap.ee/__tests__/helpers.test.ts index b84bbdbe1a..75fa4e6e09 100644 --- a/packages/cli/src/ldap.ee/__tests__/helpers.test.ts +++ b/packages/cli/src/ldap.ee/__tests__/helpers.test.ts @@ -1,7 +1,7 @@ import { generateNanoId } from '@n8n/db'; +import { AuthIdentity } from '@n8n/db'; +import { User } from '@n8n/db'; -import { AuthIdentity } from '@/databases/entities/auth-identity'; -import { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import * as helpers from '@/ldap.ee/helpers.ee'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/src/ldap.ee/helpers.ee.ts b/packages/cli/src/ldap.ee/helpers.ee.ts index dcc643d808..02c2320867 100644 --- a/packages/cli/src/ldap.ee/helpers.ee.ts +++ b/packages/cli/src/ldap.ee/helpers.ee.ts @@ -1,3 +1,4 @@ +import { AuthIdentity, User } from '@n8n/db'; import { Container } from '@n8n/di'; import { validate } from 'jsonschema'; import type { Entry as LdapUser } from 'ldapts'; @@ -5,9 +6,7 @@ import { Filter } from 'ldapts/filters/Filter'; import { randomString } from 'n8n-workflow'; import config from '@/config'; -import { AuthIdentity } from '@/databases/entities/auth-identity'; import type { AuthProviderSyncHistory } from '@/databases/entities/auth-provider-sync-history'; -import { User } from '@/databases/entities/user'; import { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository'; import { AuthProviderSyncHistoryRepository } from '@/databases/repositories/auth-provider-sync-history.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; diff --git a/packages/cli/src/ldap.ee/ldap.service.ee.ts b/packages/cli/src/ldap.ee/ldap.service.ee.ts index 99c622b962..70ff624047 100644 --- a/packages/cli/src/ldap.ee/ldap.service.ee.ts +++ b/packages/cli/src/ldap.ee/ldap.service.ee.ts @@ -1,3 +1,4 @@ +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { QueryFailedError } from '@n8n/typeorm'; @@ -9,7 +10,6 @@ import type { ConnectionOptions } from 'tls'; import config from '@/config'; import type { RunningMode, SyncStatus } from '@/databases/entities/auth-provider-sync-history'; -import type { User } from '@/databases/entities/user'; import { SettingsRepository } from '@/databases/repositories/settings.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { InternalServerError } from '@/errors/response-errors/internal-server.error'; diff --git a/packages/cli/src/license/license.service.ts b/packages/cli/src/license/license.service.ts index bd2eca414c..e06559f754 100644 --- a/packages/cli/src/license/license.service.ts +++ b/packages/cli/src/license/license.service.ts @@ -1,9 +1,9 @@ +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import axios, { AxiosError } from 'axios'; import { Logger } from 'n8n-core'; import { ensureError } from 'n8n-workflow'; -import type { User } from '@/databases/entities/user'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/middlewares/list-query/__tests__/list-query.test.ts b/packages/cli/src/middlewares/list-query/__tests__/list-query.test.ts index 37b8cba5a8..f360c8c163 100644 --- a/packages/cli/src/middlewares/list-query/__tests__/list-query.test.ts +++ b/packages/cli/src/middlewares/list-query/__tests__/list-query.test.ts @@ -1,3 +1,4 @@ +import type { ListQueryDb } from '@n8n/db'; import type { Response, NextFunction } from 'express'; import { filterListQueryMiddleware } from '@/middlewares/list-query/filter'; @@ -5,7 +6,6 @@ import { paginationListQueryMiddleware } from '@/middlewares/list-query/paginati import { selectListQueryMiddleware } from '@/middlewares/list-query/select'; import type { ListQuery } from '@/requests'; import * as ResponseHelper from '@/response-helper'; -import type { ListQueryDb } from '@/types-db'; import { sortByQueryMiddleware } from '../sort-by'; diff --git a/packages/cli/src/modules/insights/__tests__/insights-collection.service.test.ts b/packages/cli/src/modules/insights/__tests__/insights-collection.service.test.ts index fb033a63a2..12f2a31efc 100644 --- a/packages/cli/src/modules/insights/__tests__/insights-collection.service.test.ts +++ b/packages/cli/src/modules/insights/__tests__/insights-collection.service.test.ts @@ -1,3 +1,6 @@ +import type { Project } from '@n8n/db'; +import type { WorkflowEntity } from '@n8n/db'; +import type { IWorkflowDb } from '@n8n/db'; import type { WorkflowExecuteAfterContext } from '@n8n/decorators'; import { Container } from '@n8n/di'; import { In, type EntityManager } from '@n8n/typeorm'; @@ -11,13 +14,10 @@ import { type WorkflowExecuteMode, } from 'n8n-workflow'; -import type { Project } from '@/databases/entities/project'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import type { TypeUnit } from '@/modules/insights/database/entities/insights-shared'; import { InsightsMetadataRepository } from '@/modules/insights/database/repositories/insights-metadata.repository'; import { InsightsRawRepository } from '@/modules/insights/database/repositories/insights-raw.repository'; -import type { IWorkflowDb } from '@/types-db'; import { mockLogger } from '@test/mocking'; import { createTeamProject } from '@test-integration/db/projects'; import { createWorkflow } from '@test-integration/db/workflows'; diff --git a/packages/cli/src/modules/insights/__tests__/insights.service.test.ts b/packages/cli/src/modules/insights/__tests__/insights.service.test.ts index 78abaf4060..f0ba7113a6 100644 --- a/packages/cli/src/modules/insights/__tests__/insights.service.test.ts +++ b/packages/cli/src/modules/insights/__tests__/insights.service.test.ts @@ -1,12 +1,12 @@ import type { InsightsDateRange } from '@n8n/api-types'; +import type { Project } from '@n8n/db'; +import type { WorkflowEntity } from '@n8n/db'; +import type { IWorkflowDb } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; import { DateTime } from 'luxon'; -import type { Project } from '@/databases/entities/project'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { License } from '@/license'; -import type { IWorkflowDb } from '@/types-db'; import { createTeamProject } from '@test-integration/db/projects'; import { createWorkflow } from '@test-integration/db/workflows'; import * as testDb from '@test-integration/test-db'; diff --git a/packages/cli/src/modules/insights/database/entities/__tests__/db-utils.ts b/packages/cli/src/modules/insights/database/entities/__tests__/db-utils.ts index 03c4b0f31c..0200f51b12 100644 --- a/packages/cli/src/modules/insights/database/entities/__tests__/db-utils.ts +++ b/packages/cli/src/modules/insights/database/entities/__tests__/db-utils.ts @@ -1,8 +1,8 @@ +import type { WorkflowEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import type { DateTime } from 'luxon'; import type { IWorkflowBase } from 'n8n-workflow'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { InsightsByPeriodRepository } from '../../repositories/insights-by-period.repository'; diff --git a/packages/cli/src/modules/insights/insights-collection.service.ts b/packages/cli/src/modules/insights/insights-collection.service.ts index a436f86da1..ecd76d1688 100644 --- a/packages/cli/src/modules/insights/insights-collection.service.ts +++ b/packages/cli/src/modules/insights/insights-collection.service.ts @@ -1,3 +1,4 @@ +import { SharedWorkflow } from '@n8n/db'; import { OnLifecycleEvent, type WorkflowExecuteAfterContext } from '@n8n/decorators'; import { Service } from '@n8n/di'; import { In } from '@n8n/typeorm'; @@ -5,7 +6,6 @@ import { DateTime } from 'luxon'; import { Logger } from 'n8n-core'; import { UnexpectedError, type ExecutionStatus, type WorkflowExecuteMode } from 'n8n-workflow'; -import { SharedWorkflow } from '@/databases/entities/shared-workflow'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { InsightsMetadata } from '@/modules/insights/database/entities/insights-metadata'; import { InsightsRaw } from '@/modules/insights/database/entities/insights-raw'; diff --git a/packages/cli/src/permissions.ee/check-access.ts b/packages/cli/src/permissions.ee/check-access.ts index 6d45ddfe65..b01ebc6b0d 100644 --- a/packages/cli/src/permissions.ee/check-access.ts +++ b/packages/cli/src/permissions.ee/check-access.ts @@ -1,10 +1,10 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Scope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; import { UnexpectedError } from 'n8n-workflow'; -import type { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; diff --git a/packages/cli/src/posthog/index.ts b/packages/cli/src/posthog/index.ts index 65cb6d1df6..00e027f56a 100644 --- a/packages/cli/src/posthog/index.ts +++ b/packages/cli/src/posthog/index.ts @@ -1,11 +1,10 @@ import { GlobalConfig } from '@n8n/config'; +import type { PublicUser } from '@n8n/db'; import { Service } from '@n8n/di'; import { InstanceSettings } from 'n8n-core'; import type { FeatureFlags, ITelemetryTrackProperties } from 'n8n-workflow'; import type { PostHog } from 'posthog-node'; -import type { PublicUser } from '@/types-db'; - @Service() export class PostHogClient { private postHog?: PostHog; diff --git a/packages/cli/src/public-api/types.ts b/packages/cli/src/public-api/types.ts index 14e586dfdb..2558a1e7d6 100644 --- a/packages/cli/src/public-api/types.ts +++ b/packages/cli/src/public-api/types.ts @@ -1,7 +1,6 @@ +import type { TagEntity, WorkflowEntity } from '@n8n/db'; import type { ExecutionStatus, ICredentialDataDecryptedObject } from 'n8n-workflow'; -import type { TagEntity } from '@/databases/entities/tag-entity'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { AuthlessRequest, AuthenticatedRequest } from '@/requests'; import type { Risk } from '@/security-audit/types'; diff --git a/packages/cli/src/public-api/v1/handlers/credentials/credentials.handler.ts b/packages/cli/src/public-api/v1/handlers/credentials/credentials.handler.ts index 6dd750155e..2224f67c6d 100644 --- a/packages/cli/src/public-api/v1/handlers/credentials/credentials.handler.ts +++ b/packages/cli/src/public-api/v1/handlers/credentials/credentials.handler.ts @@ -1,4 +1,5 @@ /* eslint-disable @typescript-eslint/no-unsafe-argument */ +import type { CredentialsEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import type express from 'express'; import { z } from 'zod'; @@ -6,7 +7,6 @@ import { z } from 'zod'; import { CredentialTypes } from '@/credential-types'; import { EnterpriseCredentialsService } from '@/credentials/credentials.service.ee'; import { CredentialsHelper } from '@/credentials-helper'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; import { validCredentialsProperties, validCredentialType } from './credentials.middleware'; import { diff --git a/packages/cli/src/public-api/v1/handlers/credentials/credentials.service.ts b/packages/cli/src/public-api/v1/handlers/credentials/credentials.service.ts index 1cf29f3716..ffc9d56a2c 100644 --- a/packages/cli/src/public-api/v1/handlers/credentials/credentials.service.ts +++ b/packages/cli/src/public-api/v1/handlers/credentials/credentials.service.ts @@ -1,3 +1,5 @@ +import { CredentialsEntity, SharedCredentials } from '@n8n/db'; +import type { User, ICredentialsDb } from '@n8n/db'; import { Container } from '@n8n/di'; import { Credentials } from 'n8n-core'; import type { @@ -7,9 +9,6 @@ import type { INodePropertyOptions, } from 'n8n-workflow'; -import { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import { SharedCredentials } from '@/databases/entities/shared-credentials'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; @@ -17,7 +16,6 @@ import * as Db from '@/db'; import { EventService } from '@/events/event.service'; import { ExternalHooks } from '@/external-hooks'; import type { CredentialRequest } from '@/requests'; -import type { ICredentialsDb } from '@/types-db'; import type { IDependency, IJsonSchema } from '../../../types'; diff --git a/packages/cli/src/public-api/v1/handlers/tags/tags.handler.ts b/packages/cli/src/public-api/v1/handlers/tags/tags.handler.ts index 74af90029e..5199fc9550 100644 --- a/packages/cli/src/public-api/v1/handlers/tags/tags.handler.ts +++ b/packages/cli/src/public-api/v1/handlers/tags/tags.handler.ts @@ -1,9 +1,9 @@ +import type { TagEntity } from '@n8n/db'; import { Container } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import type { FindManyOptions } from '@n8n/typeorm'; import type express from 'express'; -import type { TagEntity } from '@/databases/entities/tag-entity'; import { TagRepository } from '@/databases/repositories/tag.repository'; import { TagService } from '@/services/tag.service'; diff --git a/packages/cli/src/public-api/v1/handlers/users/users.service.ee.ts b/packages/cli/src/public-api/v1/handlers/users/users.service.ee.ts index fa50ce3cf0..1b6fccb786 100644 --- a/packages/cli/src/public-api/v1/handlers/users/users.service.ee.ts +++ b/packages/cli/src/public-api/v1/handlers/users/users.service.ee.ts @@ -1,10 +1,10 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; import pick from 'lodash/pick'; import { validate as uuidValidate } from 'uuid'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; export async function getUser(data: { diff --git a/packages/cli/src/public-api/v1/handlers/workflows/workflows.handler.ts b/packages/cli/src/public-api/v1/handlers/workflows/workflows.handler.ts index f18eed4a63..6ae737e3f7 100644 --- a/packages/cli/src/public-api/v1/handlers/workflows/workflows.handler.ts +++ b/packages/cli/src/public-api/v1/handlers/workflows/workflows.handler.ts @@ -1,4 +1,5 @@ import { GlobalConfig } from '@n8n/config'; +import { WorkflowEntity } from '@n8n/db'; import { Container } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In, Like, QueryFailedError } from '@n8n/typeorm'; @@ -9,7 +10,6 @@ import { v4 as uuid } from 'uuid'; import { z } from 'zod'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; -import { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/src/public-api/v1/handlers/workflows/workflows.service.ts b/packages/cli/src/public-api/v1/handlers/workflows/workflows.service.ts index 534101b3a6..ca6f7a0993 100644 --- a/packages/cli/src/public-api/v1/handlers/workflows/workflows.service.ts +++ b/packages/cli/src/public-api/v1/handlers/workflows/workflows.service.ts @@ -1,13 +1,10 @@ import { GlobalConfig } from '@n8n/config'; +import type { Project, WorkflowSharingRole, User } from '@n8n/db'; +import { WorkflowEntity, WorkflowTagMapping, SharedWorkflow } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Scope } from '@n8n/permissions'; import type { WorkflowId } from 'n8n-workflow'; -import type { Project } from '@/databases/entities/project'; -import { SharedWorkflow, type WorkflowSharingRole } from '@/databases/entities/shared-workflow'; -import type { User } from '@/databases/entities/user'; -import { WorkflowEntity } from '@/databases/entities/workflow-entity'; -import { WorkflowTagMapping } from '@/databases/entities/workflow-tag-mapping'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/src/push/__tests__/index.test.ts b/packages/cli/src/push/__tests__/index.test.ts index a6e7c66c2c..c97f434e55 100644 --- a/packages/cli/src/push/__tests__/index.test.ts +++ b/packages/cli/src/push/__tests__/index.test.ts @@ -1,10 +1,10 @@ +import type { User } from '@n8n/db'; import type { Application } from 'express'; import { captor, mock } from 'jest-mock-extended'; import type { Server, ServerResponse } from 'node:http'; import type { Socket } from 'node:net'; import { type WebSocket, Server as WSServer } from 'ws'; -import type { User } from '@/databases/entities/user'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { Push } from '@/push'; import { SSEPush } from '@/push/sse.push'; diff --git a/packages/cli/src/push/__tests__/websocket.push.test.ts b/packages/cli/src/push/__tests__/websocket.push.test.ts index 038e73dab2..55c52f86cf 100644 --- a/packages/cli/src/push/__tests__/websocket.push.test.ts +++ b/packages/cli/src/push/__tests__/websocket.push.test.ts @@ -1,10 +1,10 @@ import { createHeartbeatMessage, type PushMessage } from '@n8n/api-types'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { EventEmitter } from 'events'; import { Logger } from 'n8n-core'; import type WebSocket from 'ws'; -import type { User } from '@/databases/entities/user'; import { WebSocketPush } from '@/push/websocket.push'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/src/push/abstract.push.ts b/packages/cli/src/push/abstract.push.ts index d42fddb556..0c628e9596 100644 --- a/packages/cli/src/push/abstract.push.ts +++ b/packages/cli/src/push/abstract.push.ts @@ -1,9 +1,9 @@ import type { PushMessage } from '@n8n/api-types'; +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import { ErrorReporter, Logger } from 'n8n-core'; import { assert, jsonStringify } from 'n8n-workflow'; -import type { User } from '@/databases/entities/user'; import type { OnPushMessage } from '@/push/types'; import { TypedEmitter } from '@/typed-emitter'; diff --git a/packages/cli/src/push/index.ts b/packages/cli/src/push/index.ts index 8056c68402..09a18be6cf 100644 --- a/packages/cli/src/push/index.ts +++ b/packages/cli/src/push/index.ts @@ -1,4 +1,5 @@ import type { PushMessage } from '@n8n/api-types'; +import type { User } from '@n8n/db'; import { OnShutdown } from '@n8n/decorators'; import { Container, Service } from '@n8n/di'; import type { Application } from 'express'; @@ -11,7 +12,6 @@ import { Server as WSServer } from 'ws'; import { AuthService } from '@/auth/auth.service'; import { inProduction, TRIMMED_TASK_DATA_CONNECTIONS } from '@/constants'; -import type { User } from '@/databases/entities/user'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { Publisher } from '@/scaling/pubsub/publisher.service'; import { TypedEmitter } from '@/typed-emitter'; diff --git a/packages/cli/src/push/sse.push.ts b/packages/cli/src/push/sse.push.ts index 9c92cc8cb3..3a9606ff5a 100644 --- a/packages/cli/src/push/sse.push.ts +++ b/packages/cli/src/push/sse.push.ts @@ -1,7 +1,6 @@ +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; -import type { User } from '@/databases/entities/user'; - import { AbstractPush } from './abstract.push'; import type { PushRequest, PushResponse } from './types'; diff --git a/packages/cli/src/push/types.ts b/packages/cli/src/push/types.ts index 268d8d34bb..aa77203588 100644 --- a/packages/cli/src/push/types.ts +++ b/packages/cli/src/push/types.ts @@ -1,7 +1,7 @@ +import type { User } from '@n8n/db'; import type { Request, Response } from 'express'; import type { WebSocket } from 'ws'; -import type { User } from '@/databases/entities/user'; import type { AuthenticatedRequest } from '@/requests'; // TODO: move all push related types here diff --git a/packages/cli/src/push/websocket.push.ts b/packages/cli/src/push/websocket.push.ts index 6178d0cdee..7b02201263 100644 --- a/packages/cli/src/push/websocket.push.ts +++ b/packages/cli/src/push/websocket.push.ts @@ -1,10 +1,9 @@ import { heartbeatMessageSchema } from '@n8n/api-types'; +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import { UnexpectedError } from 'n8n-workflow'; import type WebSocket from 'ws'; -import type { User } from '@/databases/entities/user'; - import { AbstractPush } from './abstract.push'; function heartbeat(this: WebSocket) { diff --git a/packages/cli/src/requests.ts b/packages/cli/src/requests.ts index 727694f53b..4443008888 100644 --- a/packages/cli/src/requests.ts +++ b/packages/cli/src/requests.ts @@ -1,5 +1,5 @@ import type { ProjectIcon, ProjectRole, ProjectType } from '@n8n/api-types'; -import type { Variables } from '@n8n/db'; +import type { Variables, Project, User, ListQueryDb } from '@n8n/db'; import type { AssignableRole, GlobalRole, Scope } from '@n8n/permissions'; import type express from 'express'; import type { @@ -8,12 +8,8 @@ import type { IPersonalizationSurveyAnswersV4, } from 'n8n-workflow'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import type { WorkflowHistory } from '@/databases/entities/workflow-history'; -import type { ListQueryDb } from './types-db'; - export type APIRequest< RouteParams = {}, ResponseBody = {}, @@ -298,7 +294,7 @@ export declare namespace ProjectRequest { type ProjectWithRelations = { id: string; name: string | undefined; - icon: ProjectIcon; + icon: ProjectIcon | null; type: ProjectType; relations: ProjectRelationResponse[]; scopes: Scope[]; diff --git a/packages/cli/src/scaling/__tests__/job-processor.service.test.ts b/packages/cli/src/scaling/__tests__/job-processor.service.test.ts index f88bb415be..0c957d25d0 100644 --- a/packages/cli/src/scaling/__tests__/job-processor.service.test.ts +++ b/packages/cli/src/scaling/__tests__/job-processor.service.test.ts @@ -1,3 +1,4 @@ +import type { IExecutionResponse } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import type { Logger } from 'n8n-core'; import { mockInstance } from 'n8n-core/test/utils'; @@ -11,7 +12,6 @@ import { ExternalHooks } from '@/external-hooks'; import type { ManualExecutionService } from '@/manual-execution.service'; import { SecretsHelper } from '@/secrets-helpers.ee'; import { WorkflowStatisticsService } from '@/services/workflow-statistics.service'; -import type { IExecutionResponse } from '@/types-db'; import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data'; import { WorkflowStaticDataService } from '@/workflows/workflow-static-data.service'; diff --git a/packages/cli/src/services/__tests__/active-workflows.service.test.ts b/packages/cli/src/services/__tests__/active-workflows.service.test.ts index 590281f236..31d937cd73 100644 --- a/packages/cli/src/services/__tests__/active-workflows.service.test.ts +++ b/packages/cli/src/services/__tests__/active-workflows.service.test.ts @@ -1,8 +1,8 @@ +import type { User } from '@n8n/db'; +import { WorkflowEntity } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import type { ActivationErrorsService } from '@/activation-errors.service'; -import type { User } from '@/databases/entities/user'; -import { WorkflowEntity } from '@/databases/entities/workflow-entity'; import type { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import type { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; diff --git a/packages/cli/src/services/__tests__/credentials-finder.service.test.ts b/packages/cli/src/services/__tests__/credentials-finder.service.test.ts index 373f19eda2..8468210746 100644 --- a/packages/cli/src/services/__tests__/credentials-finder.service.test.ts +++ b/packages/cli/src/services/__tests__/credentials-finder.service.test.ts @@ -1,13 +1,13 @@ +import { SharedCredentials } from '@n8n/db'; +import type { CredentialsEntity } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { hasScope } from '@n8n/permissions'; +import { GLOBAL_MEMBER_SCOPES, GLOBAL_OWNER_SCOPES } from '@n8n/permissions'; import { In } from '@n8n/typeorm'; import { mock } from 'jest-mock-extended'; import { CredentialsFinderService } from '@/credentials/credentials-finder.service'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import { SharedCredentials } from '@/databases/entities/shared-credentials'; -import type { User } from '@/databases/entities/user'; -import { GLOBAL_MEMBER_SCOPES, GLOBAL_OWNER_SCOPES } from '@/permissions.ee/global-roles'; import { mockEntityManager } from '@test/mocking'; describe('CredentialsFinderService', () => { diff --git a/packages/cli/src/services/__tests__/naming.service.test.ts b/packages/cli/src/services/__tests__/naming.service.test.ts index 8027b04709..0466b5ead4 100644 --- a/packages/cli/src/services/__tests__/naming.service.test.ts +++ b/packages/cli/src/services/__tests__/naming.service.test.ts @@ -1,5 +1,6 @@ -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; +import type { CredentialsEntity } from '@n8n/db'; +import type { WorkflowEntity } from '@n8n/db'; + import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { NamingService } from '@/services/naming.service'; diff --git a/packages/cli/src/services/__tests__/ownership.service.test.ts b/packages/cli/src/services/__tests__/ownership.service.test.ts index 6e79c83bb2..706e6f1c0f 100644 --- a/packages/cli/src/services/__tests__/ownership.service.test.ts +++ b/packages/cli/src/services/__tests__/ownership.service.test.ts @@ -1,12 +1,8 @@ +import type { SharedCredentials } from '@n8n/db'; +import { Project, SharedWorkflow, User, WorkflowEntity, ProjectRelation } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { v4 as uuid } from 'uuid'; -import { Project } from '@/databases/entities/project'; -import { ProjectRelation } from '@/databases/entities/project-relation'; -import type { SharedCredentials } from '@/databases/entities/shared-credentials'; -import { SharedWorkflow } from '@/databases/entities/shared-workflow'; -import { User } from '@/databases/entities/user'; -import { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; diff --git a/packages/cli/src/services/__tests__/user.service.test.ts b/packages/cli/src/services/__tests__/user.service.test.ts index 80b5227689..3577c7da17 100644 --- a/packages/cli/src/services/__tests__/user.service.test.ts +++ b/packages/cli/src/services/__tests__/user.service.test.ts @@ -1,8 +1,8 @@ import { GlobalConfig } from '@n8n/config'; +import { User } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import { v4 as uuid } from 'uuid'; -import { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { UrlService } from '@/services/url.service'; import { UserService } from '@/services/user.service'; diff --git a/packages/cli/src/services/__tests__/workflow-statistics.service.test.ts b/packages/cli/src/services/__tests__/workflow-statistics.service.test.ts index 7e1083598b..a95803d8af 100644 --- a/packages/cli/src/services/__tests__/workflow-statistics.service.test.ts +++ b/packages/cli/src/services/__tests__/workflow-statistics.service.test.ts @@ -1,4 +1,7 @@ import { GlobalConfig } from '@n8n/config'; +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; +import type { WorkflowStatistics } from '@n8n/db'; import { Container } from '@n8n/di'; import { QueryFailedError, @@ -17,9 +20,6 @@ import { } from 'n8n-workflow'; import config from '@/config'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; -import type { WorkflowStatistics } from '@/databases/entities/workflow-statistics'; import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository'; import type { EventService } from '@/events/event.service'; import { OwnershipService } from '@/services/ownership.service'; diff --git a/packages/cli/src/services/access.service.ts b/packages/cli/src/services/access.service.ts index 2756be9572..9181ad30fa 100644 --- a/packages/cli/src/services/access.service.ts +++ b/packages/cli/src/services/access.service.ts @@ -1,7 +1,7 @@ +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import type { Workflow } from 'n8n-workflow'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { WorkflowFinderService } from '@/workflows/workflow-finder.service'; diff --git a/packages/cli/src/services/active-workflows.service.ts b/packages/cli/src/services/active-workflows.service.ts index ebe718f898..aacb0e2572 100644 --- a/packages/cli/src/services/active-workflows.service.ts +++ b/packages/cli/src/services/active-workflows.service.ts @@ -1,8 +1,8 @@ +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import { Logger } from 'n8n-core'; import { ActivationErrorsService } from '@/activation-errors.service'; -import type { User } from '@/databases/entities/user'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; diff --git a/packages/cli/src/services/credentials-tester.service.ts b/packages/cli/src/services/credentials-tester.service.ts index ed6c9a9923..884bd6c0c1 100644 --- a/packages/cli/src/services/credentials-tester.service.ts +++ b/packages/cli/src/services/credentials-tester.service.ts @@ -3,6 +3,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-return */ /* eslint-disable @typescript-eslint/no-unsafe-call */ +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import get from 'lodash/get'; import { @@ -35,7 +36,6 @@ import type { import { VersionedNodeType, NodeHelpers, Workflow, UnexpectedError } from 'n8n-workflow'; import { CredentialTypes } from '@/credential-types'; -import type { User } from '@/databases/entities/user'; import { NodeTypes } from '@/node-types'; import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data'; diff --git a/packages/cli/src/services/cta.service.ts b/packages/cli/src/services/cta.service.ts index ec0763dcda..196886b563 100644 --- a/packages/cli/src/services/cta.service.ts +++ b/packages/cli/src/services/cta.service.ts @@ -1,6 +1,6 @@ +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; -import type { User } from '@/databases/entities/user'; import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository'; @Service() diff --git a/packages/cli/src/services/folder.service.ts b/packages/cli/src/services/folder.service.ts index fc35452139..d8425a2623 100644 --- a/packages/cli/src/services/folder.service.ts +++ b/packages/cli/src/services/folder.service.ts @@ -1,10 +1,10 @@ import type { CreateFolderDto, DeleteFolderDto, UpdateFolderDto } from '@n8n/api-types'; +import { Folder } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import type { EntityManager } from '@n8n/typeorm'; import { UserError, PROJECT_ROOT } from 'n8n-workflow'; -import { Folder } from '@/databases/entities/folder'; import { FolderTagMappingRepository } from '@/databases/repositories/folder-tag-mapping.repository'; import { FolderRepository } from '@/databases/repositories/folder.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/src/services/hooks.service.ts b/packages/cli/src/services/hooks.service.ts index 8cdc340cbb..d8ee4ce1de 100644 --- a/packages/cli/src/services/hooks.service.ts +++ b/packages/cli/src/services/hooks.service.ts @@ -1,4 +1,4 @@ -import type { Settings } from '@n8n/db'; +import type { Settings, CredentialsEntity, User, WorkflowEntity } from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import type { FindManyOptions, FindOneOptions, FindOptionsWhere } from '@n8n/typeorm'; @@ -8,9 +8,6 @@ import type { NextFunction, Response } from 'express'; import { AuthService } from '@/auth/auth.service'; import type { AuthUser } from '@/databases/entities/auth-user'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { User } from '@/databases/entities/user'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { AuthUserRepository } from '@/databases/repositories/auth-user.repository'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { SettingsRepository } from '@/databases/repositories/settings.repository'; diff --git a/packages/cli/src/services/import.service.ts b/packages/cli/src/services/import.service.ts index 22612a5a7f..69111da438 100644 --- a/packages/cli/src/services/import.service.ts +++ b/packages/cli/src/services/import.service.ts @@ -1,17 +1,13 @@ +import type { TagEntity, ICredentialsDb, IWorkflowDb } from '@n8n/db'; +import { Project, WorkflowEntity, SharedWorkflow, WorkflowTagMapping } from '@n8n/db'; import { Service } from '@n8n/di'; import { Logger } from 'n8n-core'; import { type INode, type INodeCredentialsDetails, type IWorkflowBase } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; -import { Project } from '@/databases/entities/project'; -import { SharedWorkflow } from '@/databases/entities/shared-workflow'; -import type { TagEntity } from '@/databases/entities/tag-entity'; -import { WorkflowEntity } from '@/databases/entities/workflow-entity'; -import { WorkflowTagMapping } from '@/databases/entities/workflow-tag-mapping'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; import * as Db from '@/db'; -import type { ICredentialsDb, IWorkflowDb } from '@/types-db'; import { replaceInvalidCredentials } from '@/workflow-helpers'; @Service() diff --git a/packages/cli/src/services/ownership.service.ts b/packages/cli/src/services/ownership.service.ts index 2f447d66a3..8d6601ef19 100644 --- a/packages/cli/src/services/ownership.service.ts +++ b/packages/cli/src/services/ownership.service.ts @@ -1,13 +1,11 @@ +import type { Project, User, ListQueryDb } from '@n8n/db'; import { Service } from '@n8n/di'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { CacheService } from '@/services/cache/cache.service'; -import type { ListQueryDb } from '@/types-db'; @Service() export class OwnershipService { diff --git a/packages/cli/src/services/project.service.ee.ts b/packages/cli/src/services/project.service.ee.ts index fcc8f550aa..8d1d2cb465 100644 --- a/packages/cli/src/services/project.service.ee.ts +++ b/packages/cli/src/services/project.service.ee.ts @@ -1,5 +1,7 @@ import type { CreateProjectDto, ProjectRole, ProjectType, UpdateProjectDto } from '@n8n/api-types'; import { UNLIMITED_LICENSE_QUOTA } from '@n8n/constants'; +import type { User } from '@n8n/db'; +import { Project, ProjectRelation } from '@n8n/db'; import { Container, Service } from '@n8n/di'; import { type Scope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -8,9 +10,6 @@ import type { FindOptionsWhere, EntityManager } from '@n8n/typeorm'; import { In, Not } from '@n8n/typeorm'; import { UserError } from 'n8n-workflow'; -import { Project } from '@/databases/entities/project'; -import { ProjectRelation } from '@/databases/entities/project-relation'; -import type { User } from '@/databases/entities/user'; import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; diff --git a/packages/cli/src/services/public-api-key.service.ts b/packages/cli/src/services/public-api-key.service.ts index 4870dc67f6..8613ac03ab 100644 --- a/packages/cli/src/services/public-api-key.service.ts +++ b/packages/cli/src/services/public-api-key.service.ts @@ -1,5 +1,7 @@ import type { UnixTimestamp, UpdateApiKeyRequestDto } from '@n8n/api-types'; import type { CreateApiKeyRequestDto } from '@n8n/api-types/src/dto/api-keys/create-api-key-request.dto'; +import { ApiKey } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import type { GlobalRole, ApiKeyScope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -8,8 +10,6 @@ import type { NextFunction, Request, Response } from 'express'; import { TokenExpiredError } from 'jsonwebtoken'; import type { OpenAPIV3 } from 'openapi-types'; -import { ApiKey } from '@/databases/entities/api-key'; -import type { User } from '@/databases/entities/user'; import { ApiKeyRepository } from '@/databases/repositories/api-key.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/services/role.service.ts b/packages/cli/src/services/role.service.ts index 72f5df3c44..5a31226689 100644 --- a/packages/cli/src/services/role.service.ts +++ b/packages/cli/src/services/role.service.ts @@ -1,36 +1,34 @@ import type { ProjectRole } from '@n8n/api-types'; -import { Service } from '@n8n/di'; -import { combineScopes } from '@n8n/permissions'; -import type { GlobalRole, Resource, Scope } from '@n8n/permissions'; -import { UnexpectedError } from 'n8n-workflow'; - -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { ProjectRelation } from '@/databases/entities/project-relation'; import type { + CredentialsEntity, CredentialSharingRole, SharedCredentials, -} from '@/databases/entities/shared-credentials'; -import type { SharedWorkflow, WorkflowSharingRole } from '@/databases/entities/shared-workflow'; -import type { User } from '@/databases/entities/user'; -import { License } from '@/license'; + SharedWorkflow, + WorkflowSharingRole, + User, + ListQueryDb, + ScopesField, + ProjectRelation, +} from '@n8n/db'; +import { Service } from '@n8n/di'; +import type { GlobalRole, Resource, Scope } from '@n8n/permissions'; import { + combineScopes, GLOBAL_ADMIN_SCOPES, GLOBAL_MEMBER_SCOPES, GLOBAL_OWNER_SCOPES, -} from '@/permissions.ee/global-roles'; -import { PERSONAL_PROJECT_OWNER_SCOPES, PROJECT_EDITOR_SCOPES, PROJECT_VIEWER_SCOPES, REGULAR_PROJECT_ADMIN_SCOPES, -} from '@/permissions.ee/project-roles'; -import { CREDENTIALS_SHARING_OWNER_SCOPES, CREDENTIALS_SHARING_USER_SCOPES, WORKFLOW_SHARING_EDITOR_SCOPES, WORKFLOW_SHARING_OWNER_SCOPES, -} from '@/permissions.ee/resource-roles'; -import type { ListQueryDb, ScopesField } from '@/types-db'; +} from '@n8n/permissions'; +import { UnexpectedError } from 'n8n-workflow'; + +import { License } from '@/license'; export type RoleNamespace = 'global' | 'project' | 'credential' | 'workflow'; diff --git a/packages/cli/src/services/tag.service.ts b/packages/cli/src/services/tag.service.ts index 6faa8278e0..39be2f8c42 100644 --- a/packages/cli/src/services/tag.service.ts +++ b/packages/cli/src/services/tag.service.ts @@ -1,10 +1,9 @@ +import type { TagEntity, ITagWithCountDb } from '@n8n/db'; import { Service } from '@n8n/di'; -import type { TagEntity } from '@/databases/entities/tag-entity'; import { TagRepository } from '@/databases/repositories/tag.repository'; import { ExternalHooks } from '@/external-hooks'; import { validateEntity } from '@/generic-helpers'; -import type { ITagWithCountDb } from '@/types-db'; type GetAllResult = T extends { withUsageCount: true } ? ITagWithCountDb[] : TagEntity[]; diff --git a/packages/cli/src/services/user.service.ts b/packages/cli/src/services/user.service.ts index d3bbe3745d..fc20d15d4e 100644 --- a/packages/cli/src/services/user.service.ts +++ b/packages/cli/src/services/user.service.ts @@ -1,11 +1,12 @@ import type { RoleChangeRequestDto } from '@n8n/api-types'; +import { User } from '@n8n/db'; +import type { PublicUser } from '@n8n/db'; import { Service } from '@n8n/di'; import type { AssignableRole } from '@n8n/permissions'; import { Logger } from 'n8n-core'; import type { IUserSettings } from 'n8n-workflow'; import { UnexpectedError } from 'n8n-workflow'; -import { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { InternalServerError } from '@/errors/response-errors/internal-server.error'; import { EventService } from '@/events/event.service'; @@ -13,7 +14,6 @@ import type { Invitation } from '@/interfaces'; import type { PostHogClient } from '@/posthog'; import type { UserRequest } from '@/requests'; import { UrlService } from '@/services/url.service'; -import type { PublicUser } from '@/types-db'; import { UserManagementMailer } from '@/user-management/email'; import { PublicApiKeyService } from './public-api-key.service'; diff --git a/packages/cli/src/services/workflow-statistics.service.ts b/packages/cli/src/services/workflow-statistics.service.ts index 003a10e01e..0993591a16 100644 --- a/packages/cli/src/services/workflow-statistics.service.ts +++ b/packages/cli/src/services/workflow-statistics.service.ts @@ -1,3 +1,4 @@ +import { StatisticsNames } from '@n8n/db'; import { Service } from '@n8n/di'; import { Logger } from 'n8n-core'; import type { @@ -8,7 +9,6 @@ import type { WorkflowExecuteMode, } from 'n8n-workflow'; -import { StatisticsNames } from '@/databases/entities/workflow-statistics'; import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository'; import { EventService } from '@/events/event.service'; import { UserService } from '@/services/user.service'; diff --git a/packages/cli/src/sso.ee/saml/__tests__/saml-helpers.test.ts b/packages/cli/src/sso.ee/saml/__tests__/saml-helpers.test.ts index 2708161c26..76492807f6 100644 --- a/packages/cli/src/sso.ee/saml/__tests__/saml-helpers.test.ts +++ b/packages/cli/src/sso.ee/saml/__tests__/saml-helpers.test.ts @@ -1,7 +1,7 @@ +import type { AuthIdentity } from '@n8n/db'; import { generateNanoId } from '@n8n/db'; +import { User } from '@n8n/db'; -import type { AuthIdentity } from '@/databases/entities/auth-identity'; -import { User } from '@/databases/entities/user'; import { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import * as helpers from '@/sso.ee/saml/saml-helpers'; diff --git a/packages/cli/src/sso.ee/saml/routes/__tests__/saml.controller.ee.test.ts b/packages/cli/src/sso.ee/saml/routes/__tests__/saml.controller.ee.test.ts index 928f6d6df0..126255746e 100644 --- a/packages/cli/src/sso.ee/saml/routes/__tests__/saml.controller.ee.test.ts +++ b/packages/cli/src/sso.ee/saml/routes/__tests__/saml.controller.ee.test.ts @@ -1,7 +1,7 @@ +import type { User } from '@n8n/db'; import { type Response } from 'express'; import { mock } from 'jest-mock-extended'; -import type { User } from '@/databases/entities/user'; import type { AuthlessRequest } from '@/requests'; import type { SamlService } from '../../saml.service.ee'; diff --git a/packages/cli/src/sso.ee/saml/saml-helpers.ts b/packages/cli/src/sso.ee/saml/saml-helpers.ts index b0620acdd3..8b4c338890 100644 --- a/packages/cli/src/sso.ee/saml/saml-helpers.ts +++ b/packages/cli/src/sso.ee/saml/saml-helpers.ts @@ -1,11 +1,11 @@ import type { SamlAcsDto, SamlPreferences } from '@n8n/api-types'; +import { AuthIdentity } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { randomString } from 'n8n-workflow'; import type { FlowResult } from 'samlify/types/src/flow'; import config from '@/config'; -import { AuthIdentity } from '@/databases/entities/auth-identity'; -import type { User } from '@/databases/entities/user'; import { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; diff --git a/packages/cli/src/sso.ee/saml/saml.service.ee.ts b/packages/cli/src/sso.ee/saml/saml.service.ee.ts index c2febcc551..9eb5682bb2 100644 --- a/packages/cli/src/sso.ee/saml/saml.service.ee.ts +++ b/packages/cli/src/sso.ee/saml/saml.service.ee.ts @@ -1,5 +1,5 @@ import type { SamlPreferences } from '@n8n/api-types'; -import type { Settings } from '@n8n/db'; +import type { Settings, User } from '@n8n/db'; import { Service } from '@n8n/di'; import axios from 'axios'; import type express from 'express'; @@ -9,7 +9,6 @@ import { jsonParse, UnexpectedError } from 'n8n-workflow'; import type { IdentityProviderInstance, ServiceProviderInstance } from 'samlify'; import type { BindingContext, PostBindingContext } from 'samlify/types/src/entity'; -import type { User } from '@/databases/entities/user'; import { SettingsRepository } from '@/databases/repositories/settings.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { AuthError } from '@/errors/response-errors/auth.error'; diff --git a/packages/cli/src/sso.ee/sso-helpers.ts b/packages/cli/src/sso.ee/sso-helpers.ts index d69d9bc3a8..ae19f8929f 100644 --- a/packages/cli/src/sso.ee/sso-helpers.ts +++ b/packages/cli/src/sso.ee/sso-helpers.ts @@ -1,7 +1,7 @@ +import type { AuthProviderType } from '@n8n/db'; import { Container } from '@n8n/di'; import config from '@/config'; -import type { AuthProviderType } from '@/databases/entities/auth-identity'; import { SettingsRepository } from '@/databases/repositories/settings.repository'; /** diff --git a/packages/cli/src/user-management/email/user-management-mailer.ts b/packages/cli/src/user-management/email/user-management-mailer.ts index c9ae37e8d7..e076c238d1 100644 --- a/packages/cli/src/user-management/email/user-management-mailer.ts +++ b/packages/cli/src/user-management/email/user-management-mailer.ts @@ -1,4 +1,5 @@ import { GlobalConfig } from '@n8n/config'; +import type { User } from '@n8n/db'; import { Container, Service } from '@n8n/di'; import { existsSync } from 'fs'; import { readFile } from 'fs/promises'; @@ -8,7 +9,6 @@ import type { IWorkflowBase } from 'n8n-workflow'; import { join as pathJoin } from 'path'; import { inTest } from '@/constants'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { InternalServerError } from '@/errors/response-errors/internal-server.error'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/src/webhooks/__tests__/waiting-forms.test.ts b/packages/cli/src/webhooks/__tests__/waiting-forms.test.ts index 4649317f70..e0b80d5c64 100644 --- a/packages/cli/src/webhooks/__tests__/waiting-forms.test.ts +++ b/packages/cli/src/webhooks/__tests__/waiting-forms.test.ts @@ -1,9 +1,9 @@ +import type { IExecutionResponse } from '@n8n/db'; import type express from 'express'; import { mock } from 'jest-mock-extended'; import { FORM_NODE_TYPE, WAITING_FORMS_EXECUTION_STATUS, type Workflow } from 'n8n-workflow'; import type { ExecutionRepository } from '@/databases/repositories/execution.repository'; -import type { IExecutionResponse } from '@/types-db'; import { WaitingForms } from '@/webhooks/waiting-forms'; import type { WaitingWebhookRequest } from '../webhook.types'; diff --git a/packages/cli/src/webhooks/__tests__/waiting-webhooks.test.ts b/packages/cli/src/webhooks/__tests__/waiting-webhooks.test.ts index fd837146b4..1b2384310d 100644 --- a/packages/cli/src/webhooks/__tests__/waiting-webhooks.test.ts +++ b/packages/cli/src/webhooks/__tests__/waiting-webhooks.test.ts @@ -1,10 +1,10 @@ +import type { IExecutionResponse } from '@n8n/db'; import type express from 'express'; import { mock } from 'jest-mock-extended'; import type { ExecutionRepository } from '@/databases/repositories/execution.repository'; import { ConflictError } from '@/errors/response-errors/conflict.error'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; -import type { IExecutionResponse } from '@/types-db'; import { WaitingWebhooks } from '@/webhooks/waiting-webhooks'; import type { IWebhookResponseCallbackData, WaitingWebhookRequest } from '@/webhooks/webhook.types'; diff --git a/packages/cli/src/webhooks/waiting-forms.ts b/packages/cli/src/webhooks/waiting-forms.ts index 8624e4c3bb..9afe1e6035 100644 --- a/packages/cli/src/webhooks/waiting-forms.ts +++ b/packages/cli/src/webhooks/waiting-forms.ts @@ -1,3 +1,4 @@ +import type { IExecutionResponse } from '@n8n/db'; import { Service } from '@n8n/di'; import type express from 'express'; import type { IRunData } from 'n8n-workflow'; @@ -10,7 +11,6 @@ import { import { ConflictError } from '@/errors/response-errors/conflict.error'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; -import type { IExecutionResponse } from '@/types-db'; import { WaitingWebhooks } from '@/webhooks/waiting-webhooks'; import type { IWebhookResponseCallbackData, WaitingWebhookRequest } from './webhook.types'; diff --git a/packages/cli/src/webhooks/waiting-webhooks.ts b/packages/cli/src/webhooks/waiting-webhooks.ts index 45104aa835..932b528b99 100644 --- a/packages/cli/src/webhooks/waiting-webhooks.ts +++ b/packages/cli/src/webhooks/waiting-webhooks.ts @@ -1,3 +1,4 @@ +import type { IExecutionResponse } from '@n8n/db'; import { Service } from '@n8n/di'; import type express from 'express'; import { Logger } from 'n8n-core'; @@ -14,7 +15,6 @@ import { ExecutionRepository } from '@/databases/repositories/execution.reposito import { ConflictError } from '@/errors/response-errors/conflict.error'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; import { NodeTypes } from '@/node-types'; -import type { IExecutionResponse } from '@/types-db'; import * as WebhookHelpers from '@/webhooks/webhook-helpers'; import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data'; diff --git a/packages/cli/src/webhooks/webhook-helpers.ts b/packages/cli/src/webhooks/webhook-helpers.ts index 9043081afb..ee0875cf9e 100644 --- a/packages/cli/src/webhooks/webhook-helpers.ts +++ b/packages/cli/src/webhooks/webhook-helpers.ts @@ -7,6 +7,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/restrict-template-expressions */ import { GlobalConfig } from '@n8n/config'; +import type { Project } from '@n8n/db'; import { Container } from '@n8n/di'; import type express from 'express'; import get from 'lodash/get'; @@ -49,7 +50,6 @@ import { finished } from 'stream/promises'; import { ActiveExecutions } from '@/active-executions'; import config from '@/config'; import { MCP_TRIGGER_NODE_TYPE } from '@/constants'; -import type { Project } from '@/databases/entities/project'; import { InternalServerError } from '@/errors/response-errors/internal-server.error'; import { NotFoundError } from '@/errors/response-errors/not-found.error'; import { UnprocessableRequestError } from '@/errors/response-errors/unprocessable.error'; diff --git a/packages/cli/src/workflows/__tests__/workflow-execution.service.test.ts b/packages/cli/src/workflows/__tests__/workflow-execution.service.test.ts index eeb5ce1a1c..dd78293055 100644 --- a/packages/cli/src/workflows/__tests__/workflow-execution.service.test.ts +++ b/packages/cli/src/workflows/__tests__/workflow-execution.service.test.ts @@ -1,7 +1,7 @@ +import type { User } from '@n8n/db'; import { mock } from 'jest-mock-extended'; import type { INode, IWorkflowBase, INodeType, IWorkflowExecuteAdditionalData } from 'n8n-workflow'; -import type { User } from '@/databases/entities/user'; import type { NodeTypes } from '@/node-types'; import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data'; import type { WorkflowRunner } from '@/workflow-runner'; diff --git a/packages/cli/src/workflows/workflow-execution.service.ts b/packages/cli/src/workflows/workflow-execution.service.ts index 53a0e79507..4ebd08acf2 100644 --- a/packages/cli/src/workflows/workflow-execution.service.ts +++ b/packages/cli/src/workflows/workflow-execution.service.ts @@ -1,4 +1,5 @@ import { GlobalConfig } from '@n8n/config'; +import type { Project, User, CreateExecutionPayload } from '@n8n/db'; import { Service } from '@n8n/di'; import { ErrorReporter, Logger } from 'n8n-core'; import type { @@ -17,15 +18,12 @@ import type { import { SubworkflowOperationError, Workflow } from 'n8n-workflow'; import config from '@/config'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import { ExecutionRepository } from '@/databases/repositories/execution.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { ExecutionDataService } from '@/executions/execution-data.service'; import { SubworkflowPolicyChecker } from '@/executions/pre-execution-checks'; import type { IWorkflowErrorData } from '@/interfaces'; import { NodeTypes } from '@/node-types'; -import type { CreateExecutionPayload } from '@/types-db'; import { TestWebhooks } from '@/webhooks/test-webhooks'; import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data'; import { WorkflowRunner } from '@/workflow-runner'; diff --git a/packages/cli/src/workflows/workflow-finder.service.ts b/packages/cli/src/workflows/workflow-finder.service.ts index 0c220d0f47..e504c02434 100644 --- a/packages/cli/src/workflows/workflow-finder.service.ts +++ b/packages/cli/src/workflows/workflow-finder.service.ts @@ -1,3 +1,4 @@ +import type { SharedWorkflow, User } from '@n8n/db'; import { Service } from '@n8n/di'; import type { Scope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -5,8 +6,6 @@ import type { EntityManager, FindOptionsWhere } from '@n8n/typeorm'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; -import type { SharedWorkflow } from '@/databases/entities/shared-workflow'; -import type { User } from '@/databases/entities/user'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { RoleService } from '@/services/role.service'; diff --git a/packages/cli/src/workflows/workflow-history.ee/__tests__/workflow-history.service.ee.test.ts b/packages/cli/src/workflows/workflow-history.ee/__tests__/workflow-history.service.ee.test.ts index fd70031578..f6de28c6ff 100644 --- a/packages/cli/src/workflows/workflow-history.ee/__tests__/workflow-history.service.ee.test.ts +++ b/packages/cli/src/workflows/workflow-history.ee/__tests__/workflow-history.service.ee.test.ts @@ -1,6 +1,6 @@ +import { User } from '@n8n/db'; import { mockClear } from 'jest-mock-extended'; -import { User } from '@/databases/entities/user'; import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository'; import { WorkflowFinderService } from '@/workflows/workflow-finder.service'; import { WorkflowHistoryService } from '@/workflows/workflow-history.ee/workflow-history.service.ee'; diff --git a/packages/cli/src/workflows/workflow-history.ee/workflow-history.service.ee.ts b/packages/cli/src/workflows/workflow-history.ee/workflow-history.service.ee.ts index c464417527..759b344ef6 100644 --- a/packages/cli/src/workflows/workflow-history.ee/workflow-history.service.ee.ts +++ b/packages/cli/src/workflows/workflow-history.ee/workflow-history.service.ee.ts @@ -1,9 +1,9 @@ +import type { User } from '@n8n/db'; import { Service } from '@n8n/di'; import { Logger } from 'n8n-core'; import type { IWorkflowBase } from 'n8n-workflow'; import { ensureError } from 'n8n-workflow'; -import type { User } from '@/databases/entities/user'; import type { WorkflowHistory } from '@/databases/entities/workflow-history'; import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository'; import { SharedWorkflowNotFoundError } from '@/errors/shared-workflow-not-found.error'; diff --git a/packages/cli/src/workflows/workflow-sharing.service.ts b/packages/cli/src/workflows/workflow-sharing.service.ts index 8f8c67335b..f7a3778989 100644 --- a/packages/cli/src/workflows/workflow-sharing.service.ts +++ b/packages/cli/src/workflows/workflow-sharing.service.ts @@ -1,11 +1,10 @@ import type { ProjectRole } from '@n8n/api-types'; +import type { WorkflowSharingRole, User } from '@n8n/db'; import { Service } from '@n8n/di'; import type { Scope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In } from '@n8n/typeorm'; -import type { WorkflowSharingRole } from '@/databases/entities/shared-workflow'; -import type { User } from '@/databases/entities/user'; import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { RoleService } from '@/services/role.service'; diff --git a/packages/cli/src/workflows/workflow.service.ee.ts b/packages/cli/src/workflows/workflow.service.ee.ts index b03ddb967a..3b71cd951b 100644 --- a/packages/cli/src/workflows/workflow.service.ee.ts +++ b/packages/cli/src/workflows/workflow.service.ee.ts @@ -1,3 +1,10 @@ +import { Project, SharedWorkflow } from '@n8n/db'; +import type { + CredentialsEntity, + User, + WorkflowWithSharingsAndCredentials, + WorkflowWithSharingsMetaDataAndCredentials, +} from '@n8n/db'; import { Service } from '@n8n/di'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import import { In, type EntityManager } from '@n8n/typeorm'; @@ -10,10 +17,6 @@ import { ActiveWorkflowManager } from '@/active-workflow-manager'; import { CredentialsFinderService } from '@/credentials/credentials-finder.service'; import { CredentialsService } from '@/credentials/credentials.service'; import { EnterpriseCredentialsService } from '@/credentials/credentials.service.ee'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import { Project } from '@/databases/entities/project'; -import { SharedWorkflow } from '@/databases/entities/shared-workflow'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; @@ -23,10 +26,6 @@ import { TransferWorkflowError } from '@/errors/response-errors/transfer-workflo import { FolderService } from '@/services/folder.service'; import { OwnershipService } from '@/services/ownership.service'; import { ProjectService } from '@/services/project.service.ee'; -import type { - WorkflowWithSharingsAndCredentials, - WorkflowWithSharingsMetaDataAndCredentials, -} from '@/types-db'; import { WorkflowFinderService } from './workflow-finder.service'; diff --git a/packages/cli/src/workflows/workflow.service.ts b/packages/cli/src/workflows/workflow.service.ts index da931140c7..881c7cd901 100644 --- a/packages/cli/src/workflows/workflow.service.ts +++ b/packages/cli/src/workflows/workflow.service.ts @@ -1,4 +1,6 @@ import { GlobalConfig } from '@n8n/config'; +import { SharedWorkflow } from '@n8n/db'; +import type { User, WorkflowEntity, ListQueryDb } from '@n8n/db'; import { Service } from '@n8n/di'; import type { Scope } from '@n8n/permissions'; // eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import @@ -14,9 +16,6 @@ import { v4 as uuid } from 'uuid'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; import config from '@/config'; -import { SharedWorkflow } from '@/databases/entities/shared-workflow'; -import type { User } from '@/databases/entities/user'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { ExecutionRepository } from '@/databases/repositories/execution.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowTagMappingRepository } from '@/databases/repositories/workflow-tag-mapping.repository'; @@ -35,7 +34,6 @@ import { OwnershipService } from '@/services/ownership.service'; import { ProjectService } from '@/services/project.service.ee'; import { RoleService } from '@/services/role.service'; import { TagService } from '@/services/tag.service'; -import type { ListQueryDb } from '@/types-db'; import * as WorkflowHelpers from '@/workflow-helpers'; import { WorkflowFinderService } from './workflow-finder.service'; diff --git a/packages/cli/src/workflows/workflows.controller.ts b/packages/cli/src/workflows/workflows.controller.ts index f30014e9a2..d443ed47c6 100644 --- a/packages/cli/src/workflows/workflows.controller.ts +++ b/packages/cli/src/workflows/workflows.controller.ts @@ -4,6 +4,8 @@ import { TransferWorkflowBodyDto, } from '@n8n/api-types'; import { GlobalConfig } from '@n8n/config'; +import type { Project } from '@n8n/db'; +import { SharedWorkflow, WorkflowEntity } from '@n8n/db'; import { Body, Delete, @@ -25,9 +27,6 @@ import { Logger } from 'n8n-core'; import { UnexpectedError } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; -import type { Project } from '@/databases/entities/project'; -import { SharedWorkflow } from '@/databases/entities/shared-workflow'; -import { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; diff --git a/packages/cli/test/integration/ai/ai.api.test.ts b/packages/cli/test/integration/ai/ai.api.test.ts index 6741930b2e..2feae69819 100644 --- a/packages/cli/test/integration/ai/ai.api.test.ts +++ b/packages/cli/test/integration/ai/ai.api.test.ts @@ -1,11 +1,11 @@ +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { randomUUID } from 'crypto'; import { mock } from 'jest-mock-extended'; import { OPEN_AI_API_CREDENTIAL_TYPE } from 'n8n-workflow'; import { FREE_AI_CREDITS_CREDENTIAL_NAME } from '@/constants'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; diff --git a/packages/cli/test/integration/api-keys.api.test.ts b/packages/cli/test/integration/api-keys.api.test.ts index c968d06694..38afe38286 100644 --- a/packages/cli/test/integration/api-keys.api.test.ts +++ b/packages/cli/test/integration/api-keys.api.test.ts @@ -1,10 +1,10 @@ import type { ApiKeyWithRawValue } from '@n8n/api-types'; import { GlobalConfig } from '@n8n/config'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import type { ApiKeyScope } from '@n8n/permissions'; import { mock } from 'jest-mock-extended'; -import type { User } from '@/databases/entities/user'; import { ApiKeyRepository } from '@/databases/repositories/api-key.repository'; import type { License } from '@/license'; import { getApiKeyScopesForRole, getOwnerOnlyApiKeyScopes } from '@/public-api/permissions.ee'; diff --git a/packages/cli/test/integration/auth.api.test.ts b/packages/cli/test/integration/auth.api.test.ts index 92422c27b9..7c504623d6 100644 --- a/packages/cli/test/integration/auth.api.test.ts +++ b/packages/cli/test/integration/auth.api.test.ts @@ -1,9 +1,9 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import validator from 'validator'; import config from '@/config'; import { AUTH_COOKIE_NAME } from '@/constants'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { MfaService } from '@/mfa/mfa.service'; diff --git a/packages/cli/test/integration/collaboration/collaboration.service.test.ts b/packages/cli/test/integration/collaboration/collaboration.service.test.ts index eff895622a..12d03ed913 100644 --- a/packages/cli/test/integration/collaboration/collaboration.service.test.ts +++ b/packages/cli/test/integration/collaboration/collaboration.service.test.ts @@ -1,3 +1,4 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; import type { IWorkflowBase } from 'n8n-workflow'; @@ -7,7 +8,6 @@ import type { WorkflowOpenedMessage, } from '@/collaboration/collaboration.message'; import { CollaborationService } from '@/collaboration/collaboration.service'; -import type { User } from '@/databases/entities/user'; import { Push } from '@/push'; import { CacheService } from '@/services/cache/cache.service'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/test/integration/commands/reset.cmd.test.ts b/packages/cli/test/integration/commands/reset.cmd.test.ts index 19b301f596..e0c56189a2 100644 --- a/packages/cli/test/integration/commands/reset.cmd.test.ts +++ b/packages/cli/test/integration/commands/reset.cmd.test.ts @@ -1,7 +1,7 @@ +import { CredentialsEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import { Reset } from '@/commands/user-management/reset'; -import { CredentialsEntity } from '@/databases/entities/credentials-entity'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { SettingsRepository } from '@/databases/repositories/settings.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; diff --git a/packages/cli/test/integration/controllers/invitation/assertions.ts b/packages/cli/test/integration/controllers/invitation/assertions.ts index daa40586f2..dcc732da80 100644 --- a/packages/cli/test/integration/controllers/invitation/assertions.ts +++ b/packages/cli/test/integration/controllers/invitation/assertions.ts @@ -1,7 +1,6 @@ +import type { User } from '@n8n/db'; import validator from 'validator'; -import type { User } from '@/databases/entities/user'; - import type { UserInvitationResult } from '../../shared/utils/users'; export function assertReturnedUserProps(user: User) { diff --git a/packages/cli/test/integration/controllers/invitation/invitation.controller.integration.test.ts b/packages/cli/test/integration/controllers/invitation/invitation.controller.integration.test.ts index 64ef210ab9..1032e4d294 100644 --- a/packages/cli/test/integration/controllers/invitation/invitation.controller.integration.test.ts +++ b/packages/cli/test/integration/controllers/invitation/invitation.controller.integration.test.ts @@ -1,7 +1,7 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { Not } from '@n8n/typeorm'; -import type { User } from '@/databases/entities/user'; import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { EventService } from '@/events/event.service'; diff --git a/packages/cli/test/integration/controllers/oauth/oauth2.api.test.ts b/packages/cli/test/integration/controllers/oauth/oauth2.api.test.ts index fc31b1969c..4c8f492fa2 100644 --- a/packages/cli/test/integration/controllers/oauth/oauth2.api.test.ts +++ b/packages/cli/test/integration/controllers/oauth/oauth2.api.test.ts @@ -1,3 +1,5 @@ +import type { CredentialsEntity } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { response as Response } from 'express'; import nock from 'nock'; @@ -5,8 +7,6 @@ import { parse as parseQs } from 'querystring'; import { OAuth2CredentialController } from '@/controllers/oauth/oauth2-credential.controller'; import { CredentialsHelper } from '@/credentials-helper'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { User } from '@/databases/entities/user'; import { saveCredential } from '@test-integration/db/credentials'; import { createMember, createOwner } from '@test-integration/db/users'; import * as testDb from '@test-integration/test-db'; diff --git a/packages/cli/test/integration/credentials-helper.test.ts b/packages/cli/test/integration/credentials-helper.test.ts index 7b8522589a..d740a8faca 100644 --- a/packages/cli/test/integration/credentials-helper.test.ts +++ b/packages/cli/test/integration/credentials-helper.test.ts @@ -1,7 +1,7 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { CredentialsHelper } from '@/credentials-helper'; -import type { User } from '@/databases/entities/user'; import { saveCredential } from './shared/db/credentials'; import { createTeamProject, linkUserToProject } from './shared/db/projects'; diff --git a/packages/cli/test/integration/credentials/credentials.api.ee.test.ts b/packages/cli/test/integration/credentials/credentials.api.ee.test.ts index ba3abdae18..abb5bedb1b 100644 --- a/packages/cli/test/integration/credentials/credentials.api.ee.test.ts +++ b/packages/cli/test/integration/credentials/credentials.api.ee.test.ts @@ -1,15 +1,15 @@ import type { ProjectRole } from '@n8n/api-types'; +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; +import type { ListQueryDb } from '@n8n/db'; import { Container } from '@n8n/di'; import { In } from '@n8n/typeorm'; import config from '@/config'; import { CredentialsService } from '@/credentials/credentials.service'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { ProjectService } from '@/services/project.service.ee'; -import type { ListQueryDb } from '@/types-db'; import { UserManagementMailer } from '@/user-management/email'; import { createWorkflow, shareWorkflowWithUsers } from '@test-integration/db/workflows'; diff --git a/packages/cli/test/integration/credentials/credentials.api.test.ts b/packages/cli/test/integration/credentials/credentials.api.test.ts index 8c4376fe0a..5402a922aa 100644 --- a/packages/cli/test/integration/credentials/credentials.api.test.ts +++ b/packages/cli/test/integration/credentials/credentials.api.test.ts @@ -1,4 +1,7 @@ import { GlobalConfig } from '@n8n/config'; +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; +import type { ListQueryDb } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Scope } from '@sentry/node'; import * as a from 'assert'; @@ -9,13 +12,10 @@ import { randomString } from 'n8n-workflow'; import { CREDENTIAL_BLANKING_VALUE } from '@/constants'; import { CredentialsService } from '@/credentials/credentials.service'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { CredentialsTester } from '@/services/credentials-tester.service'; -import type { ListQueryDb } from '@/types-db'; import { decryptCredentialData, diff --git a/packages/cli/test/integration/credentials/credentials.service.test.ts b/packages/cli/test/integration/credentials/credentials.service.test.ts index b3ab1b7a40..86e60302ab 100644 --- a/packages/cli/test/integration/credentials/credentials.service.test.ts +++ b/packages/cli/test/integration/credentials/credentials.service.test.ts @@ -1,9 +1,9 @@ +import type { CredentialsEntity } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { CredentialsFinderService } from '@/credentials/credentials-finder.service'; import { CredentialsService } from '@/credentials/credentials.service'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { User } from '@/databases/entities/user'; import { createTeamProject, linkUserToProject } from '@test-integration/db/projects'; import { saveCredential, shareCredentialWithUsers } from '../shared/db/credentials'; diff --git a/packages/cli/test/integration/cta.service.test.ts b/packages/cli/test/integration/cta.service.test.ts index 366b86e3ec..e70da54d64 100644 --- a/packages/cli/test/integration/cta.service.test.ts +++ b/packages/cli/test/integration/cta.service.test.ts @@ -1,7 +1,7 @@ +import type { User } from '@n8n/db'; +import { StatisticsNames } from '@n8n/db'; import { Container } from '@n8n/di'; -import type { User } from '@/databases/entities/user'; -import { StatisticsNames } from '@/databases/entities/workflow-statistics'; import { CtaService } from '@/services/cta.service'; import { createUser } from './shared/db/users'; diff --git a/packages/cli/test/integration/database/repositories/project.repository.test.ts b/packages/cli/test/integration/database/repositories/project.repository.test.ts index 334929e4e7..1b93da7d69 100644 --- a/packages/cli/test/integration/database/repositories/project.repository.test.ts +++ b/packages/cli/test/integration/database/repositories/project.repository.test.ts @@ -1,7 +1,7 @@ +import { AuthIdentity } from '@n8n/db'; import { Container } from '@n8n/di'; import { EntityNotFoundError } from '@n8n/typeorm'; -import { AuthIdentity } from '@/databases/entities/auth-identity'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; diff --git a/packages/cli/test/integration/debug.controller.test.ts b/packages/cli/test/integration/debug.controller.test.ts index 25018bb313..49aad8b0ec 100644 --- a/packages/cli/test/integration/debug.controller.test.ts +++ b/packages/cli/test/integration/debug.controller.test.ts @@ -1,9 +1,9 @@ import { generateNanoId } from '@n8n/db'; +import type { WorkflowEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import { InstanceSettings } from 'n8n-core'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { MultiMainSetup } from '@/scaling/multi-main-setup.ee'; diff --git a/packages/cli/test/integration/environments/source-control.api.test.ts b/packages/cli/test/integration/environments/source-control.api.test.ts index 6ad771493b..af41991fd7 100644 --- a/packages/cli/test/integration/environments/source-control.api.test.ts +++ b/packages/cli/test/integration/environments/source-control.api.test.ts @@ -1,7 +1,7 @@ import type { SourceControlledFile } from '@n8n/api-types'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; -import type { User } from '@/databases/entities/user'; import { SourceControlPreferencesService } from '@/environments.ee/source-control/source-control-preferences.service.ee'; import { SourceControlService } from '@/environments.ee/source-control/source-control.service.ee'; import { Telemetry } from '@/telemetry'; diff --git a/packages/cli/test/integration/evaluation/test-definitions.api.test.ts b/packages/cli/test/integration/evaluation/test-definitions.api.test.ts index 255c71b59e..a852fae6b7 100644 --- a/packages/cli/test/integration/evaluation/test-definitions.api.test.ts +++ b/packages/cli/test/integration/evaluation/test-definitions.api.test.ts @@ -1,9 +1,9 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { mockInstance } from 'n8n-core/test/utils'; import type { IWorkflowBase } from 'n8n-workflow'; import type { AnnotationTagEntity } from '@/databases/entities/annotation-tag-entity.ee'; -import type { User } from '@/databases/entities/user'; import { TestDefinitionRepository } from '@/databases/repositories/test-definition.repository.ee'; import { TestRunnerService } from '@/evaluation.ee/test-runner/test-runner.service.ee'; import { createAnnotationTags } from '@test-integration/db/executions'; diff --git a/packages/cli/test/integration/evaluation/test-runs.api.test.ts b/packages/cli/test/integration/evaluation/test-runs.api.test.ts index f2f4676ad0..45ff5c89c6 100644 --- a/packages/cli/test/integration/evaluation/test-runs.api.test.ts +++ b/packages/cli/test/integration/evaluation/test-runs.api.test.ts @@ -1,9 +1,9 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { mockInstance } from 'n8n-core/test/utils'; import type { IWorkflowBase } from 'n8n-workflow'; import type { TestDefinition } from '@/databases/entities/test-definition.ee'; -import type { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { TestDefinitionRepository } from '@/databases/repositories/test-definition.repository.ee'; import { TestRunRepository } from '@/databases/repositories/test-run.repository.ee'; diff --git a/packages/cli/test/integration/eventbus.ee.test.ts b/packages/cli/test/integration/eventbus.ee.test.ts index 0be15b6124..3b85c2d447 100644 --- a/packages/cli/test/integration/eventbus.ee.test.ts +++ b/packages/cli/test/integration/eventbus.ee.test.ts @@ -1,3 +1,4 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import axios from 'axios'; import type { @@ -13,7 +14,6 @@ import { import syslog from 'syslog-client'; import { v4 as uuid } from 'uuid'; -import type { User } from '@/databases/entities/user'; import type { EventNamesTypes } from '@/eventbus/event-message-classes'; import { EventMessageAudit } from '@/eventbus/event-message-classes/event-message-audit'; import { EventMessageGeneric } from '@/eventbus/event-message-classes/event-message-generic'; diff --git a/packages/cli/test/integration/eventbus.test.ts b/packages/cli/test/integration/eventbus.test.ts index b4e80dfde9..2f456400e9 100644 --- a/packages/cli/test/integration/eventbus.test.ts +++ b/packages/cli/test/integration/eventbus.test.ts @@ -1,4 +1,5 @@ -import type { User } from '@/databases/entities/user'; +import type { User } from '@n8n/db'; + import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus'; import { ExecutionRecoveryService } from '@/executions/execution-recovery.service'; diff --git a/packages/cli/test/integration/execution.service.integration.test.ts b/packages/cli/test/integration/execution.service.integration.test.ts index cf633d215d..0e9a1b50af 100644 --- a/packages/cli/test/integration/execution.service.integration.test.ts +++ b/packages/cli/test/integration/execution.service.integration.test.ts @@ -1,3 +1,4 @@ +import type { ExecutionSummaries } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; @@ -5,7 +6,6 @@ import { ExecutionMetadataRepository } from '@/databases/repositories/execution- import { ExecutionRepository } from '@/databases/repositories/execution.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { ExecutionService } from '@/executions/execution.service'; -import type { ExecutionSummaries } from '@/types-db'; import { createTeamProject } from '@test-integration/db/projects'; import { annotateExecution, createAnnotationTags, createExecution } from './shared/db/executions'; diff --git a/packages/cli/test/integration/executions.controller.test.ts b/packages/cli/test/integration/executions.controller.test.ts index 341c7364e5..0b3b8e51ed 100644 --- a/packages/cli/test/integration/executions.controller.test.ts +++ b/packages/cli/test/integration/executions.controller.test.ts @@ -1,5 +1,6 @@ +import type { User } from '@n8n/db'; + import { ConcurrencyControlService } from '@/concurrency/concurrency-control.service'; -import type { User } from '@/databases/entities/user'; import { WaitTracker } from '@/wait-tracker'; import { createSuccessfulExecution, getAllExecutions } from './shared/db/executions'; diff --git a/packages/cli/test/integration/executions/pre-execution-checks/credentials-permission-checker.test.ts b/packages/cli/test/integration/executions/pre-execution-checks/credentials-permission-checker.test.ts index 3d050011cb..ddc3c79fc7 100644 --- a/packages/cli/test/integration/executions/pre-execution-checks/credentials-permission-checker.test.ts +++ b/packages/cli/test/integration/executions/pre-execution-checks/credentials-permission-checker.test.ts @@ -1,10 +1,10 @@ +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import type { INode, IWorkflowBase } from 'n8n-workflow'; import { randomInt } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; diff --git a/packages/cli/test/integration/folder/folder.controller.test.ts b/packages/cli/test/integration/folder/folder.controller.test.ts index e84dcf8017..f3c3f64a8e 100644 --- a/packages/cli/test/integration/folder/folder.controller.test.ts +++ b/packages/cli/test/integration/folder/folder.controller.test.ts @@ -1,9 +1,9 @@ +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { DateTime } from 'luxon'; import { PROJECT_ROOT } from 'n8n-workflow'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import { FolderRepository } from '@/databases/repositories/folder.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/test/integration/import.service.test.ts b/packages/cli/test/integration/import.service.test.ts index 0c40d868ce..d7fba525ea 100644 --- a/packages/cli/test/integration/import.service.test.ts +++ b/packages/cli/test/integration/import.service.test.ts @@ -1,11 +1,11 @@ +import { TagEntity } from '@n8n/db'; +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; import type { INode } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; -import type { Project } from '@/databases/entities/project'; -import { TagEntity } from '@/databases/entities/tag-entity'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { TagRepository } from '@/databases/repositories/tag.repository'; diff --git a/packages/cli/test/integration/ldap/ldap.api.test.ts b/packages/cli/test/integration/ldap/ldap.api.test.ts index 1f4421e908..13a38f2897 100644 --- a/packages/cli/test/integration/ldap/ldap.api.test.ts +++ b/packages/cli/test/integration/ldap/ldap.api.test.ts @@ -1,10 +1,10 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { Not } from '@n8n/typeorm'; import type { Entry as LdapUser } from 'ldapts'; import { Cipher } from 'n8n-core'; import config from '@/config'; -import type { User } from '@/databases/entities/user'; import { AuthProviderSyncHistoryRepository } from '@/databases/repositories/auth-provider-sync-history.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { LDAP_DEFAULT_CONFIGURATION } from '@/ldap.ee/constants'; diff --git a/packages/cli/test/integration/license-metrics.repository.test.ts b/packages/cli/test/integration/license-metrics.repository.test.ts index fe9cc3fa4e..143b9a59e7 100644 --- a/packages/cli/test/integration/license-metrics.repository.test.ts +++ b/packages/cli/test/integration/license-metrics.repository.test.ts @@ -1,6 +1,6 @@ +import { StatisticsNames } from '@n8n/db'; import { Container } from '@n8n/di'; -import { StatisticsNames } from '@/databases/entities/workflow-statistics'; import { LicenseMetricsRepository } from '@/databases/repositories/license-metrics.repository'; import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository'; diff --git a/packages/cli/test/integration/license.api.test.ts b/packages/cli/test/integration/license.api.test.ts index f57e886ff5..fda70f74f8 100644 --- a/packages/cli/test/integration/license.api.test.ts +++ b/packages/cli/test/integration/license.api.test.ts @@ -1,8 +1,8 @@ +import type { User } from '@n8n/db'; import nock from 'nock'; import config from '@/config'; import { RESPONSE_ERROR_MESSAGES } from '@/constants'; -import type { User } from '@/databases/entities/user'; import type { ILicensePostResponse, ILicenseReadResponse } from '@/interfaces'; import { License } from '@/license'; diff --git a/packages/cli/test/integration/me.api.test.ts b/packages/cli/test/integration/me.api.test.ts index 25cbe20b64..215515969f 100644 --- a/packages/cli/test/integration/me.api.test.ts +++ b/packages/cli/test/integration/me.api.test.ts @@ -1,9 +1,9 @@ import { GlobalConfig } from '@n8n/config'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import type { IPersonalizationSurveyAnswersV4 } from 'n8n-workflow'; import validator from 'validator'; -import type { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/test/integration/mfa/mfa.api.test.ts b/packages/cli/test/integration/mfa/mfa.api.test.ts index 3a10e6b39b..7a1f76df65 100644 --- a/packages/cli/test/integration/mfa/mfa.api.test.ts +++ b/packages/cli/test/integration/mfa/mfa.api.test.ts @@ -1,9 +1,9 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { randomString } from 'n8n-workflow'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; -import type { User } from '@/databases/entities/user'; import { AuthUserRepository } from '@/databases/repositories/auth-user.repository'; import { BadRequestError } from '@/errors/response-errors/bad-request.error'; import { ExternalHooks } from '@/external-hooks'; diff --git a/packages/cli/test/integration/owner.api.test.ts b/packages/cli/test/integration/owner.api.test.ts index 13f660688e..bb15c40bd3 100644 --- a/packages/cli/test/integration/owner.api.test.ts +++ b/packages/cli/test/integration/owner.api.test.ts @@ -1,8 +1,8 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import validator from 'validator'; import config from '@/config'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { createUserShell } from './shared/db/users'; diff --git a/packages/cli/test/integration/password-reset.api.test.ts b/packages/cli/test/integration/password-reset.api.test.ts index 826b4ddef9..7a39c20580 100644 --- a/packages/cli/test/integration/password-reset.api.test.ts +++ b/packages/cli/test/integration/password-reset.api.test.ts @@ -1,3 +1,4 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { compare } from 'bcryptjs'; import { mock } from 'jest-mock-extended'; @@ -6,7 +7,6 @@ import { v4 as uuid } from 'uuid'; import { AuthService } from '@/auth/auth.service'; import config from '@/config'; -import type { User } from '@/databases/entities/user'; import { UserRepository } from '@/databases/repositories/user.repository'; import { ExternalHooks } from '@/external-hooks'; import { License } from '@/license'; diff --git a/packages/cli/test/integration/project.api.test.ts b/packages/cli/test/integration/project.api.test.ts index 6fa9ace0c7..966d5f528a 100644 --- a/packages/cli/test/integration/project.api.test.ts +++ b/packages/cli/test/integration/project.api.test.ts @@ -1,10 +1,10 @@ import type { ProjectRole } from '@n8n/api-types'; +import type { Project } from '@n8n/db'; import { Container } from '@n8n/di'; import type { GlobalRole, Scope } from '@n8n/permissions'; import { EntityNotFoundError } from '@n8n/typeorm'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; -import type { Project } from '@/databases/entities/project'; import { FolderRepository } from '@/databases/repositories/folder.repository'; import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; diff --git a/packages/cli/test/integration/public-api/credentials.test.ts b/packages/cli/test/integration/public-api/credentials.test.ts index c6e4dc5c12..995e920e78 100644 --- a/packages/cli/test/integration/public-api/credentials.test.ts +++ b/packages/cli/test/integration/public-api/credentials.test.ts @@ -1,7 +1,7 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { randomString } from 'n8n-workflow'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; import { createTeamProject } from '@test-integration/db/projects'; diff --git a/packages/cli/test/integration/public-api/endpoints-with-scopes-enabled.test.ts b/packages/cli/test/integration/public-api/endpoints-with-scopes-enabled.test.ts index ead5e70abe..87aa71923c 100644 --- a/packages/cli/test/integration/public-api/endpoints-with-scopes-enabled.test.ts +++ b/packages/cli/test/integration/public-api/endpoints-with-scopes-enabled.test.ts @@ -1,8 +1,8 @@ +import type { TagEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import { randomString } from 'n8n-workflow'; import validator from 'validator'; -import type { TagEntity } from '@/databases/entities/tag-entity'; import { ApiKeyRepository } from '@/databases/repositories/api-key.repository'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; diff --git a/packages/cli/test/integration/public-api/executions.test.ts b/packages/cli/test/integration/public-api/executions.test.ts index 13324ed55c..0d33d10ac6 100644 --- a/packages/cli/test/integration/public-api/executions.test.ts +++ b/packages/cli/test/integration/public-api/executions.test.ts @@ -1,6 +1,7 @@ +import type { User } from '@n8n/db'; + import type { ActiveWorkflowManager } from '@/active-workflow-manager'; import type { ExecutionEntity } from '@/databases/entities/execution-entity'; -import type { User } from '@/databases/entities/user'; import { Telemetry } from '@/telemetry'; import { mockInstance } from '@test/mocking'; import { createTeamProject } from '@test-integration/db/projects'; diff --git a/packages/cli/test/integration/public-api/tags.test.ts b/packages/cli/test/integration/public-api/tags.test.ts index 2be18285f4..3c3a4ade89 100644 --- a/packages/cli/test/integration/public-api/tags.test.ts +++ b/packages/cli/test/integration/public-api/tags.test.ts @@ -1,6 +1,6 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; -import type { User } from '@/databases/entities/user'; import { TagRepository } from '@/databases/repositories/tag.repository'; import { createTag } from '../shared/db/tags'; diff --git a/packages/cli/test/integration/public-api/users.ee.test.ts b/packages/cli/test/integration/public-api/users.ee.test.ts index ab6ae90319..508b06a23d 100644 --- a/packages/cli/test/integration/public-api/users.ee.test.ts +++ b/packages/cli/test/integration/public-api/users.ee.test.ts @@ -1,7 +1,7 @@ +import type { User } from '@n8n/db'; import { v4 as uuid } from 'uuid'; import validator from 'validator'; -import type { User } from '@/databases/entities/user'; import { License } from '@/license'; import { createTeamProject, linkUserToProject } from '@test-integration/db/projects'; diff --git a/packages/cli/test/integration/public-api/workflows.test.ts b/packages/cli/test/integration/public-api/workflows.test.ts index 7a1fa9591d..b9c925bdb6 100644 --- a/packages/cli/test/integration/public-api/workflows.test.ts +++ b/packages/cli/test/integration/public-api/workflows.test.ts @@ -1,12 +1,12 @@ import { GlobalConfig } from '@n8n/config'; +import type { Project } from '@n8n/db'; +import type { TagEntity } from '@n8n/db'; +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import type { INode } from 'n8n-workflow'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; import { STARTING_NODES } from '@/constants'; -import type { Project } from '@/databases/entities/project'; -import type { TagEntity } from '@/databases/entities/tag-entity'; -import type { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository'; diff --git a/packages/cli/test/integration/role.api.test.ts b/packages/cli/test/integration/role.api.test.ts index 6e973123dc..47b2ab1c1d 100644 --- a/packages/cli/test/integration/role.api.test.ts +++ b/packages/cli/test/integration/role.api.test.ts @@ -1,9 +1,9 @@ import type { ProjectRole } from '@n8n/api-types'; +import type { CredentialSharingRole } from '@n8n/db'; +import type { WorkflowSharingRole } from '@n8n/db'; import { Container } from '@n8n/di'; import type { GlobalRole, Scope } from '@n8n/permissions'; -import type { CredentialSharingRole } from '@/databases/entities/shared-credentials'; -import type { WorkflowSharingRole } from '@/databases/entities/shared-workflow'; import { RoleService } from '@/services/role.service'; import { createMember } from './shared/db/users'; diff --git a/packages/cli/test/integration/saml/saml.api.test.ts b/packages/cli/test/integration/saml/saml.api.test.ts index 7737444c6b..7d32ccb04e 100644 --- a/packages/cli/test/integration/saml/saml.api.test.ts +++ b/packages/cli/test/integration/saml/saml.api.test.ts @@ -1,4 +1,5 @@ -import type { User } from '@/databases/entities/user'; +import type { User } from '@n8n/db'; + import { setSamlLoginEnabled } from '@/sso.ee/saml/saml-helpers'; import { getCurrentAuthenticationMethod, diff --git a/packages/cli/test/integration/shared/db/credentials.ts b/packages/cli/test/integration/shared/db/credentials.ts index b152bc813a..f53ea74fdc 100644 --- a/packages/cli/test/integration/shared/db/credentials.ts +++ b/packages/cli/test/integration/shared/db/credentials.ts @@ -1,13 +1,13 @@ +import { CredentialsEntity } from '@n8n/db'; +import type { Project } from '@n8n/db'; +import type { CredentialSharingRole } from '@n8n/db'; +import type { User } from '@n8n/db'; +import type { ICredentialsDb } from '@n8n/db'; import { Container } from '@n8n/di'; -import { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { Project } from '@/databases/entities/project'; -import type { CredentialSharingRole } from '@/databases/entities/shared-credentials'; -import type { User } from '@/databases/entities/user'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository'; -import type { ICredentialsDb } from '@/types-db'; import type { CredentialPayload } from '../types'; diff --git a/packages/cli/test/integration/shared/db/folders.ts b/packages/cli/test/integration/shared/db/folders.ts index 1887a4524a..c8b8803e23 100644 --- a/packages/cli/test/integration/shared/db/folders.ts +++ b/packages/cli/test/integration/shared/db/folders.ts @@ -1,8 +1,8 @@ +import type { Folder } from '@n8n/db'; +import type { Project } from '@n8n/db'; +import type { TagEntity } from '@n8n/db'; import { Container } from '@n8n/di'; -import type { Folder } from '@/databases/entities/folder'; -import type { Project } from '@/databases/entities/project'; -import type { TagEntity } from '@/databases/entities/tag-entity'; import { FolderRepository } from '@/databases/repositories/folder.repository'; import { randomName } from '@test-integration/random'; diff --git a/packages/cli/test/integration/shared/db/projects.ts b/packages/cli/test/integration/shared/db/projects.ts index 9d61c2a667..3669dab1b9 100644 --- a/packages/cli/test/integration/shared/db/projects.ts +++ b/packages/cli/test/integration/shared/db/projects.ts @@ -1,9 +1,9 @@ import type { ProjectRole } from '@n8n/api-types'; +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; +import type { ProjectRelation } from '@n8n/db'; import { Container } from '@n8n/di'; -import type { Project } from '@/databases/entities/project'; -import type { ProjectRelation } from '@/databases/entities/project-relation'; -import type { User } from '@/databases/entities/user'; import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; diff --git a/packages/cli/test/integration/shared/db/tags.ts b/packages/cli/test/integration/shared/db/tags.ts index a08a8cd70c..c191351f40 100644 --- a/packages/cli/test/integration/shared/db/tags.ts +++ b/packages/cli/test/integration/shared/db/tags.ts @@ -1,9 +1,9 @@ import { generateNanoId } from '@n8n/db'; +import type { TagEntity } from '@n8n/db'; +import type { WorkflowEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import type { IWorkflowBase } from 'n8n-workflow'; -import type { TagEntity } from '@/databases/entities/tag-entity'; -import type { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { TagRepository } from '@/databases/repositories/tag.repository'; import { WorkflowTagMappingRepository } from '@/databases/repositories/workflow-tag-mapping.repository'; diff --git a/packages/cli/test/integration/shared/db/users.ts b/packages/cli/test/integration/shared/db/users.ts index a9a8e53f5f..fd22c09656 100644 --- a/packages/cli/test/integration/shared/db/users.ts +++ b/packages/cli/test/integration/shared/db/users.ts @@ -1,9 +1,9 @@ +import { AuthIdentity } from '@n8n/db'; +import { type User } from '@n8n/db'; import { Container } from '@n8n/di'; import type { ApiKeyScope, GlobalRole } from '@n8n/permissions'; import { hash } from 'bcryptjs'; -import { AuthIdentity } from '@/databases/entities/auth-identity'; -import { type User } from '@/databases/entities/user'; import { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository'; import { AuthUserRepository } from '@/databases/repositories/auth-user.repository'; import { UserRepository } from '@/databases/repositories/user.repository'; diff --git a/packages/cli/test/integration/shared/db/workflow-statistics.ts b/packages/cli/test/integration/shared/db/workflow-statistics.ts index 0eee830816..4b190bf3f1 100644 --- a/packages/cli/test/integration/shared/db/workflow-statistics.ts +++ b/packages/cli/test/integration/shared/db/workflow-statistics.ts @@ -1,7 +1,7 @@ +import { StatisticsNames, type WorkflowStatistics } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Workflow } from 'n8n-workflow'; -import { StatisticsNames, type WorkflowStatistics } from '@/databases/entities/workflow-statistics'; import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository'; export async function createWorkflowStatisticsItem( diff --git a/packages/cli/test/integration/shared/db/workflows.ts b/packages/cli/test/integration/shared/db/workflows.ts index 7c8fe0b44d..187534647b 100644 --- a/packages/cli/test/integration/shared/db/workflows.ts +++ b/packages/cli/test/integration/shared/db/workflows.ts @@ -1,16 +1,16 @@ +import { Project } from '@n8n/db'; +import { User } from '@n8n/db'; +import type { SharedWorkflow, WorkflowSharingRole } from '@n8n/db'; +import type { IWorkflowDb } from '@n8n/db'; import { Container } from '@n8n/di'; import type { DeepPartial } from '@n8n/typeorm'; import type { IWorkflowBase } from 'n8n-workflow'; import { NodeConnectionTypes } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; -import { Project } from '@/databases/entities/project'; -import type { SharedWorkflow, WorkflowSharingRole } from '@/databases/entities/shared-workflow'; -import { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; -import type { IWorkflowDb } from '@/types-db'; export async function createManyWorkflows( amount: number, diff --git a/packages/cli/test/integration/shared/types.ts b/packages/cli/test/integration/shared/types.ts index 0c6170b2c1..8eb2d1aa41 100644 --- a/packages/cli/test/integration/shared/types.ts +++ b/packages/cli/test/integration/shared/types.ts @@ -1,14 +1,13 @@ import type { BooleanLicenseFeature, NumericLicenseFeature } from '@n8n/constants'; +import type { CredentialsEntity } from '@n8n/db'; +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; +import type { ICredentialsDb } from '@n8n/db'; import type { Application } from 'express'; import type { Server } from 'http'; import type { ICredentialDataDecryptedObject } from 'n8n-workflow'; import type TestAgent from 'supertest/lib/agent'; -import type { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; -import type { ICredentialsDb } from '@/types-db'; - import type { LicenseMocker } from './license'; type EndpointGroup = diff --git a/packages/cli/test/integration/shared/utils/index.ts b/packages/cli/test/integration/shared/utils/index.ts index 58be0728d9..5f326e604d 100644 --- a/packages/cli/test/integration/shared/utils/index.ts +++ b/packages/cli/test/integration/shared/utils/index.ts @@ -1,3 +1,4 @@ +import { WorkflowEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; import { @@ -20,7 +21,6 @@ import { v4 as uuid } from 'uuid'; import config from '@/config'; import { AUTH_COOKIE_NAME } from '@/constants'; -import { WorkflowEntity } from '@/databases/entities/workflow-entity'; import { SettingsRepository } from '@/databases/repositories/settings.repository'; import { ExecutionService } from '@/executions/execution.service'; import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials'; diff --git a/packages/cli/test/integration/shared/utils/test-server.ts b/packages/cli/test/integration/shared/utils/test-server.ts index 7a2d203b44..1f6aacbba5 100644 --- a/packages/cli/test/integration/shared/utils/test-server.ts +++ b/packages/cli/test/integration/shared/utils/test-server.ts @@ -1,3 +1,4 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import cookieParser from 'cookie-parser'; import express from 'express'; @@ -9,7 +10,6 @@ import { AuthService } from '@/auth/auth.service'; import config from '@/config'; import { AUTH_COOKIE_NAME } from '@/constants'; import { ControllerRegistry } from '@/controller.registry'; -import type { User } from '@/databases/entities/user'; import { License } from '@/license'; import { rawBodyReader, bodyParser } from '@/middlewares'; import { PostHogClient } from '@/posthog'; diff --git a/packages/cli/test/integration/shared/utils/users.ts b/packages/cli/test/integration/shared/utils/users.ts index 926a29233e..45e3dc8f9b 100644 --- a/packages/cli/test/integration/shared/utils/users.ts +++ b/packages/cli/test/integration/shared/utils/users.ts @@ -1,5 +1,5 @@ -import type { User } from '@/databases/entities/user'; -import type { PublicUser } from '@/types-db'; +import type { User } from '@n8n/db'; +import type { PublicUser } from '@n8n/db'; export const validateUser = (user: PublicUser) => { expect(typeof user.id).toBe('string'); diff --git a/packages/cli/test/integration/shared/workflow.ts b/packages/cli/test/integration/shared/workflow.ts index 83901b6f15..362118e433 100644 --- a/packages/cli/test/integration/shared/workflow.ts +++ b/packages/cli/test/integration/shared/workflow.ts @@ -1,7 +1,6 @@ +import { WorkflowEntity } from '@n8n/db'; import type { INode } from 'n8n-workflow'; -import { WorkflowEntity } from '@/databases/entities/workflow-entity'; - export const FIRST_CREDENTIAL_ID = '1'; export const SECOND_CREDENTIAL_ID = '2'; export const THIRD_CREDENTIAL_ID = '3'; diff --git a/packages/cli/test/integration/users.api.test.ts b/packages/cli/test/integration/users.api.test.ts index 6bd1a8e600..5e16fdeaae 100644 --- a/packages/cli/test/integration/users.api.test.ts +++ b/packages/cli/test/integration/users.api.test.ts @@ -1,9 +1,9 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; import { v4 as uuid } from 'uuid'; import { RESPONSE_ERROR_MESSAGES } from '@/constants'; import { UsersController } from '@/controllers/users.controller'; -import type { User } from '@/databases/entities/user'; import { FolderRepository } from '@/databases/repositories/folder.repository'; import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository'; import { ProjectRepository } from '@/databases/repositories/project.repository'; diff --git a/packages/cli/test/integration/webhooks.api.test.ts b/packages/cli/test/integration/webhooks.api.test.ts index 028af20d58..d16103c3f8 100644 --- a/packages/cli/test/integration/webhooks.api.test.ts +++ b/packages/cli/test/integration/webhooks.api.test.ts @@ -1,3 +1,4 @@ +import type { User } from '@n8n/db'; import { readFileSync } from 'fs'; import { mock } from 'jest-mock-extended'; import type { INode, IWorkflowBase } from 'n8n-workflow'; @@ -9,7 +10,6 @@ import { } from 'n8n-workflow'; import { agent as testAgent } from 'supertest'; -import type { User } from '@/databases/entities/user'; import { NodeTypes } from '@/node-types'; import { WebhookServer } from '@/webhooks/webhook-server'; diff --git a/packages/cli/test/integration/workflow-history.api.test.ts b/packages/cli/test/integration/workflow-history.api.test.ts index 42fb1d6a69..56e4a6aa52 100644 --- a/packages/cli/test/integration/workflow-history.api.test.ts +++ b/packages/cli/test/integration/workflow-history.api.test.ts @@ -1,4 +1,4 @@ -import type { User } from '@/databases/entities/user'; +import type { User } from '@n8n/db'; import { createOwner, createUser } from './shared/db/users'; import { createWorkflowHistoryItem } from './shared/db/workflow-history'; diff --git a/packages/cli/test/integration/workflows/workflow-sharing.service.test.ts b/packages/cli/test/integration/workflows/workflow-sharing.service.test.ts index 3f54420873..cf7732ccca 100644 --- a/packages/cli/test/integration/workflows/workflow-sharing.service.test.ts +++ b/packages/cli/test/integration/workflows/workflow-sharing.service.test.ts @@ -1,6 +1,6 @@ +import type { User } from '@n8n/db'; import { Container } from '@n8n/di'; -import type { User } from '@/databases/entities/user'; import { License } from '@/license'; import { ProjectService } from '@/services/project.service.ee'; import { WorkflowSharingService } from '@/workflows/workflow-sharing.service'; diff --git a/packages/cli/test/integration/workflows/workflow.service.ee.test.ts b/packages/cli/test/integration/workflows/workflow.service.ee.test.ts index 70be3117da..5ff50f634e 100644 --- a/packages/cli/test/integration/workflows/workflow.service.ee.test.ts +++ b/packages/cli/test/integration/workflows/workflow.service.ee.test.ts @@ -1,7 +1,7 @@ +import { CredentialsEntity } from '@n8n/db'; import { Container } from '@n8n/di'; import { mock } from 'jest-mock-extended'; -import { CredentialsEntity } from '@/databases/entities/credentials-entity'; import { CredentialsRepository } from '@/databases/repositories/credentials.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; diff --git a/packages/cli/test/integration/workflows/workflows.controller-with-active-workflow-manager.ee.test.ts b/packages/cli/test/integration/workflows/workflows.controller-with-active-workflow-manager.ee.test.ts index 2cbc23ffe9..b0f05da1c1 100644 --- a/packages/cli/test/integration/workflows/workflows.controller-with-active-workflow-manager.ee.test.ts +++ b/packages/cli/test/integration/workflows/workflows.controller-with-active-workflow-manager.ee.test.ts @@ -1,4 +1,5 @@ -import type { User } from '@/databases/entities/user'; +import type { User } from '@n8n/db'; + import { Telemetry } from '@/telemetry'; import { mockInstance } from '@test/mocking'; diff --git a/packages/cli/test/integration/workflows/workflows.controller.ee.test.ts b/packages/cli/test/integration/workflows/workflows.controller.ee.test.ts index b9fd56fd05..758c568a95 100644 --- a/packages/cli/test/integration/workflows/workflows.controller.ee.test.ts +++ b/packages/cli/test/integration/workflows/workflows.controller.ee.test.ts @@ -1,17 +1,17 @@ import type { ProjectRole } from '@n8n/api-types'; +import type { Project } from '@n8n/db'; +import type { User } from '@n8n/db'; +import type { WorkflowWithSharingsMetaDataAndCredentials } from '@n8n/db'; import { Container } from '@n8n/di'; import { ApplicationError, WorkflowActivationError, type INode } from 'n8n-workflow'; import { v4 as uuid } from 'uuid'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; import config from '@/config'; -import type { Project } from '@/databases/entities/project'; -import type { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository'; import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; -import type { WorkflowWithSharingsMetaDataAndCredentials } from '@/types-db'; import { UserManagementMailer } from '@/user-management/email'; import { mockInstance } from '@test/mocking'; import { createFolder } from '@test-integration/db/folders'; diff --git a/packages/cli/test/integration/workflows/workflows.controller.test.ts b/packages/cli/test/integration/workflows/workflows.controller.test.ts index be045c1260..4adaaab5f7 100644 --- a/packages/cli/test/integration/workflows/workflows.controller.test.ts +++ b/packages/cli/test/integration/workflows/workflows.controller.test.ts @@ -1,3 +1,5 @@ +import type { User } from '@n8n/db'; +import type { ListQueryDb } from '@n8n/db'; import { Container } from '@n8n/di'; import type { Scope } from '@n8n/permissions'; import { DateTime } from 'luxon'; @@ -5,7 +7,6 @@ import { PROJECT_ROOT, type INode, type IPinData, type IWorkflowBase } from 'n8n import { v4 as uuid } from 'uuid'; import { ActiveWorkflowManager } from '@/active-workflow-manager'; -import type { User } from '@/databases/entities/user'; import { ProjectRepository } from '@/databases/repositories/project.repository'; import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository'; import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository'; @@ -13,7 +14,6 @@ import type { WorkflowFolderUnionFull } from '@/databases/repositories/workflow. import { WorkflowRepository } from '@/databases/repositories/workflow.repository'; import { License } from '@/license'; import { ProjectService } from '@/services/project.service.ee'; -import type { ListQueryDb } from '@/types-db'; import { EnterpriseWorkflowService } from '@/workflows/workflow.service.ee'; import { createFolder } from '@test-integration/db/folders'; diff --git a/packages/cli/test/shared/mock-objects.ts b/packages/cli/test/shared/mock-objects.ts index 2559694b01..33aa3e6fef 100644 --- a/packages/cli/test/shared/mock-objects.ts +++ b/packages/cli/test/shared/mock-objects.ts @@ -1,9 +1,8 @@ +import { CredentialsEntity } from '@n8n/db'; +import { Project } from '@n8n/db'; +import { User } from '@n8n/db'; import { randomInt } from 'n8n-workflow'; -import { CredentialsEntity } from '@/databases/entities/credentials-entity'; -import { Project } from '@/databases/entities/project'; -import { User } from '@/databases/entities/user'; - import { randomCredentialPayload, randomEmail, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8b824f3e6..4ac988f344 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -482,9 +482,15 @@ importers: '@n8n/di': specifier: workspace:^ version: link:../di + '@n8n/permissions': + specifier: workspace:^ + version: link:../permissions '@n8n/typeorm': specifier: 'catalog:' version: 0.3.20-12(@sentry/node@8.52.1)(ioredis@5.3.2)(mssql@10.0.2)(mysql2@3.11.0)(pg@8.12.0)(redis@4.6.14)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.8.2)) + class-validator: + specifier: 0.14.0 + version: 0.14.0 n8n-core: specifier: workspace:^ version: link:../../core @@ -497,6 +503,9 @@ importers: reflect-metadata: specifier: 'catalog:' version: 0.2.2 + xss: + specifier: 'catalog:' + version: 1.0.15 devDependencies: '@n8n/typescript-config': specifier: workspace:* diff --git a/turbo.json b/turbo.json index 04e313ff39..3160634e1f 100644 --- a/turbo.json +++ b/turbo.json @@ -68,6 +68,7 @@ "@n8n/api-types#test", "@n8n/config#test", "@n8n/decorators#test", + "@n8n/db#test", "@n8n/di#test", "@n8n/client-oauth2#test", "@n8n/imap#test",