mirror of
https://github.com/n8n-io/n8n.git
synced 2026-10-19 16:55:02 +02:00
refactor(core): Move UrlService into @n8n/backend-services (no-changelog)
UrlService only needs GlobalConfig. Nine backend modules import it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
e5f56a77bb
commit
d62fce05bb
|
|
@ -12,8 +12,8 @@
|
|||
"lint": "eslint . --quiet",
|
||||
"lint:fix": "eslint . --fix",
|
||||
"watch": "tsc -p tsconfig.build.json --watch",
|
||||
"test": "vitest run --passWithNoTests",
|
||||
"test:unit": "vitest run --passWithNoTests",
|
||||
"test": "vitest run",
|
||||
"test:unit": "vitest run",
|
||||
"test:dev": "vitest --silent=false"
|
||||
},
|
||||
"main": "dist/index.js",
|
||||
|
|
@ -24,6 +24,8 @@
|
|||
],
|
||||
"dependencies": {
|
||||
"@n8n/api-types": "workspace:*",
|
||||
"@n8n/config": "workspace:*",
|
||||
"@n8n/di": "workspace:*",
|
||||
"n8n-workflow": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
@ -33,7 +35,8 @@
|
|||
"@vitest/coverage-v8": "catalog:",
|
||||
"eslint": "catalog:",
|
||||
"typescript": "catalog:typescript",
|
||||
"vitest": "catalog:"
|
||||
"vitest": "catalog:",
|
||||
"vitest-mock-extended": "catalog:"
|
||||
},
|
||||
"license": "LicenseRef-n8n-sustainable-use"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,3 +16,4 @@ export { UnauthenticatedError } from './errors/response-errors/unauthenticated.e
|
|||
export { UnprocessableRequestError } from './errors/response-errors/unprocessable.error';
|
||||
export { UnsupportedMediaTypeError } from './errors/response-errors/unsupported-media-type.error';
|
||||
export { WorkflowPublishBlockedError } from './errors/response-errors/workflow-publish-blocked.error';
|
||||
export { UrlService } from './services/url.service';
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
"include": ["src/**/*.ts"],
|
||||
"references": [
|
||||
{ "path": "../../workflow/tsconfig.build.cjs.json" },
|
||||
{ "path": "../api-types/tsconfig.build.json" }
|
||||
{ "path": "../api-types/tsconfig.build.json" },
|
||||
{ "path": "../config/tsconfig.build.json" },
|
||||
{ "path": "../di/tsconfig.build.json" }
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { ExecutionsConfig, GlobalConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import type { WorkflowEntity, Project, WorkflowHistory } from '@n8n/db';
|
||||
|
|
@ -42,7 +43,6 @@ import { hashAgentSandboxPrincipal } from '@/modules/agents/agent-sandbox-princi
|
|||
import { AgentWorkflowExecutionService } from '@/modules/agents/agent-workflow-execution.service';
|
||||
import { DataTableProxyService } from '@/modules/data-table/data-table-proxy.service';
|
||||
import { OwnershipService } from '@/services/ownership.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { WorkflowStatisticsService } from '@/services/workflow-statistics.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import type { InvalidAuthTokenRepository, UserRepository } from '@n8n/db';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
|
@ -5,7 +6,6 @@ import { mock } from 'vitest-mock-extended';
|
|||
import { AuthService } from '@/auth/auth.service';
|
||||
import type { MfaService } from '@/mfa/mfa.service';
|
||||
import type { JwtService } from '@/services/jwt.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
describe('AuthService Browser ID Whitelist', () => {
|
||||
let authService: AuthService;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import type { Logger } from '@n8n/backend-common';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import { Time } from '@n8n/constants';
|
||||
import type {
|
||||
|
|
@ -17,7 +18,6 @@ import { AUTH_COOKIE_NAME } from '@/constants';
|
|||
import type { License } from '@/license';
|
||||
import type { MfaService } from '@/mfa/mfa.service';
|
||||
import { JwtService } from '@/services/jwt.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
describe('AuthService', () => {
|
||||
const browserId = 'test-browser-id';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { AuthError, ForbiddenError } from '@n8n/backend-services';
|
||||
import { AuthError, ForbiddenError, UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Time } from '@n8n/constants';
|
||||
import type { AuthenticatedRequest, User } from '@n8n/db';
|
||||
|
|
@ -15,7 +15,6 @@ import { AUTH_COOKIE_NAME, RESPONSE_ERROR_MESSAGES } from '@/constants';
|
|||
import { License } from '@/license';
|
||||
import { MfaService } from '@/mfa/mfa.service';
|
||||
import { JwtService } from '@/services/jwt.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
interface AuthJwtPayload {
|
||||
/** User Id */
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { HTML_NONCE_PLACEHOLDER, LICENSE_FEATURES } from '@n8n/constants';
|
||||
import {
|
||||
AuthRolesService,
|
||||
|
|
@ -43,7 +44,6 @@ import { Server } from '@/server';
|
|||
import { JwtService } from '@/services/jwt.service';
|
||||
import { ExecutionsPruningService } from '@/services/pruning/executions-pruning.service';
|
||||
import { WorkflowHistoryCompactionService } from '@/services/pruning/workflow-history-compaction.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { WorkflowStatisticsRollupService } from '@/services/workflow-statistics-rollup.service';
|
||||
import { WaitTracker } from '@/wait-tracker';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { NotFoundError } from '@n8n/backend-services';
|
||||
import type { AuthenticatedRequest, User, UserRepository } from '@n8n/db';
|
||||
import type { Response } from 'express';
|
||||
|
|
@ -5,7 +6,6 @@ import { mock } from 'vitest-mock-extended';
|
|||
|
||||
import type { UserRequest } from '@/requests';
|
||||
import type { JwtService } from '@/services/jwt.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import type { UserService } from '@/services/user.service';
|
||||
|
||||
import { UsersController } from '../users.controller';
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import {
|
|||
UsersListFilterDto,
|
||||
usersListSchema,
|
||||
} from '@n8n/api-types';
|
||||
import { ForbiddenError, NotFoundError } from '@n8n/backend-services';
|
||||
import { ForbiddenError, NotFoundError, UrlService } from '@n8n/backend-services';
|
||||
import type { PublicUser } from '@n8n/db';
|
||||
import {
|
||||
User,
|
||||
|
|
@ -33,7 +33,6 @@ import { Response } from 'express';
|
|||
import { AuthService } from '@/auth/auth.service';
|
||||
import { UserRequest } from '@/requests';
|
||||
import { JwtService } from '@/services/jwt.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { UserService } from '@/services/user.service';
|
||||
|
||||
@RestController('/users')
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Container } from '@n8n/di';
|
||||
|
|
@ -9,7 +10,6 @@ import { mock } from 'vitest-mock-extended';
|
|||
|
||||
import { PolicyViolationError } from '@/policy/policy-violation.error';
|
||||
import { OwnershipService } from '@/services/ownership.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { WorkflowExecutionService } from '@/workflows/workflow-execution.service';
|
||||
|
||||
import { executeErrorWorkflow } from '../execute-error-workflow';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Container } from '@n8n/di';
|
||||
import { ErrorReporter } from 'n8n-core';
|
||||
|
|
@ -7,7 +8,6 @@ import type { IRun, IWorkflowBase, WorkflowExecuteMode } from 'n8n-workflow';
|
|||
import type { IWorkflowErrorData } from '@/interfaces';
|
||||
import { isPolicyRefusal } from '@/policy/policy-violation.error';
|
||||
import { OwnershipService } from '@/services/ownership.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
/**
|
||||
* Resolved lazily. A static import would close the cycle
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import type { Project, User, WorkflowEntity } from '@n8n/db';
|
||||
|
|
@ -12,7 +13,6 @@ import {
|
|||
} from '@/errors/subworkflow-policy-denial.error';
|
||||
import type { AccessService } from '@/services/access.service';
|
||||
import { OwnershipService } from '@/services/ownership.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import { SubworkflowPolicyChecker } from '../subworkflow-policy-checker';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { Project } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
|
@ -7,7 +8,6 @@ import { type INode, type IWorkflowBase, type WorkflowSettings } from 'n8n-workf
|
|||
import { SubworkflowPolicyDenialError } from '@/errors/subworkflow-policy-denial.error';
|
||||
import { AccessService } from '@/services/access.service';
|
||||
import { OwnershipService } from '@/services/ownership.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
type Policy = WorkflowSettings.CallerPolicy;
|
||||
type DenialPolicy = Exclude<Policy, 'any'>;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,11 @@
|
|||
import { CommunityRegisteredRequestDto } from '@n8n/api-types';
|
||||
import { BadRequestError } from '@n8n/backend-services';
|
||||
import { BadRequestError, UrlService } from '@n8n/backend-services';
|
||||
import { AuthenticatedRequest } from '@n8n/db';
|
||||
import { Get, Post, RestController, GlobalScope, Body } from '@n8n/decorators';
|
||||
import type { AxiosError } from 'axios';
|
||||
import { InstanceSettings } from 'n8n-core';
|
||||
|
||||
import { LicenseRequest } from '@/requests';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { LicenseService } from './license.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { LicenseState, Logger } from '@n8n/backend-common';
|
||||
import { OutboundHttp, type HttpRequestClient, isHttpRequestError } from '@n8n/backend-network';
|
||||
import { BadRequestError } from '@n8n/backend-services';
|
||||
import { BadRequestError, UrlService } from '@n8n/backend-services';
|
||||
import { Time } from '@n8n/constants';
|
||||
import type { User } from '@n8n/db';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
|
|
@ -10,7 +10,6 @@ import { ensureError } from '@n8n/utils/errors/ensure-error';
|
|||
import { LicenseEulaRequiredError } from '@/errors/response-errors/license-eula-required.error';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import { License } from '@/license';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
const REQUEST_TIMEOUT_MS = 30 * Time.seconds.toMilliseconds;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { Mock, MockInstance } from 'vitest';
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
import { mockLogger } from '@n8n/backend-test-utils';
|
||||
|
|
@ -10,7 +11,6 @@ import type { StateAdapter } from 'chat';
|
|||
|
||||
import type { CredentialsService } from '@/credentials/credentials.service';
|
||||
import type { Publisher } from '@/scaling/pubsub/publisher.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import { AgentExecutionOrchestratorService } from '../../agent-execution-orchestrator.service';
|
||||
import type { Agent } from '../../entities/agent.entity';
|
||||
|
|
|
|||
|
|
@ -2,12 +2,11 @@ import type { StreamChunk } from '@n8n/agents';
|
|||
import type { AgentIntegrationConfig } from '@n8n/api-types';
|
||||
import type { Logger as BackendLogger } from '@n8n/backend-common';
|
||||
import type { OutboundHttp } from '@n8n/backend-network';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { InstanceSettings } from 'n8n-core';
|
||||
import type { Mock } from 'vitest';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import type { AgentRepository } from '../../../../repositories/agent.repository';
|
||||
import type { ChatInstance } from '../../../chat-integration.service';
|
||||
import { ComponentMapper } from '../../../component-mapper';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { BadRequestError } from '@n8n/backend-services';
|
||||
import type { Mock, Mocked } from 'vitest';
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
|
|
@ -11,7 +12,6 @@ import type { CredentialsFinderService } from '@/credentials/credentials-finder.
|
|||
import type { CredentialsOverwrites } from '@/credentials-overwrites';
|
||||
import type { CacheService } from '@/services/cache/cache.service';
|
||||
import type { ProjectService } from '@/services/project.service.ee';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import type { AgentIntegrationManagementService } from '../../agent-integration-management.service';
|
||||
import type { AgentRepository } from '../../repositories/agent.repository';
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
/* eslint-disable @typescript-eslint/unbound-method -- mock-based tests intentionally reference unbound methods */
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
import type { OutboundHttp } from '@n8n/backend-network';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { Cipher } from 'n8n-core';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
||||
import type { CredentialsService } from '@/credentials/credentials.service';
|
||||
import type { CacheService } from '@/services/cache/cache.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import type { AgentIntegrationManagementService } from '../../agent-integration-management.service';
|
||||
import type { Agent } from '../../entities/agent.entity';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { AgentIntegrationConfig, type AgentIntegrationSettings } from '@n8n/api-types';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { OnLeaderStepdown, OnPubSubEvent } from '@n8n/decorators';
|
||||
import { Container, Service } from '@n8n/di';
|
||||
|
|
@ -11,7 +12,6 @@ import { OperationalError, UnexpectedError } from 'n8n-workflow';
|
|||
import { CredentialsService } from '@/credentials/credentials.service';
|
||||
import { Publisher } from '@/scaling/pubsub/publisher.service';
|
||||
import type { PubSubCommandMap } from '@/scaling/pubsub/pubsub.event-map';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { AgentChatBridge } from './agent-chat-bridge';
|
||||
import {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
/* eslint-disable @typescript-eslint/unbound-method -- mock-based tests intentionally reference unbound methods */
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { BadRequestError, ConflictError } from '@n8n/backend-services';
|
||||
import type { Mock, Mocked, MockedFunction } from 'vitest';
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
|
|
@ -8,8 +9,6 @@ import { createHmac } from 'crypto';
|
|||
import { mock } from 'vitest-mock-extended';
|
||||
import type { InstanceSettings } from 'n8n-core';
|
||||
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import type { Agent } from '../../../../entities/agent.entity';
|
||||
import type { AgentRepository } from '../../../../repositories/agent.repository';
|
||||
import type { AgentChatIntegrationContext } from '../../../agent-chat-integration';
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import type {
|
|||
} from '@n8n/api-types';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { OutboundHttp } from '@n8n/backend-network';
|
||||
import { BadRequestError, NotFoundError } from '@n8n/backend-services';
|
||||
import { BadRequestError, NotFoundError, UrlService } from '@n8n/backend-services';
|
||||
import type { User } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { isRecord } from '@n8n/utils/is-record';
|
||||
|
|
@ -13,7 +13,6 @@ import { Cipher } from 'n8n-core';
|
|||
|
||||
import { CredentialsService } from '@/credentials/credentials.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import {
|
||||
managedSlackAppCacheKey,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { AgentIntegrationConfig } from '@n8n/api-types';
|
|||
import type { RichCardComponentType } from '@n8n/api-types';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { OutboundHttp } from '@n8n/backend-network';
|
||||
import { BadRequestError } from '@n8n/backend-services';
|
||||
import { BadRequestError, UrlService } from '@n8n/backend-services';
|
||||
import { Service } from '@n8n/di';
|
||||
import { isRecord } from '@n8n/utils/is-record';
|
||||
import type { Thread, Author } from 'chat';
|
||||
|
|
@ -10,8 +10,6 @@ import { createHmac } from 'crypto';
|
|||
import { InstanceSettings } from 'n8n-core';
|
||||
import { UnexpectedError } from 'n8n-workflow';
|
||||
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { AgentRepository } from '../../repositories/agent.repository';
|
||||
import {
|
||||
AgentChatIntegration,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { type AuthenticatedRequest, type CredentialsEntity } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
|
|
@ -19,7 +20,6 @@ import {
|
|||
DynamicCredentialService,
|
||||
} from '@/modules/dynamic-credentials.ee/services';
|
||||
import { OauthService } from '@/oauth/oauth.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { DynamicCredentialWebService } from '../services/dynamic-credential-web.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { BadRequestError, NotFoundError } from '@n8n/backend-services';
|
||||
import type { Mocked } from 'vitest';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
|
@ -7,7 +8,6 @@ import type { DynamicCredentialCorsService } from '../services/dynamic-credentia
|
|||
import type { DynamicCredentialWebService } from '../services/dynamic-credential-web.service';
|
||||
import { WorkflowStatusController } from '../workflow-status.controller';
|
||||
import type { CredentialResolverWorkflowService } from '../services/credential-resolver-workflow.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import type { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { BadRequestError, NotFoundError } from '@n8n/backend-services';
|
||||
import { BadRequestError, NotFoundError, UrlService } from '@n8n/backend-services';
|
||||
import { Time } from '@n8n/constants';
|
||||
import { CredentialsEntity, AuthenticatedRequest, isAuthenticatedRequest } from '@n8n/db';
|
||||
import { Delete, Get, Options, Param, Post, RestController } from '@n8n/decorators';
|
||||
|
|
@ -12,7 +12,6 @@ import { CredentialsFinderService } from '@/credentials/credentials-finder.servi
|
|||
import { EnterpriseCredentialsService } from '@/credentials/credentials.service.ee';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import { CreateCsrfStateData, OauthService } from '@/oauth/oauth.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { DynamicCredentialResolverRepository } from './database/repositories/credential-resolver.repository';
|
||||
import { DynamicCredentialsConfig } from './dynamic-credentials.config';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { Mocked } from 'vitest';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import type {
|
||||
|
|
@ -12,7 +13,6 @@ import type {
|
|||
import type { CredentialTypes } from '@/credential-types';
|
||||
import type { EnterpriseCredentialsService } from '@/credentials/credentials.service.ee';
|
||||
import type { NodeTypes } from '@/node-types';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import type { ExecutionContextService } from 'n8n-core';
|
||||
import { CredentialsEntity } from '@n8n/db';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Service } from '@n8n/di';
|
||||
import type {
|
||||
|
|
@ -13,7 +14,6 @@ import type {
|
|||
import { CredentialTypes } from '@/credential-types';
|
||||
import { EnterpriseCredentialsService } from '@/credentials/credentials.service.ee';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { ExecutionContextService } from 'n8n-core';
|
||||
import { AuthorizeIntentService } from './authorize-intent.service';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { WorkflowExecutionStatus } from '@n8n/api-types';
|
||||
import { BadRequestError, NotFoundError } from '@n8n/backend-services';
|
||||
import { BadRequestError, NotFoundError, UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Time } from '@n8n/constants';
|
||||
import { isAuthenticatedRequest } from '@n8n/db';
|
||||
|
|
@ -7,7 +7,6 @@ import { Get, Options, RestController } from '@n8n/decorators';
|
|||
import { Container } from '@n8n/di';
|
||||
import { Request, Response } from 'express';
|
||||
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
|
||||
import { DynamicCredentialsConfig } from './dynamic-credentials.config';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { Mock } from 'vitest';
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
|
|
@ -6,7 +7,6 @@ import { mock } from 'vitest-mock-extended';
|
|||
|
||||
import type { CredentialsService } from '@/credentials/credentials.service';
|
||||
import type { Push } from '@/push';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import type { Telemetry } from '@/telemetry';
|
||||
|
||||
import {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import {
|
||||
BadRequestError,
|
||||
ConflictError,
|
||||
|
|
@ -79,7 +80,6 @@ import type { CredentialsService } from '@/credentials/credentials.service';
|
|||
import type { Push } from '@/push';
|
||||
import type { Publisher } from '@/scaling/pubsub/publisher.service';
|
||||
import type { ProjectService } from '@/services/project.service.ee';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import type { InstanceAiBrowserSessionService } from '../browser/instance-ai-browser-session.service';
|
||||
import type { EvalAgentExecutionService } from '../eval/agent-execution.service';
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import type {
|
|||
ToolCategory,
|
||||
} from '@n8n/api-types';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
|
@ -24,7 +25,6 @@ import { join } from 'node:path';
|
|||
|
||||
import { CredentialsService } from '@/credentials/credentials.service';
|
||||
import { Push } from '@/push';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
|
||||
import { BrowserLocalMcpServer } from './browser-local-mcp-server';
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ import {
|
|||
ConflictError,
|
||||
ForbiddenError,
|
||||
NotFoundError,
|
||||
UrlService,
|
||||
} from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { AuthenticatedRequest, User, UserRepository } from '@n8n/db';
|
||||
|
|
@ -85,7 +86,6 @@ import { CredentialsService } from '@/credentials/credentials.service';
|
|||
import { Push } from '@/push';
|
||||
import { Publisher } from '@/scaling/pubsub/publisher.service';
|
||||
import { ProjectService } from '@/services/project.service.ee';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
type FlushableResponse = Response & { flush?: () => void };
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ import {
|
|||
} from '@n8n/api-types';
|
||||
import { Logger, ModuleRegistry } from '@n8n/backend-common';
|
||||
import { SsrfProtectionService } from '@n8n/backend-network';
|
||||
import { BadRequestError, ForbiddenError } from '@n8n/backend-services';
|
||||
import { BadRequestError, ForbiddenError, UrlService } from '@n8n/backend-services';
|
||||
import {
|
||||
GlobalConfig,
|
||||
SsrfProtectionConfig,
|
||||
|
|
@ -144,7 +144,6 @@ import { AiPreferenceService, renderAiPreferencesBlock } from '@/services/ai-pre
|
|||
import { AiService } from '@/services/ai.service';
|
||||
import { InstanceWriteAccessService } from '@/services/instance-write-access.service';
|
||||
import { ProxyTokenManager } from '@/services/proxy-token-manager';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { assertNever } from '@/utils';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { zodToJsonSchema } from '@n8n/ai-utilities/json-schema';
|
||||
import { APPROVAL_RESUME_SCHEMA } from '@n8n/agents/tool';
|
||||
import type { AgentJsonConfig } from '@n8n/api-types';
|
||||
import { ConflictError } from '@n8n/backend-services';
|
||||
import { ConflictError, UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance, mockLogger } from '@n8n/backend-test-utils';
|
||||
import { OutboundHttp } from '@n8n/backend-network';
|
||||
import { User, type WorkflowRepository } from '@n8n/db';
|
||||
|
|
@ -59,7 +59,6 @@ import { NodeTypes } from '@/node-types';
|
|||
import { OauthService } from '@/oauth/oauth.service';
|
||||
import { userHasScopes } from '@/permissions.ee/check-access';
|
||||
import { ProjectScopeService } from '@/permissions.ee/project-scope.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
|
||||
import { AGENT_TOOLS, TOOLS_BY_SCOPE } from '../mcp-scopes';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { NotFoundError } from '@n8n/backend-services';
|
||||
import { NotFoundError, UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { ProjectRepository, User, WorkflowEntity } from '@n8n/db';
|
||||
import { NodeConnectionTypes, type INode } from 'n8n-workflow';
|
||||
|
|
@ -9,7 +9,6 @@ import { z } from 'zod';
|
|||
import { CredentialsService } from '@/credentials/credentials.service';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import type { AiGatewayService } from '@/services/ai-gateway.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { WorkflowCreationService } from '@/workflows/workflow-creation.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import type { LicenseState, ModuleRegistry } from '@n8n/backend-common';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
||||
import type { McpConfig } from '../mcp.config';
|
||||
import type { McpSettingsService } from '../mcp.settings.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import { McpProtectedResource } from '../mcp-protected-resource';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { LicenseState, ModuleRegistry } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance, mockLogger } from '@n8n/backend-test-utils';
|
||||
import { ExecutionsConfig, GlobalConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import { ExecutionRepository, ProjectRepository, SharedWorkflowRepository, User } from '@n8n/db';
|
||||
|
|
@ -22,7 +23,6 @@ import { NodeResourceExplorerService } from '@/services/node-resource-explorer.s
|
|||
import { ProjectService } from '@/services/project.service.ee';
|
||||
import { RoleService } from '@/services/role.service';
|
||||
import { TagService } from '@/services/tag.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { WorkflowRunner } from '@/workflow-runner';
|
||||
import { WorkflowCreationService } from '@/workflows/workflow-creation.service';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { createMcpHandler, type McpServer } from '@modelcontextprotocol/server';
|
||||
import { LicenseState, ModuleRegistry, type Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance, mockLogger } from '@n8n/backend-test-utils';
|
||||
import { ExecutionsConfig, GlobalConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import { ExecutionRepository, ProjectRepository, SharedWorkflowRepository, User } from '@n8n/db';
|
||||
|
|
@ -35,7 +36,6 @@ import { NodeResourceExplorerService } from '@/services/node-resource-explorer.s
|
|||
import { ProjectService } from '@/services/project.service.ee';
|
||||
import { RoleService } from '@/services/role.service';
|
||||
import { TagService } from '@/services/tag.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { WorkflowRunner } from '@/workflow-runner';
|
||||
import { WorkflowCreationService } from '@/workflows/workflow-creation.service';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { NotFoundError } from '@n8n/backend-services';
|
||||
import { NotFoundError, UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { SharedWorkflowRepository, User, WorkflowEntity, type Project } from '@n8n/db';
|
||||
|
|
@ -19,7 +19,6 @@ import type { AiGatewayService } from '@/services/ai-gateway.service';
|
|||
import { SubworkflowPolicyChecker } from '@/executions/pre-execution-checks/subworkflow-policy-checker';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import { TagService } from '@/services/tag.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import { WorkflowPublishedDataService } from '@/workflows/workflow-published-data.service';
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
import { MCP_AGENT_SCOPES, MCP_INSTANCE_SCOPES } from '@n8n/api-types';
|
||||
import { LicenseState, ModuleRegistry } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { INSTANCE_MCP_RESOURCE_ID } from '@n8n/constants';
|
||||
import type { User } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
||||
import type { ProtectedResource } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { BUILDER_TOOLS, FOLDER_FEATURE_TOOLS, TOOLS_BY_SCOPE } from './mcp-scopes';
|
||||
import { areAgentToolsAvailable } from './mcp-tool-availability';
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import {
|
|||
CONTEXT_PREFERENCES_FLAG,
|
||||
} from '@n8n/api-types';
|
||||
import { LicenseState, Logger, ModuleRegistry } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { ExecutionsConfig, GlobalConfig, WorkflowsConfig } from '@n8n/config';
|
||||
import { ExecutionRepository, ProjectRepository, SharedWorkflowRepository, User } from '@n8n/db';
|
||||
import { Container, Service } from '@n8n/di';
|
||||
|
|
@ -46,7 +47,6 @@ import { NodeResourceExplorerService } from '@/services/node-resource-explorer.s
|
|||
import { ProjectService } from '@/services/project.service.ee';
|
||||
import { RoleService } from '@/services/role.service';
|
||||
import { TagService } from '@/services/tag.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { WorkflowRunner } from '@/workflow-runner';
|
||||
import { WorkflowCreationService } from '@/workflows/workflow-creation.service';
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import {
|
|||
type AgentJsonConfig,
|
||||
} from '@n8n/api-types';
|
||||
import { OutboundHttp } from '@n8n/backend-network';
|
||||
import { ConflictError, ForbiddenError } from '@n8n/backend-services';
|
||||
import { ConflictError, ForbiddenError, UrlService } from '@n8n/backend-services';
|
||||
import type { User } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import type { Scope } from '@n8n/permissions';
|
||||
|
|
@ -60,7 +60,6 @@ import { NodeTypes } from '@/node-types';
|
|||
import { OauthService } from '@/oauth/oauth.service';
|
||||
import { userHasScopes } from '@/permissions.ee/check-access';
|
||||
import { ProjectScopeService } from '@/permissions.ee/project-scope.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { createAiMcpFetch } from '@/utils/ai-proxy-fetch';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { NotFoundError } from '@n8n/backend-services';
|
||||
import {
|
||||
type Folder,
|
||||
|
|
@ -37,7 +38,6 @@ import type { CredentialsService } from '@/credentials/credentials.service';
|
|||
import type { DataTableUserOperations } from '@/modules/data-table/data-table-proxy.service';
|
||||
import type { NodeTypes } from '@/node-types';
|
||||
import type { AiGatewayService } from '@/services/ai-gateway.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import type { Telemetry } from '@/telemetry';
|
||||
import {
|
||||
dropInvalidWorkflowGroups,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import type { ValidationWarning } from '@n8n/ai-workflow-builder';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import { type User, type SharedWorkflowRepository, WorkflowEntity } from '@n8n/db';
|
||||
import { hasGlobalScope } from '@n8n/permissions';
|
||||
|
|
@ -13,7 +14,6 @@ import type { DataTableUserOperations } from '@/modules/data-table/data-table-pr
|
|||
import type { NodeTypes } from '@/node-types';
|
||||
import type { AiGatewayService } from '@/services/ai-gateway.service';
|
||||
import type { TagService } from '@/services/tag.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import type { Telemetry } from '@/telemetry';
|
||||
import {
|
||||
dropInvalidWorkflowGroups,
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { CompactEncrypt, generateKeyPair } from 'jose';
|
||||
import type { CryptoKey } from 'jose';
|
||||
import { UnexpectedError, UserError } from 'n8n-workflow';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import { OAuthJweDecryptService } from '../oauth-jwe-decrypt.service';
|
||||
import type { OAuthJweKeyService } from '../oauth-jwe-key.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import { Service } from '@n8n/di';
|
||||
import type { IDataObject } from 'n8n-workflow';
|
||||
import { UnexpectedError, UserError } from 'n8n-workflow';
|
||||
|
||||
import type { DcrJweFields } from '@/oauth/oauth-jwe-service.proxy';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { OAuthJweKeyService } from './oauth-jwe-key.service';
|
||||
import { decryptJweToken, isJweToken } from './oauth-jwe.utils';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import {
|
||||
createWorkflowWithHistory,
|
||||
setActiveVersion,
|
||||
|
|
@ -21,7 +22,6 @@ import { AUTH_COOKIE_NAME } from '@/constants';
|
|||
import { OAuthTokenService } from '@/modules/oauth-server/oauth-token.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
/** Root-level (no `/rest` prefix) agent authenticated as `user` — `authAgentFor` always
|
||||
* prefixes `/rest`, which 404s against root-level routes like `/oauth/authorize`. */
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import {
|
||||
createWorkflowWithHistory,
|
||||
setActiveVersion,
|
||||
|
|
@ -18,7 +19,6 @@ import { setupTestServer } from '@test-integration/utils';
|
|||
import { OAuthTokenService } from '@/modules/oauth-server/oauth-token.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { TestWebhookRegistrationsService } from '@/webhooks/test-webhook-registrations.service';
|
||||
|
||||
import { OAuthClientRepository } from '../database/repositories/oauth-client.repository';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import {
|
||||
createWorkflowWithHistory,
|
||||
setActiveVersion,
|
||||
|
|
@ -18,7 +19,6 @@ import { setupTestServer } from '@test-integration/utils';
|
|||
import { OAuthTokenService } from '@/modules/oauth-server/oauth-token.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { OAuthClientRepository } from '../database/repositories/oauth-client.repository';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import {
|
||||
createWorkflowWithHistory,
|
||||
setActiveVersion,
|
||||
|
|
@ -19,7 +20,6 @@ import { OAuthClientRepository } from '../database/repositories/oauth-client.rep
|
|||
import { OAuthTokenService } from '@/modules/oauth-server/oauth-token.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { TestWebhookRegistrationsService } from '@/webhooks/test-webhook-registrations.service';
|
||||
|
||||
const testServer = setupTestServer({ modules: ['oauth-server', 'mcp'], endpointGroups: ['mcp'] });
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import type { User } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
|
|
@ -5,7 +6,6 @@ import { Container } from '@n8n/di';
|
|||
import { McpSettingsService } from '@/modules/mcp/mcp.settings.service';
|
||||
import { JwtService } from '@/services/jwt.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { createOwner, createMember } from '@test-integration/db/users';
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { ForbiddenError } from '@n8n/backend-services';
|
||||
import { ForbiddenError, UrlService } from '@n8n/backend-services';
|
||||
import type { Mocked } from 'vitest';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
|
|
@ -15,7 +15,6 @@ import {
|
|||
ProtectedResourceRegistry,
|
||||
type ProtectedResource,
|
||||
} from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import type { User } from '@n8n/db';
|
||||
|
||||
const issuer = 'https://n8n.example.com';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import { createWorkflowWithHistory, setActiveVersion, testDb } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User } from '@n8n/db';
|
||||
|
|
@ -13,7 +14,6 @@ import {
|
|||
import { randomUUID } from 'node:crypto';
|
||||
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { createOwner, createMember } from '@test-integration/db/users';
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import {
|
|||
InvalidTargetError,
|
||||
} from '@modelcontextprotocol/sdk/server/auth/errors.js';
|
||||
import { Logger, type LicenseState, type ModuleRegistry } from '@n8n/backend-common';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User } from '@n8n/db';
|
||||
|
|
@ -16,7 +17,6 @@ import { McpProtectedResource } from '@/modules/mcp/mcp-protected-resource';
|
|||
import type { McpConfig } from '@/modules/mcp/mcp.config';
|
||||
import type { McpSettingsService } from '@/modules/mcp/mcp.settings.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import { UserManagementMailer } from '@/user-management/email';
|
||||
|
||||
import type { AuthorizationCode } from '../database/entities/oauth-authorization-code.entity';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { InvalidTargetError } from '@modelcontextprotocol/sdk/server/auth/errors.js';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { Mocked } from 'vitest';
|
||||
import { Logger, type LicenseState, type ModuleRegistry } from '@n8n/backend-common';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
|
|
@ -19,7 +20,6 @@ import { McpProtectedResource } from '@/modules/mcp/mcp-protected-resource';
|
|||
import type { McpConfig } from '@/modules/mcp/mcp.config';
|
||||
import type { McpSettingsService } from '@/modules/mcp/mcp.settings.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import type { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
|
||||
const instanceSettings = mock<InstanceSettings>({ encryptionKey: 'test-key' });
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import { testDb } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User } from '@n8n/db';
|
||||
|
|
@ -6,7 +7,6 @@ import { Container } from '@n8n/di';
|
|||
|
||||
import { McpSettingsService } from '@/modules/mcp/mcp.settings.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { createOwner } from '@test-integration/db/users';
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import type { OAuthRegisteredClientsStore } from '@modelcontextprotocol/sdk/server/auth/clients.js';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { Request, Response } from 'express';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
|
@ -7,7 +8,6 @@ import type {
|
|||
ProtectedResource,
|
||||
ProtectedResourceRegistry,
|
||||
} from '@/services/protected-resource.registry';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import { OAuthServerService } from '../oauth-server.service';
|
||||
import type { OAuthController as OAuthControllerClass } from '../oauth.controller';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import { createWorkflowWithHistory, testDb } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User } from '@n8n/db';
|
||||
|
|
@ -14,7 +15,6 @@ import { OAuthClientRepository } from '@/modules/oauth-server/database/repositor
|
|||
import { OAuthTokenService } from '@/modules/oauth-server/oauth-token.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { TestWebhookRegistrationsService } from '@/webhooks/test-webhook-registrations.service';
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import { createWorkflowWithHistory, setActiveVersion, testDb } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User } from '@n8n/db';
|
||||
|
|
@ -12,7 +13,6 @@ import { setupTestServer } from '@test-integration/utils';
|
|||
import { MCP_TRIGGER_NODE_TYPE } from '@/constants';
|
||||
import { OAuthTokenService } from '@/modules/oauth-server/oauth-token.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { TestWebhookRegistrationsService } from '@/webhooks/test-webhook-registrations.service';
|
||||
|
||||
const testServer = setupTestServer({ modules: ['oauth-server', 'mcp'], endpointGroups: ['mcp'] });
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import {
|
||||
createWorkflowWithHistory,
|
||||
setActiveVersion,
|
||||
|
|
@ -17,7 +18,6 @@ import { setupTestServer } from '@test-integration/utils';
|
|||
import { MCP_TRIGGER_NODE_TYPE } from '@/constants';
|
||||
import { OAuthTokenService } from '@/modules/oauth-server/oauth-token.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { JwtService } from '@/services/jwt.service';
|
||||
|
||||
import { OAuthClientRepository } from '../database/repositories/oauth-client.repository';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import { createWorkflowWithHistory, setActiveVersion, testDb } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { User } from '@n8n/db';
|
||||
|
|
@ -13,7 +14,6 @@ import { MCP_TRIGGER_NODE_TYPE } from '@/constants';
|
|||
import { OAuthTokenService } from '@/modules/oauth-server/oauth-token.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
const testServer = setupTestServer({ modules: ['oauth-server', 'mcp'], endpointGroups: ['mcp'] });
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import {
|
||||
createWorkflowWithHistory,
|
||||
setActiveVersion,
|
||||
|
|
@ -18,7 +19,6 @@ import { setupTestServer } from '@test-integration/utils';
|
|||
import { OAuthTokenService } from '@/modules/oauth-server/oauth-token.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { TestWebhookRegistrationsService } from '@/webhooks/test-webhook-registrations.service';
|
||||
|
||||
const testServer = setupTestServer({ modules: ['oauth-server', 'mcp'], endpointGroups: ['mcp'] });
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import {
|
||||
createWorkflowWithHistory,
|
||||
setActiveVersion,
|
||||
|
|
@ -19,7 +20,6 @@ import { OAuthServerService } from '@/modules/oauth-server/oauth-server.service'
|
|||
import { OAuthTokenService } from '@/modules/oauth-server/oauth-token.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
const testServer = setupTestServer({ modules: ['oauth-server', 'mcp'], endpointGroups: ['mcp'] });
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import type { ConsentUiHints } from '@n8n/api-types';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { ForbiddenError } from '@n8n/backend-services';
|
||||
import { ForbiddenError, UrlService } from '@n8n/backend-services';
|
||||
import type { User } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { UserError } from 'n8n-workflow';
|
||||
|
|
@ -14,7 +14,6 @@ import {
|
|||
ProtectedResourceRegistry,
|
||||
type ProtectedResource,
|
||||
} from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
type ConsentDetailsResult =
|
||||
| {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ import {
|
|||
InvalidGrantError,
|
||||
InvalidTargetError,
|
||||
} from '@modelcontextprotocol/sdk/server/auth/errors.js';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { Time } from '@n8n/constants';
|
||||
import { Service } from '@n8n/di';
|
||||
import { UserError, type N8nOAuth2FlowResult, type N8nOAuth2RefreshResult } from 'n8n-workflow';
|
||||
|
|
@ -12,7 +13,6 @@ import { CacheService } from '@/services/cache/cache.service';
|
|||
import { OAuthTokenVerifierProxy } from '@/services/oauth-token-verifier-proxy.service';
|
||||
import type { N8nOAuth2Flow } from '@/services/oauth2-flow-proxy.service';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { OAuthServerService } from './oauth-server.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import type {
|
|||
import type { McpClientConnectedPeriod, McpClientTypeFilter } from '@n8n/api-types';
|
||||
import { getMcpClientType, MCP_CLIENT_TYPE_FILTER_BUCKETS } from '@n8n/api-types';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { ForbiddenError } from '@n8n/backend-services';
|
||||
import { ForbiddenError, UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { INSTANCE_MCP_RESOURCE_ID } from '@n8n/constants';
|
||||
import type { User } from '@n8n/db';
|
||||
|
|
@ -30,7 +30,6 @@ import {
|
|||
ProtectedResourceRegistry,
|
||||
type ProtectedResource,
|
||||
} from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { UserManagementMailer } from '@/user-management/email';
|
||||
|
||||
import { OAuthClient } from './database/entities/oauth-client.entity';
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { clientRegistrationHandler } from '@modelcontextprotocol/sdk/server/auth
|
|||
import { revocationHandler } from '@modelcontextprotocol/sdk/server/auth/handlers/revoke.js';
|
||||
import { tokenHandler } from '@modelcontextprotocol/sdk/server/auth/handlers/token.js';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Time } from '@n8n/constants';
|
||||
import {
|
||||
|
|
@ -17,7 +18,6 @@ import type { Response, Request, RequestHandler, Router } from 'express';
|
|||
|
||||
import type { ProtectedResource } from '@/services/protected-resource.registry';
|
||||
import { ProtectedResourceRegistry } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import { OAuthServerConfig } from './oauth-server.config';
|
||||
import { OAuthServerService } from './oauth-server.service';
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { WebhookService } from '@/webhooks/webhook.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Service } from '@n8n/di';
|
||||
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { TestWebhookRegistrationsService } from '@/webhooks/test-webhook-registrations.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
import { FORM_TRIGGER_NODE_TYPE } from 'n8n-workflow';
|
||||
|
||||
import type { ProtectedResourceResolver } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { WebhookService } from '@/webhooks/webhook.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Service } from '@n8n/di';
|
||||
import { FORM_TRIGGER_NODE_TYPE } from 'n8n-workflow';
|
||||
|
||||
import type { ProtectedResourceResolver } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { TestWebhookRegistrationsService } from '@/webhooks/test-webhook-registrations.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { MCP_TRIGGER_NODE_TYPE } from '@/constants';
|
||||
import type { ProtectedResourceResolver } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { TestWebhookRegistrationsService } from '@/webhooks/test-webhook-registrations.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Service } from '@n8n/di';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { MCP_TRIGGER_NODE_TYPE } from '@/constants';
|
||||
import type { ProtectedResourceResolver } from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { WebhookService } from '@/webhooks/webhook.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { Service } from '@n8n/di';
|
||||
import { WEBHOOK_NODE_TYPE } from 'n8n-workflow';
|
||||
|
|
@ -9,7 +10,6 @@ import type {
|
|||
} from '@/services/protected-resource.registry';
|
||||
|
||||
import { triggerResourceGate } from '../resource-gate';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { TestWebhooks } from '@/webhooks/test-webhooks';
|
||||
import type { TestWebhookRegistration } from '@/webhooks/test-webhook-registrations.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { WorkflowRepository } from '@n8n/db';
|
||||
import { Service } from '@n8n/di';
|
||||
|
|
@ -8,7 +9,6 @@ import type {
|
|||
ProtectedResource,
|
||||
ProtectedResourceResolver,
|
||||
} from '@/services/protected-resource.registry';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { WebhookService } from '@/webhooks/webhook.service';
|
||||
import { WorkflowFinderService } from '@/workflows/workflow-finder.service';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import type { Logger } from '@n8n/backend-common';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { ForbiddenError } from '@n8n/backend-services';
|
||||
import type { GlobalConfig, InstanceSettingsLoaderConfig } from '@n8n/config';
|
||||
import { Time } from '@n8n/constants';
|
||||
|
|
@ -11,7 +12,6 @@ import { OIDC_NONCE_COOKIE_NAME, OIDC_STATE_COOKIE_NAME } from '@/constants';
|
|||
import type { EventService } from '@/events/event.service';
|
||||
import { SsoAccessDeniedError } from '@/modules/provisioning.ee/errors/sso-access-denied.error';
|
||||
import type { AuthlessRequest } from '@/requests';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import { isOidcCurrentAuthenticationMethod } from '@/sso.ee/sso-helpers';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { BadRequestError, ForbiddenError } from '@n8n/backend-services';
|
||||
import type { Mock, Mocked } from 'vitest';
|
||||
import type { OidcConfigDto } from '@n8n/api-types';
|
||||
|
|
@ -26,7 +27,6 @@ vi.mock('openid-client', async (importOriginal) => {
|
|||
import { type ProvisioningService } from '@/modules/provisioning.ee/provisioning.service.ee';
|
||||
import { Publisher } from '@/scaling/pubsub/publisher.service';
|
||||
import type { JwtService } from '@/services/jwt.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import * as ssoHelpers from '@/sso.ee/sso-helpers';
|
||||
|
||||
import { OIDC_PREFERENCES_DB_KEY } from '../constants';
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { OidcConfigDto } from '@n8n/api-types';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { BadRequestError, ForbiddenError } from '@n8n/backend-services';
|
||||
import { BadRequestError, ForbiddenError, UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig, InstanceSettingsLoaderConfig } from '@n8n/config';
|
||||
import { Time } from '@n8n/constants';
|
||||
import { AuthenticatedRequest } from '@n8n/db';
|
||||
|
|
@ -16,7 +16,6 @@ import {
|
|||
} from '@/modules/provisioning.ee/constants';
|
||||
import { SsoAccessDeniedError } from '@/modules/provisioning.ee/errors/sso-access-denied.error';
|
||||
import { AuthlessRequest } from '@/requests';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { isOidcCurrentAuthenticationMethod } from '@/sso.ee/sso-helpers';
|
||||
|
||||
import {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { OidcConfigDto } from '@n8n/api-types';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { OutboundHttp } from '@n8n/backend-network';
|
||||
import { BadRequestError, ForbiddenError } from '@n8n/backend-services';
|
||||
import { BadRequestError, ForbiddenError, UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import {
|
||||
AuthIdentity,
|
||||
|
|
@ -23,7 +23,6 @@ import { inspect } from 'util';
|
|||
import { buildOidcClaimsContext } from '@/modules/provisioning.ee/claims-context.builder';
|
||||
import { ProvisioningService } from '@/modules/provisioning.ee/provisioning.service.ee';
|
||||
import { JwtService } from '@/services/jwt.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import {
|
||||
assertAuthenticationMethodCanBeEnabled,
|
||||
getCurrentAuthenticationMethod,
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
import { UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { AuthIdentity } from '@n8n/db';
|
||||
import { generateNanoId, User, AuthIdentityRepository, UserRepository } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import * as helpers from '../saml-helpers';
|
||||
import type { SamlUserAttributes } from '../types';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { InstanceSettingsLoaderConfig } from '@n8n/config';
|
||||
import { GLOBAL_OWNER_ROLE, type AuthenticatedRequest, type User } from '@n8n/db';
|
||||
import { ControllerRegistryMetadata, type Controller } from '@n8n/decorators';
|
||||
|
|
@ -10,7 +11,6 @@ import type { AuthService } from '@/auth/auth.service';
|
|||
import type { EventService } from '@/events/event.service';
|
||||
import { SsoAccessDeniedError } from '@/modules/provisioning.ee/errors/sso-access-denied.error';
|
||||
import type { AuthlessRequest } from '@/requests';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import { isSamlLicensedAndEnabled } from '@/sso.ee/sso-helpers';
|
||||
|
||||
import { extractTestIdFromRelayState, isConnectionTestRequest } from '../saml-helpers';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { BadRequestError, ForbiddenError } from '@n8n/backend-services';
|
||||
import type { Mock, Mocked } from 'vitest';
|
||||
import type { SamlPreferences } from '@n8n/api-types';
|
||||
|
|
@ -16,7 +17,6 @@ import type { IdentityProviderInstance, ServiceProviderInstance } from 'samlify'
|
|||
import type { ProvisioningService } from '@/modules/provisioning.ee/provisioning.service.ee';
|
||||
import { Publisher } from '@/scaling/pubsub/publisher.service';
|
||||
import type { CacheService } from '@/services/cache/cache.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import * as ssoHelpers from '@/sso.ee/sso-helpers';
|
||||
|
||||
import { SAML_PREFERENCES_DB_KEY } from '../constants';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { SamlAcsDto, SamlPreferences, SamlToggleDto } from '@n8n/api-types';
|
||||
import { AuthError, ForbiddenError } from '@n8n/backend-services';
|
||||
import { AuthError, ForbiddenError, UrlService } from '@n8n/backend-services';
|
||||
import { InstanceSettingsLoaderConfig } from '@n8n/config';
|
||||
import { AuthenticatedRequest } from '@n8n/db';
|
||||
import { Get, Post, RestController, GlobalScope, Body } from '@n8n/decorators';
|
||||
|
|
@ -15,7 +15,6 @@ import { SSO_ACCESS_DENIED_REDIRECT_PATH } from '@/modules/provisioning.ee/const
|
|||
import { SsoAccessDeniedError } from '@/modules/provisioning.ee/errors/sso-access-denied.error';
|
||||
import { AuthlessRequest } from '@/requests';
|
||||
import { sendErrorResponse } from '@/response-helper';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { isSamlLicensedAndEnabled } from '@/sso.ee/sso-helpers';
|
||||
import { validateRedirectUrl } from '@/utils/validate-redirect-url';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import type { SamlPreferences, SamlPreferencesAttributeMapping } from '@n8n/api-types';
|
||||
import { Logger } from '@n8n/backend-common';
|
||||
import { OutboundHttp } from '@n8n/backend-network';
|
||||
import { AuthError, BadRequestError } from '@n8n/backend-services';
|
||||
import { AuthError, BadRequestError, UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { Settings, User } from '@n8n/db';
|
||||
import { isValidEmail, SettingsRepository, UserRepository } from '@n8n/db';
|
||||
|
|
@ -21,7 +21,6 @@ import type {
|
|||
import { buildSamlClaimsContext } from '@/modules/provisioning.ee/claims-context.builder';
|
||||
import { ProvisioningService } from '@/modules/provisioning.ee/provisioning.service.ee';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import {
|
||||
getSamlLoginLabel,
|
||||
isSamlLicensedAndEnabled,
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
import type { SamlPreferences } from '@n8n/api-types';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { Container } from '@n8n/di';
|
||||
import type { ServiceProviderInstance } from 'samlify';
|
||||
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
let serviceProviderInstance: ServiceProviderInstance | undefined;
|
||||
|
||||
export function getServiceProviderEntityId(): string {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { EmbedLoginBodyDto, EmbedLoginQueryDto } from '@n8n/api-types';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { GLOBAL_MEMBER_ROLE, type User } from '@n8n/db';
|
||||
import type { Response } from 'express';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
|
@ -6,7 +7,6 @@ import { mock } from 'vitest-mock-extended';
|
|||
import type { AuthService } from '@/auth/auth.service';
|
||||
import type { EventService } from '@/events/event.service';
|
||||
import type { AuthlessRequest } from '@/requests';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
import type { TokenExchangeService } from '../../services/token-exchange.service';
|
||||
import type { TokenExchangeConfig } from '../../token-exchange.config';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { EmbedLoginBodyDto, EmbedLoginQueryDto } from '@n8n/api-types';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { Time } from '@n8n/constants';
|
||||
import { Body, Get, Post, Query, RestController } from '@n8n/decorators';
|
||||
import { Container } from '@n8n/di';
|
||||
|
|
@ -7,7 +8,6 @@ import type { Response } from 'express';
|
|||
import { AuthService } from '@/auth/auth.service';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import { AuthlessRequest } from '@/requests';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { validateRedirectUrl } from '@/utils/validate-redirect-url';
|
||||
|
||||
import { TokenExchangeService } from '../services/token-exchange.service';
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import type { LockService, Logger } from '@n8n/backend-common';
|
||||
import { OutboundHttp, type SsrfProtectionService } from '@n8n/backend-network';
|
||||
import { type LocalServer, startServer } from '@n8n/backend-network/testing';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { GlobalConfig, SsrfProtectionConfig } from '@n8n/config';
|
||||
import type { CredentialsRepository } from '@n8n/db';
|
||||
import { mock } from 'vitest-mock-extended';
|
||||
|
|
@ -17,7 +18,6 @@ import type { OAuthBrowserBindingService } from '@/oauth/oauth-browser-binding.s
|
|||
import type { OAuthJweServiceProxy } from '@/oauth/oauth-jwe-service.proxy';
|
||||
import { OauthService, type OAuth1CredentialData } from '@/oauth/oauth.service';
|
||||
import type { CacheService } from '@/services/cache/cache.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
interface Received {
|
||||
method?: string;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { LockAcquisitionTimeoutError, LockService, Logger } from '@n8n/backend-common';
|
||||
import { OutboundHttp, SsrfProtectionService, type HttpRequestClient } from '@n8n/backend-network';
|
||||
import { AuthError, BadRequestError, NotFoundError } from '@n8n/backend-services';
|
||||
import { AuthError, BadRequestError, NotFoundError, UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import type { OAuth2CredentialData } from '@n8n/client-oauth2';
|
||||
import { AuthError as OAuth2AuthError } from '@n8n/client-oauth2';
|
||||
|
|
@ -35,7 +35,6 @@ import {
|
|||
} from '@/oauth/oauth.service';
|
||||
import type { OAuthRequest } from '@/requests';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data';
|
||||
|
||||
vi.mock('@/workflow-execute-additional-data');
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import {
|
|||
type HttpRequestClient,
|
||||
type SsrfBridge,
|
||||
} from '@n8n/backend-network';
|
||||
import { AuthError, BadRequestError, NotFoundError } from '@n8n/backend-services';
|
||||
import { AuthError, BadRequestError, NotFoundError, UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig, SsrfProtectionConfig } from '@n8n/config';
|
||||
import type { AuthenticatedRequest, CredentialsEntity, ICredentialsDb } from '@n8n/db';
|
||||
import { CredentialsRepository } from '@n8n/db';
|
||||
|
|
@ -27,7 +27,6 @@ import { CredentialsHelper } from '@/credentials-helper';
|
|||
import type { OAuthRequest } from '@/requests';
|
||||
import { extractAccountIdentifierFromData } from '@/oauth/account-identifier';
|
||||
import { validateOAuthUrl } from '@/oauth/validate-oauth-url';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import * as WorkflowExecuteAdditionalData from '@/workflow-execute-additional-data';
|
||||
import {
|
||||
AuthError as OAuth2AuthError,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import { Logger } from '@n8n/backend-common';
|
||||
import { UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { AuthenticatedRequest } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
|
|
@ -19,7 +20,6 @@ import { License } from '@/license';
|
|||
import { createN8nPackageMulterOptions } from '@/modules/n8n-packages/utils/import-package-upload';
|
||||
import { AuthStrategyRegistry } from '@/services/auth-strategy.registry';
|
||||
import { LastActiveAtService } from '@/services/last-active-at.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
import './v1/controllers';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import type { LicenseState } from '@n8n/backend-common';
|
||||
import type { HttpRequestClient, OutboundHttp } from '@n8n/backend-network';
|
||||
import type { UrlService } from '@n8n/backend-services';
|
||||
import { BadRequestError } from '@n8n/backend-services';
|
||||
import type { GlobalConfig } from '@n8n/config';
|
||||
import type { Project, User, UserRepository } from '@n8n/db';
|
||||
|
|
@ -13,7 +14,6 @@ import { FeatureNotLicensedError } from '@/errors/feature-not-licensed.error';
|
|||
import type { License } from '@/license';
|
||||
import { AiGatewayService } from '@/services/ai-gateway.service';
|
||||
import type { OwnershipService } from '@/services/ownership.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
|
||||
const INSTANCE_BASE_URL = 'https://my-n8n.example.com';
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { Mock, MockedClass } from 'vitest';
|
||||
import { AiWorkflowBuilderService } from '@n8n/ai-workflow-builder';
|
||||
import type { Logger } from '@n8n/backend-common';
|
||||
|
|
@ -18,7 +19,6 @@ import type { WorkflowBuilderSessionRepository } from '@/modules/workflow-builde
|
|||
import type { Push } from '@/push';
|
||||
import { WorkflowBuilderService } from '@/services/ai-workflow-builder.service';
|
||||
import type { DynamicNodeParametersService } from '@/services/dynamic-node-parameters.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import type { Telemetry } from '@/telemetry';
|
||||
|
||||
vi.mock('@n8n/ai-workflow-builder', () => ({
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import type { UrlService } from '@n8n/backend-services';
|
||||
import type { Mock } from 'vitest';
|
||||
import type { LicenseState, Logger, ModuleRegistry } from '@n8n/backend-common';
|
||||
import type { GlobalConfig, SecurityConfig } from '@n8n/config';
|
||||
|
|
@ -16,7 +17,6 @@ import { CommunityPackagesConfig } from '@/modules/community-packages/community-
|
|||
import type { PushConfig } from '@/push/push.config';
|
||||
import type { AiUsageService } from '@/services/ai-usage.service';
|
||||
import { FrontendService, type PublicFrontendSettings } from '@/services/frontend.service';
|
||||
import type { UrlService } from '@/services/url.service';
|
||||
import type { WorkflowReviewPolicyService } from '@/services/workflow-review-policy.service';
|
||||
import type { UserManagementMailer } from '@/user-management/email';
|
||||
import type { OwnershipService } from '../ownership.service';
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { InviteUsersRequestDto } from '@n8n/api-types';
|
||||
import { BadRequestError, ForbiddenError, NotFoundError } from '@n8n/backend-services';
|
||||
import { BadRequestError, ForbiddenError, NotFoundError, UrlService } from '@n8n/backend-services';
|
||||
import { mockInstance } from '@n8n/backend-test-utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import {
|
||||
|
|
@ -24,7 +24,6 @@ import type { EventService } from '@/events/event.service';
|
|||
import type { ExternalHooks } from '@/external-hooks';
|
||||
import type { License } from '@/license';
|
||||
import type { ProvisioningService } from '@/modules/provisioning.ee/provisioning.service.ee';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
import { UserService } from '@/services/user.service';
|
||||
import * as ssoHelpers from '@/sso.ee/sso-helpers';
|
||||
import type { UserManagementMailer } from '@/user-management/email';
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import {
|
|||
} from '@n8n/api-types';
|
||||
import { LicenseState } from '@n8n/backend-common';
|
||||
import { OutboundHttp } from '@n8n/backend-network';
|
||||
import { BadRequestError } from '@n8n/backend-services';
|
||||
import { BadRequestError, UrlService } from '@n8n/backend-services';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { LICENSE_FEATURES } from '@n8n/constants';
|
||||
import { UserRepository } from '@n8n/db';
|
||||
|
|
@ -20,7 +20,6 @@ import { FeatureNotLicensedError } from '@/errors/feature-not-licensed.error';
|
|||
import { License } from '@/license';
|
||||
import { checkAiGatewayEligibility } from '@/services/ai-gateway-eligibility';
|
||||
import { OwnershipService } from '@/services/ownership.service';
|
||||
import { UrlService } from '@/services/url.service';
|
||||
|
||||
interface GatewayTokenResponse {
|
||||
token: string;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user