From 681890a600b804cf116088739ced9dcc3e0d97bc Mon Sep 17 00:00:00 2001 From: tirongi Date: Tue, 21 Nov 2023 19:13:19 +0100 Subject: [PATCH 1/3] Enable inserting custom URL using basic auth --- .../ElectricsearchUserPassword.credential.ts | 2 +- .../Elasticsearch/ElasticSearchBase.ts | 31 ++++++++++++++----- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/packages/components/credentials/ElectricsearchUserPassword.credential.ts b/packages/components/credentials/ElectricsearchUserPassword.credential.ts index 6c47f7b1828..76b9a0eb36b 100644 --- a/packages/components/credentials/ElectricsearchUserPassword.credential.ts +++ b/packages/components/credentials/ElectricsearchUserPassword.credential.ts @@ -15,7 +15,7 @@ class ElasticSearchUserPassword implements INodeCredential { 'Refer to official guide on how to get User Password from ElasticSearch' this.inputs = [ { - label: 'Cloud ID', + label: 'Cloud ID or custom server URL', name: 'cloudId', type: 'string' }, diff --git a/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts b/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts index 59294b7ea1c..68c8392a5f2 100644 --- a/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts +++ b/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts @@ -144,15 +144,30 @@ export abstract class ElasticSearchBase { } else if (cloudId) { let username = getCredentialParam('username', credentialData, nodeData) let password = getCredentialParam('password', credentialData, nodeData) - elasticSearchClientOptions = { - cloud: { - id: cloudId - }, - auth: { - username: username, - password: password + if (cloudId.startsWith('http')) { + let username = getCredentialParam('username', credentialData, nodeData) + let password = getCredentialParam('password', credentialData, nodeData) + elasticSearchClientOptions = { + node: cloudId, + auth: { + username: username, + password: password + }, + tls: { + rejectUnauthorized: false + } } - } + } else{ + elasticSearchClientOptions = { + cloud: { + id: cloudId + }, + auth: { + username: username, + password: password + } + } + } } return elasticSearchClientOptions } From 88c9514cca6a9ede2ae71365ab2305a3e473bafd Mon Sep 17 00:00:00 2001 From: tirongi Date: Tue, 21 Nov 2023 21:45:51 +0100 Subject: [PATCH 2/3] changes based on suggestions --- .../credentials/ElectricsearchUserPassword.credential.ts | 5 +++-- .../nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts | 6 ++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/components/credentials/ElectricsearchUserPassword.credential.ts b/packages/components/credentials/ElectricsearchUserPassword.credential.ts index 76b9a0eb36b..ef4f3490b86 100644 --- a/packages/components/credentials/ElectricsearchUserPassword.credential.ts +++ b/packages/components/credentials/ElectricsearchUserPassword.credential.ts @@ -12,10 +12,11 @@ class ElasticSearchUserPassword implements INodeCredential { this.name = 'elasticSearchUserPassword' this.version = 1.0 this.description = - 'Refer to official guide on how to get User Password from ElasticSearch' + `Use Cloud ID field to enter your Elastic Cloud ID or the URL of the Elastic server instance. + Refer to official guide on how to get User Password from ElasticSearch.` this.inputs = [ { - label: 'Cloud ID or custom server URL', + label: 'Cloud ID', name: 'cloudId', type: 'string' }, diff --git a/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts b/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts index 68c8392a5f2..a1233c21553 100644 --- a/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts +++ b/packages/components/nodes/vectorstores/Elasticsearch/ElasticSearchBase.ts @@ -145,8 +145,6 @@ export abstract class ElasticSearchBase { let username = getCredentialParam('username', credentialData, nodeData) let password = getCredentialParam('password', credentialData, nodeData) if (cloudId.startsWith('http')) { - let username = getCredentialParam('username', credentialData, nodeData) - let password = getCredentialParam('password', credentialData, nodeData) elasticSearchClientOptions = { node: cloudId, auth: { @@ -157,7 +155,7 @@ export abstract class ElasticSearchBase { rejectUnauthorized: false } } - } else{ + } else { elasticSearchClientOptions = { cloud: { id: cloudId @@ -167,7 +165,7 @@ export abstract class ElasticSearchBase { password: password } } - } + } } return elasticSearchClientOptions } From 08443fdb1f93560fd94cceaba8ca103598fb4316 Mon Sep 17 00:00:00 2001 From: tirongi Date: Tue, 21 Nov 2023 21:55:31 +0100 Subject: [PATCH 3/3] linting --- .../credentials/ElectricsearchUserPassword.credential.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/components/credentials/ElectricsearchUserPassword.credential.ts b/packages/components/credentials/ElectricsearchUserPassword.credential.ts index ef4f3490b86..c1ac82c1c1f 100644 --- a/packages/components/credentials/ElectricsearchUserPassword.credential.ts +++ b/packages/components/credentials/ElectricsearchUserPassword.credential.ts @@ -11,8 +11,7 @@ class ElasticSearchUserPassword implements INodeCredential { this.label = 'ElasticSearch User Password' this.name = 'elasticSearchUserPassword' this.version = 1.0 - this.description = - `Use Cloud ID field to enter your Elastic Cloud ID or the URL of the Elastic server instance. + this.description = `Use Cloud ID field to enter your Elastic Cloud ID or the URL of the Elastic server instance. Refer to official guide on how to get User Password from ElasticSearch.` this.inputs = [ {