mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
refactor(core): Move first batch of repositories to @n8n/db (#15130)
This commit is contained in:
@@ -26,6 +26,8 @@
|
||||
"@n8n/permissions": "workspace:^",
|
||||
"@n8n/typeorm": "catalog:",
|
||||
"class-validator": "0.14.0",
|
||||
"flatted": "catalog:",
|
||||
"lodash": "catalog:",
|
||||
"n8n-core": "workspace:^",
|
||||
"n8n-workflow": "workspace:^",
|
||||
"nanoid": "catalog:",
|
||||
@@ -33,6 +35,7 @@
|
||||
"xss": "catalog:"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@n8n/typescript-config": "workspace:*"
|
||||
"@n8n/typescript-config": "workspace:*",
|
||||
"@types/lodash": "catalog:"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { GlobalRole, Scope } from '@n8n/permissions';
|
||||
import type { FindOperator } from '@n8n/typeorm';
|
||||
import type {
|
||||
ICredentialsEncrypted,
|
||||
IRunExecutionData,
|
||||
@@ -308,3 +309,45 @@ export type MockedNodeItem = {
|
||||
export type RunningMode = 'dry' | 'live';
|
||||
|
||||
export type SyncStatus = 'success' | 'error';
|
||||
|
||||
/** @deprecated This is tech debt. Do not rely on request-level types in repositories. */
|
||||
export namespace ListQuery {
|
||||
export type Options = {
|
||||
filter?: Record<string, unknown>;
|
||||
select?: Record<string, true>;
|
||||
skip?: number;
|
||||
take?: number;
|
||||
sortBy?: string;
|
||||
};
|
||||
}
|
||||
|
||||
export type ProjectRole =
|
||||
| 'project:personalOwner'
|
||||
| 'project:admin'
|
||||
| 'project:editor'
|
||||
| 'project:viewer';
|
||||
|
||||
export interface IGetExecutionsQueryFilter {
|
||||
id?: FindOperator<string> | string;
|
||||
finished?: boolean;
|
||||
mode?: string;
|
||||
retryOf?: string;
|
||||
retrySuccessId?: string;
|
||||
status?: ExecutionStatus[];
|
||||
workflowId?: string;
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
waitTill?: FindOperator<any> | boolean;
|
||||
metadata?: Array<{ key: string; value: string }>;
|
||||
startedAfter?: string;
|
||||
startedBefore?: string;
|
||||
}
|
||||
|
||||
export type ResourceType = 'folder' | 'workflow';
|
||||
|
||||
export type WorkflowFolderUnionFull = (
|
||||
| ListQueryDb.Workflow.Plain
|
||||
| ListQueryDb.Workflow.WithSharing
|
||||
| FolderWithWorkflowAndSubFolderCount
|
||||
) & {
|
||||
resource: ResourceType;
|
||||
};
|
||||
|
||||
@@ -18,3 +18,5 @@ export * from './entities';
|
||||
export * from './entities/types-db';
|
||||
export { NoXss } from './utils/validators/no-xss.validator';
|
||||
export { NoUrl } from './utils/validators/no-url.validator';
|
||||
|
||||
export * from './repositories';
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { AnnotationTagMapping } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { DataSource, Repository } from '@n8n/typeorm';
|
||||
|
||||
import { AnnotationTagMapping } from '../entities';
|
||||
|
||||
@Service()
|
||||
export class AnnotationTagMappingRepository extends Repository<AnnotationTagMapping> {
|
||||
constructor(dataSource: DataSource) {
|
||||
@@ -1,7 +1,8 @@
|
||||
import { AnnotationTagEntity } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { DataSource, Repository } from '@n8n/typeorm';
|
||||
|
||||
import { AnnotationTagEntity } from '../entities';
|
||||
|
||||
@Service()
|
||||
export class AnnotationTagRepository extends Repository<AnnotationTagEntity> {
|
||||
constructor(dataSource: DataSource) {
|
||||
@@ -1,7 +1,8 @@
|
||||
import { ApiKey } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { DataSource, Repository } from '@n8n/typeorm';
|
||||
|
||||
import { ApiKey } from '../entities';
|
||||
|
||||
@Service()
|
||||
export class ApiKeyRepository extends Repository<ApiKey> {
|
||||
constructor(dataSource: DataSource) {
|
||||
@@ -1,7 +1,8 @@
|
||||
import { AuthIdentity } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { DataSource, Repository } from '@n8n/typeorm';
|
||||
|
||||
import { AuthIdentity } from '../entities';
|
||||
|
||||
@Service()
|
||||
export class AuthIdentityRepository extends Repository<AuthIdentity> {
|
||||
constructor(dataSource: DataSource) {
|
||||
@@ -1,7 +1,8 @@
|
||||
import { AuthProviderSyncHistory } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { DataSource, Repository } from '@n8n/typeorm';
|
||||
|
||||
import { AuthProviderSyncHistory } from '../entities';
|
||||
|
||||
@Service()
|
||||
export class AuthProviderSyncHistoryRepository extends Repository<AuthProviderSyncHistory> {
|
||||
constructor(dataSource: DataSource) {
|
||||
@@ -1,7 +1,8 @@
|
||||
import { AuthUser } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { DataSource, Repository } from '@n8n/typeorm';
|
||||
|
||||
import { AuthUser } from '../entities';
|
||||
|
||||
@Service()
|
||||
export class AuthUserRepository extends Repository<AuthUser> {
|
||||
constructor(dataSource: DataSource) {
|
||||
@@ -1,10 +1,10 @@
|
||||
import type { User } from '@n8n/db';
|
||||
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';
|
||||
import type { User } from '../entities';
|
||||
import type { ListQuery } from '../entities/types-db';
|
||||
|
||||
@Service()
|
||||
export class CredentialsRepository extends Repository<CredentialsEntity> {
|
||||
@@ -1,7 +1,8 @@
|
||||
import { EventDestinations } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { DataSource, Repository } from '@n8n/typeorm';
|
||||
|
||||
import { EventDestinations } from '../entities';
|
||||
|
||||
@Service()
|
||||
export class EventDestinationsRepository extends Repository<EventDestinations> {
|
||||
constructor(dataSource: DataSource) {
|
||||
@@ -1,7 +1,8 @@
|
||||
import { ExecutionAnnotation } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { DataSource, Repository } from '@n8n/typeorm';
|
||||
|
||||
import { ExecutionAnnotation } from '../entities';
|
||||
|
||||
@Service()
|
||||
export class ExecutionAnnotationRepository extends Repository<ExecutionAnnotation> {
|
||||
constructor(dataSource: DataSource) {
|
||||
@@ -1,9 +1,10 @@
|
||||
import { ExecutionData } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { DataSource, In, Repository } from '@n8n/typeorm';
|
||||
import type { EntityManager } from '@n8n/typeorm';
|
||||
import type { QueryDeepPartialEntity } from '@n8n/typeorm/query-builder/QueryPartialEntity';
|
||||
|
||||
import { ExecutionData } from '../entities';
|
||||
|
||||
@Service()
|
||||
export class ExecutionDataRepository extends Repository<ExecutionData> {
|
||||
constructor(dataSource: DataSource) {
|
||||
@@ -1,7 +1,8 @@
|
||||
import { ExecutionMetadata } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { DataSource, Repository } from '@n8n/typeorm';
|
||||
|
||||
import { ExecutionMetadata } from '../entities';
|
||||
|
||||
@Service()
|
||||
export class ExecutionMetadataRepository extends Repository<ExecutionMetadata> {
|
||||
constructor(dataSource: DataSource) {
|
||||
@@ -1,22 +1,4 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type {
|
||||
CreateExecutionPayload,
|
||||
IExecutionFlattedDb,
|
||||
IExecutionBase,
|
||||
IExecutionResponse,
|
||||
ExecutionSummaries,
|
||||
} from '@n8n/db';
|
||||
import {
|
||||
separate,
|
||||
SharedWorkflow,
|
||||
WorkflowEntity,
|
||||
AnnotationTagEntity,
|
||||
AnnotationTagMapping,
|
||||
ExecutionData,
|
||||
ExecutionEntity,
|
||||
ExecutionAnnotation,
|
||||
ExecutionMetadata,
|
||||
} from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import type {
|
||||
FindManyOptions,
|
||||
@@ -49,9 +31,31 @@ import type {
|
||||
IRunExecutionData,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
import { PostgresLiveRowsRetrievalError } from '@/errors/postgres-live-rows-retrieval.error';
|
||||
|
||||
import { ExecutionDataRepository } from './execution-data.repository';
|
||||
import {
|
||||
ExecutionEntity,
|
||||
ExecutionMetadata,
|
||||
ExecutionData,
|
||||
ExecutionAnnotation,
|
||||
AnnotationTagMapping,
|
||||
WorkflowEntity,
|
||||
SharedWorkflow,
|
||||
AnnotationTagEntity,
|
||||
} from '../entities';
|
||||
import type {
|
||||
CreateExecutionPayload,
|
||||
IExecutionFlattedDb,
|
||||
IExecutionBase,
|
||||
IExecutionResponse,
|
||||
ExecutionSummaries,
|
||||
} from '../entities/types-db';
|
||||
import { separate } from '../utils/separate';
|
||||
|
||||
class PostgresLiveRowsRetrievalError extends UnexpectedError {
|
||||
constructor(rows: unknown) {
|
||||
super('Failed to retrieve live execution rows in Postgres', { extra: { rows } });
|
||||
}
|
||||
}
|
||||
|
||||
export interface IGetExecutionsQueryFilter {
|
||||
id?: FindOperator<string> | string;
|
||||
@@ -61,6 +65,7 @@ export interface IGetExecutionsQueryFilter {
|
||||
retrySuccessId?: string;
|
||||
status?: ExecutionStatus[];
|
||||
workflowId?: string;
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
waitTill?: FindOperator<any> | boolean;
|
||||
metadata?: Array<{ key: string; value: string }>;
|
||||
startedAfter?: string;
|
||||
@@ -989,6 +994,7 @@ export class ExecutionRepository extends Repository<ExecutionEntity> {
|
||||
qb.setParameter('value', value);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
||||
if (annotationTags?.length || vote) {
|
||||
// If there is a filter by one or multiple tags or by vote - we need to join the annotations table
|
||||
qb.innerJoin('execution.annotation', 'annotation');
|
||||
12
packages/@n8n/db/src/repositories/index.ts
Normal file
12
packages/@n8n/db/src/repositories/index.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export { AnnotationTagMappingRepository } from './annotation-tag-mapping.repository.ee';
|
||||
export { AnnotationTagRepository } from './annotation-tag.repository.ee';
|
||||
export { ApiKeyRepository } from './api-key.repository';
|
||||
export { AuthIdentityRepository } from './auth-identity.repository';
|
||||
export { AuthProviderSyncHistoryRepository } from './auth-provider-sync-history.repository';
|
||||
export { AuthUserRepository } from './auth-user.repository';
|
||||
export { CredentialsRepository } from './credentials.repository';
|
||||
export { ExecutionAnnotationRepository } from './execution-annotation.repository';
|
||||
export { ExecutionDataRepository } from './execution-data.repository';
|
||||
export { ExecutionMetadataRepository } from './execution-metadata.repository';
|
||||
export { ExecutionRepository } from './execution.repository';
|
||||
export { EventDestinationsRepository } from './event-destinations.repository';
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { ExecutionRepository } from '@n8n/db';
|
||||
import { captor, mock } from 'jest-mock-extended';
|
||||
import type {
|
||||
IDeferredPromise,
|
||||
@@ -12,7 +13,6 @@ import { v4 as uuid } from 'uuid';
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
import { ConcurrencyControlService } from '@/concurrency/concurrency-control.service';
|
||||
import config from '@/config';
|
||||
import type { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
|
||||
jest.mock('n8n-workflow', () => ({
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import type { CredentialsRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { ErrorReporter, Logger } from 'n8n-core';
|
||||
import type { IWorkflowBase } from 'n8n-workflow';
|
||||
import { UnexpectedError } from 'n8n-workflow';
|
||||
|
||||
import type { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import type { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import type { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import type { Project } from '@n8n/db';
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import type { ExecutionRepository } 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 { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import type { MultiMainSetup } from '@/scaling/multi-main-setup.ee';
|
||||
import type { OwnershipService } from '@/services/ownership.service';
|
||||
import { WaitTracker } from '@/wait-tracker';
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { WorkflowEntity } from '@n8n/db';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { IWorkflowBase } from 'n8n-workflow';
|
||||
@@ -14,7 +15,6 @@ import type PCancelable from 'p-cancelable';
|
||||
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
import { CredentialsHelper } from '@/credentials-helper';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { VariablesService } from '@/environments.ee/variables/variables.service.ee';
|
||||
import { EventService } from '@/events/event.service';
|
||||
|
||||
@@ -51,7 +51,7 @@ afterAll(() => {
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await testDb.truncate(['Workflow', 'SharedWorkflow']);
|
||||
await testDb.truncate(['WorkflowEntity', 'SharedWorkflow']);
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { CreateExecutionPayload, IExecutionDb } from '@n8n/db';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { Logger } from 'n8n-core';
|
||||
import type {
|
||||
@@ -12,7 +13,6 @@ import { createDeferredPromise, ExecutionCancelledError, sleep } from 'n8n-workf
|
||||
import { strict as assert } from 'node:assert';
|
||||
import type PCancelable from 'p-cancelable';
|
||||
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { ExecutionNotFoundError } from '@/errors/execution-not-found-error';
|
||||
import type { IExecutingWorkflowData, IExecutionsCurrentSummary } from '@/interfaces';
|
||||
import { isWorkflowIdValid } from '@/utils';
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { type InstalledNodes, type InstalledPackages, type User } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { Flags } from '@oclif/core';
|
||||
|
||||
import { CredentialsService } from '@/credentials/credentials.service';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { CommunityPackagesService } from '@/services/community-packages.service';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { ICredentialsDb } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { Flags } from '@oclif/core';
|
||||
import fs from 'fs';
|
||||
@@ -6,7 +7,6 @@ import { Credentials } from 'n8n-core';
|
||||
import { UserError } from 'n8n-workflow';
|
||||
import path from 'path';
|
||||
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import type { ICredentialsDecryptedDb } from '@/interfaces';
|
||||
|
||||
import { BaseCommand } from '../base-command';
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { AuthIdentityRepository, AuthProviderSyncHistoryRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||
import { In } from '@n8n/typeorm';
|
||||
@@ -6,8 +7,6 @@ import { UserError } from 'n8n-workflow';
|
||||
|
||||
import { UM_FIX_INSTRUCTION } from '@/constants';
|
||||
import { CredentialsService } from '@/credentials/credentials.service';
|
||||
import { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository';
|
||||
import { AuthProviderSyncHistoryRepository } from '@/databases/repositories/auth-provider-sync-history.repository';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import { AuthUserRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { Flags } from '@oclif/core';
|
||||
|
||||
import { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
||||
|
||||
import { BaseCommand } from '../base-command';
|
||||
|
||||
export class DisableMFACommand extends BaseCommand {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
import { LICENSE_FEATURES } from '@n8n/constants';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { Flags } from '@oclif/core';
|
||||
import glob from 'fast-glob';
|
||||
@@ -15,7 +16,6 @@ import { ActiveExecutions } from '@/active-executions';
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import config from '@/config';
|
||||
import { EDITOR_UI_DIST_DIR } from '@/constants';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import { FeatureNotLicensedError } from '@/errors/feature-not-licensed.error';
|
||||
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import { User } from '@n8n/db';
|
||||
import { User, CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { ExecutionRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { WorkflowExecuteMode as ExecutionMode } from 'n8n-workflow';
|
||||
|
||||
@@ -8,7 +9,6 @@ import {
|
||||
ConcurrencyControlService,
|
||||
} from '@/concurrency/concurrency-control.service';
|
||||
import config from '@/config';
|
||||
import type { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { InvalidConcurrencyLimitError } from '@/errors/invalid-concurrency-limit.error';
|
||||
import type { EventService } from '@/events/event.service';
|
||||
import type { Telemetry } from '@/telemetry';
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { capitalize } from 'lodash';
|
||||
import { Logger } from 'n8n-core';
|
||||
import type { WorkflowExecuteMode as ExecutionMode } from 'n8n-workflow';
|
||||
|
||||
import config from '@/config';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { InvalidConcurrencyLimitError } from '@/errors/invalid-concurrency-limit.error';
|
||||
import { UnknownExecutionModeError } from '@/errors/unknown-execution-mode.error';
|
||||
import { EventService } from '@/events/event.service';
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { UserUpdateRequestDto } from '@n8n/api-types';
|
||||
import type { User } from '@n8n/db';
|
||||
import type { PublicUser } from '@n8n/db';
|
||||
import { AuthUserRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import type { Response } from 'express';
|
||||
import { mock, anyObject } from 'jest-mock-extended';
|
||||
@@ -8,7 +9,6 @@ import jwt from 'jsonwebtoken';
|
||||
|
||||
import { AUTH_COOKIE_NAME } from '@/constants';
|
||||
import { MeController } from '@/controllers/me.controller';
|
||||
import { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
||||
import { InvalidAuthTokenRepository } from '@/databases/repositories/invalid-auth-token.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import type { PushMessage } from '@n8n/api-types';
|
||||
import type { BooleanLicenseFeature, NumericLicenseFeature } from '@n8n/constants';
|
||||
import { LICENSE_FEATURES, LICENSE_QUOTAS, UNLIMITED_LICENSE_QUOTA } from '@n8n/constants';
|
||||
import { AuthUserRepository } from '@n8n/db';
|
||||
import { Patch, Post, RestController } from '@n8n/decorators';
|
||||
import { Container } from '@n8n/di';
|
||||
import { Request } from 'express';
|
||||
@@ -10,7 +11,6 @@ import { v4 as uuid } from 'uuid';
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import config from '@/config';
|
||||
import { inE2ETests } from '@/constants';
|
||||
import { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import Csrf from 'csrf';
|
||||
import type { Response } from 'express';
|
||||
@@ -12,7 +13,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 { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { VariablesService } from '@/environments.ee/variables/variables.service.ee';
|
||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||
import { NotFoundError } from '@/errors/response-errors/not-found.error';
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import Csrf from 'csrf';
|
||||
import { type Response } from 'express';
|
||||
@@ -12,7 +13,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 { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { VariablesService } from '@/environments.ee/variables/variables.service.ee';
|
||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||
import { NotFoundError } from '@/errors/response-errors/not-found.error';
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { CredentialsEntity, ICredentialsDb } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import Csrf from 'csrf';
|
||||
import type { Response } from 'express';
|
||||
@@ -10,7 +11,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 { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { AuthError } from '@/errors/response-errors/auth.error';
|
||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||
import { NotFoundError } from '@/errors/response-errors/not-found.error';
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
||||
import type { CredentialsEntity, ICredentialsDb } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||
import { In } from '@n8n/typeorm';
|
||||
@@ -31,7 +32,6 @@ import { ICredentialsHelper, NodeHelpers, Workflow, UnexpectedError } from 'n8n-
|
||||
|
||||
import { CredentialTypes } from '@/credential-types';
|
||||
import { CredentialsOverwrites } from '@/credentials-overwrites';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
|
||||
import { RESPONSE_ERROR_MESSAGES } from './constants';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import type { CredentialsRepository } 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';
|
||||
@@ -6,7 +7,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 { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
|
||||
describe('CredentialsService', () => {
|
||||
const credType = mock<ICredentialType>({
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { ProjectRole } from '@n8n/api-types';
|
||||
import type { CredentialsEntity, SharedCredentials, CredentialSharingRole, User } from '@n8n/db';
|
||||
import { CredentialsRepository } 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
|
||||
@@ -7,7 +8,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 { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { RoleService } from '@/services/role.service';
|
||||
|
||||
|
||||
@@ -1,6 +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 { CredentialsEntity, SharedCredentials, CredentialsRepository } 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
|
||||
@@ -22,7 +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 { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
import { CredentialsEntity } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import { mockEntityManager } from '@test/mocking';
|
||||
|
||||
import { CredentialsRepository } from '../credentials.repository';
|
||||
|
||||
const entityManager = mockEntityManager(CredentialsEntity);
|
||||
const repository = Container.get(CredentialsRepository);
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ import { GlobalConfig } from '@n8n/config';
|
||||
import type { SqliteConfig } from '@n8n/config/src/configs/database.config';
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import { ExecutionEntity } from '@n8n/db';
|
||||
import { ExecutionRepository } 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 { BinaryDataService } from 'n8n-core';
|
||||
import type { IRunExecutionData, IWorkflowBase } from 'n8n-workflow';
|
||||
import { nanoid } from 'nanoid';
|
||||
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { mockInstance, mockEntityManager } from '@test/mocking';
|
||||
|
||||
describe('ExecutionRepository', () => {
|
||||
|
||||
@@ -22,7 +22,7 @@ describe('FolderRepository', () => {
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await testDb.truncate(['Folder', 'Tag']);
|
||||
await testDb.truncate(['Folder', 'TagEntity']);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { SourceControlledFile } from '@n8n/api-types';
|
||||
import { SharedCredentials } from '@n8n/db';
|
||||
import type { Variables, Project, TagEntity, User, WorkflowTagMapping } from '@n8n/db';
|
||||
import { SharedCredentials, CredentialsRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||
import { In } from '@n8n/typeorm';
|
||||
@@ -12,7 +12,6 @@ import path from 'path';
|
||||
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import { CredentialsService } from '@/credentials/credentials.service';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { FolderRepository } from '@/databases/repositories/folder.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { MockedNodeItem, TestDefinition } from '@n8n/db';
|
||||
import { AnnotationTagRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
||||
import { AnnotationTagRepository } from '@/databases/repositories/annotation-tag.repository.ee';
|
||||
import { TestDefinitionRepository } from '@/databases/repositories/test-definition.repository.ee';
|
||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||
import { NotFoundError } from '@/errors/response-errors/not-found.error';
|
||||
|
||||
@@ -3,6 +3,7 @@ import type { ExecutionEntity } from '@n8n/db';
|
||||
import type { TestDefinition } from '@n8n/db';
|
||||
import type { TestMetric } from '@n8n/db';
|
||||
import type { TestRun } from '@n8n/db';
|
||||
import type { ExecutionRepository } from '@n8n/db';
|
||||
import type { SelectQueryBuilder } from '@n8n/typeorm';
|
||||
import { stringify } from 'flatted';
|
||||
import { readFileSync } from 'fs';
|
||||
@@ -14,7 +15,6 @@ import path from 'path';
|
||||
|
||||
import type { ActiveExecutions } from '@/active-executions';
|
||||
import config from '@/config';
|
||||
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';
|
||||
import type { TestRunRepository } from '@/databases/repositories/test-run.repository.ee';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { User, ExecutionEntity, MockedNodeItem, TestDefinition, TestRun } from '@n8n/db';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { parse } from 'flatted';
|
||||
import difference from 'lodash/difference';
|
||||
@@ -17,7 +18,6 @@ import assert from 'node:assert';
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
import config from '@/config';
|
||||
import { EVALUATION_METRICS_NODE } from '@/constants';
|
||||
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';
|
||||
import { TestRunRepository } from '@/databases/repositories/test-run.repository.ee';
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { EventDestinationsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { Logger } from 'n8n-core';
|
||||
import type { INodeCredentials, MessageEventBusDestinationOptions } from 'n8n-workflow';
|
||||
import { MessageEventBusDestinationTypeNames } from 'n8n-workflow';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import { EventDestinationsRepository } from '@/databases/repositories/event-destinations.repository';
|
||||
import { License } from '@/license';
|
||||
|
||||
import type { EventMessageTypes } from '../event-message-classes';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { EventDestinationsRepository, ExecutionRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||
import type { DeleteResult } from '@n8n/typeorm';
|
||||
@@ -10,8 +11,6 @@ import { Logger } from 'n8n-core';
|
||||
import type { MessageEventBusDestinationOptions } from 'n8n-workflow';
|
||||
|
||||
import config from '@/config';
|
||||
import { EventDestinationsRepository } from '@/databases/repositories/event-destinations.repository';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { License } from '@/license';
|
||||
import { Publisher } from '@/scaling/pubsub/publisher.service';
|
||||
|
||||
@@ -2,13 +2,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 type { CredentialsRepository } 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 { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import type { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import type { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { snakeCase } from 'change-case';
|
||||
import { BinaryDataConfig, InstanceSettings } from 'n8n-core';
|
||||
@@ -9,7 +10,6 @@ import { get as pslGet } from 'psl';
|
||||
|
||||
import config from '@/config';
|
||||
import { N8N_VERSION } from '@/constants';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { Project } from '@n8n/db';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { stringify } from 'flatted';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import {
|
||||
@@ -22,7 +23,6 @@ import type {
|
||||
ITaskStartedData,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import { Push } from '@/push';
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import { ExecutionRepository } 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 { mockInstance } from '@test/mocking';
|
||||
|
||||
import { saveExecutionProgress } from '../save-execution-progress';
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { stringify } from 'flatted';
|
||||
import { ErrorReporter, Logger, InstanceSettings, ExecutionLifecycleHooks } from 'n8n-core';
|
||||
@@ -7,7 +8,6 @@ import type {
|
||||
IWorkflowExecutionDataProcess,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import { ModuleRegistry } from '@/modules/module-registry';
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { ErrorReporter, Logger } from 'n8n-core';
|
||||
import type { IRunExecutionData, ITaskData } from 'n8n-workflow';
|
||||
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
|
||||
export async function saveExecutionProgress(
|
||||
workflowId: string,
|
||||
executionId: string,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import type { IExecutionDb } from '@n8n/db';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import pick from 'lodash/pick';
|
||||
import { Logger } from 'n8n-core';
|
||||
import { ensureError, type ExecutionStatus, type IRun, type IWorkflowBase } from 'n8n-workflow';
|
||||
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import type { UpdateExecutionPayload } from '@/interfaces';
|
||||
import { ExecutionMetadataService } from '@/services/execution-metadata.service';
|
||||
import { isWorkflowIdValid } from '@/utils';
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { stringify } from 'flatted';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
@@ -6,7 +7,6 @@ import { randomInt } from 'n8n-workflow';
|
||||
import assert from 'node:assert';
|
||||
|
||||
import { ARTIFICIAL_TASK_DATA } from '@/constants';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { NodeCrashedError } from '@/errors/node-crashed.error';
|
||||
import { WorkflowCrashedError } from '@/errors/workflow-crashed.error';
|
||||
import type { EventMessageTypes as EventMessage } from '@/eventbus/event-message-classes';
|
||||
@@ -46,7 +46,7 @@ describe('ExecutionRecoveryService', () => {
|
||||
|
||||
afterEach(async () => {
|
||||
jest.restoreAllMocks();
|
||||
await testDb.truncate(['Execution', 'ExecutionData', 'Workflow']);
|
||||
await testDb.truncate(['ExecutionEntity', 'ExecutionData', 'WorkflowEntity']);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import type { ExecutionRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { WorkflowOperationError } from 'n8n-workflow';
|
||||
|
||||
import type { ActiveExecutions } from '@/active-executions';
|
||||
import type { ConcurrencyControlService } from '@/concurrency/concurrency-control.service';
|
||||
import config from '@/config';
|
||||
import type { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { AbortedExecutionRetryError } from '@/errors/aborted-execution-retry.error';
|
||||
import { MissingExecutionStopError } from '@/errors/missing-execution-stop.error';
|
||||
import { ExecutionService } from '@/executions/execution.service';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import type { DateTime } from 'luxon';
|
||||
import { InstanceSettings, Logger } from 'n8n-core';
|
||||
@@ -6,7 +7,6 @@ import { sleep } from 'n8n-workflow';
|
||||
import type { IRun, ITaskData } from 'n8n-workflow';
|
||||
|
||||
import { ARTIFICIAL_TASK_DATA } from '@/constants';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { NodeCrashedError } from '@/errors/node-crashed.error';
|
||||
import { WorkflowCrashedError } from '@/errors/workflow-crashed.error';
|
||||
import { getLifecycleHooksForRegularMain } from '@/execution-lifecycle/execution-lifecycle-hooks';
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User, CreateExecutionPayload, ExecutionSummaries, IExecutionResponse } from '@n8n/db';
|
||||
import type {
|
||||
User,
|
||||
CreateExecutionPayload,
|
||||
ExecutionSummaries,
|
||||
IExecutionResponse,
|
||||
IGetExecutionsQueryFilter,
|
||||
} from '@n8n/db';
|
||||
import {
|
||||
ExecutionAnnotationRepository,
|
||||
ExecutionRepository,
|
||||
AnnotationTagMappingRepository,
|
||||
} from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { validate as jsonSchemaValidate } from 'jsonschema';
|
||||
import { Logger } from 'n8n-core';
|
||||
@@ -23,10 +34,6 @@ import {
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
import { ConcurrencyControlService } from '@/concurrency/concurrency-control.service';
|
||||
import config from '@/config';
|
||||
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';
|
||||
import type { IGetExecutionsQueryFilter } from '@/databases/repositories/execution.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { AbortedExecutionRetryError } from '@/errors/aborted-execution-retry.error';
|
||||
import { MissingExecutionStopError } from '@/errors/missing-execution-stop.error';
|
||||
|
||||
@@ -2,6 +2,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 { CredentialsRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { ErrorReporter, Logger } from 'n8n-core';
|
||||
import type { IRun, IWorkflowBase, Workflow, WorkflowExecuteMode } from 'n8n-workflow';
|
||||
@@ -10,7 +11,6 @@ import type clientOAuth1 from 'oauth-1.0a';
|
||||
|
||||
import type { AbstractServer } from '@/abstract-server';
|
||||
import type { Config } from '@/config';
|
||||
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';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { Settings } from '@n8n/db';
|
||||
import { AuthIdentityRepository } from '@n8n/db';
|
||||
import { QueryFailedError } from '@n8n/typeorm';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { Client } from 'ldapts';
|
||||
@@ -6,7 +7,6 @@ import type { Cipher } from 'n8n-core';
|
||||
import { randomString } from 'n8n-workflow';
|
||||
|
||||
import config from '@/config';
|
||||
import { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import type { EventService } from '@/events/event.service';
|
||||
import { mockInstance, mockLogger } from '@test/mocking';
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
import { AuthIdentity, User } from '@n8n/db';
|
||||
import type { AuthProviderSyncHistory } from '@n8n/db';
|
||||
import {
|
||||
AuthIdentity,
|
||||
User,
|
||||
AuthIdentityRepository,
|
||||
AuthProviderSyncHistoryRepository,
|
||||
} from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { validate } from 'jsonschema';
|
||||
import type { Entry as LdapUser } from 'ldapts';
|
||||
@@ -7,8 +12,6 @@ import { Filter } from 'ldapts/filters/Filter';
|
||||
import { randomString } from 'n8n-workflow';
|
||||
|
||||
import config from '@/config';
|
||||
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';
|
||||
import * as Db from '@/db';
|
||||
import { License } from '@/license';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { AuthUserRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { Cipher } from 'n8n-core';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
||||
import { InvalidMfaCodeError } from '@/errors/response-errors/invalid-mfa-code.error';
|
||||
import { InvalidMfaRecoveryCodeError } from '@/errors/response-errors/invalid-mfa-recovery-code-error';
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ import { InsightsConfig } from '../insights.config';
|
||||
|
||||
// Initialize DB once for all tests
|
||||
beforeAll(async () => {
|
||||
await testDb.init(['insights']);
|
||||
await testDb.init();
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
@@ -36,7 +36,7 @@ beforeEach(async () => {
|
||||
'InsightsRaw',
|
||||
'InsightsByPeriod',
|
||||
'InsightsMetadata',
|
||||
'Workflow',
|
||||
'WorkflowEntity',
|
||||
'Project',
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -28,7 +28,7 @@ if (dbType === 'sqlite' && !globalConfig.database.sqlite.poolSize) {
|
||||
} else {
|
||||
// Initialize DB once for all tests
|
||||
beforeAll(async () => {
|
||||
await testDb.init(['insights']);
|
||||
await testDb.init();
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
@@ -36,7 +36,7 @@ if (dbType === 'sqlite' && !globalConfig.database.sqlite.poolSize) {
|
||||
'InsightsRaw',
|
||||
'InsightsByPeriod',
|
||||
'InsightsMetadata',
|
||||
'Workflow',
|
||||
'WorkflowEntity',
|
||||
'Project',
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -19,7 +19,7 @@ import { InsightsService } from '../insights.service';
|
||||
|
||||
// Initialize DB once for all tests
|
||||
beforeAll(async () => {
|
||||
await testDb.init(['insights']);
|
||||
await testDb.init();
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
@@ -27,7 +27,7 @@ beforeEach(async () => {
|
||||
'InsightsRaw',
|
||||
'InsightsByPeriod',
|
||||
'InsightsMetadata',
|
||||
'Workflow',
|
||||
'WorkflowEntity',
|
||||
'Project',
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { CredentialsEntity, SharedCredentials } from '@n8n/db';
|
||||
import type { User, ICredentialsDb } from '@n8n/db';
|
||||
import { CredentialsEntity, SharedCredentials, CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { Credentials } from 'n8n-core';
|
||||
import type {
|
||||
@@ -9,7 +9,6 @@ import type {
|
||||
INodePropertyOptions,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import * as Db from '@/db';
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import type express from 'express';
|
||||
import { replaceCircularReferences } from 'n8n-workflow';
|
||||
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
import { ConcurrencyControlService } from '@/concurrency/concurrency-control.service';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { EventService } from '@/events/event.service';
|
||||
|
||||
import type { ExecutionRequest } from '../../../types';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import type { ExecutionRepository } from '@n8n/db';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { Logger } from 'n8n-core';
|
||||
import { mockInstance } from 'n8n-core/test/utils';
|
||||
@@ -6,7 +7,6 @@ import type { IPinData, ITaskData, IWorkflowExecuteAdditionalData } from 'n8n-wo
|
||||
import { Workflow, type IRunExecutionData, type WorkflowExecuteMode } from 'n8n-workflow';
|
||||
|
||||
import { CredentialsHelper } from '@/credentials-helper';
|
||||
import type { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { VariablesService } from '@/environments.ee/variables/variables.service.ee';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import type { ManualExecutionService } from '@/manual-execution.service';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { RunningJobSummary } from '@n8n/api-types';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import {
|
||||
WorkflowHasIssuesError,
|
||||
@@ -17,7 +18,6 @@ import { BINARY_ENCODING, Workflow, UnexpectedError } from 'n8n-workflow';
|
||||
import type PCancelable from 'p-cancelable';
|
||||
|
||||
import config from '@/config';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { getLifecycleHooksForScalingWorker } from '@/execution-lifecycle/execution-lifecycle-hooks';
|
||||
import { ManualExecutionService } from '@/manual-execution.service';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { OnLeaderStepdown, OnLeaderTakeover, OnShutdown } from '@n8n/decorators';
|
||||
import { Container, Service } from '@n8n/di';
|
||||
import { ErrorReporter, InstanceSettings, isObjectLiteral, Logger } from 'n8n-core';
|
||||
@@ -16,7 +17,6 @@ import assert, { strict } from 'node:assert';
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
import config from '@/config';
|
||||
import { HIGHEST_SHUTDOWN_PRIORITY, Time } from '@/constants';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import { assertNever } from '@/utils';
|
||||
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
import { SecurityConfig } from '@n8n/config';
|
||||
import { CredentialsRepository, ExecutionDataRepository, ExecutionRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import type { IWorkflowBase } from 'n8n-workflow';
|
||||
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { ExecutionDataRepository } from '@/databases/repositories/execution-data.repository';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { CREDENTIALS_REPORT } from '@/security-audit/constants';
|
||||
import type { RiskReporter, Risk } from '@/security-audit/types';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { ExecutionMetadataRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
|
||||
import { ExecutionMetadataRepository } from '@/databases/repositories/execution-metadata.repository';
|
||||
import { ExecutionMetadataService } from '@/services/execution-metadata.service';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import type { AuthUser } from '@n8n/db';
|
||||
import type { AuthUserRepository } from '@n8n/db';
|
||||
import type { CredentialsRepository } from '@n8n/db';
|
||||
import RudderStack from '@rudderstack/rudder-sdk-node';
|
||||
import type { Response } from 'express';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import type { AuthService } from '@/auth/auth.service';
|
||||
import type { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
||||
import type { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import type { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import type { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import type { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { CredentialsEntity } from '@n8n/db';
|
||||
import type { WorkflowEntity } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { NamingService } from '@/services/naming.service';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { ApiKeyRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import type { ApiKeyScope } from '@n8n/permissions';
|
||||
import type { Response, NextFunction } from 'express';
|
||||
@@ -7,7 +8,6 @@ import type { InstanceSettings } from 'n8n-core';
|
||||
import { randomString } from 'n8n-workflow';
|
||||
import type { OpenAPIV3 } from 'openapi-types';
|
||||
|
||||
import { ApiKeyRepository } from '@/databases/repositories/api-key.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { getConnection } from '@/db';
|
||||
import type { EventService } from '@/events/event.service';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { AnnotationTagEntity } from '@n8n/db';
|
||||
import { AnnotationTagRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
||||
import { AnnotationTagRepository } from '@/databases/repositories/annotation-tag.repository.ee';
|
||||
import { validateEntity } from '@/generic-helpers';
|
||||
|
||||
type IAnnotationTagDb = Pick<AnnotationTagEntity, 'id' | 'name' | 'createdAt' | 'updatedAt'>;
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import type { ExecutionMetadata } from '@n8n/db';
|
||||
import { ExecutionMetadataRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
||||
import { ExecutionMetadataRepository } from '@/databases/repositories/execution-metadata.repository';
|
||||
|
||||
@Service()
|
||||
export class ExecutionMetadataService {
|
||||
constructor(private readonly executionMetadataRepository: ExecutionMetadataRepository) {}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { Settings, CredentialsEntity, User, WorkflowEntity, AuthUser } from '@n8n/db';
|
||||
import { AuthUserRepository, CredentialsRepository } 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';
|
||||
@@ -7,8 +8,6 @@ import RudderStack, { type constructorOptions } from '@rudderstack/rudder-sdk-no
|
||||
import type { NextFunction, Response } from 'express';
|
||||
|
||||
import { AuthService } from '@/auth/auth.service';
|
||||
import { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
||||
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';
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
import type { TagEntity, ICredentialsDb, IWorkflowDb } from '@n8n/db';
|
||||
import { Project, WorkflowEntity, SharedWorkflow, WorkflowTagMapping } from '@n8n/db';
|
||||
import {
|
||||
Project,
|
||||
WorkflowEntity,
|
||||
SharedWorkflow,
|
||||
WorkflowTagMapping,
|
||||
CredentialsRepository,
|
||||
} 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 { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { TagRepository } from '@/databases/repositories/tag.repository';
|
||||
import * as Db from '@/db';
|
||||
import { replaceInvalidCredentials } from '@/workflow-helpers';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
|
||||
@Service()
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { ExecutionsConfig } from '@n8n/config';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { OnLeaderStepdown, OnLeaderTakeover, OnShutdown } from '@n8n/decorators';
|
||||
import { Service } from '@n8n/di';
|
||||
import { BinaryDataService, InstanceSettings, Logger } from 'n8n-core';
|
||||
@@ -6,7 +7,6 @@ import { ensureError } from 'n8n-workflow';
|
||||
import { strict } from 'node:assert';
|
||||
|
||||
import { Time } from '@/constants';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { connectionState as dbConnectionState } from '@/db';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +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 { ApiKey, ApiKeyRepository } 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
|
||||
@@ -10,7 +10,6 @@ import type { NextFunction, Request, Response } from 'express';
|
||||
import { TokenExpiredError } from 'jsonwebtoken';
|
||||
import type { OpenAPIV3 } from 'openapi-types';
|
||||
|
||||
import { ApiKeyRepository } from '@/databases/repositories/api-key.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import { getApiKeyScopesForRole, getOwnerOnlyApiKeyScopes } from '@/public-api/permissions.ee';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { AuthIdentity } from '@n8n/db';
|
||||
import { generateNanoId } from '@n8n/db';
|
||||
import { User } from '@n8n/db';
|
||||
import { AuthIdentityRepository } from '@n8n/db';
|
||||
|
||||
import { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import * as helpers from '@/sso.ee/saml/saml-helpers';
|
||||
import type { SamlUserAttributes } from '@/sso.ee/saml/types';
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
import type { SamlAcsDto, SamlPreferences } from '@n8n/api-types';
|
||||
import { AuthIdentity } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import { AuthIdentity, AuthIdentityRepository } 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 { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { AuthError } from '@/errors/response-errors/auth.error';
|
||||
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { OnLeaderStepdown, OnLeaderTakeover } from '@n8n/decorators';
|
||||
import { Service } from '@n8n/di';
|
||||
import { InstanceSettings, Logger } from 'n8n-core';
|
||||
import { UnexpectedError, type IWorkflowExecutionDataProcess } from 'n8n-workflow';
|
||||
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { OwnershipService } from '@/services/ownership.service';
|
||||
import { WorkflowRunner } from '@/workflow-runner';
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import type { ExecutionRepository } 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 { WaitingForms } from '@/webhooks/waiting-forms';
|
||||
|
||||
import type { WaitingWebhookRequest } from '../webhook.types';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import type { ExecutionRepository } 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 { WaitingWebhooks } from '@/webhooks/waiting-webhooks';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { IExecutionResponse } from '@n8n/db';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import type express from 'express';
|
||||
import { Logger } from 'n8n-core';
|
||||
@@ -11,7 +12,6 @@ import {
|
||||
Workflow,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { ConflictError } from '@/errors/response-errors/conflict.error';
|
||||
import { NotFoundError } from '@/errors/response-errors/not-found.error';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||
import type { PushMessage, PushType } from '@n8n/api-types';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import { Logger, WorkflowExecute } from 'n8n-core';
|
||||
import { UnexpectedError, Workflow } from 'n8n-workflow';
|
||||
@@ -32,7 +33,6 @@ import type {
|
||||
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
import { CredentialsHelper } from '@/credentials-helper';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import type { AiEventMap, AiEventPayload } from '@/events/maps/ai.event-map';
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import type {
|
||||
IDataObject,
|
||||
@@ -8,7 +9,6 @@ import type {
|
||||
} from 'n8n-workflow';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { VariablesService } from '@/environments.ee/variables/variables.service.ee';
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
/* eslint-disable @typescript-eslint/no-shadow */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Container, Service } from '@n8n/di';
|
||||
import type { ExecutionLifecycleHooks } from 'n8n-core';
|
||||
import { ErrorReporter, InstanceSettings, Logger, WorkflowExecute } from 'n8n-core';
|
||||
@@ -19,7 +20,6 @@ import PCancelable from 'p-cancelable';
|
||||
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
import config from '@/config';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { ExecutionNotFoundError } from '@/errors/execution-not-found-error';
|
||||
import { MaxStalledCountError } from '@/errors/max-stalled-count.error';
|
||||
import {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { Project, User, CreateExecutionPayload } from '@n8n/db';
|
||||
import { ExecutionRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { ErrorReporter, Logger } from 'n8n-core';
|
||||
import type {
|
||||
@@ -18,7 +19,6 @@ import type {
|
||||
import { SubworkflowOperationError, Workflow } from 'n8n-workflow';
|
||||
|
||||
import config from '@/config';
|
||||
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';
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Project, SharedWorkflow } from '@n8n/db';
|
||||
import type {
|
||||
CredentialsEntity,
|
||||
User,
|
||||
WorkflowWithSharingsAndCredentials,
|
||||
WorkflowWithSharingsMetaDataAndCredentials,
|
||||
} from '@n8n/db';
|
||||
import { Project, SharedWorkflow, CredentialsRepository } 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';
|
||||
@@ -17,7 +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 { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { SharedWorkflow } from '@n8n/db';
|
||||
import type { User, WorkflowEntity, ListQueryDb } from '@n8n/db';
|
||||
import { SharedWorkflow, ExecutionRepository } 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
|
||||
@@ -16,7 +16,6 @@ import { v4 as uuid } from 'uuid';
|
||||
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import config from '@/config';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { WorkflowTagMappingRepository } from '@/databases/repositories/workflow-tag-mapping.repository';
|
||||
import type { WorkflowFolderUnionFull } from '@/databases/repositories/workflow.repository';
|
||||
|
||||
@@ -71,7 +71,7 @@ beforeAll(async () => {
|
||||
|
||||
afterEach(async () => {
|
||||
await activeWorkflowManager.removeAll();
|
||||
await testDb.truncate(['Workflow', 'Webhook']);
|
||||
await testDb.truncate(['WorkflowEntity', 'WebhookEntity']);
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import type { Project } from '@n8n/db';
|
||||
import type { User } from '@n8n/db';
|
||||
import { CredentialsRepository } 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 { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
@@ -37,7 +37,7 @@ let ownerPersonalProject: Project;
|
||||
let authOwnerAgent: SuperAgentTest;
|
||||
|
||||
beforeEach(async () => {
|
||||
await testDb.truncate(['SharedCredentials', 'Credentials']);
|
||||
await testDb.truncate(['SharedCredentials', 'CredentialsEntity']);
|
||||
|
||||
owner = await createOwner();
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import type { ApiKeyWithRawValue } from '@n8n/api-types';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User } from '@n8n/db';
|
||||
import { ApiKeyRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
import type { ApiKeyScope } from '@n8n/permissions';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import { ApiKeyRepository } from '@/databases/repositories/api-key.repository';
|
||||
import type { License } from '@/license';
|
||||
import { getApiKeyScopesForRole, getOwnerOnlyApiKeyScopes } from '@/public-api/permissions.ee';
|
||||
import { PublicApiKeyService } from '@/services/public-api-key.service';
|
||||
|
||||
@@ -14,7 +14,7 @@ mockInstance(LoadNodesAndCredentials);
|
||||
const command = setupTestCommand(ImportCredentialsCommand);
|
||||
|
||||
beforeEach(async () => {
|
||||
await testDb.truncate(['Credentials', 'SharedCredentials', 'User']);
|
||||
await testDb.truncate(['CredentialsEntity', 'SharedCredentials', 'User']);
|
||||
});
|
||||
|
||||
test('import:credentials should import a credential', async () => {
|
||||
|
||||
@@ -14,7 +14,7 @@ mockInstance(LoadNodesAndCredentials);
|
||||
const command = setupTestCommand(ImportWorkflowsCommand);
|
||||
|
||||
beforeEach(async () => {
|
||||
await testDb.truncate(['Workflow', 'SharedWorkflow', 'User']);
|
||||
await testDb.truncate(['WorkflowEntity', 'SharedWorkflow', 'User']);
|
||||
});
|
||||
|
||||
test('import:workflow should import active workflow and deactivate it', async () => {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user