mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
144 lines
3.7 KiB
TypeScript
144 lines
3.7 KiB
TypeScript
import type { ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
|
|
export class WeaviateApi implements ICredentialType {
|
|
name = 'weaviateApi';
|
|
|
|
displayName = 'Weaviate Credentials';
|
|
|
|
documentationUrl = 'https://docs.n8n.io/integrations/builtin/credentials/weaviate/';
|
|
|
|
properties: INodeProperties[] = [
|
|
{
|
|
displayName: 'Connection Type',
|
|
name: 'connection_type',
|
|
type: 'options',
|
|
options: [
|
|
{
|
|
name: 'Weaviate Cloud',
|
|
value: 'weaviate_cloud',
|
|
},
|
|
{
|
|
name: 'Custom Connection',
|
|
value: 'custom_connection',
|
|
},
|
|
],
|
|
default: 'weaviate_cloud',
|
|
description:
|
|
'Choose whether to connect to a Weaviate Cloud instance or a custom Weaviate instance.',
|
|
},
|
|
{
|
|
displayName: 'Weaviate Cloud Endpoint',
|
|
name: 'weaviate_cloud_endpoint',
|
|
description: 'The Endpoint of a Weaviate Cloud instance.',
|
|
placeholder: 'https://your-cluster.weaviate.cloud',
|
|
type: 'string',
|
|
required: true,
|
|
default: '',
|
|
displayOptions: {
|
|
show: {
|
|
connection_type: ['weaviate_cloud'],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
displayName: 'Weaviate Api Key',
|
|
name: 'weaviate_api_key',
|
|
description: 'The API key for the Weaviate instance.',
|
|
type: 'string',
|
|
typeOptions: { password: true },
|
|
default: '',
|
|
},
|
|
{
|
|
displayName: 'Custom Connection HTTP Host',
|
|
name: 'custom_connection_http_host',
|
|
description: 'The host of your Weaviate instance.',
|
|
type: 'string',
|
|
required: true,
|
|
default: 'weaviate',
|
|
displayOptions: {
|
|
show: {
|
|
connection_type: ['custom_connection'],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
displayName: 'Custom Connection HTTP Port',
|
|
name: 'custom_connection_http_port',
|
|
description: 'The port of your Weaviate instance.',
|
|
type: 'number',
|
|
required: true,
|
|
default: 8080,
|
|
displayOptions: {
|
|
show: {
|
|
connection_type: ['custom_connection'],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
displayName: 'Custom Connection HTTP Secure',
|
|
name: 'custom_connection_http_secure',
|
|
description: 'Whether to use a secure connection for HTTP.',
|
|
type: 'boolean',
|
|
required: true,
|
|
default: false,
|
|
displayOptions: {
|
|
show: {
|
|
connection_type: ['custom_connection'],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
displayName: 'Custom Connection gRPC Host',
|
|
name: 'custom_connection_grpc_host',
|
|
description: 'The gRPC host of your Weaviate instance.',
|
|
type: 'string',
|
|
required: true,
|
|
default: 'weaviate',
|
|
displayOptions: {
|
|
show: {
|
|
connection_type: ['custom_connection'],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
displayName: 'Custom Connection gRPC Port',
|
|
name: 'custom_connection_grpc_port',
|
|
description: 'The gRPC port of your Weaviate instance.',
|
|
type: 'number',
|
|
required: true,
|
|
default: 50051,
|
|
displayOptions: {
|
|
show: {
|
|
connection_type: ['custom_connection'],
|
|
},
|
|
},
|
|
},
|
|
{
|
|
displayName: 'Custom Connection gRPC Secure',
|
|
name: 'custom_connection_grpc_secure',
|
|
description: 'Whether to use a secure connection for gRPC.',
|
|
type: 'boolean',
|
|
required: true,
|
|
default: false,
|
|
displayOptions: {
|
|
show: {
|
|
connection_type: ['custom_connection'],
|
|
},
|
|
},
|
|
},
|
|
];
|
|
|
|
test: ICredentialTestRequest = {
|
|
request: {
|
|
baseURL:
|
|
'={{$credentials.weaviate_cloud_endpoint?$credentials.weaviate_cloud_endpoint.startsWith("http://") || $credentials.weaviate_cloud_endpoint.startsWith("https://")?$credentials.weaviate_cloud_endpoint:"https://" + $credentials.weaviate_cloud_endpoint:($credentials.custom_connection_http_secure ? "https" : "http") + "://" + $credentials.custom_connection_http_host + ":" + $credentials.custom_connection_http_port }}',
|
|
url: '/v1/nodes',
|
|
disableFollowRedirect: false,
|
|
headers: {
|
|
Authorization:
|
|
'={{$if($credentials.weaviate_api_key, "Bearer " + $credentials.weaviate_api_key, undefined)}}',
|
|
},
|
|
},
|
|
};
|
|
}
|