multiwoven-integrations 0.27.1 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cbd0d602c8388b27dbcb21828148c5c00fcdf260213c2937e4cd501d16b9fb9e
4
- data.tar.gz: d6520c4f7976af01f97b2f8b7e06dbee8e68e94a980aedc9e75b55694542a0ee
3
+ metadata.gz: e1837d56b1e775b3f314204b7cebfc7cb285e37a12c1da86895f0886f795a5da
4
+ data.tar.gz: 64620914319d68987f76d7f5494bc45b7ac7b7f949cc47fbcabb3610432fef96
5
5
  SHA512:
6
- metadata.gz: ac660b7f3b5f4c3ac888ebe912aae96f0333a0d5a894875e379ffac898f3f493b56ed1d336bafc41a9b4f804d3d0ea3677828e9f98cd294d4de4cfcbc6955c30
7
- data.tar.gz: 9766dfbbcd62e9c665a4c32039170683a0e4fb5c33fdac4fb5de9f6296384d2664b6cff1837dae02da33c1a55482c1e998d25832b2025ae1475b5f9b67a4e3a8
6
+ metadata.gz: 8f6b170f29215f49b1903cf07745cb5cc481635073e3393b63b494087164cf145b27ecdddc38045024a5f94f832d08ece978f266899ea852b4d1fce0a522c714
7
+ data.tar.gz: a883f8128881440d1c52b1e54c85b66057a3d7db5564adb3fd11013c3191b42ba86dbe6560d9b9d3724070c0bfd62f032d6c49e15ec5f64f62f84af7d003ee72
@@ -88,6 +88,9 @@ module Multiwoven
88
88
  QUICKBOOKS_SANDBOX_QUERY_URL = "https://sandbox-quickbooks.api.intuit.com/v3/company/%<realm_id>s/query?query=%<query>s"
89
89
  QUICKBOOKS_PRODUCTION_QUERY_URL = "https://quickbooks.api.intuit.com/v3/company/%<realm_id>s/query?query=%<query>s"
90
90
  QUICKBOOKS_REDIRECT_URL = "https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl"
91
+
92
+ # Qdrant
93
+ QDRANT_SEARCH_URL = "%<host>s/collections/%<collection_name>s/points/search"
91
94
  end
92
95
  end
93
96
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Multiwoven
4
4
  module Integrations
5
- VERSION = "0.27.1"
5
+ VERSION = "0.29.0"
6
6
 
7
7
  ENABLED_SOURCES = %w[
8
8
  Snowflake
@@ -28,6 +28,8 @@ module Multiwoven
28
28
  AwsBedrockModel
29
29
  GenericOpenAI
30
30
  IntuitQuickBooks
31
+ PineconeDB
32
+ Qdrant
31
33
  ].freeze
32
34
 
33
35
  ENABLED_DESTINATIONS = %w[
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Multiwoven::Integrations::Source
4
+ module PineconeDB
5
+ include Multiwoven::Integrations::Core
6
+ class Client < VectorSourceConnector
7
+ def check_connection(connection_config)
8
+ connection_config = connection_config.with_indifferent_access
9
+ pinecone = create_connection(connection_config)
10
+ result = pinecone.describe_index(@index_name)
11
+ if success?(result)
12
+ success_status
13
+ else
14
+ failure_status(nil)
15
+ end
16
+ rescue StandardError => e
17
+ handle_exception(e, { context: "PINECONE:CHECK_CONNECTION:EXCEPTION", type: "error" })
18
+ failure_status(e)
19
+ end
20
+
21
+ def discover(_connection_config = nil)
22
+ catalog_json = read_json(CATALOG_SPEC_PATH)
23
+ catalog = build_catalog(catalog_json)
24
+ catalog.to_multiwoven_message
25
+ rescue StandardError => e
26
+ handle_exception(e, {
27
+ context: "PINECONE:DISCOVER:EXCEPTION",
28
+ type: "error"
29
+ })
30
+ end
31
+
32
+ def search(vector_search_config)
33
+ connection_config = vector_search_config.source.connection_specification
34
+ connection_config = connection_config.with_indifferent_access
35
+ connection = create_connection(connection_config)
36
+ pinecone_index = connection.index(@index_name)
37
+ response = pinecone_index.query(vector: vector_search_config[:vector],
38
+ namespace: @namespace,
39
+ top_k: vector_search_config[:limit],
40
+ include_values: true,
41
+ include_metadata: true)
42
+ result = JSON.parse(response.body).with_indifferent_access
43
+ records = result["matches"]
44
+ records.map do |row|
45
+ RecordMessage.new(data: row, emitted_at: Time.now.to_i).to_multiwoven_message
46
+ end
47
+ rescue StandardError => e
48
+ handle_exception(e, {
49
+ context: "PINECONE:SEARCH:EXCEPTION",
50
+ type: "error"
51
+ })
52
+ end
53
+
54
+ private
55
+
56
+ def create_connection(connection_config)
57
+ initialize_client(connection_config)
58
+ Pinecone.configure do |config|
59
+ config.api_key = @api_key
60
+ config.environment = @region
61
+ end
62
+ Pinecone::Client.new
63
+ end
64
+
65
+ def initialize_client(connection_config)
66
+ @api_key = connection_config["api_key"]
67
+ @region = connection_config["region"]
68
+ @index_name = connection_config["index_name"]
69
+ @namespace = connection_config["namespace"]
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,6 @@
1
+ {
2
+ "request_rate_limit": 120000,
3
+ "request_rate_limit_unit": "minute",
4
+ "request_rate_concurrency": 10,
5
+ "streams": []
6
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "data": {
3
+ "name": "PineconeDB",
4
+ "title": "Pinecone DB",
5
+ "connector_type": "source",
6
+ "category": "Database",
7
+ "documentation_url": "https://docs.squared.ai/guides/source/data-sources/pinecone_db",
8
+ "github_issue_label": "source-pinecone-db",
9
+ "icon": "icon.svg",
10
+ "license": "MIT",
11
+ "release_stage": "alpha",
12
+ "support_level": "community",
13
+ "tags": ["language:ruby", "multiwoven"]
14
+ }
15
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "documentation_url": "https://docs.squared.ai/guides/source/data-sources/pinecone_db",
3
+ "stream_type": "dynamic",
4
+ "connector_query_type": "vector_search",
5
+ "connection_specification": {
6
+ "$schema": "http://json-schema.org/draft-07/schema#",
7
+ "title": "Pinecone DB",
8
+ "type": "object",
9
+ "required": ["api_key", "region", "index_name", "namespace"],
10
+ "properties": {
11
+ "api_key": {
12
+ "type": "string",
13
+ "multiwoven_secret": true,
14
+ "title": "API Key",
15
+ "order": 0
16
+ },
17
+ "region": {
18
+ "type": "string",
19
+ "title": "Region",
20
+ "order": 1
21
+ },
22
+ "index_name": {
23
+ "type": "string",
24
+ "title": "Index Name",
25
+ "order": 2
26
+ },
27
+ "namespace": {
28
+ "type": "string",
29
+ "title": "Index Name",
30
+ "order": 3
31
+ }
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
2
+ <svg fill="#000000" width="800px" height="800px" viewBox="0 0 24 24" role="img" xmlns="http://www.w3.org/2000/svg"><title>Dynamics 365 icon</title><path d="M4.59 7.41l4.94 3.54L4.59 24zm0-7.41v6.36l9.53 5.29 4.59-3.52zm0 24l14.82-8.47v-6.7Z"/></svg>
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Multiwoven::Integrations::Source
4
+ module Qdrant
5
+ include Multiwoven::Integrations::Core
6
+ class Client < VectorSourceConnector
7
+ def check_connection(connection_config)
8
+ connection_config = connection_config.with_indifferent_access
9
+ create_connection(connection_config)
10
+ response = Multiwoven::Integrations::Core::HttpClient.request(
11
+ @host,
12
+ HTTP_GET,
13
+ headers: auth_headers(@api_key)
14
+ )
15
+ if success?(response)
16
+ success_status
17
+ else
18
+ failure_status(nil)
19
+ end
20
+ rescue StandardError => e
21
+ handle_exception(e, {
22
+ context: "QDRANT:CHECK_CONNECTION:EXCEPTION",
23
+ type: "error"
24
+ })
25
+ failure_status(e)
26
+ end
27
+
28
+ def discover(_connection_config = nil)
29
+ catalog_json = read_json(CATALOG_SPEC_PATH)
30
+ catalog = build_catalog(catalog_json)
31
+ catalog.to_multiwoven_message
32
+ rescue StandardError => e
33
+ handle_exception(e, {
34
+ context: "QDRANT:DISCOVER:EXCEPTION",
35
+ type: "error"
36
+ })
37
+ end
38
+
39
+ def search(vector_search_config)
40
+ connection_config = vector_search_config.source.connection_specification
41
+ connection_config = connection_config.with_indifferent_access
42
+ create_connection(connection_config)
43
+ url = build_url(QDRANT_SEARCH_URL)
44
+
45
+ body = {
46
+ vector: vector_search_config[:vector],
47
+ top: vector_search_config[:limit]
48
+ }
49
+
50
+ response = Multiwoven::Integrations::Core::HttpClient.request(
51
+ url,
52
+ HTTP_POST,
53
+ headers: {
54
+ "Content-Type" => "application/json",
55
+ "api-key" => @api_key
56
+ },
57
+ payload: body
58
+ )
59
+
60
+ response = JSON.parse(response.body).with_indifferent_access
61
+ records = response[:result] || []
62
+
63
+ records.map do |row|
64
+ RecordMessage.new(data: row, emitted_at: Time.now.to_i).to_multiwoven_message
65
+ end
66
+ rescue StandardError => e
67
+ handle_exception(e, {
68
+ context: "QDRANT:SEARCH:EXCEPTION",
69
+ type: "error"
70
+ })
71
+ end
72
+
73
+ private
74
+
75
+ def create_connection(connection_config)
76
+ @api_key = connection_config[:api_key]
77
+ @host = connection_config[:host]
78
+ @collection_name = connection_config[:collection_name]
79
+ end
80
+
81
+ def build_url(url)
82
+ format(url, host: @host, collection_name: @collection_name)
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,6 @@
1
+ {
2
+ "request_rate_limit": 1200,
3
+ "request_rate_limit_unit": "minute",
4
+ "request_rate_concurrency": 10,
5
+ "streams": []
6
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "data": {
3
+ "name": "Qdrant",
4
+ "title": "Qdrant",
5
+ "connector_type": "source",
6
+ "category": "Database",
7
+ "documentation_url": "https://docs.squared.ai/guides/source/data-sources/qdrant",
8
+ "github_issue_label": "source-qdrant",
9
+ "icon": "icon.svg",
10
+ "license": "MIT",
11
+ "release_stage": "alpha",
12
+ "support_level": "community",
13
+ "tags": ["language:ruby", "multiwoven"]
14
+ }
15
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "documentation_url": "https://docs.squared.ai/guides/source/data-sources/qdrant",
3
+ "stream_type": "user_defined",
4
+ "connector_query_type": "vector_search",
5
+ "connection_specification": {
6
+ "$schema": "http://json-schema.org/draft-07/schema#",
7
+ "title": "Qdrant",
8
+ "type": "object",
9
+ "required": ["host", "api_key", "collection_name"],
10
+ "properties": {
11
+ "host": {
12
+ "type": "string",
13
+ "title": "API Url",
14
+ "order": 0
15
+ },
16
+ "api_key": {
17
+ "type": "string",
18
+ "multiwoven_secret": true,
19
+ "title": "API Key",
20
+ "order": 1
21
+ },
22
+ "collection_name": {
23
+ "type": "string",
24
+ "title": "Collection Name",
25
+ "order": 2
26
+ }
27
+ }
28
+ }
29
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 451.84 152.4" width="451.84" height="152.4" fill="none"><g fill="#dc244c"><path d="M212.69 116c0 5.523-4.477 10.001-10 10.001h-6.836v-7.808h-.244c-.732 1.057-1.708 2.155-2.928 3.293-1.139 1.058-2.521 2.034-4.148 2.929-1.545.894-3.294 1.626-5.246 2.196a20.015 20.015 0 0 1-5.856.853c-4.392 0-8.377-.732-11.956-2.196-3.579-1.545-6.669-3.66-9.272-6.344-2.521-2.765-4.473-6.018-5.856-9.759-1.383-3.742-2.074-7.849-2.074-12.322 0-4.148.61-8.093 1.83-11.835 1.301-3.822 3.091-7.198 5.368-10.126a26.176 26.176 0 0 1 8.54-6.954c3.335-1.789 7.117-2.683 11.346-2.683 3.823 0 7.361.61 10.614 1.83 3.335 1.138 6.059 3.13 8.174 5.978h.244V43.769c0-5.523 4.477-10 10-10h8.3zm-16.836-19.646c0-4.473-1.301-8.092-3.904-10.858-2.521-2.765-6.1-4.148-10.736-4.148s-8.255 1.383-10.858 4.148c-2.521 2.766-3.782 6.385-3.782 10.858 0 4.474 1.261 8.093 3.782 10.858 2.603 2.766 6.222 4.149 10.858 4.149s8.215-1.383 10.736-4.149c2.603-2.765 3.904-6.384 3.904-10.858zM224.53 76.708c0-5.522 4.477-10 10-10h8.3v9.516h.244c1.952-3.66 4.27-6.384 6.954-8.174 2.684-1.87 6.059-2.805 10.126-2.805 1.057 0 2.114.04 3.172.121 1.057.082 2.033.245 2.928.489v16.713a22.4 22.4 0 0 0-3.904-.854 19.895 19.895 0 0 0-3.904-.367c-3.498 0-6.263.489-8.296 1.465-2.034.975-3.62 2.358-4.758 4.147-1.058 1.708-1.749 3.782-2.074 6.222-.326 2.441-.488 5.124-.488 8.052V116c0 5.524-4.477 10.002-10 10.002h-8.3zM310.64 118.56h-.244c-2.033 3.172-4.758 5.449-8.174 6.832-3.334 1.382-6.872 2.073-10.614 2.073-2.765 0-5.449-.406-8.052-1.219-2.521-.732-4.758-1.871-6.71-3.416-1.952-1.546-3.497-3.457-4.636-5.735-1.138-2.277-1.708-4.92-1.708-7.929 0-3.416.61-6.304 1.83-8.662 1.302-2.359 3.01-4.311 5.124-5.856 2.196-1.546 4.677-2.725 7.442-3.538a50.076 50.076 0 0 1 8.54-1.953c3.01-.406 5.978-.65 8.906-.732 3.01-.081 5.775-.121 8.296-.121 0-3.254-1.179-5.816-3.538-7.687-2.277-1.952-5.002-2.928-8.174-2.928-3.009 0-5.774.651-8.296 1.952-2.44 1.221-4.636 2.929-6.588 5.124l-9.76-10.004c3.416-3.171 7.402-5.53 11.956-7.075a41.766 41.766 0 0 1 14.152-2.44c5.368 0 9.76.69 13.176 2.073 3.498 1.302 6.263 3.254 8.296 5.856 2.115 2.603 3.579 5.816 4.392 9.638.814 3.742 1.22 8.093 1.22 13.054v20.135c0 5.522-4.477 10-10 10h-6.836zm-4.514-18.545c-1.382 0-3.131.082-5.246.244a24.865 24.865 0 0 0-5.978.976c-1.87.57-3.497 1.424-4.88 2.562-1.301 1.139-1.952 2.725-1.952 4.759 0 2.196.936 3.822 2.806 4.879 1.871 1.058 3.823 1.586 5.856 1.586 1.79 0 3.498-.244 5.124-.732 1.708-.488 3.213-1.179 4.514-2.074a9.45 9.45 0 0 0 3.05-3.416c.814-1.382 1.22-3.009 1.22-4.879v-3.905zM340.18 76.708c0-5.522 4.477-10 10-10h7.568v8.052h.244c.569-1.138 1.382-2.277 2.44-3.416 1.057-1.138 2.318-2.155 3.782-3.05s3.131-1.626 5.002-2.195c1.87-.57 3.904-.854 6.1-.854 4.636 0 8.377.732 11.224 2.196 2.846 1.382 5.042 3.334 6.588 5.855 1.626 2.522 2.724 5.49 3.294 8.906.569 3.416.854 7.117.854 11.103V116c0 5.523-4.477 10.001-10 10.001h-8.3V96.964a58.2 58.2 0 0 0-.244-5.246c-.082-1.87-.448-3.578-1.098-5.123a8.154 8.154 0 0 0-2.806-3.783c-1.22-.976-3.01-1.464-5.368-1.464-2.359 0-4.27.448-5.734 1.342a8.629 8.629 0 0 0-3.416 3.416c-.732 1.383-1.22 2.969-1.464 4.758a41.535 41.535 0 0 0-.366 5.612V116c0 5.523-4.477 10.001-10 10.001h-8.3zM451.84 71.348c0 5.522-4.477 10-10 10h-6.104v19.764c0 1.627.082 3.132.244 4.514.163 1.301.529 2.44 1.098 3.415.57.977 1.424 1.75 2.562 2.32 1.22.487 2.806.73 4.758.73.976 0 2.237-.08 3.782-.243 1.627-.245 2.847-.732 3.66-1.464v8.725c0 3.915-2.452 7.557-6.344 7.989a58.528 58.528 0 0 1-6.466.366c-3.09 0-5.937-.325-8.54-.976-2.602-.65-4.88-1.667-6.832-3.05-1.952-1.463-3.497-3.334-4.636-5.612-1.057-2.277-1.586-5.042-1.586-8.295V81.347h-11.712v-4.64c0-5.522 4.478-9.999 10-9.999h1.712V59.14c0-5.523 4.478-10 10-10h8.3v17.568h16.104z"/></g><g fill-rule="evenodd" clip-rule="evenodd"><path fill="#24386c" d="m103.79 140.09-3.039-83.784-5.503-22.089 36.734 3.889v101.35l-22.44 12.95z"/><path fill="#7589be" d="m131.98 38.1-22.44 12.96-46.308-10.158L9.029 62.971-.001 38.1l32.99-19.05 33-19.05 32.99 19.05z"/><path fill="#b2bfe8" d="m0 38.1 22.44 12.96 13.008 38.686 43.921 35.142L65.991 152.4l-33-19.051L0 114.299v-76.2"/><path fill="#24386c" d="m80.868 104.56-14.877 21.932v25.91l21.11-12.18 10.877-16.242"/><path fill="#7589be" d="M66 100.59 44.881 64.025l4.549-12.119 17.293-8.384L87.1 64.026z"/><path fill="#b2bfe8" d="m44.881 64.022 21.11 12.18v24.38l-19.524.84-11.81-15.08 10.224-22.32"/><path fill="#24386c" d="m65.991 76.2 21.11-12.179 14.367 23.922-17.386 14.365-18.091-1.727z"/><path fill="#dc244c" d="m87.101 140.22 22.44 12.181V51.061l-21.78-12.57-21.77-12.57-21.78 12.57-21.77 12.57v50.289l21.77 12.57 21.78 12.571 21.11-12.191zm0-51.83-21.11 12.19-21.11-12.19V64.02l21.11-12.19 21.11 12.19v24.37"/></g><path fill="url(#a)" d="M66 126.5v-25.914L45 88.5v25.871z"/><defs><linearGradient id="a" x1="62.128" x2="41.202" y1="105.54" y2="105.54" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#FF3364"/><stop offset="1" stop-color="#C91540" stop-opacity="0"/></linearGradient></defs></svg>
@@ -86,6 +86,8 @@ require_relative "integrations/source/anthropic/client"
86
86
  require_relative "integrations/source/aws_bedrock_model/client"
87
87
  require_relative "integrations/source/generic_open_ai/client"
88
88
  require_relative "integrations/source/intuit_quick_books/client"
89
+ require_relative "integrations/source/pinecone_db/client"
90
+ require_relative "integrations/source/qdrant/client"
89
91
 
90
92
  # Destination
91
93
  require_relative "integrations/destination/klaviyo/client"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: multiwoven-integrations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.1
4
+ version: 0.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Subin T P
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-06-11 00:00:00.000000000 Z
11
+ date: 2025-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -784,10 +784,20 @@ files:
784
784
  - lib/multiwoven/integrations/source/oracle_db/config/meta.json
785
785
  - lib/multiwoven/integrations/source/oracle_db/config/spec.json
786
786
  - lib/multiwoven/integrations/source/oracle_db/icon.svg
787
+ - lib/multiwoven/integrations/source/pinecone_db/client.rb
788
+ - lib/multiwoven/integrations/source/pinecone_db/config/catalog.json
789
+ - lib/multiwoven/integrations/source/pinecone_db/config/meta.json
790
+ - lib/multiwoven/integrations/source/pinecone_db/config/spec.json
791
+ - lib/multiwoven/integrations/source/pinecone_db/icon.svg
787
792
  - lib/multiwoven/integrations/source/postgresql/client.rb
788
793
  - lib/multiwoven/integrations/source/postgresql/config/meta.json
789
794
  - lib/multiwoven/integrations/source/postgresql/config/spec.json
790
795
  - lib/multiwoven/integrations/source/postgresql/icon.svg
796
+ - lib/multiwoven/integrations/source/qdrant/client.rb
797
+ - lib/multiwoven/integrations/source/qdrant/config/catalog.json
798
+ - lib/multiwoven/integrations/source/qdrant/config/meta.json
799
+ - lib/multiwoven/integrations/source/qdrant/config/spec.json
800
+ - lib/multiwoven/integrations/source/qdrant/icon.svg
791
801
  - lib/multiwoven/integrations/source/redshift/client.rb
792
802
  - lib/multiwoven/integrations/source/redshift/config/meta.json
793
803
  - lib/multiwoven/integrations/source/redshift/config/spec.json