From e8a5db5beb572edbb61dd9100b70827ccc4cca58 Mon Sep 17 00:00:00 2001 From: Stanimira Rikova <104592468+Stamsy@users.noreply.github.com> Date: Mon, 16 Dec 2024 13:28:55 +0200 Subject: [PATCH] feat: Add SolarWinds Observability node credentials (#11805) --- .../SolarWindsObservabilityApi.credentials.ts | 72 ++++++ .../icons/SolarWindsObservability.svg | 240 ++++++++++++++++++ packages/nodes-base/package.json | 1 + 3 files changed, 313 insertions(+) create mode 100644 packages/nodes-base/credentials/SolarWindsObservabilityApi.credentials.ts create mode 100644 packages/nodes-base/credentials/icons/SolarWindsObservability.svg diff --git a/packages/nodes-base/credentials/SolarWindsObservabilityApi.credentials.ts b/packages/nodes-base/credentials/SolarWindsObservabilityApi.credentials.ts new file mode 100644 index 0000000000..0ae029e074 --- /dev/null +++ b/packages/nodes-base/credentials/SolarWindsObservabilityApi.credentials.ts @@ -0,0 +1,72 @@ +import type { + IAuthenticateGeneric, + ICredentialTestRequest, + ICredentialType, + INodeProperties, +} from 'n8n-workflow'; + +export class SolarWindsObservabilityApi implements ICredentialType { + name = 'solarWindsObservabilityApi'; + + displayName = 'SolarWinds Observability'; + + documentationUrl = 'solarwindsobservability'; + + icon = { + light: 'file:icons/SolarWindsObservability.svg', + dark: 'file:icons/SolarWindsObservability.svg', + } as const; + + httpRequestNode = { + name: 'SolarWinds Observability', + docsUrl: + 'https://documentation.solarwinds.com/en/success_center/observability/content/api/api-swagger.htm', + apiBaseUrlPlaceholder: 'https://api.xx-yy.cloud.solarwinds.com/', + }; + + 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: '/v1/logs', + method: 'GET', + }, + rules: [ + { + type: 'responseSuccessBody', + properties: { + key: 'error', + value: 'invalid_auth', + message: 'Invalid access token', + }, + }, + ], + }; +} diff --git a/packages/nodes-base/credentials/icons/SolarWindsObservability.svg b/packages/nodes-base/credentials/icons/SolarWindsObservability.svg new file mode 100644 index 0000000000..65c383dc33 --- /dev/null +++ b/packages/nodes-base/credentials/icons/SolarWindsObservability.svg @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index e70bac2fc4..e1ceaffe62 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -318,6 +318,7 @@ "dist/credentials/Sms77Api.credentials.js", "dist/credentials/Smtp.credentials.js", "dist/credentials/Snowflake.credentials.js", + "dist/credentials/SolarWindsObservabilityApi.credentials.js", "dist/credentials/SplunkApi.credentials.js", "dist/credentials/SpontitApi.credentials.js", "dist/credentials/SpotifyOAuth2Api.credentials.js",