mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 02:21:13 +00:00
N8N-4126 credentials injection and testing on specific nodes (#3816)
* Add credential injection and testing to Lemlist, Uproc, Supabase, Segment, Phantombuster, Mailgun and Dropcontact
This commit is contained in:
@@ -1,4 +1,9 @@
|
||||
import { ICredentialType, NodePropertyTypes } from 'n8n-workflow';
|
||||
import {
|
||||
IAuthenticateGeneric,
|
||||
ICredentialTestRequest,
|
||||
ICredentialType,
|
||||
NodePropertyTypes,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
export class DropcontactApi implements ICredentialType {
|
||||
name = 'dropcontactApi';
|
||||
@@ -12,4 +17,23 @@ export class DropcontactApi implements ICredentialType {
|
||||
default: '',
|
||||
},
|
||||
];
|
||||
authenticate: IAuthenticateGeneric = {
|
||||
type: 'generic',
|
||||
properties: {
|
||||
headers: {
|
||||
'user-agent': 'n8n',
|
||||
'X-Access-Token': '={{$credentials.apiKey}}',
|
||||
},
|
||||
},
|
||||
};
|
||||
test: ICredentialTestRequest = {
|
||||
request: {
|
||||
baseURL: 'https://api.dropcontact.io',
|
||||
url: '/batch',
|
||||
method: 'POST',
|
||||
body: {
|
||||
data: [{ email: '' }],
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
import { ICredentialType, INodeProperties } from 'n8n-workflow';
|
||||
import {
|
||||
ICredentialDataDecryptedObject,
|
||||
ICredentialTestRequest,
|
||||
ICredentialType,
|
||||
IHttpRequestOptions,
|
||||
INodeProperties,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
export class LemlistApi implements ICredentialType {
|
||||
name = 'lemlistApi';
|
||||
@@ -12,4 +18,19 @@ export class LemlistApi implements ICredentialType {
|
||||
default: '',
|
||||
},
|
||||
];
|
||||
async authenticate(
|
||||
credentials: ICredentialDataDecryptedObject,
|
||||
requestOptions: IHttpRequestOptions,
|
||||
): Promise<IHttpRequestOptions> {
|
||||
const encodedApiKey = Buffer.from(':' + credentials.apiKey).toString('base64');
|
||||
requestOptions.headers!['Authorization'] = `Basic ${encodedApiKey}`;
|
||||
requestOptions.headers!['user-agent'] = 'n8n';
|
||||
return requestOptions;
|
||||
}
|
||||
test: ICredentialTestRequest = {
|
||||
request: {
|
||||
baseURL: 'https://api.lemlist.com/api',
|
||||
url: '/campaigns',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { ICredentialType, INodeProperties } from 'n8n-workflow';
|
||||
import {
|
||||
IAuthenticateGeneric,
|
||||
ICredentialTestRequest,
|
||||
ICredentialType,
|
||||
INodeProperties,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
export class MailgunApi implements ICredentialType {
|
||||
name = 'mailgunApi';
|
||||
@@ -35,4 +40,19 @@ export class MailgunApi implements ICredentialType {
|
||||
default: '',
|
||||
},
|
||||
];
|
||||
authenticate: IAuthenticateGeneric = {
|
||||
type: 'generic',
|
||||
properties: {
|
||||
auth: {
|
||||
username: 'api',
|
||||
password: '={{$credentials.apiKey}}',
|
||||
},
|
||||
},
|
||||
};
|
||||
test: ICredentialTestRequest = {
|
||||
request: {
|
||||
baseURL: '=https://{{$credentials.apiDomain}}/v3',
|
||||
url: '/domains',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { ICredentialType, INodeProperties } from 'n8n-workflow';
|
||||
import {
|
||||
IAuthenticateGeneric,
|
||||
ICredentialTestRequest,
|
||||
ICredentialType,
|
||||
INodeProperties,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
export class PhantombusterApi implements ICredentialType {
|
||||
name = 'phantombusterApi';
|
||||
@@ -12,4 +17,18 @@ export class PhantombusterApi implements ICredentialType {
|
||||
default: '',
|
||||
},
|
||||
];
|
||||
authenticate: IAuthenticateGeneric = {
|
||||
type: 'generic',
|
||||
properties: {
|
||||
headers: {
|
||||
'X-Phantombuster-Key': '={{$credentials.apiKey}}',
|
||||
},
|
||||
},
|
||||
};
|
||||
test: ICredentialTestRequest = {
|
||||
request: {
|
||||
baseURL: 'https://api.phantombuster.com/api/v2',
|
||||
url: '/agents/fetch-all',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { ICredentialType, INodeProperties } from 'n8n-workflow';
|
||||
import {
|
||||
ICredentialDataDecryptedObject,
|
||||
ICredentialType,
|
||||
IHttpRequestOptions,
|
||||
INodeProperties,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
export class SegmentApi implements ICredentialType {
|
||||
name = 'segmentApi';
|
||||
@@ -12,4 +17,12 @@ export class SegmentApi implements ICredentialType {
|
||||
default: '',
|
||||
},
|
||||
];
|
||||
async authenticate(
|
||||
credentials: ICredentialDataDecryptedObject,
|
||||
requestOptions: IHttpRequestOptions,
|
||||
): Promise<IHttpRequestOptions> {
|
||||
const base64Key = Buffer.from(`${credentials.writekey}:`).toString('base64');
|
||||
requestOptions.headers!['Authorization'] = `Basic ${base64Key}`;
|
||||
return requestOptions;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { ICredentialType, INodeProperties } from 'n8n-workflow';
|
||||
import {
|
||||
IAuthenticateGeneric,
|
||||
ICredentialTestRequest,
|
||||
ICredentialType,
|
||||
INodeProperties,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
export class SupabaseApi implements ICredentialType {
|
||||
name = 'supabaseApi';
|
||||
@@ -19,4 +24,22 @@ export class SupabaseApi implements ICredentialType {
|
||||
default: '',
|
||||
},
|
||||
];
|
||||
authenticate: IAuthenticateGeneric = {
|
||||
type: 'generic',
|
||||
properties: {
|
||||
headers: {
|
||||
apikey: '={{$credentials.serviceRole}}',
|
||||
Authorization: '=Bearer {{$credentials.serviceRole}}',
|
||||
},
|
||||
},
|
||||
};
|
||||
test: ICredentialTestRequest = {
|
||||
request: {
|
||||
baseURL: '={{$credentials.host}}/rest/v1',
|
||||
headers: {
|
||||
Prefer: 'return=representation',
|
||||
},
|
||||
url: '/',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
import { ICredentialType, INodeProperties } from 'n8n-workflow';
|
||||
import {
|
||||
ICredentialDataDecryptedObject,
|
||||
ICredentialTestRequest,
|
||||
ICredentialType,
|
||||
IHttpRequestOptions,
|
||||
INodeProperties,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
export class UProcApi implements ICredentialType {
|
||||
name = 'uprocApi';
|
||||
@@ -19,4 +25,22 @@ export class UProcApi implements ICredentialType {
|
||||
default: '',
|
||||
},
|
||||
];
|
||||
async authenticate(
|
||||
credentials: ICredentialDataDecryptedObject,
|
||||
requestOptions: IHttpRequestOptions,
|
||||
): Promise<IHttpRequestOptions> {
|
||||
const token = Buffer.from(`${credentials.email}:${credentials.apiKey}`).toString('base64');
|
||||
requestOptions.headers = {
|
||||
...requestOptions.headers,
|
||||
Authorization: `Basic ${token}`,
|
||||
};
|
||||
return requestOptions;
|
||||
}
|
||||
test: ICredentialTestRequest = {
|
||||
request: {
|
||||
baseURL: 'https://api.uproc.io/api/v2',
|
||||
url: '/profile',
|
||||
method: 'GET',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user