diff --git a/packages/nodes-base/credentials/ZabbixApi.credentials.ts b/packages/nodes-base/credentials/ZabbixApi.credentials.ts new file mode 100644 index 0000000000..1c081b30da --- /dev/null +++ b/packages/nodes-base/credentials/ZabbixApi.credentials.ts @@ -0,0 +1,78 @@ +import type { + IAuthenticateGeneric, + Icon, + ICredentialTestRequest, + ICredentialType, + INodeProperties, +} from 'n8n-workflow'; + +export class ZabbixApi implements ICredentialType { + name = 'zabbixApi'; + + displayName = 'Zabbix API'; + + documentationUrl = 'zabbix'; + + icon: Icon = 'file:icons/Zabbix.svg'; + + httpRequestNode = { + name: 'Zabbix', + docsUrl: 'https://www.zabbix.com/documentation/current/en/manual/api', + apiBaseUrl: '', + }; + + properties: INodeProperties[] = [ + { + displayName: 'URL', + name: 'url', + required: true, + type: 'string', + default: '', + }, + { + displayName: 'API Token', + name: 'apiToken', + required: true, + type: 'string', + typeOptions: { password: true }, + default: '', + }, + ]; + + authenticate: IAuthenticateGeneric = { + type: 'generic', + properties: { + headers: { + Authorization: '=Bearer {{$credentials.apiToken}}', + 'Content-Type': 'application/json-rpc', + }, + }, + }; + + test: ICredentialTestRequest = { + request: { + baseURL: '={{$credentials.url}}'.replace(/\/$/, ''), + url: '/api_jsonrpc.php', + method: 'POST', + body: { + jsonrpc: '2.0', + method: 'host.get', + params: { + output: ['hostid', 'host'], + selectInterfaces: ['interfaceid', 'ip'], + }, + id: 2, + }, + }, + rules: [ + { + type: 'responseSuccessBody', + properties: { + key: 'result', + value: undefined, + message: 'Invalid access token', + }, + }, + ], + }; +} diff --git a/packages/nodes-base/credentials/icons/Zabbix.svg b/packages/nodes-base/credentials/icons/Zabbix.svg new file mode 100644 index 0000000000..960a3a3341 --- /dev/null +++ b/packages/nodes-base/credentials/icons/Zabbix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index 3508b4b012..88ae4605b6 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -380,6 +380,7 @@ "dist/credentials/XeroOAuth2Api.credentials.js", "dist/credentials/YourlsApi.credentials.js", "dist/credentials/YouTubeOAuth2Api.credentials.js", + "dist/credentials/ZabbixApi.credentials.js", "dist/credentials/ZammadBasicAuthApi.credentials.js", "dist/credentials/ZammadTokenAuthApi.credentials.js", "dist/credentials/ZendeskApi.credentials.js",