mirror of
https://github.com/n8n-io/n8n-docs.git
synced 2025-11-20 17:48:34 +00:00
remove unneeded api snippets
This commit is contained in:
parent
ea166ed4a0
commit
e582867cf0
@ -1,36 +0,0 @@
|
||||
post:
|
||||
x-eov-operation-id: generateAudit
|
||||
x-eov-operation-handler: v1/handlers/audit/audit.handler
|
||||
tags:
|
||||
- Audit
|
||||
summary: Generate an audit
|
||||
description: Generate a security audit for your n8n instance.
|
||||
requestBody:
|
||||
required: false
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
additionalOptions:
|
||||
type: object
|
||||
properties:
|
||||
daysAbandonedWorkflow:
|
||||
type: integer
|
||||
description: Days for a workflow to be considered abandoned if not executed
|
||||
categories:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
enum: ['credentials', 'database', 'nodes', 'filesystem', 'instance']
|
||||
responses:
|
||||
'200':
|
||||
description: Operation successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/audit.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'500':
|
||||
description: Internal server error.
|
||||
@ -1,105 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
Credentials Risk Report:
|
||||
type: object
|
||||
example:
|
||||
risk: credentials
|
||||
sections:
|
||||
[
|
||||
{
|
||||
title: Credentials not used in any workflow,
|
||||
description: These credentials are not used in any workflow. Keeping unused credentials in your instance is an unneeded security risk.,
|
||||
recommendation: Consider deleting these credentials if you no longer need them.,
|
||||
location: [{ kind: credential, id: '1', name: My Test Account }],
|
||||
},
|
||||
]
|
||||
Database Risk Report:
|
||||
type: object
|
||||
example:
|
||||
risk: database
|
||||
sections:
|
||||
[
|
||||
{
|
||||
title: Expressions in "Execute Query" fields in SQL nodes,
|
||||
description: This SQL node has an expression in the "Query" field of an "Execute Query" operation. Building a SQL query with an expression may lead to a SQL injection attack.,
|
||||
recommendation: Consider using the "Query Parameters" field to pass parameters to the query,
|
||||
or validating the input of the expression in the "Query" field.,
|
||||
location:
|
||||
[
|
||||
{
|
||||
kind: node,
|
||||
workflowId: '1',
|
||||
workflowName: 'My Workflow',
|
||||
nodeId: 51eb5852-ce0b-4806-b4ff-e41322a4041a,
|
||||
nodeName: 'MySQL',
|
||||
nodeType: n8n-nodes-base.mySql,
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
Filesystem Risk Report:
|
||||
type: object
|
||||
example:
|
||||
risk: filesystem
|
||||
sections:
|
||||
[
|
||||
{
|
||||
title: Nodes that interact with the filesystem,
|
||||
description: This node reads from and writes to any accessible file in the host filesystem. Sensitive file content may be manipulated through a node operation.,
|
||||
recommendation: Consider protecting any sensitive files in the host filesystem,
|
||||
or refactoring the workflow so that it does not require host filesystem interaction.,
|
||||
location:
|
||||
[
|
||||
{
|
||||
kind: node,
|
||||
workflowId: '1',
|
||||
workflowName: 'My Workflow',
|
||||
nodeId: 51eb5852-ce0b-4806-b4ff-e41322a4041a,
|
||||
nodeName: 'Ready Binary file',
|
||||
nodeType: n8n-nodes-base.readBinaryFile,
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
Nodes Risk Report:
|
||||
type: object
|
||||
example:
|
||||
risk: nodes
|
||||
sections:
|
||||
[
|
||||
{
|
||||
title: Community nodes,
|
||||
description: This node is sourced from the community. Community nodes are not vetted by the n8n team and have full access to the host system.,
|
||||
recommendation: Consider reviewing the source code in any community nodes installed in this n8n instance,
|
||||
and uninstalling any community nodes no longer used.,
|
||||
location:
|
||||
[
|
||||
{
|
||||
kind: community,
|
||||
nodeType: n8n-nodes-test.test,
|
||||
packageUrl: https://www.npmjs.com/package/n8n-nodes-test,
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
Instance Risk Report:
|
||||
type: object
|
||||
example:
|
||||
risk: execution
|
||||
sections:
|
||||
[
|
||||
{
|
||||
title: Unprotected webhooks in instance,
|
||||
description: These webhook nodes have the "Authentication" field set to "None" and are not directly connected to a node to validate the payload. Every unprotected webhook allows your workflow to be called by any third party who knows the webhook URL.,
|
||||
recommendation: Consider setting the "Authentication" field to an option other than "None",
|
||||
or validating the payload with one of the following nodes.,
|
||||
location:
|
||||
[
|
||||
{
|
||||
kind: community,
|
||||
nodeType: n8n-nodes-test.test,
|
||||
packageUrl: https://www.npmjs.com/package/n8n-nodes-test,
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
@ -1,26 +0,0 @@
|
||||
delete:
|
||||
x-eov-operation-id: deleteCredential
|
||||
x-eov-operation-handler: v1/handlers/credentials/credentials.handler
|
||||
tags:
|
||||
- Credential
|
||||
summary: Delete credential by ID
|
||||
description: Deletes a credential from your instance. You must be the owner of the credentials
|
||||
operationId: deleteCredential
|
||||
parameters:
|
||||
- name: id
|
||||
in: path
|
||||
description: The credential ID that needs to be deleted
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Operation successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/credential.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'404':
|
||||
$ref: '../../../../shared/spec/responses/notFound.yml'
|
||||
@ -1,37 +0,0 @@
|
||||
get:
|
||||
x-eov-operation-id: getCredentialType
|
||||
x-eov-operation-handler: v1/handlers/credentials/credentials.handler
|
||||
tags:
|
||||
- Credential
|
||||
summary: Show credential data schema
|
||||
parameters:
|
||||
- name: credentialTypeName
|
||||
in: path
|
||||
description: The credential type name that you want to get the schema for
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: Operation successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
examples:
|
||||
freshdeskApi:
|
||||
value:
|
||||
additionalProperties: false
|
||||
type: 'object'
|
||||
properties: { apiKey: { type: 'string' }, domain: { type: 'string' } }
|
||||
required: ['apiKey', 'domain']
|
||||
slackOAuth2Api:
|
||||
value:
|
||||
additionalProperties: false
|
||||
type: 'object'
|
||||
properties: { clientId: { type: 'string' }, clientSecret: { type: 'string' } }
|
||||
required: ['clientId', 'clientSecret']
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'404':
|
||||
$ref: '../../../../shared/spec/responses/notFound.yml'
|
||||
@ -1,25 +0,0 @@
|
||||
post:
|
||||
x-eov-operation-id: createCredential
|
||||
x-eov-operation-handler: v1/handlers/credentials/credentials.handler
|
||||
tags:
|
||||
- Credential
|
||||
summary: Create a credential
|
||||
description: Creates a credential that can be used by nodes of the specified type.
|
||||
requestBody:
|
||||
description: Credential to be created.
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/credential.yml'
|
||||
responses:
|
||||
'200':
|
||||
description: Operation successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/credential.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'415':
|
||||
description: Unsupported media type.
|
||||
@ -1,30 +0,0 @@
|
||||
required:
|
||||
- name
|
||||
- type
|
||||
- data
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
readOnly: true
|
||||
example: '42'
|
||||
name:
|
||||
type: string
|
||||
example: Joe's Github Credentials
|
||||
type:
|
||||
type: string
|
||||
example: github
|
||||
data:
|
||||
type: object
|
||||
writeOnly: true
|
||||
example: { token: 'ada612vad6fa5df4adf5a5dsf4389adsf76da7s' }
|
||||
createdAt:
|
||||
type: string
|
||||
format: date-time
|
||||
readOnly: true
|
||||
example: '2022-04-29T11:02:29.842Z'
|
||||
updatedAt:
|
||||
type: string
|
||||
format: date-time
|
||||
readOnly: true
|
||||
example: '2022-04-29T11:02:29.842Z'
|
||||
@ -1,18 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
displayName:
|
||||
type: string
|
||||
readOnly: true
|
||||
example: Email
|
||||
name:
|
||||
type: string
|
||||
readOnly: true
|
||||
example: email
|
||||
type:
|
||||
type: string
|
||||
readOnly: true
|
||||
example: string
|
||||
default:
|
||||
type: string
|
||||
readOnly: true
|
||||
example: string
|
||||
@ -1,134 +0,0 @@
|
||||
import express from 'express';
|
||||
|
||||
import { BinaryDataManager } from 'n8n-core';
|
||||
|
||||
import {
|
||||
getExecutions,
|
||||
getExecutionInWorkflows,
|
||||
deleteExecution,
|
||||
getExecutionsCount,
|
||||
} from './executions.service';
|
||||
import * as ActiveExecutions from '@/ActiveExecutions';
|
||||
import { authorize, validCursor } from '../../shared/middlewares/global.middleware';
|
||||
import { ExecutionRequest } from '../../../types';
|
||||
import { getSharedWorkflowIds } from '../workflows/workflows.service';
|
||||
import { encodeNextCursor } from '../../shared/services/pagination.service';
|
||||
import { InternalHooksManager } from '@/InternalHooksManager';
|
||||
|
||||
export = {
|
||||
deleteExecution: [
|
||||
authorize(['owner', 'member']),
|
||||
async (req: ExecutionRequest.Delete, res: express.Response): Promise<express.Response> => {
|
||||
const sharedWorkflowsIds = await getSharedWorkflowIds(req.user);
|
||||
|
||||
// user does not have workflows hence no executions
|
||||
// or the execution he is trying to access belongs to a workflow he does not own
|
||||
if (!sharedWorkflowsIds.length) {
|
||||
return res.status(404).json({ message: 'Not Found' });
|
||||
}
|
||||
|
||||
const { id } = req.params;
|
||||
|
||||
// look for the execution on the workflow the user owns
|
||||
const execution = await getExecutionInWorkflows(id, sharedWorkflowsIds, false);
|
||||
|
||||
if (!execution) {
|
||||
return res.status(404).json({ message: 'Not Found' });
|
||||
}
|
||||
|
||||
await BinaryDataManager.getInstance().deleteBinaryDataByExecutionId(execution.id);
|
||||
|
||||
await deleteExecution(execution);
|
||||
|
||||
execution.id = id;
|
||||
|
||||
return res.json(execution);
|
||||
},
|
||||
],
|
||||
getExecution: [
|
||||
authorize(['owner', 'member']),
|
||||
async (req: ExecutionRequest.Get, res: express.Response): Promise<express.Response> => {
|
||||
const sharedWorkflowsIds = await getSharedWorkflowIds(req.user);
|
||||
|
||||
// user does not have workflows hence no executions
|
||||
// or the execution he is trying to access belongs to a workflow he does not own
|
||||
if (!sharedWorkflowsIds.length) {
|
||||
return res.status(404).json({ message: 'Not Found' });
|
||||
}
|
||||
|
||||
const { id } = req.params;
|
||||
const { includeData = false } = req.query;
|
||||
|
||||
// look for the execution on the workflow the user owns
|
||||
const execution = await getExecutionInWorkflows(id, sharedWorkflowsIds, includeData);
|
||||
|
||||
if (!execution) {
|
||||
return res.status(404).json({ message: 'Not Found' });
|
||||
}
|
||||
|
||||
void InternalHooksManager.getInstance().onUserRetrievedExecution({
|
||||
user_id: req.user.id,
|
||||
public_api: true,
|
||||
});
|
||||
|
||||
return res.json(execution);
|
||||
},
|
||||
],
|
||||
getExecutions: [
|
||||
authorize(['owner', 'member']),
|
||||
validCursor,
|
||||
async (req: ExecutionRequest.GetAll, res: express.Response): Promise<express.Response> => {
|
||||
const {
|
||||
lastId = undefined,
|
||||
limit = 100,
|
||||
status = undefined,
|
||||
includeData = false,
|
||||
workflowId = undefined,
|
||||
} = req.query;
|
||||
|
||||
const sharedWorkflowsIds = await getSharedWorkflowIds(req.user);
|
||||
|
||||
// user does not have workflows hence no executions
|
||||
// or the execution he is trying to access belongs to a workflow he does not own
|
||||
if (!sharedWorkflowsIds.length) {
|
||||
return res.status(200).json({ data: [], nextCursor: null });
|
||||
}
|
||||
|
||||
// get running workflows so we exclude them from the result
|
||||
const runningExecutionsIds = ActiveExecutions.getInstance()
|
||||
.getActiveExecutions()
|
||||
.map(({ id }) => id);
|
||||
|
||||
const filters = {
|
||||
status,
|
||||
limit,
|
||||
lastId,
|
||||
includeData,
|
||||
...(workflowId && { workflowIds: [workflowId] }),
|
||||
excludedExecutionsIds: runningExecutionsIds,
|
||||
};
|
||||
|
||||
const executions = await getExecutions(filters);
|
||||
|
||||
const newLastId = !executions.length ? '0' : executions.slice(-1)[0].id;
|
||||
|
||||
filters.lastId = newLastId;
|
||||
|
||||
const count = await getExecutionsCount(filters);
|
||||
|
||||
void InternalHooksManager.getInstance().onUserRetrievedAllExecutions({
|
||||
user_id: req.user.id,
|
||||
public_api: true,
|
||||
});
|
||||
|
||||
return res.json({
|
||||
data: executions,
|
||||
nextCursor: encodeNextCursor({
|
||||
lastId: newLastId,
|
||||
limit,
|
||||
numberOfNextRecords: count,
|
||||
}),
|
||||
});
|
||||
},
|
||||
],
|
||||
};
|
||||
@ -1,145 +0,0 @@
|
||||
import { parse } from 'flatted';
|
||||
import { In, Not, Raw, LessThan, IsNull, FindOperator } from 'typeorm';
|
||||
|
||||
import * as Db from '@/Db';
|
||||
import type { IExecutionFlattedDb, IExecutionResponseApi } from '@/Interfaces';
|
||||
import { ExecutionEntity } from '@db/entities/ExecutionEntity';
|
||||
import { ExecutionStatus } from '@/PublicApi/types';
|
||||
|
||||
function prepareExecutionData(
|
||||
execution: IExecutionFlattedDb | undefined,
|
||||
): IExecutionResponseApi | undefined {
|
||||
if (!execution) return undefined;
|
||||
|
||||
// @ts-ignore
|
||||
if (!execution.data) return execution;
|
||||
|
||||
return {
|
||||
...execution,
|
||||
data: parse(execution.data) as object,
|
||||
};
|
||||
}
|
||||
|
||||
function getStatusCondition(status: ExecutionStatus) {
|
||||
const condition: {
|
||||
finished?: boolean;
|
||||
waitTill?: FindOperator<ExecutionEntity>;
|
||||
stoppedAt?: FindOperator<ExecutionEntity>;
|
||||
} = {};
|
||||
|
||||
if (status === 'success') {
|
||||
condition.finished = true;
|
||||
} else if (status === 'waiting') {
|
||||
condition.waitTill = Not(IsNull());
|
||||
} else if (status === 'error') {
|
||||
condition.stoppedAt = Not(IsNull());
|
||||
condition.finished = false;
|
||||
}
|
||||
|
||||
return condition;
|
||||
}
|
||||
|
||||
function getExecutionSelectableProperties(includeData?: boolean): Array<keyof IExecutionFlattedDb> {
|
||||
const selectFields: Array<keyof IExecutionFlattedDb> = [
|
||||
'id',
|
||||
'mode',
|
||||
'retryOf',
|
||||
'retrySuccessId',
|
||||
'startedAt',
|
||||
'stoppedAt',
|
||||
'workflowId',
|
||||
'waitTill',
|
||||
'finished',
|
||||
];
|
||||
|
||||
if (includeData) selectFields.push('data');
|
||||
|
||||
return selectFields;
|
||||
}
|
||||
|
||||
export async function getExecutions(params: {
|
||||
limit: number;
|
||||
includeData?: boolean;
|
||||
lastId?: string;
|
||||
workflowIds?: string[];
|
||||
status?: ExecutionStatus;
|
||||
excludedExecutionsIds?: string[];
|
||||
}): Promise<IExecutionResponseApi[]> {
|
||||
type WhereClause = Record<
|
||||
string,
|
||||
string | boolean | FindOperator<string | Partial<ExecutionEntity>>
|
||||
>;
|
||||
|
||||
let where: WhereClause = {};
|
||||
|
||||
if (params.lastId && params.excludedExecutionsIds?.length) {
|
||||
where.id = Raw((id) => `${id} < :lastId AND ${id} NOT IN (:...excludedExecutionsIds)`, {
|
||||
lastId: params.lastId,
|
||||
excludedExecutionsIds: params.excludedExecutionsIds,
|
||||
});
|
||||
} else if (params.lastId) {
|
||||
where.id = LessThan(params.lastId);
|
||||
} else if (params.excludedExecutionsIds?.length) {
|
||||
where.id = Not(In(params.excludedExecutionsIds));
|
||||
}
|
||||
|
||||
if (params.status) {
|
||||
where = { ...where, ...getStatusCondition(params.status) };
|
||||
}
|
||||
|
||||
if (params.workflowIds) {
|
||||
where = { ...where, workflowId: In(params.workflowIds) };
|
||||
}
|
||||
|
||||
const executions = await Db.collections.Execution.find({
|
||||
select: getExecutionSelectableProperties(params.includeData),
|
||||
where,
|
||||
order: { id: 'DESC' },
|
||||
take: params.limit,
|
||||
});
|
||||
|
||||
return executions.map(prepareExecutionData) as IExecutionResponseApi[];
|
||||
}
|
||||
|
||||
export async function getExecutionsCount(data: {
|
||||
limit: number;
|
||||
lastId?: string;
|
||||
workflowIds?: string[];
|
||||
status?: ExecutionStatus;
|
||||
excludedWorkflowIds?: string[];
|
||||
}): Promise<number> {
|
||||
const executions = await Db.collections.Execution.count({
|
||||
where: {
|
||||
...(data.lastId && { id: LessThan(data.lastId) }),
|
||||
...(data.status && { ...getStatusCondition(data.status) }),
|
||||
...(data.workflowIds && { workflowId: In(data.workflowIds) }),
|
||||
...(data.excludedWorkflowIds && { workflowId: Not(In(data.excludedWorkflowIds)) }),
|
||||
},
|
||||
take: data.limit,
|
||||
});
|
||||
|
||||
return executions;
|
||||
}
|
||||
|
||||
export async function getExecutionInWorkflows(
|
||||
id: string,
|
||||
workflowIds: string[],
|
||||
includeData?: boolean,
|
||||
): Promise<IExecutionResponseApi | undefined> {
|
||||
const execution = await Db.collections.Execution.findOne({
|
||||
select: getExecutionSelectableProperties(includeData),
|
||||
where: {
|
||||
id,
|
||||
workflowId: In(workflowIds),
|
||||
},
|
||||
});
|
||||
|
||||
return prepareExecutionData(execution);
|
||||
}
|
||||
|
||||
export async function deleteExecution(
|
||||
execution: IExecutionResponseApi | undefined,
|
||||
): Promise<IExecutionFlattedDb> {
|
||||
// @ts-ignore
|
||||
return Db.collections.Execution.remove(execution);
|
||||
}
|
||||
@ -1,41 +0,0 @@
|
||||
get:
|
||||
x-eov-operation-id: getExecution
|
||||
x-eov-operation-handler: v1/handlers/executions/executions.handler
|
||||
tags:
|
||||
- Execution
|
||||
summary: Retrieve an execution
|
||||
description: Retrieve an execution from you instance.
|
||||
parameters:
|
||||
- $ref: '../schemas/parameters/executionId.yml'
|
||||
- $ref: '../schemas/parameters/includeData.yml'
|
||||
responses:
|
||||
'200':
|
||||
description: Operation successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/execution.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'404':
|
||||
$ref: '../../../../shared/spec/responses/notFound.yml'
|
||||
delete:
|
||||
x-eov-operation-id: deleteExecution
|
||||
x-eov-operation-handler: v1/handlers/executions/executions.handler
|
||||
tags:
|
||||
- Execution
|
||||
summary: Delete an execution
|
||||
description: Deletes an execution from your instance.
|
||||
parameters:
|
||||
- $ref: '../schemas/parameters/executionId.yml'
|
||||
responses:
|
||||
'200':
|
||||
description: Operation successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/execution.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'404':
|
||||
$ref: '../../../../shared/spec/responses/notFound.yml'
|
||||
@ -1,36 +0,0 @@
|
||||
get:
|
||||
x-eov-operation-id: getExecutions
|
||||
x-eov-operation-handler: v1/handlers/executions/executions.handler
|
||||
tags:
|
||||
- Execution
|
||||
summary: Retrieve all executions
|
||||
description: Retrieve all executions from your instance.
|
||||
parameters:
|
||||
- $ref: '../schemas/parameters/includeData.yml'
|
||||
- name: status
|
||||
in: query
|
||||
description: Status to filter the executions by.
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
enum: ['error', 'success', 'waiting']
|
||||
- name: workflowId
|
||||
in: query
|
||||
description: Workflow to filter the executions by.
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
example: '1000'
|
||||
- $ref: '../../../../shared/spec/parameters/limit.yml'
|
||||
- $ref: '../../../../shared/spec/parameters/cursor.yml'
|
||||
responses:
|
||||
'200':
|
||||
description: Operation successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/executionList.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'404':
|
||||
$ref: '../../../../shared/spec/responses/notFound.yml'
|
||||
@ -1,33 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
example: '1000'
|
||||
data:
|
||||
type: object
|
||||
finished:
|
||||
type: boolean
|
||||
example: true
|
||||
mode:
|
||||
type: string
|
||||
enum: ['cli', 'error', 'integrated', 'internal', 'manual', 'retry', 'trigger', 'webhook']
|
||||
retryOf:
|
||||
type: string
|
||||
nullable: true
|
||||
retrySuccessId:
|
||||
type: string
|
||||
nullable: true
|
||||
example: '2'
|
||||
startedAt:
|
||||
type: string
|
||||
format: date-time
|
||||
stoppedAt:
|
||||
type: string
|
||||
format: date-time
|
||||
workflowId:
|
||||
type: string
|
||||
example: '1000'
|
||||
waitTill:
|
||||
type: string
|
||||
nullable: true
|
||||
format: date-time
|
||||
@ -1,11 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
data:
|
||||
type: array
|
||||
items:
|
||||
$ref: './execution.yml'
|
||||
nextCursor:
|
||||
type: string
|
||||
description: Paginate through executions by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection.
|
||||
nullable: true
|
||||
example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA
|
||||
@ -1,6 +0,0 @@
|
||||
name: id
|
||||
in: path
|
||||
description: The ID of the execution.
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
@ -1,6 +0,0 @@
|
||||
name: includeData
|
||||
in: query
|
||||
description: Whether or not to include the execution's detailed data.
|
||||
required: false
|
||||
schema:
|
||||
type: boolean
|
||||
@ -1,20 +0,0 @@
|
||||
post:
|
||||
x-eov-operation-id: activateWorkflow
|
||||
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
|
||||
tags:
|
||||
- Workflow
|
||||
summary: Activate a workflow
|
||||
description: Active a workflow.
|
||||
parameters:
|
||||
- $ref: '../schemas/parameters/workflowId.yml'
|
||||
responses:
|
||||
'200':
|
||||
description: Workflow object
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/workflow.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'404':
|
||||
$ref: '../../../../shared/spec/responses/notFound.yml'
|
||||
@ -1,20 +0,0 @@
|
||||
post:
|
||||
x-eov-operation-id: deactivateWorkflow
|
||||
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
|
||||
tags:
|
||||
- Workflow
|
||||
summary: Deactivate a workflow
|
||||
description: Deactivate a workflow.
|
||||
parameters:
|
||||
- $ref: '../schemas/parameters/workflowId.yml'
|
||||
responses:
|
||||
'200':
|
||||
description: Workflow object
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/workflow.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'404':
|
||||
$ref: '../../../../shared/spec/responses/notFound.yml'
|
||||
@ -1,69 +0,0 @@
|
||||
get:
|
||||
x-eov-operation-id: getWorkflow
|
||||
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
|
||||
tags:
|
||||
- Workflow
|
||||
summary: Retrieves a workflow
|
||||
description: Retrieves a workflow.
|
||||
parameters:
|
||||
- $ref: '../schemas/parameters/workflowId.yml'
|
||||
responses:
|
||||
'200':
|
||||
description: Operation successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/workflow.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'404':
|
||||
$ref: '../../../../shared/spec/responses/notFound.yml'
|
||||
delete:
|
||||
x-eov-operation-id: deleteWorkflow
|
||||
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
|
||||
tags:
|
||||
- Workflow
|
||||
summary: Delete a workflow
|
||||
description: Deletes a workflow.
|
||||
parameters:
|
||||
- $ref: '../schemas/parameters/workflowId.yml'
|
||||
responses:
|
||||
'200':
|
||||
description: Operation successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/workflow.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'404':
|
||||
$ref: '../../../../shared/spec/responses/notFound.yml'
|
||||
put:
|
||||
x-eov-operation-id: updateWorkflow
|
||||
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
|
||||
tags:
|
||||
- Workflow
|
||||
summary: Update a workflow
|
||||
description: Update a workflow.
|
||||
parameters:
|
||||
- $ref: '../schemas/parameters/workflowId.yml'
|
||||
requestBody:
|
||||
description: Updated workflow object.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/workflow.yml'
|
||||
required: true
|
||||
responses:
|
||||
'200':
|
||||
description: Workflow object
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/workflow.yml'
|
||||
'400':
|
||||
$ref: '../../../../shared/spec/responses/badRequest.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
'404':
|
||||
$ref: '../../../../shared/spec/responses/notFound.yml'
|
||||
@ -1,57 +0,0 @@
|
||||
post:
|
||||
x-eov-operation-id: createWorkflow
|
||||
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
|
||||
tags:
|
||||
- Workflow
|
||||
summary: Create a workflow
|
||||
description: Create a workflow in your instance.
|
||||
requestBody:
|
||||
description: Created workflow object.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/workflow.yml'
|
||||
required: true
|
||||
responses:
|
||||
'200':
|
||||
description: A workflow object
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/workflow.yml'
|
||||
'400':
|
||||
$ref: '../../../../shared/spec/responses/badRequest.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
get:
|
||||
x-eov-operation-id: getWorkflows
|
||||
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
|
||||
tags:
|
||||
- Workflow
|
||||
summary: Retrieve all workflows
|
||||
description: Retrieve all workflows from your instance.
|
||||
parameters:
|
||||
- name: active
|
||||
in: query
|
||||
schema:
|
||||
type: boolean
|
||||
example: true
|
||||
- name: tags
|
||||
in: query
|
||||
required: false
|
||||
explode: false
|
||||
allowReserved: true
|
||||
schema:
|
||||
type: string
|
||||
example: test,production
|
||||
- $ref: '../../../../shared/spec/parameters/limit.yml'
|
||||
- $ref: '../../../../shared/spec/parameters/cursor.yml'
|
||||
responses:
|
||||
'200':
|
||||
description: Operation successful.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '../schemas/workflowList.yml'
|
||||
'401':
|
||||
$ref: '../../../../shared/spec/responses/unauthorized.yml'
|
||||
@ -1,58 +0,0 @@
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
example: 0f5532f9-36ba-4bef-86c7-30d607400b15
|
||||
name:
|
||||
type: string
|
||||
example: Jira
|
||||
webhookId:
|
||||
type: string
|
||||
disabled:
|
||||
type: boolean
|
||||
notesInFlow:
|
||||
type: boolean
|
||||
notes:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
example: n8n-nodes-base.Jira
|
||||
typeVersion:
|
||||
type: number
|
||||
example: 1
|
||||
executeOnce:
|
||||
type: boolean
|
||||
example: false
|
||||
alwaysOutputData:
|
||||
type: boolean
|
||||
example: false
|
||||
retryOnFail:
|
||||
type: boolean
|
||||
example: false
|
||||
maxTries:
|
||||
type: number
|
||||
waitBetweenTries:
|
||||
type: number
|
||||
continueOnFail:
|
||||
type: boolean
|
||||
example: false
|
||||
position:
|
||||
type: array
|
||||
items:
|
||||
type: number
|
||||
example: [-100, 80]
|
||||
parameters:
|
||||
type: object
|
||||
example: { additionalProperties: {} }
|
||||
credentials:
|
||||
type: object
|
||||
example: { jiraSoftwareCloudApi: { id: '35', name: 'jiraApi' } }
|
||||
createdAt:
|
||||
type: string
|
||||
format: date-time
|
||||
readOnly: true
|
||||
updatedAt:
|
||||
type: string
|
||||
format: date-time
|
||||
readOnly: true
|
||||
@ -1,6 +0,0 @@
|
||||
name: id
|
||||
in: path
|
||||
description: The ID of the workflow.
|
||||
required: true
|
||||
schema:
|
||||
type: string
|
||||
@ -1,16 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
example: '12'
|
||||
name:
|
||||
type: string
|
||||
example: Production
|
||||
createdAt:
|
||||
type: string
|
||||
format: date-time
|
||||
readOnly: true
|
||||
updatedAt:
|
||||
type: string
|
||||
format: date-time
|
||||
readOnly: true
|
||||
@ -1,49 +0,0 @@
|
||||
type: object
|
||||
additionalProperties: false
|
||||
required:
|
||||
- name
|
||||
- nodes
|
||||
- connections
|
||||
- settings
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
readOnly: true
|
||||
example: '1'
|
||||
name:
|
||||
type: string
|
||||
example: Workflow 1
|
||||
active:
|
||||
type: boolean
|
||||
readOnly: true
|
||||
createdAt:
|
||||
type: string
|
||||
format: date-time
|
||||
readOnly: true
|
||||
updatedAt:
|
||||
type: string
|
||||
format: date-time
|
||||
readOnly: true
|
||||
nodes:
|
||||
type: array
|
||||
items:
|
||||
$ref: './node.yml'
|
||||
connections:
|
||||
type: object
|
||||
example: { main: [{ node: 'Jira', type: 'main', index: 0 }] }
|
||||
settings:
|
||||
$ref: './workflowSettings.yml'
|
||||
staticData:
|
||||
example: { lastId: 1 }
|
||||
nullable: true
|
||||
anyOf:
|
||||
- type: string
|
||||
format: 'jsonString'
|
||||
nullable: true
|
||||
- type: object
|
||||
nullable: true
|
||||
tags:
|
||||
type: array
|
||||
items:
|
||||
$ref: './tag.yml'
|
||||
readOnly: true
|
||||
@ -1,11 +0,0 @@
|
||||
type: object
|
||||
properties:
|
||||
data:
|
||||
type: array
|
||||
items:
|
||||
$ref: './workflow.yml'
|
||||
nextCursor:
|
||||
type: string
|
||||
description: Paginate through workflows by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection.
|
||||
nullable: true
|
||||
example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA
|
||||
@ -1,24 +0,0 @@
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
saveExecutionProgress:
|
||||
type: boolean
|
||||
saveManualExecutions:
|
||||
type: boolean
|
||||
saveDataErrorExecution:
|
||||
type: string
|
||||
enum: ['all', 'none']
|
||||
saveDataSuccessExecution:
|
||||
type: string
|
||||
enum: ['all', 'none']
|
||||
executionTimeout:
|
||||
type: number
|
||||
example: 3600
|
||||
maxLength: 3600
|
||||
errorWorkflow:
|
||||
type: string
|
||||
example: '10'
|
||||
description: The ID of the workflow that contains the error trigger node.
|
||||
timezone:
|
||||
type: string
|
||||
example: America/New_York
|
||||
@ -1,10 +0,0 @@
|
||||
Cursor:
|
||||
$ref: './cursor.yml'
|
||||
Limit:
|
||||
$ref: './limit.yml'
|
||||
ExecutionId:
|
||||
$ref: '../../../handlers/executions/spec/schemas/parameters/executionId.yml'
|
||||
WorkflowId:
|
||||
$ref: '../../../handlers/workflows/spec/schemas/parameters/workflowId.yml'
|
||||
IncludeData:
|
||||
$ref: '../../../handlers/executions/spec/schemas/parameters/includeData.yml'
|
||||
@ -1,7 +0,0 @@
|
||||
name: cursor
|
||||
in: query
|
||||
description: Paginate through users by setting the cursor parameter to a nextCursor attribute returned by a previous request's response. Default value fetches the first "page" of the collection. See pagination for more detail.
|
||||
required: false
|
||||
style: form
|
||||
schema:
|
||||
type: string
|
||||
@ -1,9 +0,0 @@
|
||||
name: limit
|
||||
in: query
|
||||
description: The maximum number of items to return.
|
||||
required: false
|
||||
schema:
|
||||
type: number
|
||||
example: 100
|
||||
default: 100
|
||||
maximum: 250
|
||||
@ -1,6 +0,0 @@
|
||||
NotFound:
|
||||
$ref: './notFound.yml'
|
||||
Unauthorized:
|
||||
$ref: './unauthorized.yml'
|
||||
BadRequest:
|
||||
$ref: './badRequest.yml'
|
||||
@ -1 +0,0 @@
|
||||
description: The request is invalid or provides malformed data.
|
||||
@ -1 +0,0 @@
|
||||
description: The specified resource was not found.
|
||||
@ -1 +0,0 @@
|
||||
description: Unauthorized
|
||||
@ -1,22 +0,0 @@
|
||||
Error:
|
||||
$ref: './error.yml'
|
||||
Execution:
|
||||
$ref: './../../../handlers/executions/spec/schemas/execution.yml'
|
||||
Node:
|
||||
$ref: './../../../handlers/workflows/spec/schemas/node.yml'
|
||||
Tag:
|
||||
$ref: './../../../handlers/workflows/spec/schemas/tag.yml'
|
||||
Workflow:
|
||||
$ref: './../../../handlers/workflows/spec/schemas/workflow.yml'
|
||||
WorkflowSettings:
|
||||
$ref: './../../../handlers/workflows/spec/schemas/workflowSettings.yml'
|
||||
ExecutionList:
|
||||
$ref: './../../../handlers/executions/spec/schemas/executionList.yml'
|
||||
WorkflowList:
|
||||
$ref: './../../../handlers/workflows/spec/schemas/workflowList.yml'
|
||||
Credential:
|
||||
$ref: './../../../handlers/credentials/spec/schemas/credential.yml'
|
||||
CredentialType:
|
||||
$ref: './../../../handlers/credentials/spec/schemas/credentialType.yml'
|
||||
Audit:
|
||||
$ref: './../../../handlers/audit/spec/schemas/audit.yml'
|
||||
@ -1,10 +0,0 @@
|
||||
required:
|
||||
- message
|
||||
type: object
|
||||
properties:
|
||||
code:
|
||||
type: string
|
||||
message:
|
||||
type: string
|
||||
description:
|
||||
type: string
|
||||
Loading…
Reference in New Issue
Block a user