mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
🔀 Merge master
This commit is contained in:
commit
9ab673946b
|
@ -29,7 +29,7 @@ FROM node:14.15-alpine
|
||||||
|
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
RUN apk add --update graphicsmagick tzdata tini su-exec
|
RUN apk add --update graphicsmagick tzdata tini su-exec git
|
||||||
|
|
||||||
WORKDIR /data
|
WORKDIR /data
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ RUN if [ -z "$N8N_VERSION" ] ; then echo "The N8N_VERSION argument is missing!"
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
apt-get update && \
|
apt-get update && \
|
||||||
apt-get -y install graphicsmagick gosu
|
apt-get -y install graphicsmagick gosu git
|
||||||
|
|
||||||
# Set a custom user to not have n8n run as root
|
# Set a custom user to not have n8n run as root
|
||||||
USER root
|
USER root
|
||||||
|
|
|
@ -6,7 +6,7 @@ RUN if [ -z "$N8N_VERSION" ] ; then echo "The N8N_VERSION argument is missing!"
|
||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
apt-get update && \
|
apt-get update && \
|
||||||
apt-get -y install graphicsmagick gosu
|
apt-get -y install graphicsmagick gosu git
|
||||||
|
|
||||||
RUN npm_config_user=root npm install -g full-icu n8n@${N8N_VERSION}
|
RUN npm_config_user=root npm install -g full-icu n8n@${N8N_VERSION}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "n8n",
|
"name": "n8n",
|
||||||
"version": "0.122.1",
|
"version": "0.124.1",
|
||||||
"description": "n8n Workflow Automation Tool",
|
"description": "n8n Workflow Automation Tool",
|
||||||
"license": "SEE LICENSE IN LICENSE.md",
|
"license": "SEE LICENSE IN LICENSE.md",
|
||||||
"homepage": "https://n8n.io",
|
"homepage": "https://n8n.io",
|
||||||
|
@ -106,10 +106,10 @@
|
||||||
"localtunnel": "^2.0.0",
|
"localtunnel": "^2.0.0",
|
||||||
"lodash.get": "^4.4.2",
|
"lodash.get": "^4.4.2",
|
||||||
"mysql2": "~2.2.0",
|
"mysql2": "~2.2.0",
|
||||||
"n8n-core": "~0.73.0",
|
"n8n-core": "~0.74.0",
|
||||||
"n8n-editor-ui": "~0.92.0",
|
"n8n-editor-ui": "~0.94.1",
|
||||||
"n8n-nodes-base": "~0.119.1",
|
"n8n-nodes-base": "~0.121.0",
|
||||||
"n8n-workflow": "~0.60.0",
|
"n8n-workflow": "~0.61.1",
|
||||||
"oauth-1.0a": "^2.2.6",
|
"oauth-1.0a": "^2.2.6",
|
||||||
"open": "^7.0.0",
|
"open": "^7.0.0",
|
||||||
"pg": "^8.3.0",
|
"pg": "^8.3.0",
|
||||||
|
@ -118,7 +118,8 @@
|
||||||
"sqlite3": "^5.0.1",
|
"sqlite3": "^5.0.1",
|
||||||
"sse-channel": "^3.1.1",
|
"sse-channel": "^3.1.1",
|
||||||
"tslib": "1.14.1",
|
"tslib": "1.14.1",
|
||||||
"typeorm": "^0.2.30"
|
"typeorm": "^0.2.30",
|
||||||
|
"winston": "^3.3.3"
|
||||||
},
|
},
|
||||||
"jest": {
|
"jest": {
|
||||||
"transform": {
|
"transform": {
|
||||||
|
|
|
@ -313,7 +313,6 @@ export class ActiveWorkflowRunner {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await Db.collections.Webhook?.insert(webhook);
|
await Db.collections.Webhook?.insert(webhook);
|
||||||
|
|
||||||
const webhookExists = await workflow.runWebhookMethod('checkExists', webhookData, NodeExecuteFunctions, mode, activation, false);
|
const webhookExists = await workflow.runWebhookMethod('checkExists', webhookData, NodeExecuteFunctions, mode, activation, false);
|
||||||
if (webhookExists !== true) {
|
if (webhookExists !== true) {
|
||||||
// If webhook does not exist yet create it
|
// If webhook does not exist yet create it
|
||||||
|
@ -341,7 +340,7 @@ export class ActiveWorkflowRunner {
|
||||||
errorMessage = error.message;
|
errorMessage = error.message;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Error(errorMessage);
|
throw error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Save static data!
|
// Save static data!
|
||||||
|
|
|
@ -336,12 +336,45 @@ export interface IPackageVersions {
|
||||||
cli: string;
|
cli: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IPushData {
|
export type IPushDataType = IPushData['type'];
|
||||||
data: IPushDataExecutionFinished | IPushDataNodeExecuteAfter | IPushDataNodeExecuteBefore | IPushDataTestWebhook | IPushDataConsoleMessage;
|
|
||||||
type: IPushDataType;
|
|
||||||
}
|
|
||||||
|
|
||||||
export type IPushDataType = 'executionFinished' | 'executionStarted' | 'nodeExecuteAfter' | 'nodeExecuteBefore' | 'sendConsoleMessage' | 'testWebhookDeleted' | 'testWebhookReceived';
|
export type IPushData =
|
||||||
|
| PushDataExecutionFinished
|
||||||
|
| PushDataExecutionStarted
|
||||||
|
| PushDataExecuteAfter
|
||||||
|
| PushDataExecuteBefore
|
||||||
|
| PushDataConsoleMessage
|
||||||
|
| PushDataTestWebhook;
|
||||||
|
|
||||||
|
type PushDataExecutionFinished = {
|
||||||
|
data: IPushDataExecutionFinished;
|
||||||
|
type: 'executionFinished';
|
||||||
|
};
|
||||||
|
|
||||||
|
type PushDataExecutionStarted = {
|
||||||
|
data: IPushDataExecutionStarted;
|
||||||
|
type: 'executionStarted';
|
||||||
|
};
|
||||||
|
|
||||||
|
type PushDataExecuteAfter = {
|
||||||
|
data: IPushDataNodeExecuteAfter;
|
||||||
|
type: 'nodeExecuteAfter';
|
||||||
|
};
|
||||||
|
|
||||||
|
type PushDataExecuteBefore = {
|
||||||
|
data: IPushDataNodeExecuteBefore;
|
||||||
|
type: 'nodeExecuteBefore';
|
||||||
|
};
|
||||||
|
|
||||||
|
type PushDataConsoleMessage = {
|
||||||
|
data: IPushDataConsoleMessage;
|
||||||
|
type: 'sendConsoleMessage';
|
||||||
|
};
|
||||||
|
|
||||||
|
type PushDataTestWebhook = {
|
||||||
|
data: IPushDataTestWebhook;
|
||||||
|
type: 'testWebhookDeleted' | 'testWebhookReceived';
|
||||||
|
};
|
||||||
|
|
||||||
export interface IPushDataExecutionFinished {
|
export interface IPushDataExecutionFinished {
|
||||||
data: IRun;
|
data: IRun;
|
||||||
|
|
|
@ -93,6 +93,10 @@ export function sendErrorResponse(res: Response, error: ResponseError) {
|
||||||
message: 'Unknown error',
|
message: 'Unknown error',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (error.name === 'NodeApiError') {
|
||||||
|
Object.assign(response, error);
|
||||||
|
}
|
||||||
|
|
||||||
if (error.errorCode) {
|
if (error.errorCode) {
|
||||||
response.code = error.errorCode;
|
response.code = error.errorCode;
|
||||||
}
|
}
|
||||||
|
|
|
@ -673,10 +673,13 @@ class App {
|
||||||
await WorkflowHelpers.validateWorkflow(updateData);
|
await WorkflowHelpers.validateWorkflow(updateData);
|
||||||
await Db.collections.Workflow!.update(id, updateData).catch(WorkflowHelpers.throwDuplicateEntryError);
|
await Db.collections.Workflow!.update(id, updateData).catch(WorkflowHelpers.throwDuplicateEntryError);
|
||||||
|
|
||||||
const tablePrefix = config.get('database.tablePrefix');
|
if (tags) {
|
||||||
await TagHelpers.removeRelations(req.params.id, tablePrefix);
|
const tablePrefix = config.get('database.tablePrefix');
|
||||||
if (tags?.length) {
|
await TagHelpers.removeRelations(req.params.id, tablePrefix);
|
||||||
await TagHelpers.createRelations(req.params.id, tags, tablePrefix);
|
|
||||||
|
if (tags.length) {
|
||||||
|
await TagHelpers.createRelations(req.params.id, tags, tablePrefix);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// We sadly get nothing back from "update". Neither if it updated a record
|
// We sadly get nothing back from "update". Neither if it updated a record
|
||||||
|
|
|
@ -387,7 +387,12 @@ function hookFunctionsSave(parentProcessMode?: string): IWorkflowExecuteHooks {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Leave log message before flatten as that operation increased memory usage a lot and the chance of a crash is highest here
|
// Leave log message before flatten as that operation increased memory usage a lot and the chance of a crash is highest here
|
||||||
Logger.debug(`Save execution data to database for execution ID ${this.executionId}`, { executionId: this.executionId, workflowId: this.workflowData.id });
|
Logger.debug(`Save execution data to database for execution ID ${this.executionId}`, {
|
||||||
|
executionId: this.executionId,
|
||||||
|
workflowId: this.workflowData.id,
|
||||||
|
finished: fullExecutionData.finished,
|
||||||
|
stoppedAt: fullExecutionData.stoppedAt,
|
||||||
|
});
|
||||||
|
|
||||||
const executionData = ResponseHelper.flattenExecutionData(fullExecutionData);
|
const executionData = ResponseHelper.flattenExecutionData(fullExecutionData);
|
||||||
|
|
||||||
|
@ -404,6 +409,12 @@ function hookFunctionsSave(parentProcessMode?: string): IWorkflowExecuteHooks {
|
||||||
executeErrorWorkflow(this.workflowData, fullRunData, this.mode, this.executionId, this.retryOf);
|
executeErrorWorkflow(this.workflowData, fullRunData, this.mode, this.executionId, this.retryOf);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
Logger.error(`Failed saving execution data to DB on execution ID ${this.executionId}`, {
|
||||||
|
executionId: this.executionId,
|
||||||
|
workflowId: this.workflowData.id,
|
||||||
|
error,
|
||||||
|
});
|
||||||
|
|
||||||
if (!isManualMode) {
|
if (!isManualMode) {
|
||||||
executeErrorWorkflow(this.workflowData, fullRunData, this.mode, undefined, this.retryOf);
|
executeErrorWorkflow(this.workflowData, fullRunData, this.mode, undefined, this.retryOf);
|
||||||
}
|
}
|
||||||
|
@ -438,14 +449,8 @@ function hookFunctionsSaveWorker(): IWorkflowExecuteHooks {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check config to know if execution should be saved or not
|
|
||||||
let saveDataErrorExecution = config.get('executions.saveDataOnError') as string;
|
|
||||||
if (this.workflowData.settings !== undefined) {
|
|
||||||
saveDataErrorExecution = (this.workflowData.settings.saveDataErrorExecution as string) || saveDataErrorExecution;
|
|
||||||
}
|
|
||||||
|
|
||||||
const workflowDidSucceed = !fullRunData.data.resultData.error;
|
const workflowDidSucceed = !fullRunData.data.resultData.error;
|
||||||
if (workflowDidSucceed === false && saveDataErrorExecution === 'none') {
|
if (workflowDidSucceed === false) {
|
||||||
executeErrorWorkflow(this.workflowData, fullRunData, this.mode, undefined, this.retryOf);
|
executeErrorWorkflow(this.workflowData, fullRunData, this.mode, undefined, this.retryOf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -473,7 +478,6 @@ function hookFunctionsSaveWorker(): IWorkflowExecuteHooks {
|
||||||
|
|
||||||
if (fullRunData.finished === true && this.retryOf !== undefined) {
|
if (fullRunData.finished === true && this.retryOf !== undefined) {
|
||||||
// If the retry was successful save the reference it on the original execution
|
// If the retry was successful save the reference it on the original execution
|
||||||
// await Db.collections.Execution!.save(executionData as IExecutionFlattedDb);
|
|
||||||
await Db.collections.Execution!.update(this.retryOf, { retrySuccessId: this.executionId });
|
await Db.collections.Execution!.update(this.retryOf, { retrySuccessId: this.executionId });
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@ -663,7 +667,7 @@ export async function executeWorkflow(workflowInfo: IExecuteWorkflowInfo, additi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
export function sendMessageToUI(source: string, message: string) {
|
export function sendMessageToUI(source: string, message: any) { // tslint:disable-line:no-any
|
||||||
if (this.sessionId === undefined) {
|
if (this.sessionId === undefined) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,7 +137,7 @@ export class WorkflowRunnerProcess {
|
||||||
const additionalData = await WorkflowExecuteAdditionalData.getBase(this.data.credentials, undefined, workflowTimeout <= 0 ? undefined : Date.now() + workflowTimeout * 1000);
|
const additionalData = await WorkflowExecuteAdditionalData.getBase(this.data.credentials, undefined, workflowTimeout <= 0 ? undefined : Date.now() + workflowTimeout * 1000);
|
||||||
additionalData.hooks = this.getProcessForwardHooks();
|
additionalData.hooks = this.getProcessForwardHooks();
|
||||||
|
|
||||||
additionalData.sendMessageToUI = async (source: string, message: string) => {
|
additionalData.sendMessageToUI = async (source: string, message: any) => { // tslint:disable-line:no-any
|
||||||
if (workflowRunner.data!.executionMode !== 'manual') {
|
if (workflowRunner.data!.executionMode !== 'manual') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,27 +13,27 @@ export class UniqueWorkflowNames1620826335440 implements MigrationInterface {
|
||||||
`);
|
`);
|
||||||
|
|
||||||
for (const { name } of workflowNames) {
|
for (const { name } of workflowNames) {
|
||||||
|
const [duplicatesQuery, parameters] = queryRunner.connection.driver.escapeQueryWithParameters(`
|
||||||
const duplicates = await queryRunner.query(`
|
|
||||||
SELECT id, name
|
SELECT id, name
|
||||||
FROM ${tablePrefix}workflow_entity
|
FROM ${tablePrefix}workflow_entity
|
||||||
WHERE name = '${name}'
|
WHERE name = :name
|
||||||
ORDER BY createdAt ASC
|
ORDER BY createdAt ASC
|
||||||
`);
|
`, { name }, {});
|
||||||
|
|
||||||
|
const duplicates = await queryRunner.query(duplicatesQuery, parameters);
|
||||||
|
|
||||||
if (duplicates.length > 1) {
|
if (duplicates.length > 1) {
|
||||||
|
|
||||||
await Promise.all(duplicates.map(({ id, name }: { id: number; name: string; }, index: number) => {
|
await Promise.all(duplicates.map(({ id, name }: { id: number; name: string; }, index: number) => {
|
||||||
if (index === 0) return Promise.resolve();
|
if (index === 0) return Promise.resolve();
|
||||||
return queryRunner.query(`
|
const [updateQuery, updateParams] = queryRunner.connection.driver.escapeQueryWithParameters(`
|
||||||
UPDATE ${tablePrefix}workflow_entity
|
UPDATE ${tablePrefix}workflow_entity
|
||||||
SET name = '${name} ${index + 1}'
|
SET name = :name
|
||||||
WHERE id = '${id}'
|
WHERE id = '${id}'
|
||||||
`);
|
`, { name: `${name} ${index + 1}`}, {});
|
||||||
|
|
||||||
|
return queryRunner.query(updateQuery, updateParams);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
await queryRunner.query('ALTER TABLE `' + tablePrefix + 'workflow_entity` ADD UNIQUE INDEX `IDX_' + tablePrefix + '943d8f922be094eb507cb9a7f9` (`name`)');
|
await queryRunner.query('ALTER TABLE `' + tablePrefix + 'workflow_entity` ADD UNIQUE INDEX `IDX_' + tablePrefix + '943d8f922be094eb507cb9a7f9` (`name`)');
|
||||||
|
|
|
@ -12,34 +12,33 @@ export class UniqueWorkflowNames1620824779533 implements MigrationInterface {
|
||||||
tablePrefix = schema + '.' + tablePrefix;
|
tablePrefix = schema + '.' + tablePrefix;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const workflowNames = await queryRunner.query(`
|
const workflowNames = await queryRunner.query(`
|
||||||
SELECT name
|
SELECT name
|
||||||
FROM ${tablePrefix}workflow_entity
|
FROM ${tablePrefix}workflow_entity
|
||||||
`);
|
`);
|
||||||
|
|
||||||
for (const { name } of workflowNames) {
|
for (const { name } of workflowNames) {
|
||||||
|
const [duplicatesQuery, parameters] = queryRunner.connection.driver.escapeQueryWithParameters(`
|
||||||
const duplicates = await queryRunner.query(`
|
|
||||||
SELECT id, name
|
SELECT id, name
|
||||||
FROM ${tablePrefix}workflow_entity
|
FROM ${tablePrefix}workflow_entity
|
||||||
WHERE name = '${name}'
|
WHERE name = :name
|
||||||
ORDER BY "createdAt" ASC
|
ORDER BY "createdAt" ASC
|
||||||
`);
|
`, { name }, {});
|
||||||
|
|
||||||
|
const duplicates = await queryRunner.query(duplicatesQuery, parameters);
|
||||||
|
|
||||||
if (duplicates.length > 1) {
|
if (duplicates.length > 1) {
|
||||||
|
|
||||||
await Promise.all(duplicates.map(({ id, name }: { id: number; name: string; }, index: number) => {
|
await Promise.all(duplicates.map(({ id, name }: { id: number; name: string; }, index: number) => {
|
||||||
if (index === 0) return Promise.resolve();
|
if (index === 0) return Promise.resolve();
|
||||||
return queryRunner.query(`
|
const [updateQuery, updateParams] = queryRunner.connection.driver.escapeQueryWithParameters(`
|
||||||
UPDATE ${tablePrefix}workflow_entity
|
UPDATE ${tablePrefix}workflow_entity
|
||||||
SET name = '${name} ${index + 1}'
|
SET name = :name
|
||||||
WHERE id = '${id}'
|
WHERE id = '${id}'
|
||||||
`);
|
`, { name: `${name} ${index + 1}`}, {});
|
||||||
|
|
||||||
|
return queryRunner.query(updateQuery, updateParams);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_${tablePrefixPure}a252c527c4c89237221fe2c0ab" ON ${tablePrefix}workflow_entity ("name") `);
|
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_${tablePrefixPure}a252c527c4c89237221fe2c0ab" ON ${tablePrefix}workflow_entity ("name") `);
|
||||||
|
|
|
@ -13,27 +13,27 @@ export class UniqueWorkflowNames1620821879465 implements MigrationInterface {
|
||||||
`);
|
`);
|
||||||
|
|
||||||
for (const { name } of workflowNames) {
|
for (const { name } of workflowNames) {
|
||||||
|
const [duplicatesQuery, parameters] = queryRunner.connection.driver.escapeQueryWithParameters(`
|
||||||
const duplicates = await queryRunner.query(`
|
|
||||||
SELECT id, name
|
SELECT id, name
|
||||||
FROM "${tablePrefix}workflow_entity"
|
FROM "${tablePrefix}workflow_entity"
|
||||||
WHERE name = "${name}"
|
WHERE name = :name
|
||||||
ORDER BY createdAt ASC
|
ORDER BY createdAt ASC
|
||||||
`);
|
`, { name }, {});
|
||||||
|
|
||||||
|
const duplicates = await queryRunner.query(duplicatesQuery, parameters);
|
||||||
|
|
||||||
if (duplicates.length > 1) {
|
if (duplicates.length > 1) {
|
||||||
|
|
||||||
await Promise.all(duplicates.map(({ id, name }: { id: number; name: string; }, index: number) => {
|
await Promise.all(duplicates.map(({ id, name }: { id: number; name: string; }, index: number) => {
|
||||||
if (index === 0) return Promise.resolve();
|
if (index === 0) return Promise.resolve();
|
||||||
return queryRunner.query(`
|
const [updateQuery, updateParams] = queryRunner.connection.driver.escapeQueryWithParameters(`
|
||||||
UPDATE "${tablePrefix}workflow_entity"
|
UPDATE "${tablePrefix}workflow_entity"
|
||||||
SET name = "${name} ${index + 1}"
|
SET name = :name
|
||||||
WHERE id = '${id}'
|
WHERE id = '${id}'
|
||||||
`);
|
`, { name: `${name} ${index + 1}`}, {});
|
||||||
|
|
||||||
|
return queryRunner.query(updateQuery, updateParams);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_${tablePrefix}943d8f922be094eb507cb9a7f9" ON "${tablePrefix}workflow_entity" ("name") `);
|
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_${tablePrefix}943d8f922be094eb507cb9a7f9" ON "${tablePrefix}workflow_entity" ("name") `);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "n8n-core",
|
"name": "n8n-core",
|
||||||
"version": "0.73.0",
|
"version": "0.74.0",
|
||||||
"description": "Core functionality of n8n",
|
"description": "Core functionality of n8n",
|
||||||
"license": "SEE LICENSE IN LICENSE.md",
|
"license": "SEE LICENSE IN LICENSE.md",
|
||||||
"homepage": "https://n8n.io",
|
"homepage": "https://n8n.io",
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
"file-type": "^14.6.2",
|
"file-type": "^14.6.2",
|
||||||
"lodash.get": "^4.4.2",
|
"lodash.get": "^4.4.2",
|
||||||
"mime-types": "^2.1.27",
|
"mime-types": "^2.1.27",
|
||||||
"n8n-workflow": "~0.60.0",
|
"n8n-workflow": "~0.61.0",
|
||||||
"oauth-1.0a": "^2.2.6",
|
"oauth-1.0a": "^2.2.6",
|
||||||
"p-cancelable": "^2.0.0",
|
"p-cancelable": "^2.0.0",
|
||||||
"request": "^2.88.2",
|
"request": "^2.88.2",
|
||||||
|
|
|
@ -749,7 +749,7 @@ export function getExecuteFunctions(workflow: Workflow, runExecutionData: IRunEx
|
||||||
return workflow.getStaticData(type, node);
|
return workflow.getStaticData(type, node);
|
||||||
},
|
},
|
||||||
prepareOutputData: NodeHelpers.prepareOutputData,
|
prepareOutputData: NodeHelpers.prepareOutputData,
|
||||||
sendMessageToUI(message: string): void {
|
sendMessageToUI(message: any): void { // tslint:disable-line:no-any
|
||||||
if (mode !== 'manual') {
|
if (mode !== 'manual') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "n8n-editor-ui",
|
"name": "n8n-editor-ui",
|
||||||
"version": "0.92.0",
|
"version": "0.94.1",
|
||||||
"description": "Workflow Editor UI for n8n",
|
"description": "Workflow Editor UI for n8n",
|
||||||
"license": "SEE LICENSE IN LICENSE.md",
|
"license": "SEE LICENSE IN LICENSE.md",
|
||||||
"homepage": "https://n8n.io",
|
"homepage": "https://n8n.io",
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
"lodash.debounce": "^4.0.8",
|
"lodash.debounce": "^4.0.8",
|
||||||
"lodash.get": "^4.4.2",
|
"lodash.get": "^4.4.2",
|
||||||
"lodash.set": "^4.3.2",
|
"lodash.set": "^4.3.2",
|
||||||
"n8n-workflow": "~0.60.0",
|
"n8n-workflow": "~0.61.0",
|
||||||
"node-sass": "^4.12.0",
|
"node-sass": "^4.12.0",
|
||||||
"normalize-wheel": "^1.0.1",
|
"normalize-wheel": "^1.0.1",
|
||||||
"prismjs": "^1.17.1",
|
"prismjs": "^1.17.1",
|
||||||
|
|
|
@ -355,12 +355,45 @@ export interface IExecutionDeleteFilter {
|
||||||
ids?: string[];
|
ids?: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IPushData {
|
export type IPushDataType = IPushData['type'];
|
||||||
data: IPushDataExecutionFinished | IPushDataNodeExecuteAfter | IPushDataNodeExecuteBefore | IPushDataTestWebhook | IPushDataConsoleMessage;
|
|
||||||
type: IPushDataType;
|
|
||||||
}
|
|
||||||
|
|
||||||
export type IPushDataType = 'executionFinished' | 'executionStarted' | 'nodeExecuteAfter' | 'nodeExecuteBefore' | 'sendConsoleMessage' | 'testWebhookDeleted' | 'testWebhookReceived';
|
export type IPushData =
|
||||||
|
| PushDataExecutionFinished
|
||||||
|
| PushDataExecutionStarted
|
||||||
|
| PushDataExecuteAfter
|
||||||
|
| PushDataExecuteBefore
|
||||||
|
| PushDataConsoleMessage
|
||||||
|
| PushDataTestWebhook;
|
||||||
|
|
||||||
|
type PushDataExecutionFinished = {
|
||||||
|
data: IPushDataExecutionFinished;
|
||||||
|
type: 'executionFinished';
|
||||||
|
};
|
||||||
|
|
||||||
|
type PushDataExecutionStarted = {
|
||||||
|
data: IPushDataExecutionStarted;
|
||||||
|
type: 'executionStarted';
|
||||||
|
};
|
||||||
|
|
||||||
|
type PushDataExecuteAfter = {
|
||||||
|
data: IPushDataNodeExecuteAfter;
|
||||||
|
type: 'nodeExecuteAfter';
|
||||||
|
};
|
||||||
|
|
||||||
|
type PushDataExecuteBefore = {
|
||||||
|
data: IPushDataNodeExecuteBefore;
|
||||||
|
type: 'nodeExecuteBefore';
|
||||||
|
};
|
||||||
|
|
||||||
|
type PushDataConsoleMessage = {
|
||||||
|
data: IPushDataConsoleMessage;
|
||||||
|
type: 'sendConsoleMessage';
|
||||||
|
};
|
||||||
|
|
||||||
|
type PushDataTestWebhook = {
|
||||||
|
data: IPushDataTestWebhook;
|
||||||
|
type: 'testWebhookDeleted' | 'testWebhookReceived';
|
||||||
|
};
|
||||||
|
|
||||||
export interface IPushDataExecutionStarted {
|
export interface IPushDataExecutionStarted {
|
||||||
executionId: string;
|
executionId: string;
|
||||||
|
|
|
@ -68,9 +68,14 @@ export async function makeRestApiRequest(context: IRestApiContext, method: Metho
|
||||||
|
|
||||||
const errorResponseData = error.response.data;
|
const errorResponseData = error.response.data;
|
||||||
if (errorResponseData !== undefined && errorResponseData.message !== undefined) {
|
if (errorResponseData !== undefined && errorResponseData.message !== undefined) {
|
||||||
|
if (errorResponseData.name === 'NodeApiError') {
|
||||||
|
errorResponseData.httpStatusCode = error.response.status;
|
||||||
|
throw errorResponseData;
|
||||||
|
}
|
||||||
|
|
||||||
throw new ResponseError(errorResponseData.message, {errorCode: errorResponseData.code, httpStatusCode: error.response.status, stack: errorResponseData.stack});
|
throw new ResponseError(errorResponseData.message, {errorCode: errorResponseData.code, httpStatusCode: error.response.status, stack: errorResponseData.stack});
|
||||||
}
|
}
|
||||||
|
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,10 +37,11 @@
|
||||||
<span class="box-card__subtitle">Data below may contain sensitive information. Proceed with caution when sharing.</span>
|
<span class="box-card__subtitle">Data below may contain sensitive information. Proceed with caution when sharing.</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-button class="copy-button" @click="copyCause" circle type="text" title="Copy to clipboard">
|
<el-button v-if="displayCause" class="copy-button" @click="copyCause" circle type="text" title="Copy to clipboard">
|
||||||
<font-awesome-icon icon="copy" />
|
<font-awesome-icon icon="copy" />
|
||||||
</el-button>
|
</el-button>
|
||||||
<vue-json-pretty
|
<vue-json-pretty
|
||||||
|
v-if="displayCause"
|
||||||
:data="error.cause"
|
:data="error.cause"
|
||||||
:deep="3"
|
:deep="3"
|
||||||
:showLength="true"
|
:showLength="true"
|
||||||
|
@ -48,6 +49,9 @@
|
||||||
path="error"
|
path="error"
|
||||||
class="json-data"
|
class="json-data"
|
||||||
/>
|
/>
|
||||||
|
<span v-else>
|
||||||
|
The exact cause can sadly not displayed right now as the returned data is too large.
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
@ -67,13 +71,14 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
import VueJsonPretty from 'vue-json-pretty';
|
import VueJsonPretty from 'vue-json-pretty';
|
||||||
import { copyPaste } from '@/components/mixins/copyPaste';
|
import { copyPaste } from '@/components/mixins/copyPaste';
|
||||||
import { showMessage } from '@/components/mixins/showMessage';
|
import { showMessage } from '@/components/mixins/showMessage';
|
||||||
import mixins from 'vue-typed-mixins';
|
import mixins from 'vue-typed-mixins';
|
||||||
|
import {
|
||||||
|
MAX_DISPLAY_DATA_SIZE,
|
||||||
|
} from '@/constants';
|
||||||
|
|
||||||
export default mixins(
|
export default mixins(
|
||||||
copyPaste,
|
copyPaste,
|
||||||
|
@ -86,6 +91,11 @@ export default mixins(
|
||||||
components: {
|
components: {
|
||||||
VueJsonPretty,
|
VueJsonPretty,
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
displayCause(): boolean {
|
||||||
|
return JSON.stringify(this.error.cause).length < MAX_DISPLAY_DATA_SIZE;
|
||||||
|
},
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
copyCause() {
|
copyCause() {
|
||||||
this.copyToClipboard(JSON.stringify(this.error.cause));
|
this.copyToClipboard(JSON.stringify(this.error.cause));
|
||||||
|
|
|
@ -73,9 +73,15 @@ export default mixins(
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
valueChanged (value: string) {
|
valueChanged (value: string, forceUpdate = false) {
|
||||||
this.latestValue = value;
|
this.latestValue = value;
|
||||||
this.callDebounced('updateDisplayValue', 500);
|
|
||||||
|
if (forceUpdate === true) {
|
||||||
|
this.updateDisplayValue();
|
||||||
|
this.$emit('valueChanged', this.latestValue);
|
||||||
|
} else {
|
||||||
|
this.callDebounced('updateDisplayValue', 500);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
updateDisplayValue () {
|
updateDisplayValue () {
|
||||||
|
|
|
@ -233,12 +233,14 @@ export default mixins(
|
||||||
this.update();
|
this.update();
|
||||||
} else {
|
} else {
|
||||||
// If no position got found add it to end
|
// If no position got found add it to end
|
||||||
let newValue = this.value;
|
let newValue = this.getValue();
|
||||||
if (newValue !== '=') {
|
if (newValue === '=' || newValue === '=0') {
|
||||||
newValue += ` `;
|
newValue = `{{${eventData.variable}}}\n`;
|
||||||
|
} else {
|
||||||
|
newValue += ` {{${eventData.variable}}}\n`;
|
||||||
}
|
}
|
||||||
newValue += `{{${eventData.variable}}}\n`;
|
|
||||||
this.$emit('change', newValue);
|
this.$emit('change', newValue, true);
|
||||||
if (!this.resolvedValue) {
|
if (!this.resolvedValue) {
|
||||||
Vue.nextTick(() => {
|
Vue.nextTick(() => {
|
||||||
this.initValue();
|
this.initValue();
|
||||||
|
|
|
@ -431,7 +431,11 @@ export default mixins(
|
||||||
const importConfirm = await this.confirmMessage(`When you switch workflows your current workflow changes will be lost.`, 'Save your Changes?', 'warning', 'Yes, switch workflows and forget changes');
|
const importConfirm = await this.confirmMessage(`When you switch workflows your current workflow changes will be lost.`, 'Save your Changes?', 'warning', 'Yes, switch workflows and forget changes');
|
||||||
if (importConfirm === true) {
|
if (importConfirm === true) {
|
||||||
this.$store.commit('setStateDirty', false);
|
this.$store.commit('setStateDirty', false);
|
||||||
this.$router.push({ name: 'NodeViewNew' });
|
if (this.$router.currentRoute.name === 'NodeViewNew') {
|
||||||
|
this.$root.$emit('newWorkflow');
|
||||||
|
} else {
|
||||||
|
this.$router.push({ name: 'NodeViewNew' });
|
||||||
|
}
|
||||||
|
|
||||||
this.$showMessage({
|
this.$showMessage({
|
||||||
title: 'Workflow created',
|
title: 'Workflow created',
|
||||||
|
@ -440,7 +444,9 @@ export default mixins(
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.$router.push({ name: 'NodeViewNew' });
|
if (this.$router.currentRoute.name !== 'NodeViewNew') {
|
||||||
|
this.$router.push({ name: 'NodeViewNew' });
|
||||||
|
}
|
||||||
|
|
||||||
this.$showMessage({
|
this.$showMessage({
|
||||||
title: 'Workflow created',
|
title: 'Workflow created',
|
||||||
|
|
|
@ -533,7 +533,7 @@ export default mixins(
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
if (this.$refs.inputField.$el) {
|
if (this.$refs.inputField.$el) {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
(this.$refs.inputField.$el.querySelector('input') as HTMLInputElement).focus();
|
(this.$refs.inputField.$el.querySelector(this.getStringInputType === 'textarea' ? 'textarea' : 'input') as HTMLInputElement).focus();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
v-for="tag in tags"
|
v-for="tag in tags"
|
||||||
:key="tag.id"
|
:key="tag.id"
|
||||||
:class="{clickable: !tag.hidden}"
|
:class="{clickable: !tag.hidden}"
|
||||||
|
@click="(e) => onClick(e, tag)"
|
||||||
>
|
>
|
||||||
<el-tag
|
<el-tag
|
||||||
:title="tag.title"
|
:title="tag.title"
|
||||||
|
@ -108,7 +109,9 @@ export default Vue.extend({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onClick(e: MouseEvent, tag: TagEl) {
|
onClick(e: MouseEvent, tag: TagEl) {
|
||||||
e.stopPropagation();
|
if (this.clickable) {
|
||||||
|
e.stopPropagation();
|
||||||
|
}
|
||||||
|
|
||||||
// if tag is hidden or not displayed
|
// if tag is hidden or not displayed
|
||||||
if (!tag.hidden) {
|
if (!tag.hidden) {
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<div :key="scope.row.id">
|
<div :key="scope.row.id">
|
||||||
<span class="name">{{scope.row.name}}</span>
|
<span class="name">{{scope.row.name}}</span>
|
||||||
<TagsContainer class="hidden-sm-and-down" :tagIds="getIds(scope.row.tags)" :limit="3" @click="onTagClick" />
|
<TagsContainer class="hidden-sm-and-down" :tagIds="getIds(scope.row.tags)" :limit="3" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -124,11 +124,6 @@ export default mixins(
|
||||||
updateTagsFilter(tags: string[]) {
|
updateTagsFilter(tags: string[]) {
|
||||||
this.filterTagIds = tags;
|
this.filterTagIds = tags;
|
||||||
},
|
},
|
||||||
onTagClick(tagId: string) {
|
|
||||||
if (tagId !== 'count' && !this.filterTagIds.includes(tagId)) {
|
|
||||||
this.filterTagIds.push(tagId);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async openWorkflow (data: IWorkflowShortResponse, column: any) { // tslint:disable-line:no-any
|
async openWorkflow (data: IWorkflowShortResponse, column: any) { // tslint:disable-line:no-any
|
||||||
if (column.label !== 'Active') {
|
if (column.label !== 'Active') {
|
||||||
|
|
||||||
|
|
|
@ -163,7 +163,7 @@ export const pushConnection = mixins(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (receivedData.type === 'sendConsoleMessage') {
|
if (receivedData.type === 'sendConsoleMessage') {
|
||||||
const pushData = receivedData.data as IPushDataConsoleMessage;
|
const pushData = receivedData.data;
|
||||||
console.log(pushData.source, pushData.message); // eslint-disable-line no-console
|
console.log(pushData.source, pushData.message); // eslint-disable-line no-console
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -175,12 +175,12 @@ export const pushConnection = mixins(
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (['nodeExecuteAfter', 'nodeExecuteBefore'].includes(receivedData.type)) {
|
if (receivedData.type === 'nodeExecuteAfter' || receivedData.type === 'nodeExecuteBefore') {
|
||||||
if (this.$store.getters.isActionActive('workflowRunning') === false) {
|
if (this.$store.getters.isActionActive('workflowRunning') === false) {
|
||||||
// No workflow is running so ignore the messages
|
// No workflow is running so ignore the messages
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const pushData = receivedData.data as IPushDataNodeExecuteBefore;
|
const pushData = receivedData.data;
|
||||||
if (this.$store.getters.activeExecutionId !== pushData.executionId) {
|
if (this.$store.getters.activeExecutionId !== pushData.executionId) {
|
||||||
// The data is not for the currently active execution or
|
// The data is not for the currently active execution or
|
||||||
// we do not have the execution id yet.
|
// we do not have the execution id yet.
|
||||||
|
@ -193,7 +193,7 @@ export const pushConnection = mixins(
|
||||||
|
|
||||||
if (receivedData.type === 'executionFinished') {
|
if (receivedData.type === 'executionFinished') {
|
||||||
// The workflow finished executing
|
// The workflow finished executing
|
||||||
const pushData = receivedData.data as IPushDataExecutionFinished;
|
const pushData = receivedData.data;
|
||||||
|
|
||||||
this.$store.commit('finishActiveExecution', pushData);
|
this.$store.commit('finishActiveExecution', pushData);
|
||||||
|
|
||||||
|
@ -279,7 +279,7 @@ export const pushConnection = mixins(
|
||||||
});
|
});
|
||||||
|
|
||||||
} else if (receivedData.type === 'executionStarted') {
|
} else if (receivedData.type === 'executionStarted') {
|
||||||
const pushData = receivedData.data as IPushDataExecutionStarted;
|
const pushData = receivedData.data;
|
||||||
|
|
||||||
const executionData: IExecutionsCurrentSummaryExtended = {
|
const executionData: IExecutionsCurrentSummaryExtended = {
|
||||||
id: pushData.executionId,
|
id: pushData.executionId,
|
||||||
|
@ -294,15 +294,15 @@ export const pushConnection = mixins(
|
||||||
this.$store.commit('addActiveExecution', executionData);
|
this.$store.commit('addActiveExecution', executionData);
|
||||||
} else if (receivedData.type === 'nodeExecuteAfter') {
|
} else if (receivedData.type === 'nodeExecuteAfter') {
|
||||||
// A node finished to execute. Add its data
|
// A node finished to execute. Add its data
|
||||||
const pushData = receivedData.data as IPushDataNodeExecuteAfter;
|
const pushData = receivedData.data;
|
||||||
this.$store.commit('addNodeExecutionData', pushData);
|
this.$store.commit('addNodeExecutionData', pushData);
|
||||||
} else if (receivedData.type === 'nodeExecuteBefore') {
|
} else if (receivedData.type === 'nodeExecuteBefore') {
|
||||||
// A node started to be executed. Set it as executing.
|
// A node started to be executed. Set it as executing.
|
||||||
const pushData = receivedData.data as IPushDataNodeExecuteBefore;
|
const pushData = receivedData.data;
|
||||||
this.$store.commit('setExecutingNode', pushData.nodeName);
|
this.$store.commit('setExecutingNode', pushData.nodeName);
|
||||||
} else if (receivedData.type === 'testWebhookDeleted') {
|
} else if (receivedData.type === 'testWebhookDeleted') {
|
||||||
// A test-webhook got deleted
|
// A test-webhook got deleted
|
||||||
const pushData = receivedData.data as IPushDataTestWebhook;
|
const pushData = receivedData.data;
|
||||||
|
|
||||||
if (pushData.workflowId === this.$store.getters.workflowId) {
|
if (pushData.workflowId === this.$store.getters.workflowId) {
|
||||||
this.$store.commit('setExecutionWaitingForWebhook', false);
|
this.$store.commit('setExecutionWaitingForWebhook', false);
|
||||||
|
@ -310,7 +310,7 @@ export const pushConnection = mixins(
|
||||||
}
|
}
|
||||||
} else if (receivedData.type === 'testWebhookReceived') {
|
} else if (receivedData.type === 'testWebhookReceived') {
|
||||||
// A test-webhook did get called
|
// A test-webhook did get called
|
||||||
const pushData = receivedData.data as IPushDataTestWebhook;
|
const pushData = receivedData.data;
|
||||||
|
|
||||||
if (pushData.workflowId === this.$store.getters.workflowId) {
|
if (pushData.workflowId === this.$store.getters.workflowId) {
|
||||||
this.$store.commit('setExecutionWaitingForWebhook', false);
|
this.$store.commit('setExecutionWaitingForWebhook', false);
|
||||||
|
|
|
@ -1,16 +1,12 @@
|
||||||
import Vue from 'vue';
|
|
||||||
|
|
||||||
import { Notification } from 'element-ui';
|
import { Notification } from 'element-ui';
|
||||||
import { ElNotificationOptions } from 'element-ui/types/notification';
|
import { ElNotificationOptions } from 'element-ui/types/notification';
|
||||||
import mixins from 'vue-typed-mixins';
|
import mixins from 'vue-typed-mixins';
|
||||||
|
|
||||||
import { externalHooks } from '@/components/mixins/externalHooks';
|
import { externalHooks } from '@/components/mixins/externalHooks';
|
||||||
|
|
||||||
|
|
||||||
// export const showMessage = {
|
|
||||||
export const showMessage = mixins(externalHooks).extend({
|
export const showMessage = mixins(externalHooks).extend({
|
||||||
methods: {
|
methods: {
|
||||||
$showMessage (messageData: ElNotificationOptions) {
|
$showMessage(messageData: ElNotificationOptions) {
|
||||||
messageData.dangerouslyUseHTMLString = true;
|
messageData.dangerouslyUseHTMLString = true;
|
||||||
if (messageData.position === undefined) {
|
if (messageData.position === undefined) {
|
||||||
messageData.position = 'bottom-right';
|
messageData.position = 'bottom-right';
|
||||||
|
@ -18,14 +14,47 @@ export const showMessage = mixins(externalHooks).extend({
|
||||||
|
|
||||||
return Notification(messageData);
|
return Notification(messageData);
|
||||||
},
|
},
|
||||||
$showError (error: Error, title: string, message: string) {
|
|
||||||
|
$showError(error: Error, title: string, message: string) {
|
||||||
this.$showMessage({
|
this.$showMessage({
|
||||||
title,
|
title,
|
||||||
message: `${message}<br /><i>${error.message}</i>`,
|
message: `
|
||||||
|
${message}
|
||||||
|
<br>
|
||||||
|
<i>${error.message}</i>
|
||||||
|
${this.collapsableDetails(error)}`,
|
||||||
type: 'error',
|
type: 'error',
|
||||||
duration: 0,
|
duration: 0,
|
||||||
});
|
});
|
||||||
this.$externalHooks().run('showMessage.showError', { title, message, errorMessage: error.message });
|
|
||||||
|
this.$externalHooks().run('showMessage.showError', {
|
||||||
|
title,
|
||||||
|
message,
|
||||||
|
errorMessage: error.message,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
collapsableDetails({ description, node }: Error) {
|
||||||
|
if (!description) return '';
|
||||||
|
|
||||||
|
const errorDescription =
|
||||||
|
description.length > 500
|
||||||
|
? `${description.slice(0, 500)}...`
|
||||||
|
: description;
|
||||||
|
|
||||||
|
return `
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<details>
|
||||||
|
<summary
|
||||||
|
style="color: #ff6d5a; font-weight: bold; cursor: pointer;"
|
||||||
|
>
|
||||||
|
Show Details
|
||||||
|
</summary>
|
||||||
|
<p>${node.name}: ${errorDescription}</p>
|
||||||
|
</details>
|
||||||
|
`;
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
@ -495,10 +495,14 @@ export default mixins(
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
this.$router.push({ name: 'NodeViewNew' });
|
if (this.$router.currentRoute.name === 'NodeViewNew') {
|
||||||
|
this.$root.$emit('newWorkflow');
|
||||||
|
} else {
|
||||||
|
this.$router.push({ name: 'NodeViewNew' });
|
||||||
|
}
|
||||||
|
|
||||||
this.$showMessage({
|
this.$showMessage({
|
||||||
title: 'Created',
|
title: 'Workflow created',
|
||||||
message: 'A new workflow got created!',
|
message: 'A new workflow got created!',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
});
|
});
|
||||||
|
@ -2063,6 +2067,8 @@ export default mixins(
|
||||||
const resData = await this.importWorkflowData(data.data as IWorkflowDataUpdate);
|
const resData = await this.importWorkflowData(data.data as IWorkflowDataUpdate);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.$root.$on('newWorkflow', this.newWorkflow);
|
||||||
|
|
||||||
this.$root.$on('importWorkflowUrl', async (data: IDataObject) => {
|
this.$root.$on('importWorkflowUrl', async (data: IDataObject) => {
|
||||||
const workflowData = await this.getWorkflowDataFromUrl(data.url as string);
|
const workflowData = await this.getWorkflowDataFromUrl(data.url as string);
|
||||||
if (workflowData !== undefined) {
|
if (workflowData !== undefined) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "n8n-node-dev",
|
"name": "n8n-node-dev",
|
||||||
"version": "0.13.0",
|
"version": "0.14.0",
|
||||||
"description": "CLI to simplify n8n credentials/node development",
|
"description": "CLI to simplify n8n credentials/node development",
|
||||||
"license": "SEE LICENSE IN LICENSE.md",
|
"license": "SEE LICENSE IN LICENSE.md",
|
||||||
"homepage": "https://n8n.io",
|
"homepage": "https://n8n.io",
|
||||||
|
@ -59,8 +59,8 @@
|
||||||
"change-case": "^4.1.1",
|
"change-case": "^4.1.1",
|
||||||
"copyfiles": "^2.1.1",
|
"copyfiles": "^2.1.1",
|
||||||
"inquirer": "^7.0.1",
|
"inquirer": "^7.0.1",
|
||||||
"n8n-core": "~0.71.0",
|
"n8n-core": "~0.74.0",
|
||||||
"n8n-workflow": "~0.58.0",
|
"n8n-workflow": "~0.61.0",
|
||||||
"oauth-1.0a": "^2.2.6",
|
"oauth-1.0a": "^2.2.6",
|
||||||
"replace-in-file": "^6.0.0",
|
"replace-in-file": "^6.0.0",
|
||||||
"request": "^2.88.2",
|
"request": "^2.88.2",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,17 +8,17 @@ export class ActiveCampaignApi implements ICredentialType {
|
||||||
name = 'activeCampaignApi';
|
name = 'activeCampaignApi';
|
||||||
displayName = 'ActiveCampaign API';
|
displayName = 'ActiveCampaign API';
|
||||||
documentationUrl = 'activeCampaign';
|
documentationUrl = 'activeCampaign';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API URL',
|
displayName: 'API URL',
|
||||||
name: 'apiUrl',
|
name: 'apiUrl',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class AcuitySchedulingApi implements ICredentialType {
|
export class AcuitySchedulingApi implements ICredentialType {
|
||||||
name = 'acuitySchedulingApi';
|
name = 'acuitySchedulingApi';
|
||||||
displayName = 'Acuity Scheduling API';
|
displayName = 'Acuity Scheduling API';
|
||||||
documentationUrl = 'acuityScheduling';
|
documentationUrl = 'acuityScheduling';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'User ID',
|
displayName: 'User ID',
|
||||||
name: 'userId',
|
name: 'userId',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,38 +11,38 @@ export class AcuitySchedulingOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'AcuityScheduling OAuth2 API';
|
displayName = 'AcuityScheduling OAuth2 API';
|
||||||
documentationUrl = 'acuityScheduling';
|
documentationUrl = 'acuityScheduling';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://acuityscheduling.com/oauth2/authorize',
|
default: 'https://acuityscheduling.com/oauth2/authorize',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://acuityscheduling.com/oauth2/token',
|
default: 'https://acuityscheduling.com/oauth2/token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'api-v1',
|
default: 'api-v1',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'body',
|
default: 'body',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class AffinityApi implements ICredentialType {
|
export class AffinityApi implements ICredentialType {
|
||||||
name = 'affinityApi';
|
name = 'affinityApi';
|
||||||
displayName = 'Affinity API';
|
displayName = 'Affinity API';
|
||||||
documentationUrl = 'affinity';
|
documentationUrl = 'affinity';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,29 +1,29 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class AgileCrmApi implements ICredentialType {
|
export class AgileCrmApi implements ICredentialType {
|
||||||
name = 'agileCrmApi';
|
name = 'agileCrmApi';
|
||||||
displayName = 'AgileCRM API';
|
displayName = 'AgileCRM API';
|
||||||
documentationUrl = 'agileCrm';
|
documentationUrl = 'agileCrm';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Email',
|
displayName: 'Email',
|
||||||
name: 'email',
|
name: 'email',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Subdomain',
|
displayName: 'Subdomain',
|
||||||
name: 'subdomain',
|
name: 'subdomain',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
placeholder: 'example',
|
placeholder: 'example',
|
||||||
description: 'If the domain is https://example.agilecrm.com "example" would have to be entered.',
|
description: 'If the domain is https://example.agilecrm.com "example" would have to be entered.',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ export class AirtableApi implements ICredentialType {
|
||||||
name = 'airtableApi';
|
name = 'airtableApi';
|
||||||
displayName = 'Airtable API';
|
displayName = 'Airtable API';
|
||||||
documentationUrl = 'airtable';
|
documentationUrl = 'airtable';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,29 +8,29 @@ export class Amqp implements ICredentialType {
|
||||||
name = 'amqp';
|
name = 'amqp';
|
||||||
displayName = 'AMQP';
|
displayName = 'AMQP';
|
||||||
documentationUrl = 'amqp';
|
documentationUrl = 'amqp';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Hostname',
|
displayName: 'Hostname',
|
||||||
name: 'hostname',
|
name: 'hostname',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Port',
|
displayName: 'Port',
|
||||||
name: 'port',
|
name: 'port',
|
||||||
type: 'number' as NodePropertyTypes,
|
type: 'number',
|
||||||
default: 5672,
|
default: 5672,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'User',
|
displayName: 'User',
|
||||||
name: 'username',
|
name: 'username',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Password',
|
displayName: 'Password',
|
||||||
name: 'password',
|
name: 'password',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
typeOptions: {
|
typeOptions: {
|
||||||
password: true,
|
password: true,
|
||||||
},
|
},
|
||||||
|
@ -39,7 +39,7 @@ export class Amqp implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Transport Type',
|
displayName: 'Transport Type',
|
||||||
name: 'transportType',
|
name: 'transportType',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'Optional Transport Type to use.',
|
description: 'Optional Transport Type to use.',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class ApiTemplateIoApi implements ICredentialType {
|
export class ApiTemplateIoApi implements ICredentialType {
|
||||||
name = 'apiTemplateIoApi';
|
name = 'apiTemplateIoApi';
|
||||||
displayName = 'APITemplate.io API';
|
displayName = 'APITemplate.io API';
|
||||||
documentationUrl = 'apiTemplateIo';
|
documentationUrl = 'apiTemplateIo';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class AsanaApi implements ICredentialType {
|
export class AsanaApi implements ICredentialType {
|
||||||
name = 'asanaApi';
|
name = 'asanaApi';
|
||||||
displayName = 'Asana API';
|
displayName = 'Asana API';
|
||||||
documentationUrl = 'asana';
|
documentationUrl = 'asana';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class AsanaOAuth2Api implements ICredentialType {
|
export class AsanaOAuth2Api implements ICredentialType {
|
||||||
|
@ -10,37 +10,37 @@ export class AsanaOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'Asana OAuth2 API';
|
displayName = 'Asana OAuth2 API';
|
||||||
documentationUrl = 'asana';
|
documentationUrl = 'asana';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://app.asana.com/-/oauth_authorize',
|
default: 'https://app.asana.com/-/oauth_authorize',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://app.asana.com/-/oauth_token',
|
default: 'https://app.asana.com/-/oauth_token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'body',
|
default: 'body',
|
||||||
description: 'Resource to consume.',
|
description: 'Resource to consume.',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class AutomizyApi implements ICredentialType {
|
export class AutomizyApi implements ICredentialType {
|
||||||
name = 'automizyApi';
|
name = 'automizyApi';
|
||||||
displayName = 'Automizy API';
|
displayName = 'Automizy API';
|
||||||
documentationUrl = 'automizy';
|
documentationUrl = 'automizy';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Token',
|
displayName: 'API Token',
|
||||||
name: 'apiToken',
|
name: 'apiToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class AutopilotApi implements ICredentialType {
|
export class AutopilotApi implements ICredentialType {
|
||||||
name = 'autopilotApi';
|
name = 'autopilotApi';
|
||||||
displayName = 'Autopilot API';
|
displayName = 'Autopilot API';
|
||||||
documentationUrl = 'autopilot';
|
documentationUrl = 'autopilot';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,23 +8,23 @@ export class Aws implements ICredentialType {
|
||||||
name = 'aws';
|
name = 'aws';
|
||||||
displayName = 'AWS';
|
displayName = 'AWS';
|
||||||
documentationUrl = 'aws';
|
documentationUrl = 'aws';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Region',
|
displayName: 'Region',
|
||||||
name: 'region',
|
name: 'region',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: 'us-east-1',
|
default: 'us-east-1',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Key Id',
|
displayName: 'Access Key Id',
|
||||||
name: 'accessKeyId',
|
name: 'accessKeyId',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Secret Access Key',
|
displayName: 'Secret Access Key',
|
||||||
name: 'secretAccessKey',
|
name: 'secretAccessKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
typeOptions: {
|
typeOptions: {
|
||||||
password: true,
|
password: true,
|
||||||
|
@ -33,14 +33,14 @@ export class Aws implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Custom Endpoints',
|
displayName: 'Custom Endpoints',
|
||||||
name: 'customEndpoints',
|
name: 'customEndpoints',
|
||||||
type: 'boolean' as NodePropertyTypes,
|
type: 'boolean',
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Rekognition Endpoint',
|
displayName: 'Rekognition Endpoint',
|
||||||
name: 'rekognitionEndpoint',
|
name: 'rekognitionEndpoint',
|
||||||
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Rekognition using a VPC endpoint. Leave blank to use the default endpoint.',
|
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Rekognition using a VPC endpoint. Leave blank to use the default endpoint.',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
displayOptions: {
|
displayOptions: {
|
||||||
show: {
|
show: {
|
||||||
customEndpoints: [
|
customEndpoints: [
|
||||||
|
@ -55,7 +55,7 @@ export class Aws implements ICredentialType {
|
||||||
displayName: 'Lambda Endpoint',
|
displayName: 'Lambda Endpoint',
|
||||||
name: 'lambdaEndpoint',
|
name: 'lambdaEndpoint',
|
||||||
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Lambda using a VPC endpoint. Leave blank to use the default endpoint.',
|
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and Lambda using a VPC endpoint. Leave blank to use the default endpoint.',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
displayOptions: {
|
displayOptions: {
|
||||||
show: {
|
show: {
|
||||||
customEndpoints: [
|
customEndpoints: [
|
||||||
|
@ -70,7 +70,7 @@ export class Aws implements ICredentialType {
|
||||||
displayName: 'SNS Endpoint',
|
displayName: 'SNS Endpoint',
|
||||||
name: 'snsEndpoint',
|
name: 'snsEndpoint',
|
||||||
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SNS using a VPC endpoint. Leave blank to use the default endpoint.',
|
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SNS using a VPC endpoint. Leave blank to use the default endpoint.',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
displayOptions: {
|
displayOptions: {
|
||||||
show: {
|
show: {
|
||||||
customEndpoints: [
|
customEndpoints: [
|
||||||
|
@ -85,7 +85,7 @@ export class Aws implements ICredentialType {
|
||||||
displayName: 'SES Endpoint',
|
displayName: 'SES Endpoint',
|
||||||
name: 'sesEndpoint',
|
name: 'sesEndpoint',
|
||||||
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SES using a VPC endpoint. Leave blank to use the default endpoint.',
|
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SES using a VPC endpoint. Leave blank to use the default endpoint.',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
displayOptions: {
|
displayOptions: {
|
||||||
show: {
|
show: {
|
||||||
customEndpoints: [
|
customEndpoints: [
|
||||||
|
@ -100,7 +100,7 @@ export class Aws implements ICredentialType {
|
||||||
displayName: 'SQS Endpoint',
|
displayName: 'SQS Endpoint',
|
||||||
name: 'sqsEndpoint',
|
name: 'sqsEndpoint',
|
||||||
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SQS using a VPC endpoint. Leave blank to use the default endpoint.',
|
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and SQS using a VPC endpoint. Leave blank to use the default endpoint.',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
displayOptions: {
|
displayOptions: {
|
||||||
show: {
|
show: {
|
||||||
customEndpoints: [
|
customEndpoints: [
|
||||||
|
@ -115,7 +115,7 @@ export class Aws implements ICredentialType {
|
||||||
displayName: 'S3 Endpoint',
|
displayName: 'S3 Endpoint',
|
||||||
name: 's3Endpoint',
|
name: 's3Endpoint',
|
||||||
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and S3 using a VPC endpoint. Leave blank to use the default endpoint.',
|
description: 'If you use Amazon VPC to host n8n, you can establish a connection between your VPC and S3 using a VPC endpoint. Leave blank to use the default endpoint.',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
displayOptions: {
|
displayOptions: {
|
||||||
show: {
|
show: {
|
||||||
customEndpoints: [
|
customEndpoints: [
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class BannerbearApi implements ICredentialType {
|
export class BannerbearApi implements ICredentialType {
|
||||||
name = 'bannerbearApi';
|
name = 'bannerbearApi';
|
||||||
displayName = 'Bannerbear API';
|
displayName = 'Bannerbear API';
|
||||||
documentationUrl = 'bannerbear';
|
documentationUrl = 'bannerbear';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Project API Key',
|
displayName: 'Project API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class BeeminderApi implements ICredentialType {
|
export class BeeminderApi implements ICredentialType {
|
||||||
name = 'beeminderApi';
|
name = 'beeminderApi';
|
||||||
displayName = 'Beeminder API';
|
displayName = 'Beeminder API';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'User',
|
displayName: 'User',
|
||||||
name: 'user',
|
name: 'user',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth Token',
|
displayName: 'Auth Token',
|
||||||
name: 'authToken',
|
name: 'authToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class BitbucketApi implements ICredentialType {
|
export class BitbucketApi implements ICredentialType {
|
||||||
name = 'bitbucketApi';
|
name = 'bitbucketApi';
|
||||||
displayName = 'Bitbucket API';
|
displayName = 'Bitbucket API';
|
||||||
documentationUrl = 'bitbucket';
|
documentationUrl = 'bitbucket';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Username',
|
displayName: 'Username',
|
||||||
name: 'username',
|
name: 'username',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'App Password',
|
displayName: 'App Password',
|
||||||
name: 'appPassword',
|
name: 'appPassword',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class BitlyApi implements ICredentialType {
|
export class BitlyApi implements ICredentialType {
|
||||||
name = 'bitlyApi';
|
name = 'bitlyApi';
|
||||||
displayName = 'Bitly API';
|
displayName = 'Bitly API';
|
||||||
documentationUrl = 'bitly';
|
documentationUrl = 'bitly';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,32 +11,32 @@ export class BitlyOAuth2Api implements ICredentialType {
|
||||||
extends = [
|
extends = [
|
||||||
'oAuth2Api',
|
'oAuth2Api',
|
||||||
];
|
];
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://bitly.com/oauth/authorize',
|
default: 'https://bitly.com/oauth/authorize',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://api-ssl.bitly.com/oauth/access_token',
|
default: 'https://api-ssl.bitly.com/oauth/access_token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Client ID',
|
displayName: 'Client ID',
|
||||||
name: 'clientId',
|
name: 'clientId',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Client Secret',
|
displayName: 'Client Secret',
|
||||||
name: 'clientSecret',
|
name: 'clientSecret',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
typeOptions: {
|
typeOptions: {
|
||||||
password: true,
|
password: true,
|
||||||
},
|
},
|
||||||
|
@ -46,13 +46,13 @@ export class BitlyOAuth2Api implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'For some services additional query parameters have to be set which can be defined here.',
|
description: 'For some services additional query parameters have to be set which can be defined here.',
|
||||||
placeholder: '',
|
placeholder: '',
|
||||||
|
@ -60,7 +60,7 @@ export class BitlyOAuth2Api implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'body',
|
default: 'body',
|
||||||
description: 'Resource to consume.',
|
description: 'Resource to consume.',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
// https://bitwarden.com/help/article/public-api/#authentication
|
// https://bitwarden.com/help/article/public-api/#authentication
|
||||||
|
@ -9,23 +9,23 @@ export class BitwardenApi implements ICredentialType {
|
||||||
name = 'bitwardenApi';
|
name = 'bitwardenApi';
|
||||||
displayName = 'Bitwarden API';
|
displayName = 'Bitwarden API';
|
||||||
documentationUrl = 'bitwarden';
|
documentationUrl = 'bitwarden';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Client ID',
|
displayName: 'Client ID',
|
||||||
name: 'clientId',
|
name: 'clientId',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Client Secret',
|
displayName: 'Client Secret',
|
||||||
name: 'clientSecret',
|
name: 'clientSecret',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Environment',
|
displayName: 'Environment',
|
||||||
name: 'environment',
|
name: 'environment',
|
||||||
type: 'options' as NodePropertyTypes,
|
type: 'options',
|
||||||
default: 'cloudHosted',
|
default: 'cloudHosted',
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
|
@ -41,7 +41,7 @@ export class BitwardenApi implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Self-hosted domain',
|
displayName: 'Self-hosted domain',
|
||||||
name: 'domain',
|
name: 'domain',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
placeholder: 'https://www.mydomain.com',
|
placeholder: 'https://www.mydomain.com',
|
||||||
displayOptions: {
|
displayOptions: {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class BoxOAuth2Api implements ICredentialType {
|
export class BoxOAuth2Api implements ICredentialType {
|
||||||
|
@ -10,37 +10,37 @@ export class BoxOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'Box OAuth2 API';
|
displayName = 'Box OAuth2 API';
|
||||||
documentationUrl = 'box';
|
documentationUrl = 'box';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://account.box.com/api/oauth2/authorize',
|
default: 'https://account.box.com/api/oauth2/authorize',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://api.box.com/oauth2/token',
|
default: 'https://api.box.com/oauth2/token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'body',
|
default: 'body',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class BrandfetchApi implements ICredentialType {
|
export class BrandfetchApi implements ICredentialType {
|
||||||
name = 'brandfetchApi';
|
name = 'brandfetchApi';
|
||||||
displayName = 'Brandfetch API';
|
displayName = 'Brandfetch API';
|
||||||
documentationUrl = 'brandfetch';
|
documentationUrl = 'brandfetch';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,29 +1,29 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class BubbleApi implements ICredentialType {
|
export class BubbleApi implements ICredentialType {
|
||||||
name = 'bubbleApi';
|
name = 'bubbleApi';
|
||||||
displayName = 'Bubble API';
|
displayName = 'Bubble API';
|
||||||
documentationUrl = 'bubble';
|
documentationUrl = 'bubble';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Token',
|
displayName: 'API Token',
|
||||||
name: 'apiToken',
|
name: 'apiToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'App Name',
|
displayName: 'App Name',
|
||||||
name: 'appName',
|
name: 'appName',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Environment',
|
displayName: 'Environment',
|
||||||
name: 'environment',
|
name: 'environment',
|
||||||
type: 'options' as NodePropertyTypes,
|
type: 'options',
|
||||||
default: 'live',
|
default: 'live',
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
|
@ -39,7 +39,7 @@ export class BubbleApi implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Hosting',
|
displayName: 'Hosting',
|
||||||
name: 'hosting',
|
name: 'hosting',
|
||||||
type: 'options' as NodePropertyTypes,
|
type: 'options',
|
||||||
default: 'bubbleHosted',
|
default: 'bubbleHosted',
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
|
@ -55,7 +55,7 @@ export class BubbleApi implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Domain',
|
displayName: 'Domain',
|
||||||
name: 'domain',
|
name: 'domain',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
placeholder: 'mydomain.com',
|
placeholder: 'mydomain.com',
|
||||||
default: '',
|
default: '',
|
||||||
displayOptions: {
|
displayOptions: {
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class CalendlyApi implements ICredentialType {
|
export class CalendlyApi implements ICredentialType {
|
||||||
name = 'calendlyApi';
|
name = 'calendlyApi';
|
||||||
displayName = 'Calendly API';
|
displayName = 'Calendly API';
|
||||||
documentationUrl = 'calendly';
|
documentationUrl = 'calendly';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,17 +8,17 @@ export class ChargebeeApi implements ICredentialType {
|
||||||
name = 'chargebeeApi';
|
name = 'chargebeeApi';
|
||||||
displayName = 'Chargebee API';
|
displayName = 'Chargebee API';
|
||||||
documentationUrl = 'chargebee';
|
documentationUrl = 'chargebee';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Account Name',
|
displayName: 'Account Name',
|
||||||
name: 'accountName',
|
name: 'accountName',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Api Key',
|
displayName: 'Api Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class CircleCiApi implements ICredentialType {
|
export class CircleCiApi implements ICredentialType {
|
||||||
name = 'circleCiApi';
|
name = 'circleCiApi';
|
||||||
displayName = 'CircleCI API';
|
displayName = 'CircleCI API';
|
||||||
documentationUrl = 'circleCi';
|
documentationUrl = 'circleCi';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Personal API Token',
|
displayName: 'Personal API Token',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class ClearbitApi implements ICredentialType {
|
export class ClearbitApi implements ICredentialType {
|
||||||
name = 'clearbitApi';
|
name = 'clearbitApi';
|
||||||
displayName = 'Clearbit API';
|
displayName = 'Clearbit API';
|
||||||
documentationUrl = 'clearbit';
|
documentationUrl = 'clearbit';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class ClickUpApi implements ICredentialType {
|
export class ClickUpApi implements ICredentialType {
|
||||||
name = 'clickUpApi';
|
name = 'clickUpApi';
|
||||||
displayName = 'ClickUp API';
|
displayName = 'ClickUp API';
|
||||||
documentationUrl = 'clickUp';
|
documentationUrl = 'clickUp';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class ClickUpOAuth2Api implements ICredentialType {
|
export class ClickUpOAuth2Api implements ICredentialType {
|
||||||
|
@ -10,37 +10,37 @@ export class ClickUpOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'ClickUp OAuth2 API';
|
displayName = 'ClickUp OAuth2 API';
|
||||||
documentationUrl = 'clickUp';
|
documentationUrl = 'clickUp';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://app.clickup.com/api',
|
default: 'https://app.clickup.com/api',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://api.clickup.com/api/v2/oauth/token',
|
default: 'https://api.clickup.com/api/v2/oauth/token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'body',
|
default: 'body',
|
||||||
description: 'Resource to consume.',
|
description: 'Resource to consume.',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,14 +8,14 @@ export class ClockifyApi implements ICredentialType {
|
||||||
name = 'clockifyApi';
|
name = 'clockifyApi';
|
||||||
displayName = 'Clockify API';
|
displayName = 'Clockify API';
|
||||||
documentationUrl = 'clockify';
|
documentationUrl = 'clockify';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
// The credentials to get from user and save encrypted.
|
// The credentials to get from user and save encrypted.
|
||||||
// Properties can be defined exactly in the same way
|
// Properties can be defined exactly in the same way
|
||||||
// as node properties.
|
// as node properties.
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class CockpitApi implements ICredentialType {
|
export class CockpitApi implements ICredentialType {
|
||||||
name = 'cockpitApi';
|
name = 'cockpitApi';
|
||||||
displayName = 'Cockpit API';
|
displayName = 'Cockpit API';
|
||||||
documentationUrl = 'cockpit';
|
documentationUrl = 'cockpit';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Cockpit URL',
|
displayName: 'Cockpit URL',
|
||||||
name: 'url',
|
name: 'url',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
placeholder: 'https://example.com',
|
placeholder: 'https://example.com',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class CodaApi implements ICredentialType {
|
export class CodaApi implements ICredentialType {
|
||||||
name = 'codaApi';
|
name = 'codaApi';
|
||||||
displayName = 'Coda API';
|
displayName = 'Coda API';
|
||||||
documentationUrl = 'coda';
|
documentationUrl = 'coda';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
//https://www.contentful.com/developers/docs/references/authentication/
|
//https://www.contentful.com/developers/docs/references/authentication/
|
||||||
|
@ -8,11 +8,11 @@ export class ContentfulApi implements ICredentialType {
|
||||||
name = 'contentfulApi';
|
name = 'contentfulApi';
|
||||||
displayName = 'Contenful API';
|
displayName = 'Contenful API';
|
||||||
documentationUrl = 'contentful';
|
documentationUrl = 'contentful';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Space ID',
|
displayName: 'Space ID',
|
||||||
name: 'spaceId',
|
name: 'spaceId',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
required: true,
|
required: true,
|
||||||
description: 'The id for the Contentful space.',
|
description: 'The id for the Contentful space.',
|
||||||
|
@ -20,14 +20,14 @@ export class ContentfulApi implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Content Delivery API Access token',
|
displayName: 'Content Delivery API Access token',
|
||||||
name: 'ContentDeliveryaccessToken',
|
name: 'ContentDeliveryaccessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'Access token that has access to the space. Can be left empty if only Delivery API should be used.',
|
description: 'Access token that has access to the space. Can be left empty if only Delivery API should be used.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Content Preview API Access token',
|
displayName: 'Content Preview API Access token',
|
||||||
name: 'ContentPreviewaccessToken',
|
name: 'ContentPreviewaccessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'Access token that has access to the space. Can be left empty if only Preview API should be used.',
|
description: 'Access token that has access to the space. Can be left empty if only Preview API should be used.',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ export class ConvertKitApi implements ICredentialType {
|
||||||
name = 'convertKitApi';
|
name = 'convertKitApi';
|
||||||
displayName = 'ConvertKit API';
|
displayName = 'ConvertKit API';
|
||||||
documentationUrl = 'convertKit';
|
documentationUrl = 'convertKit';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Secret',
|
displayName: 'API Secret',
|
||||||
name: 'apiSecret',
|
name: 'apiSecret',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
typeOptions: {
|
typeOptions: {
|
||||||
password: true,
|
password: true,
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class CopperApi implements ICredentialType {
|
export class CopperApi implements ICredentialType {
|
||||||
name = 'copperApi';
|
name = 'copperApi';
|
||||||
displayName = 'Copper API';
|
displayName = 'Copper API';
|
||||||
documentationUrl = 'copper';
|
documentationUrl = 'copper';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
required: true,
|
required: true,
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Email',
|
displayName: 'Email',
|
||||||
name: 'email',
|
name: 'email',
|
||||||
required: true,
|
required: true,
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,17 +8,17 @@ export class CortexApi implements ICredentialType {
|
||||||
name = 'cortexApi';
|
name = 'cortexApi';
|
||||||
displayName = 'Cortex API';
|
displayName = 'Cortex API';
|
||||||
documentationUrl = 'cortex';
|
documentationUrl = 'cortex';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'cortexApiKey',
|
name: 'cortexApiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Cortex Instance',
|
displayName: 'Cortex Instance',
|
||||||
name: 'host',
|
name: 'host',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
description: 'The URL of the Cortex instance',
|
description: 'The URL of the Cortex instance',
|
||||||
default: '',
|
default: '',
|
||||||
placeholder: 'https://localhost:9001',
|
placeholder: 'https://localhost:9001',
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
import { ICredentialType, NodePropertyTypes } from 'n8n-workflow';
|
import { ICredentialType, INodeProperties } from 'n8n-workflow';
|
||||||
|
|
||||||
export class CrateDb implements ICredentialType {
|
export class CrateDb implements ICredentialType {
|
||||||
name = 'crateDb';
|
name = 'crateDb';
|
||||||
displayName = 'CrateDB';
|
displayName = 'CrateDB';
|
||||||
documentationUrl = 'crateDb';
|
documentationUrl = 'crateDb';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Host',
|
displayName: 'Host',
|
||||||
name: 'host',
|
name: 'host',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: 'localhost',
|
default: 'localhost',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Database',
|
displayName: 'Database',
|
||||||
name: 'database',
|
name: 'database',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: 'doc',
|
default: 'doc',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'User',
|
displayName: 'User',
|
||||||
name: 'user',
|
name: 'user',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: 'crate',
|
default: 'crate',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Password',
|
displayName: 'Password',
|
||||||
name: 'password',
|
name: 'password',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
typeOptions: {
|
typeOptions: {
|
||||||
password: true,
|
password: true,
|
||||||
},
|
},
|
||||||
|
@ -35,7 +35,7 @@ export class CrateDb implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'SSL',
|
displayName: 'SSL',
|
||||||
name: 'ssl',
|
name: 'ssl',
|
||||||
type: 'options' as NodePropertyTypes,
|
type: 'options',
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
name: 'disable',
|
name: 'disable',
|
||||||
|
@ -63,7 +63,7 @@ export class CrateDb implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Port',
|
displayName: 'Port',
|
||||||
name: 'port',
|
name: 'port',
|
||||||
type: 'number' as NodePropertyTypes,
|
type: 'number',
|
||||||
default: 5432,
|
default: 5432,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ export class CustomerIoApi implements ICredentialType {
|
||||||
name = 'customerIoApi';
|
name = 'customerIoApi';
|
||||||
displayName = 'Customer.io API';
|
displayName = 'Customer.io API';
|
||||||
documentationUrl = 'customerIo';
|
documentationUrl = 'customerIo';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Tracking API Key',
|
displayName: 'Tracking API Key',
|
||||||
name: 'trackingApiKey',
|
name: 'trackingApiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'Required for tracking API.',
|
description: 'Required for tracking API.',
|
||||||
required: true,
|
required: true,
|
||||||
|
@ -20,14 +20,14 @@ export class CustomerIoApi implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Tracking Site ID',
|
displayName: 'Tracking Site ID',
|
||||||
name: 'trackingSiteId',
|
name: 'trackingSiteId',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'Required for tracking API.',
|
description: 'Required for tracking API.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'App API Key',
|
displayName: 'App API Key',
|
||||||
name: 'appApiKey',
|
name: 'appApiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'Required for App API.',
|
description: 'Required for App API.',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,20 +1,20 @@
|
||||||
import { ICredentialType, NodePropertyTypes } from 'n8n-workflow';
|
import { ICredentialType, INodeProperties } from 'n8n-workflow';
|
||||||
|
|
||||||
export class DeepLApi implements ICredentialType {
|
export class DeepLApi implements ICredentialType {
|
||||||
name = 'deepLApi';
|
name = 'deepLApi';
|
||||||
displayName = 'DeepL API';
|
displayName = 'DeepL API';
|
||||||
documentationUrl = 'deepL';
|
documentationUrl = 'deepL';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'API Plan',
|
displayName: 'API Plan',
|
||||||
name: 'apiPlan',
|
name: 'apiPlan',
|
||||||
type: 'options' as NodePropertyTypes,
|
type: 'options',
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
name: 'Pro Plan',
|
name: 'Pro Plan',
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class DemioApi implements ICredentialType {
|
export class DemioApi implements ICredentialType {
|
||||||
name = 'demioApi';
|
name = 'demioApi';
|
||||||
displayName = 'Demio API';
|
displayName = 'Demio API';
|
||||||
documentationUrl = 'demio';
|
documentationUrl = 'demio';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'API Secret',
|
displayName: 'API Secret',
|
||||||
name: 'apiSecret',
|
name: 'apiSecret',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class DiscourseApi implements ICredentialType {
|
export class DiscourseApi implements ICredentialType {
|
||||||
name = 'discourseApi';
|
name = 'discourseApi';
|
||||||
displayName = 'Discourse API';
|
displayName = 'Discourse API';
|
||||||
documentationUrl = 'discourse';
|
documentationUrl = 'discourse';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'URL',
|
displayName: 'URL',
|
||||||
name: 'url',
|
name: 'url',
|
||||||
required: true,
|
required: true,
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
required: true,
|
required: true,
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Username',
|
displayName: 'Username',
|
||||||
name: 'username',
|
name: 'username',
|
||||||
required: true,
|
required: true,
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class DisqusApi implements ICredentialType {
|
export class DisqusApi implements ICredentialType {
|
||||||
name = 'disqusApi';
|
name = 'disqusApi';
|
||||||
displayName = 'Disqus API';
|
displayName = 'Disqus API';
|
||||||
documentationUrl = 'disqus';
|
documentationUrl = 'disqus';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'Visit your account details page, and grab the Access Token. See <a href="https://disqus.com/api/docs/auth/">Disqus auth</a>.',
|
description: 'Visit your account details page, and grab the Access Token. See <a href="https://disqus.com/api/docs/auth/">Disqus auth</a>.',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class DriftApi implements ICredentialType {
|
export class DriftApi implements ICredentialType {
|
||||||
name = 'driftApi';
|
name = 'driftApi';
|
||||||
displayName = 'Drift API';
|
displayName = 'Drift API';
|
||||||
documentationUrl = 'drift';
|
documentationUrl = 'drift';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Personal Access Token',
|
displayName: 'Personal Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'Visit your account details page, and grab the Access Token. See <a href="https://devdocs.drift.com/docs/quick-start">Drift auth</a>.',
|
description: 'Visit your account details page, and grab the Access Token. See <a href="https://devdocs.drift.com/docs/quick-start">Drift auth</a>.',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,37 +11,37 @@ export class DriftOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'Drift OAuth2 API';
|
displayName = 'Drift OAuth2 API';
|
||||||
documentationUrl = 'drift';
|
documentationUrl = 'drift';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://dev.drift.com/authorize',
|
default: 'https://dev.drift.com/authorize',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://driftapi.com/oauth2/token',
|
default: 'https://driftapi.com/oauth2/token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'body',
|
default: 'body',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class DropboxApi implements ICredentialType {
|
export class DropboxApi implements ICredentialType {
|
||||||
name = 'dropboxApi';
|
name = 'dropboxApi';
|
||||||
displayName = 'Dropbox API';
|
displayName = 'Dropbox API';
|
||||||
documentationUrl = 'dropbox';
|
documentationUrl = 'dropbox';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'APP Access Type',
|
displayName: 'APP Access Type',
|
||||||
name: 'accessType',
|
name: 'accessType',
|
||||||
type: 'options' as NodePropertyTypes,
|
type: 'options',
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
name: 'App Folder',
|
name: 'App Folder',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
const scopes = [
|
const scopes = [
|
||||||
|
@ -17,43 +17,43 @@ export class DropboxOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'Dropbox OAuth2 API';
|
displayName = 'Dropbox OAuth2 API';
|
||||||
documentationUrl = 'dropbox';
|
documentationUrl = 'dropbox';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://www.dropbox.com/oauth2/authorize',
|
default: 'https://www.dropbox.com/oauth2/authorize',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://api.dropboxapi.com/oauth2/token',
|
default: 'https://api.dropboxapi.com/oauth2/token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: scopes.join(' '),
|
default: scopes.join(' '),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'token_access_type=offline&force_reapprove=true',
|
default: 'token_access_type=offline&force_reapprove=true',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'header',
|
default: 'header',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'APP Access Type',
|
displayName: 'APP Access Type',
|
||||||
name: 'accessType',
|
name: 'accessType',
|
||||||
type: 'options' as NodePropertyTypes,
|
type: 'options',
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
name: 'App Folder',
|
name: 'App Folder',
|
||||||
|
|
|
@ -1,29 +1,29 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class ERPNextApi implements ICredentialType {
|
export class ERPNextApi implements ICredentialType {
|
||||||
name = 'erpNextApi';
|
name = 'erpNextApi';
|
||||||
displayName = 'ERPNext API';
|
displayName = 'ERPNext API';
|
||||||
documentationUrl = 'erpnext';
|
documentationUrl = 'erpnext';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'API Secret',
|
displayName: 'API Secret',
|
||||||
name: 'apiSecret',
|
name: 'apiSecret',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Environment',
|
displayName: 'Environment',
|
||||||
name: 'environment',
|
name: 'environment',
|
||||||
type: 'options' as NodePropertyTypes,
|
type: 'options',
|
||||||
default: 'cloudHosted',
|
default: 'cloudHosted',
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
|
@ -39,7 +39,7 @@ export class ERPNextApi implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Subdomain',
|
displayName: 'Subdomain',
|
||||||
name: 'subdomain',
|
name: 'subdomain',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
placeholder: 'n8n',
|
placeholder: 'n8n',
|
||||||
description: 'Subdomain of cloud-hosted ERPNext instance. For example, "n8n" is the subdomain in: <code>https://n8n.erpnext.com</code>',
|
description: 'Subdomain of cloud-hosted ERPNext instance. For example, "n8n" is the subdomain in: <code>https://n8n.erpnext.com</code>',
|
||||||
|
@ -54,7 +54,7 @@ export class ERPNextApi implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Domain',
|
displayName: 'Domain',
|
||||||
name: 'domain',
|
name: 'domain',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
placeholder: 'https://www.mydomain.com',
|
placeholder: 'https://www.mydomain.com',
|
||||||
description: 'Fully qualified domain name of self-hosted ERPNext instance.',
|
description: 'Fully qualified domain name of self-hosted ERPNext instance.',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,14 +8,14 @@ export class EgoiApi implements ICredentialType {
|
||||||
name = 'egoiApi';
|
name = 'egoiApi';
|
||||||
displayName = 'E-goi API';
|
displayName = 'E-goi API';
|
||||||
documentationUrl = 'egoi';
|
documentationUrl = 'egoi';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
// The credentials to get from user and save encrypted.
|
// The credentials to get from user and save encrypted.
|
||||||
// Properties can be defined exactly in the same way
|
// Properties can be defined exactly in the same way
|
||||||
// as node properties.
|
// as node properties.
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class EmeliaApi implements ICredentialType {
|
export class EmeliaApi implements ICredentialType {
|
||||||
name = 'emeliaApi';
|
name = 'emeliaApi';
|
||||||
displayName = 'Emelia API';
|
displayName = 'Emelia API';
|
||||||
documentationUrl = 'emelia';
|
documentationUrl = 'emelia';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class EventbriteApi implements ICredentialType {
|
export class EventbriteApi implements ICredentialType {
|
||||||
name = 'eventbriteApi';
|
name = 'eventbriteApi';
|
||||||
displayName = 'Eventbrite API';
|
displayName = 'Eventbrite API';
|
||||||
documentationUrl = 'eventbrite';
|
documentationUrl = 'eventbrite';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Private Key',
|
displayName: 'Private Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,37 +11,37 @@ export class EventbriteOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'Eventbrite OAuth2 API';
|
displayName = 'Eventbrite OAuth2 API';
|
||||||
documentationUrl = 'eventbrite';
|
documentationUrl = 'eventbrite';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://www.eventbrite.com/oauth/authorize',
|
default: 'https://www.eventbrite.com/oauth/authorize',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://www.eventbrite.com/oauth/token',
|
default: 'https://www.eventbrite.com/oauth/token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'body',
|
default: 'body',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ export class FacebookGraphApi implements ICredentialType {
|
||||||
name = 'facebookGraphApi';
|
name = 'facebookGraphApi';
|
||||||
displayName = 'Facebook Graph API';
|
displayName = 'Facebook Graph API';
|
||||||
documentationUrl = 'facebookGraph';
|
documentationUrl = 'facebookGraph';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class FacebookGraphAppApi implements ICredentialType {
|
export class FacebookGraphAppApi implements ICredentialType {
|
||||||
|
@ -10,11 +10,11 @@ export class FacebookGraphAppApi implements ICredentialType {
|
||||||
extends = [
|
extends = [
|
||||||
'facebookGraphApi',
|
'facebookGraphApi',
|
||||||
];
|
];
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'App Secret',
|
displayName: 'App Secret',
|
||||||
name: 'appSecret',
|
name: 'appSecret',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
description: '(Optional) When the app secret is set the node will verify this signature to validate the integrity and origin of the payload.',
|
description: '(Optional) When the app secret is set the node will verify this signature to validate the integrity and origin of the payload.',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,29 +8,29 @@ export class FileMaker implements ICredentialType {
|
||||||
name = 'fileMaker';
|
name = 'fileMaker';
|
||||||
displayName = 'FileMaker API';
|
displayName = 'FileMaker API';
|
||||||
documentationUrl = 'fileMaker';
|
documentationUrl = 'fileMaker';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Host',
|
displayName: 'Host',
|
||||||
name: 'host',
|
name: 'host',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Database',
|
displayName: 'Database',
|
||||||
name: 'db',
|
name: 'db',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Login',
|
displayName: 'Login',
|
||||||
name: 'login',
|
name: 'login',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Password',
|
displayName: 'Password',
|
||||||
name: 'password',
|
name: 'password',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
typeOptions: {
|
typeOptions: {
|
||||||
password: true,
|
password: true,
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,17 +8,17 @@ export class FlowApi implements ICredentialType {
|
||||||
name = 'flowApi';
|
name = 'flowApi';
|
||||||
displayName = 'Flow API';
|
displayName = 'Flow API';
|
||||||
documentationUrl = 'flow';
|
documentationUrl = 'flow';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Organization ID',
|
displayName: 'Organization ID',
|
||||||
name: 'organizationId',
|
name: 'organizationId',
|
||||||
type: 'number' as NodePropertyTypes,
|
type: 'number',
|
||||||
default: 0,
|
default: 0,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,17 +8,17 @@ export class FreshdeskApi implements ICredentialType {
|
||||||
name = 'freshdeskApi';
|
name = 'freshdeskApi';
|
||||||
displayName = 'Freshdesk API';
|
displayName = 'Freshdesk API';
|
||||||
documentationUrl = 'freshdesk';
|
documentationUrl = 'freshdesk';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Domain',
|
displayName: 'Domain',
|
||||||
name: 'domain',
|
name: 'domain',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
placeholder: 'company',
|
placeholder: 'company',
|
||||||
description: 'If the URL you get displayed on Freshdesk is "https://company.freshdesk.com" enter "company"',
|
description: 'If the URL you get displayed on Freshdesk is "https://company.freshdesk.com" enter "company"',
|
||||||
default: '',
|
default: '',
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class Ftp implements ICredentialType {
|
export class Ftp implements ICredentialType {
|
||||||
name = 'ftp';
|
name = 'ftp';
|
||||||
displayName = 'FTP';
|
displayName = 'FTP';
|
||||||
documentationUrl = 'ftp';
|
documentationUrl = 'ftp';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Host',
|
displayName: 'Host',
|
||||||
name: 'host',
|
name: 'host',
|
||||||
required: true,
|
required: true,
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
placeholder: 'localhost',
|
placeholder: 'localhost',
|
||||||
},
|
},
|
||||||
|
@ -20,19 +20,19 @@ export class Ftp implements ICredentialType {
|
||||||
displayName: 'Port',
|
displayName: 'Port',
|
||||||
name: 'port',
|
name: 'port',
|
||||||
required: true,
|
required: true,
|
||||||
type: 'number' as NodePropertyTypes,
|
type: 'number',
|
||||||
default: 21,
|
default: 21,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Username',
|
displayName: 'Username',
|
||||||
name: 'username',
|
name: 'username',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Password',
|
displayName: 'Password',
|
||||||
name: 'password',
|
name: 'password',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
typeOptions: {
|
typeOptions: {
|
||||||
password: true,
|
password: true,
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
const scopes = [
|
const scopes = [
|
||||||
|
@ -17,11 +17,11 @@ export class GSuiteAdminOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'G Suite Admin OAuth2 API';
|
displayName = 'G Suite Admin OAuth2 API';
|
||||||
documentationUrl = 'google';
|
documentationUrl = 'google';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: scopes.join(' '),
|
default: scopes.join(' '),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class GetResponseApi implements ICredentialType {
|
export class GetResponseApi implements ICredentialType {
|
||||||
name = 'getResponseApi';
|
name = 'getResponseApi';
|
||||||
displayName = 'GetResponse API';
|
displayName = 'GetResponse API';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class GetResponseOAuth2Api implements ICredentialType {
|
export class GetResponseOAuth2Api implements ICredentialType {
|
||||||
|
@ -9,37 +9,37 @@ export class GetResponseOAuth2Api implements ICredentialType {
|
||||||
'oAuth2Api',
|
'oAuth2Api',
|
||||||
];
|
];
|
||||||
displayName = 'GetResponse OAuth2 API';
|
displayName = 'GetResponse OAuth2 API';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://app.getresponse.com/oauth2_authorize.html',
|
default: 'https://app.getresponse.com/oauth2_authorize.html',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://api.getresponse.com/v3/token',
|
default: 'https://api.getresponse.com/v3/token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'header',
|
default: 'header',
|
||||||
description: 'Resource to consume.',
|
description: 'Resource to consume.',
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class GhostAdminApi implements ICredentialType {
|
export class GhostAdminApi implements ICredentialType {
|
||||||
name = 'ghostAdminApi';
|
name = 'ghostAdminApi';
|
||||||
displayName = 'Ghost Admin API';
|
displayName = 'Ghost Admin API';
|
||||||
documentationUrl = 'ghost';
|
documentationUrl = 'ghost';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'URL',
|
displayName: 'URL',
|
||||||
name: 'url',
|
name: 'url',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
placeholder: 'http://localhost:3001',
|
placeholder: 'http://localhost:3001',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class GhostContentApi implements ICredentialType {
|
export class GhostContentApi implements ICredentialType {
|
||||||
name = 'ghostContentApi';
|
name = 'ghostContentApi';
|
||||||
displayName = 'Ghost Content API';
|
displayName = 'Ghost Content API';
|
||||||
documentationUrl = 'ghost';
|
documentationUrl = 'ghost';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'URL',
|
displayName: 'URL',
|
||||||
name: 'url',
|
name: 'url',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
placeholder: 'http://localhost:3001',
|
placeholder: 'http://localhost:3001',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'API Key',
|
displayName: 'API Key',
|
||||||
name: 'apiKey',
|
name: 'apiKey',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
28
packages/nodes-base/credentials/GitPassword.credentials.ts
Normal file
28
packages/nodes-base/credentials/GitPassword.credentials.ts
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
import {
|
||||||
|
ICredentialType,
|
||||||
|
INodeProperties,
|
||||||
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
export class GitPassword implements ICredentialType {
|
||||||
|
name = 'gitPassword';
|
||||||
|
displayName = 'Git';
|
||||||
|
properties: INodeProperties[] = [
|
||||||
|
{
|
||||||
|
displayName: 'Username',
|
||||||
|
name: 'username',
|
||||||
|
type: 'string',
|
||||||
|
default: '',
|
||||||
|
description: 'The username to authenticate with.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Password',
|
||||||
|
name: 'password',
|
||||||
|
type: 'string',
|
||||||
|
typeOptions: {
|
||||||
|
password: true,
|
||||||
|
},
|
||||||
|
default: '',
|
||||||
|
description: 'The password to use in combination with the user',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,30 +1,30 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class GithubApi implements ICredentialType {
|
export class GithubApi implements ICredentialType {
|
||||||
name = 'githubApi';
|
name = 'githubApi';
|
||||||
displayName = 'Github API';
|
displayName = 'Github API';
|
||||||
documentationUrl = 'github';
|
documentationUrl = 'github';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Github Server',
|
displayName: 'Github Server',
|
||||||
name: 'server',
|
name: 'server',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: 'https://api.github.com',
|
default: 'https://api.github.com',
|
||||||
description: 'The server to connect to. Does only have to get changed if Github Enterprise gets used.',
|
description: 'The server to connect to. Does only have to get changed if Github Enterprise gets used.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'User',
|
displayName: 'User',
|
||||||
name: 'user',
|
name: 'user',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,44 +11,44 @@ export class GithubOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'Github OAuth2 API';
|
displayName = 'Github OAuth2 API';
|
||||||
documentationUrl = 'github';
|
documentationUrl = 'github';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Github Server',
|
displayName: 'Github Server',
|
||||||
name: 'server',
|
name: 'server',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: 'https://api.github.com',
|
default: 'https://api.github.com',
|
||||||
description: 'The server to connect to. Does only have to get changed if Github Enterprise gets used.',
|
description: 'The server to connect to. Does only have to get changed if Github Enterprise gets used.',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '={{$self["server"] === "https://api.github.com" ? "https://github.com" : $self["server"]}}/login/oauth/authorize',
|
default: '={{$self["server"] === "https://api.github.com" ? "https://github.com" : $self["server"]}}/login/oauth/authorize',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '={{$self["server"] === "https://api.github.com" ? "https://github.com" : $self["server"]}}/login/oauth/access_token',
|
default: '={{$self["server"] === "https://api.github.com" ? "https://github.com" : $self["server"]}}/login/oauth/access_token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'repo,admin:repo_hook,admin:org,admin:org_hook,gist,notifications,user,write:packages,read:packages,delete:packages,worfklow',
|
default: 'repo,admin:repo_hook,admin:org,admin:org_hook,gist,notifications,user,write:packages,read:packages,delete:packages,worfklow',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'header',
|
default: 'header',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,17 +8,17 @@ export class GitlabApi implements ICredentialType {
|
||||||
name = 'gitlabApi';
|
name = 'gitlabApi';
|
||||||
displayName = 'Gitlab API';
|
displayName = 'Gitlab API';
|
||||||
documentationUrl = 'gitlab';
|
documentationUrl = 'gitlab';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Gitlab Server',
|
displayName: 'Gitlab Server',
|
||||||
name: 'server',
|
name: 'server',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: 'https://gitlab.com',
|
default: 'https://gitlab.com',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token',
|
displayName: 'Access Token',
|
||||||
name: 'accessToken',
|
name: 'accessToken',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,43 +11,43 @@ export class GitlabOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'Gitlab OAuth2 API';
|
displayName = 'Gitlab OAuth2 API';
|
||||||
documentationUrl = 'gitlab';
|
documentationUrl = 'gitlab';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Gitlab Server',
|
displayName: 'Gitlab Server',
|
||||||
name: 'server',
|
name: 'server',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: 'https://gitlab.com',
|
default: 'https://gitlab.com',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '={{$self["server"]}}/oauth/authorize',
|
default: '={{$self["server"]}}/oauth/authorize',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '={{$self["server"]}}/oauth/token',
|
default: '={{$self["server"]}}/oauth/token',
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'api',
|
default: 'api',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'body',
|
default: 'body',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
const scopes = [
|
const scopes = [
|
||||||
|
@ -20,11 +20,11 @@ export class GmailOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'Gmail OAuth2 API';
|
displayName = 'Gmail OAuth2 API';
|
||||||
documentationUrl = 'google';
|
documentationUrl = 'google';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: scopes.join(' '),
|
default: scopes.join(' '),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
export class GoToWebinarOAuth2Api implements ICredentialType {
|
export class GoToWebinarOAuth2Api implements ICredentialType {
|
||||||
|
@ -10,35 +10,35 @@ export class GoToWebinarOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'GoToWebinar OAuth2 API';
|
displayName = 'GoToWebinar OAuth2 API';
|
||||||
documentationUrl = 'goToWebinar';
|
documentationUrl = 'goToWebinar';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Authorization URL',
|
displayName: 'Authorization URL',
|
||||||
name: 'authUrl',
|
name: 'authUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://api.getgo.com/oauth/v2/authorize',
|
default: 'https://api.getgo.com/oauth/v2/authorize',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Access Token URL',
|
displayName: 'Access Token URL',
|
||||||
name: 'accessTokenUrl',
|
name: 'accessTokenUrl',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'https://api.getgo.com/oauth/v2/token',
|
default: 'https://api.getgo.com/oauth/v2/token',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '', // set when creating the OAuth client
|
default: '', // set when creating the OAuth client
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Auth URI Query Parameters',
|
displayName: 'Auth URI Query Parameters',
|
||||||
name: 'authQueryParameters',
|
name: 'authQueryParameters',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: '',
|
default: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Authentication',
|
displayName: 'Authentication',
|
||||||
name: 'authentication',
|
name: 'authentication',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: 'header',
|
default: 'header',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
const scopes = [
|
const scopes = [
|
||||||
|
@ -16,11 +16,11 @@ export class GoogleAnalyticsOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'Google Analytics OAuth2 API';
|
displayName = 'Google Analytics OAuth2 API';
|
||||||
documentationUrl = 'google';
|
documentationUrl = 'google';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: scopes.join(' '),
|
default: scopes.join(' '),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,11 +8,11 @@ export class GoogleApi implements ICredentialType {
|
||||||
name = 'googleApi';
|
name = 'googleApi';
|
||||||
displayName = 'Google API';
|
displayName = 'Google API';
|
||||||
documentationUrl = 'google';
|
documentationUrl = 'google';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Service Account Email',
|
displayName: 'Service Account Email',
|
||||||
name: 'email',
|
name: 'email',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
description: 'The Google Service account similar to user-808@project.iam.gserviceaccount.com.',
|
description: 'The Google Service account similar to user-808@project.iam.gserviceaccount.com.',
|
||||||
|
|
||||||
|
@ -20,21 +20,20 @@ export class GoogleApi implements ICredentialType {
|
||||||
{
|
{
|
||||||
displayName: 'Private Key',
|
displayName: 'Private Key',
|
||||||
name: 'privateKey',
|
name: 'privateKey',
|
||||||
lines: 5,
|
type: 'string',
|
||||||
type: 'string' as NodePropertyTypes,
|
|
||||||
default: '',
|
default: '',
|
||||||
description: 'Use the multiline editor. Make sure there are exactly 3 lines.<br />-----BEGIN PRIVATE KEY-----<br />KEY IN A SINGLE LINE<br />-----END PRIVATE KEY-----',
|
description: 'Use the multiline editor. Make sure there are exactly 3 lines.<br />-----BEGIN PRIVATE KEY-----<br />KEY IN A SINGLE LINE<br />-----END PRIVATE KEY-----',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: ' Impersonate a User',
|
displayName: ' Impersonate a User',
|
||||||
name: 'inpersonate',
|
name: 'inpersonate',
|
||||||
type: 'boolean' as NodePropertyTypes,
|
type: 'boolean',
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
displayName: 'Email',
|
displayName: 'Email',
|
||||||
name: 'delegatedEmail',
|
name: 'delegatedEmail',
|
||||||
type: 'string' as NodePropertyTypes,
|
type: 'string',
|
||||||
default: '',
|
default: '',
|
||||||
displayOptions: {
|
displayOptions: {
|
||||||
show: {
|
show: {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ICredentialType,
|
ICredentialType,
|
||||||
NodePropertyTypes,
|
INodeProperties,
|
||||||
} from 'n8n-workflow';
|
} from 'n8n-workflow';
|
||||||
|
|
||||||
const scopes = [
|
const scopes = [
|
||||||
|
@ -14,11 +14,11 @@ export class GoogleBigQueryOAuth2Api implements ICredentialType {
|
||||||
];
|
];
|
||||||
displayName = 'Google BigQuery OAuth2 API';
|
displayName = 'Google BigQuery OAuth2 API';
|
||||||
documentationUrl = 'google';
|
documentationUrl = 'google';
|
||||||
properties = [
|
properties: INodeProperties[] = [
|
||||||
{
|
{
|
||||||
displayName: 'Scope',
|
displayName: 'Scope',
|
||||||
name: 'scope',
|
name: 'scope',
|
||||||
type: 'hidden' as NodePropertyTypes,
|
type: 'hidden',
|
||||||
default: scopes.join(' '),
|
default: scopes.join(' '),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue