multiwoven-integrations 0.28.0 → 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: acdbc7603a2a3ec00b87ba9dfab76702391d030c78ade57444ff0ff5d219a464
4
- data.tar.gz: b51c2cbddb3597d1053d08af43dce594b86ab3a308fbd37093167ed99bc2bad7
3
+ metadata.gz: e1837d56b1e775b3f314204b7cebfc7cb285e37a12c1da86895f0886f795a5da
4
+ data.tar.gz: 64620914319d68987f76d7f5494bc45b7ac7b7f949cc47fbcabb3610432fef96
5
5
  SHA512:
6
- metadata.gz: b964f7f98033dc64b70f2080bc9e0006d28c6a9fc2b83ee48cfa7c0ec72ecfc79afa3f641202eaa2749bcd12c1adcfb98d9062ae1133872506d76deb6918ce91
7
- data.tar.gz: 34921ea2abcf6053149983cc23c5d106f041e21e7b592cdf34e4c45ffb218012e47ae48a27dcddaa9f0b2408723caf5ca423ff9381c9c526a801ad0787a2cc55
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.28.0"
5
+ VERSION = "0.29.0"
6
6
 
7
7
  ENABLED_SOURCES = %w[
8
8
  Snowflake
@@ -29,6 +29,7 @@ module Multiwoven
29
29
  GenericOpenAI
30
30
  IntuitQuickBooks
31
31
  PineconeDB
32
+ Qdrant
32
33
  ].freeze
33
34
 
34
35
  ENABLED_DESTINATIONS = %w[
@@ -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>
@@ -87,6 +87,7 @@ 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
89
  require_relative "integrations/source/pinecone_db/client"
90
+ require_relative "integrations/source/qdrant/client"
90
91
 
91
92
  # Destination
92
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.28.0
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-12 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
@@ -793,6 +793,11 @@ files:
793
793
  - lib/multiwoven/integrations/source/postgresql/config/meta.json
794
794
  - lib/multiwoven/integrations/source/postgresql/config/spec.json
795
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
796
801
  - lib/multiwoven/integrations/source/redshift/client.rb
797
802
  - lib/multiwoven/integrations/source/redshift/config/meta.json
798
803
  - lib/multiwoven/integrations/source/redshift/config/spec.json