CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-n8n-editor-ui

Workflow Editor UI for n8n - a comprehensive Vue.js-based visual workflow editor with drag-and-drop functionality.

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

api-client.mddocs/

API Client

HTTP client methods for communication with the n8n backend API, handling workflows, credentials, executions, users, and other backend services.

Capabilities

Workflows API

Core workflow management operations.

/**
 * Get new workflow template
 * @param context - Request context
 * @param data - Optional template data
 * @returns New workflow template
 */
function getNewWorkflow(context: IRestApiContext, data?: IDataObject): Promise<NewWorkflowResponse>;

/**
 * Fetch workflow by ID
 * @param context - Request context
 * @param id - Workflow ID
 * @returns Workflow data
 */
function getWorkflow(context: IRestApiContext, id: string): Promise<IWorkflowDb>;

/**
 * List workflows with filtering
 * @param context - Request context
 * @param filter - Filter criteria
 * @param options - Pagination and sorting options
 * @returns Paginated workflows list
 */
function getWorkflows(
  context: IRestApiContext,
  filter?: WorkflowsListRequestFilter,
  options?: ListRequestOptions
): Promise<WorkflowsListResponse>;

/**
 * Create new workflow
 * @param context - Request context
 * @param data - Workflow creation data
 * @returns Created workflow
 */
function createWorkflow(context: IRestApiContext, data: WorkflowDataCreate): Promise<IWorkflowDb>;

/**
 * Update existing workflow
 * @param context - Request context
 * @param id - Workflow ID
 * @param data - Updated workflow data
 * @returns Updated workflow
 */
function updateWorkflow(
  context: IRestApiContext, 
  id: string, 
  data: WorkflowDataUpdate
): Promise<IWorkflowDb>;

/**
 * Delete workflow
 * @param context - Request context
 * @param id - Workflow ID
 */
function deleteWorkflow(context: IRestApiContext, id: string): Promise<void>;

/**
 * Get active workflow IDs
 * @param context - Request context
 * @returns Array of active workflow IDs
 */
function getActiveWorkflows(context: IRestApiContext): Promise<string[]>;

Execution Management

Workflow execution operations.

/**
 * Execute workflow
 * @param context - Request context
 * @param data - Execution configuration
 * @returns Execution response
 */
function executeWorkflow(
  context: IRestApiContext, 
  data: IStartRunData
): Promise<IExecutionPushResponse>;

/**
 * Get workflow executions
 * @param context - Request context
 * @param filter - Execution filter criteria
 * @param options - Pagination options
 * @returns Paginated executions list
 */
function getExecutions(
  context: IRestApiContext,
  filter?: ExecutionsQueryFilter,
  options?: ListRequestOptions
): Promise<IExecutionsListResponse>;

/**
 * Get execution details
 * @param context - Request context
 * @param executionId - Execution ID
 * @returns Execution data
 */
function getExecutionData(
  context: IRestApiContext, 
  executionId: string
): Promise<IExecutionResponse>;

/**
 * Stop execution
 * @param context - Request context
 * @param executionId - Execution ID
 * @returns Stop response
 */
function stopExecution(
  context: IRestApiContext, 
  executionId: string
): Promise<IExecutionsStopData>;

/**
 * Delete executions
 * @param context - Request context
 * @param filter - Deletion filter
 * @returns Deletion summary
 */
function deleteExecutions(
  context: IRestApiContext, 
  filter: IExecutionDeleteFilter
): Promise<void>;

/**
 * Get running executions
 * @param context - Request context
 * @param filter - Filter criteria
 * @returns Running executions
 */
function getActiveExecutions(
  context: IRestApiContext,
  filter?: ExecutionsQueryFilter
): Promise<ExecutionSummary[]>;

Credentials API

Credential management operations.

/**
 * Get all credentials
 * @param context - Request context
 * @param filter - Filter criteria
 * @param includeScopes - Include permission scopes
 * @param onlySharedWithMe - Only shared credentials
 * @returns Credentials list
 */
function getAllCredentials(
  context: IRestApiContext,
  filter?: CredentialsListRequestFilter,
  includeScopes?: boolean,
  onlySharedWithMe?: boolean
): Promise<ICredentialsResponse[]>;

/**
 * Create new credential
 * @param context - Request context
 * @param data - Credential data
 * @returns Created credential
 */
function createNewCredential(
  context: IRestApiContext, 
  data: ICredentialsDecrypted
): Promise<ICredentialsResponse>;

/**
 * Update credential
 * @param context - Request context
 * @param id - Credential ID
 * @param data - Updated credential data
 * @returns Updated credential
 */
function updateCredential(
  context: IRestApiContext,
  id: string,
  data: ICredentialsDecrypted
): Promise<ICredentialsResponse>;

/**
 * Delete credential
 * @param context - Request context
 * @param id - Credential ID
 */
function deleteCredential(context: IRestApiContext, id: string): Promise<void>;

/**
 * Get credential data
 * @param context - Request context
 * @param id - Credential ID
 * @returns Credential details
 */
function getCredentialData(
  context: IRestApiContext, 
  id: string
): Promise<ICredentialsDecryptedResponse>;

/**
 * Test credential connection
 * @param context - Request context
 * @param data - Credential test data
 * @returns Test result
 */
function testCredential(
  context: IRestApiContext, 
  data: ICredentialsDecrypted
): Promise<INodeCredentialTestResult>;

OAuth Integration

OAuth authentication flow helpers.

/**
 * Get OAuth1 authorization URL
 * @param context - Request context
 * @param data - OAuth1 configuration
 * @returns Authorization URL
 */
function oAuth1CredentialAuthorize(
  context: IRestApiContext, 
  data: IOAuth1Options
): Promise<string>;

/**
 * Get OAuth2 authorization URL
 * @param context - Request context
 * @param data - OAuth2 configuration
 * @returns Authorization URL
 */
function oAuth2CredentialAuthorize(
  context: IRestApiContext, 
  data: IOAuth2Options
): Promise<string>;

interface IOAuth1Options {
  credentialId: string;
}

interface IOAuth2Options {
  credentialId: string;
  state?: string;
}

Folder Management

Workflow folder organization.

/**
 * Create workflow folder
 * @param context - Request context
 * @param projectId - Project ID
 * @param name - Folder name
 * @param parentFolderId - Parent folder ID
 * @returns Created folder
 */
function createFolder(
  context: IRestApiContext,
  projectId: string,
  name: string,
  parentFolderId?: string
): Promise<FolderCreateResponse>;

/**
 * Delete folder
 * @param context - Request context
 * @param projectId - Project ID
 * @param folderId - Folder ID
 * @param transferToFolderId - Target folder for content
 */
function deleteFolder(
  context: IRestApiContext,
  projectId: string,
  folderId: string,
  transferToFolderId?: string
): Promise<void>;

/**
 * Rename folder
 * @param context - Request context
 * @param projectId - Project ID
 * @param folderId - Folder ID
 * @param name - New folder name
 * @returns Updated folder
 */
function renameFolder(
  context: IRestApiContext,
  projectId: string,
  folderId: string,
  name: string
): Promise<FolderCreateResponse>;

/**
 * Move folder
 * @param context - Request context
 * @param projectId - Project ID
 * @param folderId - Folder ID
 * @param parentFolderId - New parent folder ID
 * @returns Updated folder
 */
function moveFolder(
  context: IRestApiContext,
  projectId: string,
  folderId: string,
  parentFolderId?: string
): Promise<FolderCreateResponse>;

Tags API

Tag management for workflows and credentials.

/**
 * Get all tags
 * @param context - Request context
 * @param withUsageCount - Include usage statistics
 * @returns Tags list
 */
function getTags(context: IRestApiContext, withUsageCount?: boolean): Promise<ITag[]>;

/**
 * Create new tag
 * @param context - Request context
 * @param data - Tag data
 * @returns Created tag
 */
function createTag(context: IRestApiContext, data: ITagCreatePayload): Promise<ITag>;

/**
 * Update tag
 * @param context - Request context
 * @param id - Tag ID
 * @param data - Updated tag data
 * @returns Updated tag
 */
function updateTag(context: IRestApiContext, id: string, data: ITagUpdatePayload): Promise<ITag>;

/**
 * Delete tag
 * @param context - Request context
 * @param id - Tag ID
 * @returns Deletion result
 */
function deleteTag(context: IRestApiContext, id: string): Promise<{ success: boolean }>;

interface ITagCreatePayload {
  name: string;
}

interface ITagUpdatePayload {
  name: string;
}

AI API

AI-powered workflow assistance.

/**
 * Generate workflow from natural language description
 * @param context - Request context
 * @param prompt - Natural language prompt
 * @returns Generated workflow data
 */
function generateWorkflow(context: IRestApiContext, prompt: string): Promise<WorkflowData>;

/**
 * Get AI chat response
 * @param context - Request context
 * @param message - User message
 * @param sessionId - Chat session ID
 * @returns AI response
 */
function aiChat(
  context: IRestApiContext, 
  message: string, 
  sessionId?: string
): Promise<AiChatResponse>;

/**
 * Generate node configuration suggestions
 * @param context - Request context
 * @param nodeType - Node type name
 * @param context - Node context
 * @returns Configuration suggestions
 */
function getNodeSuggestions(
  context: IRestApiContext,
  nodeType: string,
  nodeContext: IDataObject
): Promise<NodeSuggestion[]>;

interface AiChatResponse {
  message: string;
  sessionId: string;
  suggestions?: string[];
}

interface NodeSuggestion {
  parameter: string;
  value: NodeParameterValueType;
  confidence: number;
}

User Management

User and authentication operations.

/**
 * Get current user info
 * @param context - Request context
 * @returns Current user data
 */
function getCurrentUser(context: IRestApiContext): Promise<IUserResponse>;

/**
 * Update current user
 * @param context - Request context
 * @param data - Updated user data
 * @returns Updated user data
 */
function updateCurrentUser(
  context: IRestApiContext, 
  data: Partial<IUser>
): Promise<IUserResponse>;

/**
 * Get all users (admin only)
 * @param context - Request context
 * @returns Users list
 */
function getUsers(context: IRestApiContext): Promise<IUserResponse[]>;

/**
 * Invite user (admin only)
 * @param context - Request context
 * @param data - Invitation data
 * @returns Invitation result
 */
function inviteUsers(
  context: IRestApiContext, 
  data: Array<{ email: string; role: InvitableRoleName }>
): Promise<IInviteResponse[]>;

/**
 * Delete user (admin only)
 * @param context - Request context
 * @param userId - User ID
 * @param transferId - Transfer workflows to user ID
 */
function deleteUser(
  context: IRestApiContext, 
  userId: string, 
  transferId?: string
): Promise<void>;

Usage Examples

Workflow Operations:

import { workflowsApi } from '@/api/workflows';
import { useRootStore } from '@/stores/n8nRootStore';

const rootStore = useRootStore();

// Create new workflow
const workflow = await workflowsApi.createWorkflow(rootStore.getRestApiContext, {
  name: 'My New Workflow',
  nodes: [],
  connections: {}
});

// Update workflow
const updatedWorkflow = await workflowsApi.updateWorkflow(
  rootStore.getRestApiContext,
  workflow.id,
  {
    name: 'Updated Workflow Name',
    active: true
  }
);

// Execute workflow
const execution = await workflowsApi.executeWorkflow(
  rootStore.getRestApiContext,
  {
    workflowData: workflow
  }
);

Credential Management:

import { credentialsApi } from '@/api/credentials';

// Get all credentials
const credentials = await credentialsApi.getAllCredentials(
  rootStore.getRestApiContext,
  { filter: { type: 'httpHeaderAuth' } }
);

// Test credential
const testResult = await credentialsApi.testCredential(
  rootStore.getRestApiContext,
  {
    type: 'httpHeaderAuth',
    data: {
      name: 'Authorization',
      value: 'Bearer token123'
    }
  }
);

if (testResult.status === 'OK') {
  console.log('Credential test successful');
}

Types

interface IRestApiContext {
  baseUrl: string;
  sessionId?: string;
}

interface WorkflowsListRequestFilter {
  active?: boolean;
  tags?: string[];
  search?: string;
  projectId?: string;
}

interface ListRequestOptions {
  limit?: number;
  offset?: number;
  orderBy?: string;
  orderDirection?: 'ASC' | 'DESC';
}

interface WorkflowsListResponse {
  count: number;
  data: WorkflowListItem[];
}

interface NewWorkflowResponse {
  name: string;
  defaultSettings: IWorkflowSettings;
}

interface INodeCredentialTestResult {
  status: 'OK' | 'Error';
  message?: string;
}

interface ExecutionsQueryFilter {
  status?: ExecutionStatus[];
  projectId?: string;
  workflowId?: string;
  finished?: boolean;
  waitTill?: boolean;
  metadata?: Array<{ key: string; value: string }>;
  startedAfter?: string;
  startedBefore?: string;
}

interface IExecutionsListResponse {
  count: number;
  results: ExecutionSummary[];
  estimated: boolean;
}

interface CredentialsListRequestFilter {
  type?: string;
  search?: string;
  projectId?: string;
}

type InvitableRoleName = 'member' | 'admin';

interface IInviteResponse {
  user: {
    id: string;
    email: string;
    emailSent: boolean;
    inviteAcceptUrl: string;
    role: string;
  };
  error?: string;
}

docs

api-client.md

canvas-operations.md

component-system.md

composables.md

index.md

state-management.md

workflow-management.md

tile.json