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