UNPKG

n8n

Version:

n8n Workflow Automation Tool

63 lines (62 loc) 3.49 kB
import { Project, type ProjectType } from '../databases/entities/Project'; import { ProjectRelation } from '../databases/entities/ProjectRelation'; import type { ProjectRole } from '../databases/entities/ProjectRelation'; import type { User } from '../databases/entities/User'; import { ProjectRepository } from '../databases/repositories/project.repository'; import { ProjectRelationRepository } from '../databases/repositories/projectRelation.repository'; import type { EntityManager } from '@n8n/typeorm'; import { type Scope } from '@n8n/permissions'; import { RoleService } from './role.service'; import { SharedWorkflowRepository } from '../databases/repositories/sharedWorkflow.repository'; import { SharedCredentialsRepository } from '../databases/repositories/sharedCredentials.repository'; import { CacheService } from './cache/cache.service'; import { License } from '../License'; import { ApplicationError } from 'n8n-workflow'; export declare class TeamProjectOverQuotaError extends ApplicationError { constructor(limit: number); } export declare class UnlicensedProjectRoleError extends ApplicationError { constructor(role: ProjectRole); } export declare class ProjectService { private readonly sharedWorkflowRepository; private readonly projectRepository; private readonly projectRelationRepository; private readonly roleService; private readonly sharedCredentialsRepository; private readonly cacheService; private readonly license; constructor(sharedWorkflowRepository: SharedWorkflowRepository, projectRepository: ProjectRepository, projectRelationRepository: ProjectRelationRepository, roleService: RoleService, sharedCredentialsRepository: SharedCredentialsRepository, cacheService: CacheService, license: License); private get workflowService(); private get credentialsService(); deleteProject(user: User, projectId: string, { migrateToProject }?: { migrateToProject?: string; }): Promise<void>; findProjectsWorkflowIsIn(workflowId: string): Promise<string[]>; getAccessibleProjects(user: User): Promise<Project[]>; getPersonalProjectOwners(projectIds: string[]): Promise<ProjectRelation[]>; createTeamProject(name: string, adminUser: User, id?: string): Promise<Project>; updateProject(name: string, projectId: string): Promise<Project>; getPersonalProject(user: User): Promise<Project | null>; getProjectRelationsForUser(user: User): Promise<ProjectRelation[]>; syncProjectRelations(projectId: string, relations: Array<{ userId: string; role: ProjectRole; }>): Promise<void>; clearCredentialCanUseExternalSecretsCache(projectId: string): Promise<void>; pruneRelations(em: EntityManager, project: Project): Promise<void>; addManyRelations(em: EntityManager, project: Project, relations: Array<{ userId: string; role: ProjectRole; }>): Promise<void>; getProjectWithScope(user: User, projectId: string, scopes: Scope[], entityManager?: EntityManager): Promise<Project | null>; addUser(projectId: string, userId: string, role: ProjectRole): Promise<{ projectId: string; userId: string; role: ProjectRole; } & ProjectRelation>; getProject(projectId: string): Promise<Project>; getProjectRelations(projectId: string): Promise<ProjectRelation[]>; getUserOwnedOrAdminProjects(userId: string): Promise<Project[]>; getProjectCounts(): Promise<Record<ProjectType, number>>; }