mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
refactor(core): Move leaf entities to @n8n/db (#15010)
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
import { JsonColumn, WithTimestamps } from '@n8n/db';
|
|
||||||
import { Entity, PrimaryColumn } from '@n8n/typeorm';
|
import { Entity, PrimaryColumn } from '@n8n/typeorm';
|
||||||
import { MessageEventBusDestinationOptions } from 'n8n-workflow';
|
import { MessageEventBusDestinationOptions } from 'n8n-workflow';
|
||||||
|
|
||||||
|
import { JsonColumn, WithTimestamps } from './abstract-entity';
|
||||||
|
|
||||||
@Entity({ name: 'event_destinations' })
|
@Entity({ name: 'event_destinations' })
|
||||||
export class EventDestinations extends WithTimestamps {
|
export class EventDestinations extends WithTimestamps {
|
||||||
@PrimaryColumn('uuid')
|
@PrimaryColumn('uuid')
|
||||||
19
packages/@n8n/db/src/entities/index.ts
Normal file
19
packages/@n8n/db/src/entities/index.ts
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
import { EventDestinations } from './event-destinations';
|
||||||
|
import { InstalledNodes } from './installed-nodes';
|
||||||
|
import { InstalledPackages } from './installed-packages';
|
||||||
|
import { InvalidAuthToken } from './invalid-auth-token';
|
||||||
|
import { ProcessedData } from './processed-data';
|
||||||
|
import { Settings } from './settings';
|
||||||
|
import { Variables } from './variables';
|
||||||
|
import { WebhookEntity } from './webhook-entity';
|
||||||
|
|
||||||
|
export {
|
||||||
|
EventDestinations,
|
||||||
|
InstalledNodes,
|
||||||
|
InstalledPackages,
|
||||||
|
InvalidAuthToken,
|
||||||
|
ProcessedData,
|
||||||
|
Settings,
|
||||||
|
Variables,
|
||||||
|
WebhookEntity,
|
||||||
|
};
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
import { WithTimestamps } from '@n8n/db';
|
|
||||||
import { Column, Entity, JoinColumn, OneToMany, PrimaryColumn } from '@n8n/typeorm';
|
import { Column, Entity, JoinColumn, OneToMany, PrimaryColumn } from '@n8n/typeorm';
|
||||||
|
|
||||||
|
import { WithTimestamps } from './abstract-entity';
|
||||||
import type { InstalledNodes } from './installed-nodes';
|
import type { InstalledNodes } from './installed-nodes';
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
import { DateTimeColumn } from '@n8n/db';
|
|
||||||
import { Entity, PrimaryColumn } from '@n8n/typeorm';
|
import { Entity, PrimaryColumn } from '@n8n/typeorm';
|
||||||
|
|
||||||
|
import { DateTimeColumn } from './abstract-entity';
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class InvalidAuthToken {
|
export class InvalidAuthToken {
|
||||||
@PrimaryColumn()
|
@PrimaryColumn()
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
import { JsonColumn, WithTimestamps } from '@n8n/db';
|
|
||||||
import { Entity, PrimaryColumn } from '@n8n/typeorm';
|
import { Entity, PrimaryColumn } from '@n8n/typeorm';
|
||||||
|
import type { IProcessedDataEntries, IProcessedDataLatest } from 'n8n-workflow';
|
||||||
|
|
||||||
import type { IProcessedDataEntries, IProcessedDataLatest } from '@/types-db';
|
import { JsonColumn, WithTimestamps } from './abstract-entity';
|
||||||
|
|
||||||
import { objectRetriever } from '../utils/transformers';
|
import { objectRetriever } from '../utils/transformers';
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
import { WithStringId } from '@n8n/db';
|
|
||||||
import { Column, Entity } from '@n8n/typeorm';
|
import { Column, Entity } from '@n8n/typeorm';
|
||||||
|
|
||||||
|
import { WithStringId } from './abstract-entity';
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class Variables extends WithStringId {
|
export class Variables extends WithStringId {
|
||||||
@Column('text')
|
@Column('text')
|
||||||
@@ -12,3 +12,15 @@ export {
|
|||||||
export { generateNanoId } from './utils/generators';
|
export { generateNanoId } from './utils/generators';
|
||||||
export { isStringArray } from './utils/is-string-array';
|
export { isStringArray } from './utils/is-string-array';
|
||||||
export { separate } from './utils/separate';
|
export { separate } from './utils/separate';
|
||||||
|
export { idStringifier, lowerCaser, objectRetriever, sqlite } from './utils/transformers';
|
||||||
|
|
||||||
|
export {
|
||||||
|
EventDestinations,
|
||||||
|
InstalledNodes,
|
||||||
|
InstalledPackages,
|
||||||
|
InvalidAuthToken,
|
||||||
|
ProcessedData,
|
||||||
|
Settings,
|
||||||
|
Variables,
|
||||||
|
WebhookEntity,
|
||||||
|
} from './entities';
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
|
import { type InstalledNodes } from '@n8n/db';
|
||||||
import { type Config } from '@oclif/core';
|
import { type Config } from '@oclif/core';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
|
|
||||||
import { type CredentialsEntity } from '@/databases/entities/credentials-entity';
|
import { type CredentialsEntity } from '@/databases/entities/credentials-entity';
|
||||||
import { type InstalledNodes } from '@/databases/entities/installed-nodes';
|
|
||||||
import { type User } from '@/databases/entities/user';
|
import { type User } from '@/databases/entities/user';
|
||||||
|
|
||||||
import { CommunityNode } from '../community-node';
|
import { CommunityNode } from '../community-node';
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
|
import { type InstalledNodes, type InstalledPackages } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { Flags } from '@oclif/core';
|
import { Flags } from '@oclif/core';
|
||||||
|
|
||||||
import { CredentialsService } from '@/credentials/credentials.service';
|
import { CredentialsService } from '@/credentials/credentials.service';
|
||||||
import { type InstalledNodes } from '@/databases/entities/installed-nodes';
|
|
||||||
import { type InstalledPackages } from '@/databases/entities/installed-packages';
|
|
||||||
import { type User } from '@/databases/entities/user';
|
import { type User } from '@/databases/entities/user';
|
||||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||||
import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository';
|
import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import type { InstalledPackages } from '@n8n/db';
|
||||||
import { Delete, Get, Patch, Post, RestController, GlobalScope } from '@n8n/decorators';
|
import { Delete, Get, Patch, Post, RestController, GlobalScope } from '@n8n/decorators';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@@ -5,7 +6,6 @@ import {
|
|||||||
STARTER_TEMPLATE_NAME,
|
STARTER_TEMPLATE_NAME,
|
||||||
UNKNOWN_FAILURE_REASON,
|
UNKNOWN_FAILURE_REASON,
|
||||||
} from '@/constants';
|
} from '@/constants';
|
||||||
import type { InstalledPackages } from '@/databases/entities/installed-packages';
|
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
||||||
import { EventService } from '@/events/event.service';
|
import { EventService } from '@/events/event.service';
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
import { JsonColumn } from '@n8n/db';
|
import { JsonColumn, idStringifier } from '@n8n/db';
|
||||||
import { Column, Entity, ManyToOne, PrimaryColumn } from '@n8n/typeorm';
|
import { Column, Entity, ManyToOne, PrimaryColumn } from '@n8n/typeorm';
|
||||||
import { IWorkflowBase } from 'n8n-workflow';
|
import { IWorkflowBase } from 'n8n-workflow';
|
||||||
|
|
||||||
import { ExecutionEntity } from './execution-entity';
|
import { ExecutionEntity } from './execution-entity';
|
||||||
import { idStringifier } from '../utils/transformers';
|
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class ExecutionData {
|
export class ExecutionData {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { DateTimeColumn, datetimeColumnType } from '@n8n/db';
|
import { DateTimeColumn, datetimeColumnType, idStringifier } from '@n8n/db';
|
||||||
import {
|
import {
|
||||||
Column,
|
Column,
|
||||||
Entity,
|
Entity,
|
||||||
@@ -19,7 +19,6 @@ import type { ExecutionAnnotation } from '@/databases/entities/execution-annotat
|
|||||||
import type { ExecutionData } from './execution-data';
|
import type { ExecutionData } from './execution-data';
|
||||||
import type { ExecutionMetadata } from './execution-metadata';
|
import type { ExecutionMetadata } from './execution-metadata';
|
||||||
import { WorkflowEntity } from './workflow-entity';
|
import { WorkflowEntity } from './workflow-entity';
|
||||||
import { idStringifier } from '../utils/transformers';
|
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
@Index(['workflowId', 'id'])
|
@Index(['workflowId', 'id'])
|
||||||
|
|||||||
@@ -1,3 +1,14 @@
|
|||||||
|
import {
|
||||||
|
EventDestinations,
|
||||||
|
InstalledNodes,
|
||||||
|
InstalledPackages,
|
||||||
|
InvalidAuthToken,
|
||||||
|
ProcessedData,
|
||||||
|
Settings,
|
||||||
|
Variables,
|
||||||
|
WebhookEntity,
|
||||||
|
} from '@n8n/db';
|
||||||
|
|
||||||
import { AnnotationTagEntity } from './annotation-tag-entity.ee';
|
import { AnnotationTagEntity } from './annotation-tag-entity.ee';
|
||||||
import { AnnotationTagMapping } from './annotation-tag-mapping.ee';
|
import { AnnotationTagMapping } from './annotation-tag-mapping.ee';
|
||||||
import { ApiKey } from './api-key';
|
import { ApiKey } from './api-key';
|
||||||
@@ -5,20 +16,14 @@ import { AuthIdentity } from './auth-identity';
|
|||||||
import { AuthProviderSyncHistory } from './auth-provider-sync-history';
|
import { AuthProviderSyncHistory } from './auth-provider-sync-history';
|
||||||
import { AuthUser } from './auth-user';
|
import { AuthUser } from './auth-user';
|
||||||
import { CredentialsEntity } from './credentials-entity';
|
import { CredentialsEntity } from './credentials-entity';
|
||||||
import { EventDestinations } from './event-destinations';
|
|
||||||
import { ExecutionAnnotation } from './execution-annotation.ee';
|
import { ExecutionAnnotation } from './execution-annotation.ee';
|
||||||
import { ExecutionData } from './execution-data';
|
import { ExecutionData } from './execution-data';
|
||||||
import { ExecutionEntity } from './execution-entity';
|
import { ExecutionEntity } from './execution-entity';
|
||||||
import { ExecutionMetadata } from './execution-metadata';
|
import { ExecutionMetadata } from './execution-metadata';
|
||||||
import { Folder } from './folder';
|
import { Folder } from './folder';
|
||||||
import { FolderTagMapping } from './folder-tag-mapping';
|
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 { Project } from './project';
|
||||||
import { ProjectRelation } from './project-relation';
|
import { ProjectRelation } from './project-relation';
|
||||||
import { Settings } from './settings';
|
|
||||||
import { SharedCredentials } from './shared-credentials';
|
import { SharedCredentials } from './shared-credentials';
|
||||||
import { SharedWorkflow } from './shared-workflow';
|
import { SharedWorkflow } from './shared-workflow';
|
||||||
import { TagEntity } from './tag-entity';
|
import { TagEntity } from './tag-entity';
|
||||||
@@ -27,8 +32,6 @@ import { TestDefinition } from './test-definition.ee';
|
|||||||
import { TestMetric } from './test-metric.ee';
|
import { TestMetric } from './test-metric.ee';
|
||||||
import { TestRun } from './test-run.ee';
|
import { TestRun } from './test-run.ee';
|
||||||
import { User } from './user';
|
import { User } from './user';
|
||||||
import { Variables } from './variables';
|
|
||||||
import { WebhookEntity } from './webhook-entity';
|
|
||||||
import { WorkflowEntity } from './workflow-entity';
|
import { WorkflowEntity } from './workflow-entity';
|
||||||
import { WorkflowHistory } from './workflow-history';
|
import { WorkflowHistory } from './workflow-history';
|
||||||
import { WorkflowStatistics } from './workflow-statistics';
|
import { WorkflowStatistics } from './workflow-statistics';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { JsonColumn, WithTimestamps } from '@n8n/db';
|
import { JsonColumn, WithTimestamps, objectRetriever, lowerCaser } from '@n8n/db';
|
||||||
import { hasScope, type ScopeOptions, type Scope, GlobalRole } from '@n8n/permissions';
|
import { hasScope, type ScopeOptions, type Scope, GlobalRole } from '@n8n/permissions';
|
||||||
import {
|
import {
|
||||||
AfterLoad,
|
AfterLoad,
|
||||||
@@ -28,7 +28,6 @@ import type { AuthIdentity } from './auth-identity';
|
|||||||
import type { ProjectRelation } from './project-relation';
|
import type { ProjectRelation } from './project-relation';
|
||||||
import type { SharedCredentials } from './shared-credentials';
|
import type { SharedCredentials } from './shared-credentials';
|
||||||
import type { SharedWorkflow } from './shared-workflow';
|
import type { SharedWorkflow } from './shared-workflow';
|
||||||
import { objectRetriever, lowerCaser } from '../utils/transformers';
|
|
||||||
|
|
||||||
const STATIC_SCOPE_MAP: Record<GlobalRole, Scope[]> = {
|
const STATIC_SCOPE_MAP: Record<GlobalRole, Scope[]> = {
|
||||||
'global:owner': GLOBAL_OWNER_SCOPES,
|
'global:owner': GLOBAL_OWNER_SCOPES,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { JsonColumn, WithTimestampsAndStringId, dbType } from '@n8n/db';
|
import { JsonColumn, WithTimestampsAndStringId, dbType, objectRetriever, sqlite } from '@n8n/db';
|
||||||
import {
|
import {
|
||||||
Column,
|
Column,
|
||||||
Entity,
|
Entity,
|
||||||
@@ -20,7 +20,6 @@ import type { SharedWorkflow } from './shared-workflow';
|
|||||||
import type { TagEntity } from './tag-entity';
|
import type { TagEntity } from './tag-entity';
|
||||||
import type { WorkflowStatistics } from './workflow-statistics';
|
import type { WorkflowStatistics } from './workflow-statistics';
|
||||||
import type { WorkflowTagMapping } from './workflow-tag-mapping';
|
import type { WorkflowTagMapping } from './workflow-tag-mapping';
|
||||||
import { objectRetriever, sqlite } from '../utils/transformers';
|
|
||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
export class WorkflowEntity extends WithTimestampsAndStringId implements IWorkflowDb {
|
export class WorkflowEntity extends WithTimestampsAndStringId implements IWorkflowDb {
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
|
import { EventDestinations } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { DataSource, Repository } from '@n8n/typeorm';
|
import { DataSource, Repository } from '@n8n/typeorm';
|
||||||
|
|
||||||
import { EventDestinations } from '../entities/event-destinations';
|
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class EventDestinationsRepository extends Repository<EventDestinations> {
|
export class EventDestinationsRepository extends Repository<EventDestinations> {
|
||||||
constructor(dataSource: DataSource) {
|
constructor(dataSource: DataSource) {
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
|
import { InstalledNodes } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { DataSource, Repository } from '@n8n/typeorm';
|
import { DataSource, Repository } from '@n8n/typeorm';
|
||||||
|
|
||||||
import { InstalledNodes } from '../entities/installed-nodes';
|
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class InstalledNodesRepository extends Repository<InstalledNodes> {
|
export class InstalledNodesRepository extends Repository<InstalledNodes> {
|
||||||
constructor(dataSource: DataSource) {
|
constructor(dataSource: DataSource) {
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
import { InstalledPackages } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { DataSource, Repository } from '@n8n/typeorm';
|
import { DataSource, Repository } from '@n8n/typeorm';
|
||||||
import type { PackageDirectoryLoader } from 'n8n-core';
|
import type { PackageDirectoryLoader } from 'n8n-core';
|
||||||
|
|
||||||
import { InstalledNodesRepository } from './installed-nodes.repository';
|
import { InstalledNodesRepository } from './installed-nodes.repository';
|
||||||
import { InstalledPackages } from '../entities/installed-packages';
|
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class InstalledPackagesRepository extends Repository<InstalledPackages> {
|
export class InstalledPackagesRepository extends Repository<InstalledPackages> {
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
|
import { InvalidAuthToken } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { DataSource, Repository } from '@n8n/typeorm';
|
import { DataSource, Repository } from '@n8n/typeorm';
|
||||||
|
|
||||||
import { InvalidAuthToken } from '../entities/invalid-auth-token';
|
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class InvalidAuthTokenRepository extends Repository<InvalidAuthToken> {
|
export class InvalidAuthTokenRepository extends Repository<InvalidAuthToken> {
|
||||||
constructor(dataSource: DataSource) {
|
constructor(dataSource: DataSource) {
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
|
import { ProcessedData } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { DataSource, Repository } from '@n8n/typeorm';
|
import { DataSource, Repository } from '@n8n/typeorm';
|
||||||
|
|
||||||
import { ProcessedData } from '../entities/processed-data';
|
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class ProcessedDataRepository extends Repository<ProcessedData> {
|
export class ProcessedDataRepository extends Repository<ProcessedData> {
|
||||||
constructor(dataSource: DataSource) {
|
constructor(dataSource: DataSource) {
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { Settings } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { DataSource, Repository } from '@n8n/typeorm';
|
import { DataSource, Repository } from '@n8n/typeorm';
|
||||||
import { ErrorReporter } from 'n8n-core';
|
import { ErrorReporter } from 'n8n-core';
|
||||||
@@ -5,8 +6,6 @@ import { ErrorReporter } from 'n8n-core';
|
|||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { EXTERNAL_SECRETS_DB_KEY } from '@/external-secrets.ee/constants';
|
import { EXTERNAL_SECRETS_DB_KEY } from '@/external-secrets.ee/constants';
|
||||||
|
|
||||||
import { Settings } from '../entities/settings';
|
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class SettingsRepository extends Repository<Settings> {
|
export class SettingsRepository extends Repository<Settings> {
|
||||||
constructor(
|
constructor(
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
|
import { Variables } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { DataSource, Repository } from '@n8n/typeorm';
|
import { DataSource, Repository } from '@n8n/typeorm';
|
||||||
|
|
||||||
import { Variables } from '../entities/variables';
|
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class VariablesRepository extends Repository<Variables> {
|
export class VariablesRepository extends Repository<Variables> {
|
||||||
constructor(dataSource: DataSource) {
|
constructor(dataSource: DataSource) {
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
|
import { WebhookEntity } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { DataSource, Repository } from '@n8n/typeorm';
|
import { DataSource, Repository } from '@n8n/typeorm';
|
||||||
|
|
||||||
import { WebhookEntity } from '../entities/webhook-entity';
|
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export class WebhookRepository extends Repository<WebhookEntity> {
|
export class WebhookRepository extends Repository<WebhookEntity> {
|
||||||
constructor(dataSource: DataSource) {
|
constructor(dataSource: DataSource) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { GlobalConfig } from '@n8n/config';
|
import { GlobalConfig } from '@n8n/config';
|
||||||
import { isStringArray } from '@n8n/db';
|
import { isStringArray, WebhookEntity } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { DataSource, Repository, In, Like } from '@n8n/typeorm';
|
import { DataSource, Repository, In, Like } from '@n8n/typeorm';
|
||||||
import type {
|
import type {
|
||||||
@@ -18,7 +18,6 @@ import type { ListQuery } from '@/types-db';
|
|||||||
import { FolderRepository } from './folder.repository';
|
import { FolderRepository } from './folder.repository';
|
||||||
import type { Folder, FolderWithWorkflowAndSubFolderCount } from '../entities/folder';
|
import type { Folder, FolderWithWorkflowAndSubFolderCount } from '../entities/folder';
|
||||||
import { TagEntity } from '../entities/tag-entity';
|
import { TagEntity } from '../entities/tag-entity';
|
||||||
import { WebhookEntity } from '../entities/webhook-entity';
|
|
||||||
import { WorkflowEntity } from '../entities/workflow-entity';
|
import { WorkflowEntity } from '../entities/workflow-entity';
|
||||||
import { WorkflowTagMapping } from '../entities/workflow-tag-mapping';
|
import { WorkflowTagMapping } from '../entities/workflow-tag-mapping';
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,22 @@
|
|||||||
|
import type { ProcessedData } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { createHash } from 'crypto';
|
import { createHash } from 'crypto';
|
||||||
import {
|
import { tryToParseDateTime } from 'n8n-workflow';
|
||||||
type ICheckProcessedContextData,
|
import type {
|
||||||
type IDataDeduplicator,
|
IProcessedDataEntries,
|
||||||
type ICheckProcessedOptions,
|
IProcessedDataLatest,
|
||||||
type IDeduplicationOutput,
|
ICheckProcessedContextData,
|
||||||
type DeduplicationScope,
|
IDataDeduplicator,
|
||||||
type DeduplicationItemTypes,
|
ICheckProcessedOptions,
|
||||||
type DeduplicationMode,
|
IDeduplicationOutput,
|
||||||
tryToParseDateTime,
|
DeduplicationScope,
|
||||||
|
DeduplicationItemTypes,
|
||||||
|
DeduplicationMode,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
import * as assert from 'node:assert/strict';
|
import * as assert from 'node:assert/strict';
|
||||||
|
|
||||||
import type { ProcessedData } from '@/databases/entities/processed-data';
|
|
||||||
import { ProcessedDataRepository } from '@/databases/repositories/processed-data.repository';
|
import { ProcessedDataRepository } from '@/databases/repositories/processed-data.repository';
|
||||||
import { DeduplicationError } from '@/errors/deduplication.error';
|
import { DeduplicationError } from '@/errors/deduplication.error';
|
||||||
import type { IProcessedDataEntries, IProcessedDataLatest } from '@/types-db';
|
|
||||||
|
|
||||||
export class DeduplicationHelper implements IDataDeduplicator {
|
export class DeduplicationHelper implements IDataDeduplicator {
|
||||||
private static sortEntries(
|
private static sortEntries(
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import type { SourceControlledFile } from '@n8n/api-types';
|
import type { SourceControlledFile } from '@n8n/api-types';
|
||||||
|
import type { Variables } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import { InstanceSettings } from 'n8n-core';
|
import { InstanceSettings } from 'n8n-core';
|
||||||
@@ -6,7 +7,6 @@ import { InstanceSettings } from 'n8n-core';
|
|||||||
import type { FolderWithWorkflowAndSubFolderCount } from '@/databases/entities/folder';
|
import type { FolderWithWorkflowAndSubFolderCount } from '@/databases/entities/folder';
|
||||||
import type { TagEntity } from '@/databases/entities/tag-entity';
|
import type { TagEntity } from '@/databases/entities/tag-entity';
|
||||||
import type { User } from '@/databases/entities/user';
|
import type { User } from '@/databases/entities/user';
|
||||||
import type { Variables } from '@/databases/entities/variables';
|
|
||||||
import type { FolderRepository } from '@/databases/repositories/folder.repository';
|
import type { FolderRepository } from '@/databases/repositories/folder.repository';
|
||||||
import type { TagRepository } from '@/databases/repositories/tag.repository';
|
import type { TagRepository } from '@/databases/repositories/tag.repository';
|
||||||
import { SourceControlPreferencesService } from '@/environments.ee/source-control/source-control-preferences.service.ee';
|
import { SourceControlPreferencesService } from '@/environments.ee/source-control/source-control-preferences.service.ee';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import type { SourceControlledFile } from '@n8n/api-types';
|
import type { SourceControlledFile } from '@n8n/api-types';
|
||||||
|
import type { Variables } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||||
import { In } from '@n8n/typeorm';
|
import { In } from '@n8n/typeorm';
|
||||||
@@ -14,7 +15,6 @@ import type { Project } from '@/databases/entities/project';
|
|||||||
import { SharedCredentials } from '@/databases/entities/shared-credentials';
|
import { SharedCredentials } from '@/databases/entities/shared-credentials';
|
||||||
import type { TagEntity } from '@/databases/entities/tag-entity';
|
import type { TagEntity } from '@/databases/entities/tag-entity';
|
||||||
import type { User } from '@/databases/entities/user';
|
import type { User } from '@/databases/entities/user';
|
||||||
import type { Variables } from '@/databases/entities/variables';
|
|
||||||
import type { WorkflowTagMapping } from '@/databases/entities/workflow-tag-mapping';
|
import type { WorkflowTagMapping } from '@/databases/entities/workflow-tag-mapping';
|
||||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||||
import { FolderRepository } from '@/databases/repositories/folder.repository';
|
import { FolderRepository } from '@/databases/repositories/folder.repository';
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import type {
|
|||||||
PushWorkFolderRequestDto,
|
PushWorkFolderRequestDto,
|
||||||
SourceControlledFile,
|
SourceControlledFile,
|
||||||
} from '@n8n/api-types';
|
} from '@n8n/api-types';
|
||||||
|
import type { Variables } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { writeFileSync } from 'fs';
|
import { writeFileSync } from 'fs';
|
||||||
import { Logger } from 'n8n-core';
|
import { Logger } from 'n8n-core';
|
||||||
@@ -12,7 +13,6 @@ import type { PushResult } from 'simple-git';
|
|||||||
|
|
||||||
import type { TagEntity } from '@/databases/entities/tag-entity';
|
import type { TagEntity } from '@/databases/entities/tag-entity';
|
||||||
import type { User } from '@/databases/entities/user';
|
import type { User } from '@/databases/entities/user';
|
||||||
import type { Variables } from '@/databases/entities/variables';
|
|
||||||
import { FolderRepository } from '@/databases/repositories/folder.repository';
|
import { FolderRepository } from '@/databases/repositories/folder.repository';
|
||||||
import { TagRepository } from '@/databases/repositories/tag.repository';
|
import { TagRepository } from '@/databases/repositories/tag.repository';
|
||||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { generateNanoId } from '@n8n/db';
|
import { generateNanoId } from '@n8n/db';
|
||||||
|
import type { Variables } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
|
|
||||||
import type { Variables } from '@/databases/entities/variables';
|
|
||||||
import { VariablesRepository } from '@/databases/repositories/variables.repository';
|
import { VariablesRepository } from '@/databases/repositories/variables.repository';
|
||||||
import { VariableCountLimitReachedError } from '@/errors/variable-count-limit-reached.error';
|
import { VariableCountLimitReachedError } from '@/errors/variable-count-limit-reached.error';
|
||||||
import { VariableValidationError } from '@/errors/variable-validation.error';
|
import { VariableValidationError } from '@/errors/variable-validation.error';
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
|
import type { EventDestinations } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { Logger } from 'n8n-core';
|
import { Logger } from 'n8n-core';
|
||||||
import { MessageEventBusDestinationTypeNames } from 'n8n-workflow';
|
import { MessageEventBusDestinationTypeNames } from 'n8n-workflow';
|
||||||
|
|
||||||
import type { EventDestinations } from '@/databases/entities/event-destinations';
|
|
||||||
|
|
||||||
import { MessageEventBusDestinationSentry } from './message-event-bus-destination-sentry.ee';
|
import { MessageEventBusDestinationSentry } from './message-event-bus-destination-sentry.ee';
|
||||||
import { MessageEventBusDestinationSyslog } from './message-event-bus-destination-syslog.ee';
|
import { MessageEventBusDestinationSyslog } from './message-event-bus-destination-syslog.ee';
|
||||||
import { MessageEventBusDestinationWebhook } from './message-event-bus-destination-webhook.ee';
|
import { MessageEventBusDestinationWebhook } from './message-event-bus-destination-webhook.ee';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import type { Settings } from '@n8n/db';
|
||||||
import { QueryFailedError } from '@n8n/typeorm';
|
import { QueryFailedError } from '@n8n/typeorm';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import { Client } from 'ldapts';
|
import { Client } from 'ldapts';
|
||||||
@@ -5,7 +6,6 @@ import type { Cipher } from 'n8n-core';
|
|||||||
import { randomString } from 'n8n-workflow';
|
import { randomString } from 'n8n-workflow';
|
||||||
|
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import type { Settings } from '@/databases/entities/settings';
|
|
||||||
import { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository';
|
import { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository';
|
||||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||||
import type { EventService } from '@/events/event.service';
|
import type { EventService } from '@/events/event.service';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import type { ProjectIcon, ProjectRole, ProjectType } from '@n8n/api-types';
|
import type { ProjectIcon, ProjectRole, ProjectType } from '@n8n/api-types';
|
||||||
|
import type { Variables } from '@n8n/db';
|
||||||
import type { AssignableRole, GlobalRole, Scope } from '@n8n/permissions';
|
import type { AssignableRole, GlobalRole, Scope } from '@n8n/permissions';
|
||||||
import type express from 'express';
|
import type express from 'express';
|
||||||
import type {
|
import type {
|
||||||
@@ -9,7 +10,6 @@ import type {
|
|||||||
|
|
||||||
import type { Project } from '@/databases/entities/project';
|
import type { Project } from '@/databases/entities/project';
|
||||||
import type { User } from '@/databases/entities/user';
|
import type { User } from '@/databases/entities/user';
|
||||||
import type { Variables } from '@/databases/entities/variables';
|
|
||||||
import type { WorkflowHistory } from '@/databases/entities/workflow-history';
|
import type { WorkflowHistory } from '@/databases/entities/workflow-history';
|
||||||
import type { ListQuery } from '@/types-db';
|
import type { ListQuery } from '@/types-db';
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
import type { GlobalConfig } from '@n8n/config';
|
import type { GlobalConfig } from '@n8n/config';
|
||||||
|
import { InstalledNodes } from '@n8n/db';
|
||||||
|
import { InstalledPackages } from '@n8n/db';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { exec } from 'child_process';
|
import { exec } from 'child_process';
|
||||||
import { access as fsAccess, mkdir as fsMkdir } from 'fs/promises';
|
import { access as fsAccess, mkdir as fsMkdir } from 'fs/promises';
|
||||||
@@ -13,8 +15,6 @@ import {
|
|||||||
NPM_PACKAGE_STATUS_GOOD,
|
NPM_PACKAGE_STATUS_GOOD,
|
||||||
RESPONSE_ERROR_MESSAGES,
|
RESPONSE_ERROR_MESSAGES,
|
||||||
} from '@/constants';
|
} from '@/constants';
|
||||||
import { InstalledNodes } from '@/databases/entities/installed-nodes';
|
|
||||||
import { InstalledPackages } from '@/databases/entities/installed-packages';
|
|
||||||
import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository';
|
import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository';
|
||||||
import { InstalledPackagesRepository } from '@/databases/repositories/installed-packages.repository';
|
import { InstalledPackagesRepository } from '@/databases/repositories/installed-packages.repository';
|
||||||
import type { CommunityPackages } from '@/interfaces';
|
import type { CommunityPackages } from '@/interfaces';
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { GlobalConfig } from '@n8n/config';
|
import { GlobalConfig } from '@n8n/config';
|
||||||
import { LICENSE_FEATURES } from '@n8n/constants';
|
import { LICENSE_FEATURES } from '@n8n/constants';
|
||||||
|
import type { InstalledPackages } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import { exec } from 'child_process';
|
import { exec } from 'child_process';
|
||||||
@@ -16,7 +17,6 @@ import {
|
|||||||
RESPONSE_ERROR_MESSAGES,
|
RESPONSE_ERROR_MESSAGES,
|
||||||
UNKNOWN_FAILURE_REASON,
|
UNKNOWN_FAILURE_REASON,
|
||||||
} from '@/constants';
|
} from '@/constants';
|
||||||
import type { InstalledPackages } from '@/databases/entities/installed-packages';
|
|
||||||
import { InstalledPackagesRepository } from '@/databases/repositories/installed-packages.repository';
|
import { InstalledPackagesRepository } from '@/databases/repositories/installed-packages.repository';
|
||||||
import { FeatureNotLicensedError } from '@/errors/feature-not-licensed.error';
|
import { FeatureNotLicensedError } from '@/errors/feature-not-licensed.error';
|
||||||
import type { CommunityPackages } from '@/interfaces';
|
import type { CommunityPackages } from '@/interfaces';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import type { Settings } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||||
import type { FindManyOptions, FindOneOptions, FindOptionsWhere } from '@n8n/typeorm';
|
import type { FindManyOptions, FindOneOptions, FindOptionsWhere } from '@n8n/typeorm';
|
||||||
@@ -8,7 +9,6 @@ import type { NextFunction, Response } from 'express';
|
|||||||
import { AuthService } from '@/auth/auth.service';
|
import { AuthService } from '@/auth/auth.service';
|
||||||
import type { AuthUser } from '@/databases/entities/auth-user';
|
import type { AuthUser } from '@/databases/entities/auth-user';
|
||||||
import type { CredentialsEntity } from '@/databases/entities/credentials-entity';
|
import type { CredentialsEntity } from '@/databases/entities/credentials-entity';
|
||||||
import type { Settings } from '@/databases/entities/settings';
|
|
||||||
import type { User } from '@/databases/entities/user';
|
import type { User } from '@/databases/entities/user';
|
||||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||||
import { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
import { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import type { SamlPreferences } from '@n8n/api-types';
|
import type { SamlPreferences } from '@n8n/api-types';
|
||||||
|
import type { Settings } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import type express from 'express';
|
import type express from 'express';
|
||||||
@@ -8,7 +9,6 @@ import { jsonParse, UnexpectedError } from 'n8n-workflow';
|
|||||||
import type { IdentityProviderInstance, ServiceProviderInstance } from 'samlify';
|
import type { IdentityProviderInstance, ServiceProviderInstance } from 'samlify';
|
||||||
import type { BindingContext, PostBindingContext } from 'samlify/types/src/entity';
|
import type { BindingContext, PostBindingContext } from 'samlify/types/src/entity';
|
||||||
|
|
||||||
import type { Settings } from '@/databases/entities/settings';
|
|
||||||
import type { User } from '@/databases/entities/user';
|
import type { User } from '@/databases/entities/user';
|
||||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ import type {
|
|||||||
ExecutionStatus,
|
ExecutionStatus,
|
||||||
FeatureFlags,
|
FeatureFlags,
|
||||||
IUserSettings,
|
IUserSettings,
|
||||||
DeduplicationMode,
|
|
||||||
DeduplicationItemTypes,
|
|
||||||
AnnotationVote,
|
AnnotationVote,
|
||||||
ExecutionSummary,
|
ExecutionSummary,
|
||||||
IUser,
|
IUser,
|
||||||
@@ -148,16 +146,6 @@ export interface WorkflowWithSharingsMetaDataAndCredentials extends Omit<Workflo
|
|||||||
usedCredentials?: CredentialUsedByWorkflow[];
|
usedCredentials?: CredentialUsedByWorkflow[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IProcessedDataLatest {
|
|
||||||
mode: DeduplicationMode;
|
|
||||||
data: DeduplicationItemTypes;
|
|
||||||
}
|
|
||||||
|
|
||||||
export interface IProcessedDataEntries {
|
|
||||||
mode: DeduplicationMode;
|
|
||||||
data: DeduplicationItemTypes[];
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Payload for creating an execution. */
|
/** Payload for creating an execution. */
|
||||||
export type CreateExecutionPayload = Omit<IExecutionDb, 'id' | 'createdAt' | 'startedAt'>;
|
export type CreateExecutionPayload = Omit<IExecutionDb, 'id' | 'createdAt' | 'startedAt'>;
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
|
import { WebhookEntity } from '@n8n/db';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import type { INode, INodeType, IWebhookData, IWorkflowExecuteAdditionalData } from 'n8n-workflow';
|
import type { INode, INodeType, IWebhookData, IWorkflowExecuteAdditionalData } from 'n8n-workflow';
|
||||||
import { Workflow } from 'n8n-workflow';
|
import { Workflow } from 'n8n-workflow';
|
||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
|
|
||||||
import config from '@/config';
|
import config from '@/config';
|
||||||
import { WebhookEntity } from '@/databases/entities/webhook-entity';
|
|
||||||
import type { WebhookRepository } from '@/databases/repositories/webhook.repository';
|
import type { WebhookRepository } from '@/databases/repositories/webhook.repository';
|
||||||
import type { NodeTypes } from '@/node-types';
|
import type { NodeTypes } from '@/node-types';
|
||||||
import type { CacheService } from '@/services/cache/cache.service';
|
import type { CacheService } from '@/services/cache/cache.service';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import type { WebhookEntity } from '@n8n/db';
|
||||||
import { Service } from '@n8n/di';
|
import { Service } from '@n8n/di';
|
||||||
import { HookContext, WebhookContext, Logger } from 'n8n-core';
|
import { HookContext, WebhookContext, Logger } from 'n8n-core';
|
||||||
import { Node, NodeHelpers, UnexpectedError } from 'n8n-workflow';
|
import { Node, NodeHelpers, UnexpectedError } from 'n8n-workflow';
|
||||||
@@ -14,7 +15,6 @@ import type {
|
|||||||
WorkflowExecuteMode,
|
WorkflowExecuteMode,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
import type { WebhookEntity } from '@/databases/entities/webhook-entity';
|
|
||||||
import { WebhookRepository } from '@/databases/repositories/webhook.repository';
|
import { WebhookRepository } from '@/databases/repositories/webhook.repository';
|
||||||
import { NodeTypes } from '@/node-types';
|
import { NodeTypes } from '@/node-types';
|
||||||
import { CacheService } from '@/services/cache/cache.service';
|
import { CacheService } from '@/services/cache/cache.service';
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import type { WebhookEntity } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import { mock } from 'jest-mock-extended';
|
import { mock } from 'jest-mock-extended';
|
||||||
import { Logger } from 'n8n-core';
|
import { Logger } from 'n8n-core';
|
||||||
@@ -13,7 +14,6 @@ import type {
|
|||||||
|
|
||||||
import { ActiveExecutions } from '@/active-executions';
|
import { ActiveExecutions } from '@/active-executions';
|
||||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||||
import type { WebhookEntity } from '@/databases/entities/webhook-entity';
|
|
||||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||||
import { ExecutionService } from '@/executions/execution.service';
|
import { ExecutionService } from '@/executions/execution.service';
|
||||||
import { ExternalHooks } from '@/external-hooks';
|
import { ExternalHooks } from '@/external-hooks';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
import type { InstalledNodes } from '@n8n/db';
|
||||||
|
import type { InstalledPackages } from '@n8n/db';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
|
||||||
import type { InstalledNodes } from '@/databases/entities/installed-nodes';
|
|
||||||
import type { InstalledPackages } from '@/databases/entities/installed-packages';
|
|
||||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||||
import { CommunityPackagesService } from '@/services/community-packages.service';
|
import { CommunityPackagesService } from '@/services/community-packages.service';
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { GlobalConfig } from '@n8n/config';
|
import { GlobalConfig } from '@n8n/config';
|
||||||
|
import type { InstalledNodes } from '@n8n/db';
|
||||||
|
import type { InstalledPackages } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
import nock from 'nock';
|
import nock from 'nock';
|
||||||
import { v4 as uuid } from 'uuid';
|
import { v4 as uuid } from 'uuid';
|
||||||
|
|
||||||
import * as constants from '@/constants';
|
import * as constants from '@/constants';
|
||||||
import type { InstalledNodes } from '@/databases/entities/installed-nodes';
|
|
||||||
import type { InstalledPackages } from '@/databases/entities/installed-packages';
|
|
||||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||||
import type { Risk } from '@/security-audit/types';
|
import type { Risk } from '@/security-audit/types';
|
||||||
import { toReportTitle } from '@/security-audit/utils';
|
import { toReportTitle } from '@/security-audit/utils';
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
|
import { InstalledPackages } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
|
|
||||||
import { NODE_PACKAGE_PREFIX } from '@/constants';
|
import { NODE_PACKAGE_PREFIX } from '@/constants';
|
||||||
import { InstalledPackages } from '@/databases/entities/installed-packages';
|
|
||||||
import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository';
|
import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository';
|
||||||
import { InstalledPackagesRepository } from '@/databases/repositories/installed-packages.repository';
|
import { InstalledPackagesRepository } from '@/databases/repositories/installed-packages.repository';
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { generateNanoId } from '@n8n/db';
|
import { generateNanoId } from '@n8n/db';
|
||||||
|
import type { Variables } from '@n8n/db';
|
||||||
import { Container } from '@n8n/di';
|
import { Container } from '@n8n/di';
|
||||||
|
|
||||||
import type { Variables } from '@/databases/entities/variables';
|
|
||||||
import { VariablesRepository } from '@/databases/repositories/variables.repository';
|
import { VariablesRepository } from '@/databases/repositories/variables.repository';
|
||||||
import { VariablesService } from '@/environments.ee/variables/variables.service.ee';
|
import { VariablesService } from '@/environments.ee/variables/variables.service.ee';
|
||||||
import { CacheService } from '@/services/cache/cache.service';
|
import { CacheService } from '@/services/cache/cache.service';
|
||||||
|
|||||||
@@ -704,6 +704,16 @@ export type DeduplicationScope = 'node' | 'workflow';
|
|||||||
export type DeduplicationItemTypes = string | number;
|
export type DeduplicationItemTypes = string | number;
|
||||||
export type DeduplicationMode = 'entries' | 'latestIncrementalKey' | 'latestDate';
|
export type DeduplicationMode = 'entries' | 'latestIncrementalKey' | 'latestDate';
|
||||||
|
|
||||||
|
export interface IProcessedDataLatest {
|
||||||
|
mode: DeduplicationMode;
|
||||||
|
data: DeduplicationItemTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IProcessedDataEntries {
|
||||||
|
mode: DeduplicationMode;
|
||||||
|
data: DeduplicationItemTypes[];
|
||||||
|
}
|
||||||
|
|
||||||
export interface IDeduplicationOutput {
|
export interface IDeduplicationOutput {
|
||||||
new: DeduplicationItemTypes[];
|
new: DeduplicationItemTypes[];
|
||||||
processed: DeduplicationItemTypes[];
|
processed: DeduplicationItemTypes[];
|
||||||
|
|||||||
Reference in New Issue
Block a user