multiwoven-integrations 0.1.26 → 0.1.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (23) hide show
  1. checksums.yaml +4 -4
  2. data/lib/multiwoven/integrations/core/base_connector.rb +10 -1
  3. data/lib/multiwoven/integrations/destination/facebook_custom_audience/config/meta.json +1 -1
  4. data/lib/multiwoven/integrations/destination/klaviyo/config/meta.json +1 -1
  5. data/lib/multiwoven/integrations/destination/salesforce_crm/config/meta.json +1 -1
  6. data/lib/multiwoven/integrations/destination/slack/config/meta.json +1 -1
  7. data/lib/multiwoven/integrations/rollout.rb +2 -1
  8. data/lib/multiwoven/integrations/source/bigquery/config/meta.json +1 -1
  9. data/lib/multiwoven/integrations/source/postgresql/client.rb +109 -0
  10. data/lib/multiwoven/integrations/source/postgresql/config/meta.json +15 -0
  11. data/lib/multiwoven/integrations/source/postgresql/config/spec.json +68 -0
  12. data/lib/multiwoven/integrations/source/postgresql/icon.svg +20 -0
  13. data/lib/multiwoven/integrations/source/redshift/config/meta.json +1 -1
  14. data/lib/multiwoven/integrations/source/snowflake/config/meta.json +1 -1
  15. data/lib/multiwoven/integrations.rb +1 -0
  16. metadata +13 -9
  17. /data/{assets/images/connectors/facebook.svg → lib/multiwoven/integrations/destination/facebook_custom_audience/icon.svg} +0 -0
  18. /data/{assets/images/connectors/klaviyo.svg → lib/multiwoven/integrations/destination/klaviyo/icon.svg} +0 -0
  19. /data/{assets/images/connectors/salesforce.svg → lib/multiwoven/integrations/destination/salesforce_crm/icon.svg} +0 -0
  20. /data/{assets/images/connectors/slack.svg → lib/multiwoven/integrations/destination/slack/icon.svg} +0 -0
  21. /data/{assets/images/connectors/bigquery.svg → lib/multiwoven/integrations/source/bigquery/icon.svg} +0 -0
  22. /data/{assets/images/connectors/redshift.svg → lib/multiwoven/integrations/source/redshift/icon.svg} +0 -0
  23. /data/{assets/images/connectors/snowflake.svg → lib/multiwoven/integrations/source/snowflake/icon.svg} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a1b9333ad7242d181c8ac2c70ef61002ac2cd36bd2f2911307156e64cabc909d
4
- data.tar.gz: 242b794fe8d631f986c2c7dd4369e48d1b9914cd5abe75ae9b1c508cedbaa1e9
3
+ metadata.gz: ba4494240d8ec0dd3bc42e423f6b6401ee9733532c989baaab737ec48d19c2ea
4
+ data.tar.gz: 55c7b1d1bdac5b2cc495c7a9f3f31b88c15863912c2e89fecc842b5fc730ffa5
5
5
  SHA512:
6
- metadata.gz: 6524033c6bd87552a24c0fdc09c50552e2887cdb06f896bd4ce14494875f3d9400ca2e1a5fbf4f834a0ab841a29e1b80bb3c32333c657d13d1b2d87b3770d4d9
7
- data.tar.gz: c5ca8de6c4ab7766a9e3a1d16776bab6fc6d9265fc0cdfedc66444706dc37b2d3e012e4e6f79b1c3788c8670651630a77185f7e88d6b97093418cc2002595b6c
6
+ metadata.gz: 3e0980a469f45addfe273f869c8a6e4e222fe12328eb3b9342abb0c24cbf5b76b272e0f249825b583037f571956e523c87aadc4ebcd9aec425fb368c9ca98f8a
7
+ data.tar.gz: 87c70dbe2c5059b4213464cb9c6d41966c4151eb3b1bdb211de1f7bf452791cd9182abcb1891f0ec3648d20f01f25aa1e95ecf7b1a1867a3c8c0c00625e80f26
@@ -18,12 +18,21 @@ module Multiwoven
18
18
  def meta_data
19
19
  client_meta_data = read_json(META_DATA_PATH).deep_symbolize_keys
20
20
  icon_name = client_meta_data[:data][:icon]
21
- icon_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven-integrations/#{MAIN_BRANCH_SHA}/assets/images/connectors/#{icon_name}"
21
+ icon_url = "https://raw.githubusercontent.com/Multiwoven/multiwoven-integrations/#{MAIN_BRANCH_SHA}#{relative_path}/#{icon_name}"
22
22
  client_meta_data[:data][:icon] = icon_url
23
23
  # returns hash
24
24
  @meta_data ||= client_meta_data
25
25
  end
26
26
 
27
+ def relative_path
28
+ path = Object.const_source_location(self.class.to_s)[0]
29
+ connector_folder = File.dirname(path)
30
+ marker = "multiwoven-integrations"
31
+ parts = connector_folder.split(marker)
32
+
33
+ parts.last if parts.length > 1
34
+ end
35
+
27
36
  # Connection config is a hash
28
37
  def check_connection(_connection_config)
29
38
  raise "Not implemented"
@@ -6,7 +6,7 @@
6
6
  "category": "Adtech",
7
7
  "documentation_url": "https://docs.mutliwoven.com",
8
8
  "github_issue_label": "destination-facebook",
9
- "icon": "facebook.svg",
9
+ "icon": "icon.svg",
10
10
  "license": "MIT",
11
11
  "release_stage": "alpha",
12
12
  "support_level": "community",
@@ -6,7 +6,7 @@
6
6
  "category": "Marketing Automation",
7
7
  "documentation_url": "https://docs.mutliwoven.com",
8
8
  "github_issue_label": "destination-klaviyo",
9
- "icon": "klaviyo.svg",
9
+ "icon": "icon.svg",
10
10
  "license": "MIT",
11
11
  "release_stage": "alpha",
12
12
  "support_level": "community",
@@ -6,7 +6,7 @@
6
6
  "category": "CRM",
7
7
  "documentation_url": "https://docs.mutliwoven.com",
8
8
  "github_issue_label": "destination-salesforce-crm",
9
- "icon": "salesforce.svg",
9
+ "icon": "icon.svg",
10
10
  "license": "MIT",
11
11
  "release_stage": "alpha",
12
12
  "support_level": "community",
@@ -6,7 +6,7 @@
6
6
  "category": "Team Collaboration",
7
7
  "documentation_url": "https://docs.mutliwoven.com",
8
8
  "github_issue_label": "destination-slack",
9
- "icon": "slack.svg",
9
+ "icon": "icon.svg",
10
10
  "license": "MIT",
11
11
  "release_stage": "alpha",
12
12
  "support_level": "community",
@@ -2,12 +2,13 @@
2
2
 
3
3
  module Multiwoven
4
4
  module Integrations
5
- VERSION = "0.1.26"
5
+ VERSION = "0.1.27"
6
6
 
7
7
  ENABLED_SOURCES = %w[
8
8
  Snowflake
9
9
  Redshift
10
10
  Bigquery
11
+ Postgresql
11
12
  ].freeze
12
13
 
13
14
  ENABLED_DESTINATIONS = %w[
@@ -6,7 +6,7 @@
6
6
  "category": "Data Warehouse",
7
7
  "documentation_url": "https://docs.mutliwoven.com",
8
8
  "github_issue_label": "source-bigquery",
9
- "icon": "bigquery.svg",
9
+ "icon": "icon.svg",
10
10
  "license": "MIT",
11
11
  "release_stage": "alpha",
12
12
  "support_level": "community",
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pg"
4
+
5
+ module Multiwoven::Integrations::Source
6
+ module Postgresql
7
+ include Multiwoven::Integrations::Core
8
+ class Client < SourceConnector
9
+ def check_connection(connection_config)
10
+ connection_config = connection_config.with_indifferent_access
11
+ create_connection(connection_config)
12
+ ConnectionStatus.new(
13
+ status: ConnectionStatusType["succeeded"]
14
+ ).to_multiwoven_message
15
+ rescue PG::Error => e
16
+ ConnectionStatus.new(
17
+ status: ConnectionStatusType["failed"], message: e.message
18
+ ).to_multiwoven_message
19
+ end
20
+
21
+ def discover(connection_config)
22
+ connection_config = connection_config.with_indifferent_access
23
+ query = "SELECT table_name, column_name, data_type, is_nullable
24
+ FROM information_schema.columns
25
+ WHERE table_schema = '#{connection_config[:schema]}' AND table_catalog = '#{connection_config[:database]}'
26
+ ORDER BY table_name, ordinal_position;"
27
+
28
+ db = create_connection(connection_config)
29
+ records = db.exec(query) do |result|
30
+ result.map do |row|
31
+ row
32
+ end
33
+ end
34
+ catalog = Catalog.new(streams: create_streams(records))
35
+ catalog.to_multiwoven_message
36
+ rescue StandardError => e
37
+ handle_exception(
38
+ "POSTGRESQL:DISCOVER:EXCEPTION",
39
+ "error",
40
+ e
41
+ )
42
+ ensure
43
+ db&.close
44
+ end
45
+
46
+ def read(sync_config)
47
+ connection_config = sync_config.source.connection_specification
48
+ connection_config = connection_config.with_indifferent_access
49
+ query = sync_config.model.query
50
+ query = batched_query(query, sync_config.limit, sync_config.offset) unless sync_config.limit.nil? && sync_config.offset.nil?
51
+
52
+ db = create_connection(connection_config)
53
+
54
+ query(db, query)
55
+ rescue StandardError => e
56
+ handle_exception(
57
+ "POSTGRESQL:READ:EXCEPTION",
58
+ "error",
59
+ e
60
+ )
61
+ ensure
62
+ db&.close
63
+ end
64
+
65
+ private
66
+
67
+ def query(connection, query)
68
+ connection.exec(query) do |result|
69
+ result.map do |row|
70
+ RecordMessage.new(data: row, emitted_at: Time.now.to_i).to_multiwoven_message
71
+ end
72
+ end
73
+ end
74
+
75
+ def create_connection(connection_config)
76
+ raise "Unsupported Auth type" unless connection_config[:credentials][:auth_type] == "username/password"
77
+
78
+ PG.connect(
79
+ host: connection_config[:host],
80
+ dbname: connection_config[:database],
81
+ user: connection_config[:credentials][:username],
82
+ password: connection_config[:credentials][:password],
83
+ port: connection_config[:port]
84
+ )
85
+ end
86
+
87
+ def create_streams(records)
88
+ group_by_table(records).map do |r|
89
+ Multiwoven::Integrations::Protocol::Stream.new(name: r[:tablename], action: StreamAction["fetch"], json_schema: convert_to_json_schema(r[:columns]))
90
+ end
91
+ end
92
+
93
+ def group_by_table(records)
94
+ records.group_by { |entry| entry["table_name"] }.map do |table_name, columns|
95
+ {
96
+ tablename: table_name,
97
+ columns: columns.map do |column|
98
+ {
99
+ column_name: column["column_name"],
100
+ type: column["data_type"],
101
+ optional: column["is_nullable"] == "YES"
102
+ }
103
+ end
104
+ }
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,15 @@
1
+ {
2
+ "data": {
3
+ "name": "Postgresql",
4
+ "title": "PostgreSQL",
5
+ "connector_type": "source",
6
+ "category": "Data Warehouse",
7
+ "documentation_url": "https://docs.mutliwoven.com",
8
+ "github_issue_label": "source-postgresql",
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,68 @@
1
+ {
2
+ "documentation_url": "https://docs.multiwoven.com/integrations/sources/postgresql",
3
+ "stream_type": "dynamic",
4
+ "connection_specification": {
5
+ "$schema": "http://json-schema.org/draft-07/schema#",
6
+ "title": "Postgresql",
7
+ "type": "object",
8
+ "required": ["host", "port", "database", "schema"],
9
+ "properties": {
10
+ "credentials": {
11
+ "title": "",
12
+ "type": "object",
13
+ "required": ["auth_type", "username", "password"],
14
+ "properties": {
15
+ "auth_type": {
16
+ "type": "string",
17
+ "default": "username/password",
18
+ "order": 0,
19
+ "readOnly": true
20
+ },
21
+ "username": {
22
+ "description": "Username refers to your individual PostgreSQL login credentials. At a minimum, the user associated with these credentials must be granted read access to the data intended for synchronization.",
23
+ "examples": ["POSTGRESQL_USER"],
24
+ "type": "string",
25
+ "title": "Username",
26
+ "order": 1
27
+ },
28
+ "password": {
29
+ "description": "This field requires the password associated with the user account specified in the preceding section.",
30
+ "type": "string",
31
+ "multiwoven_secret": true,
32
+ "title": "Password",
33
+ "order": 2
34
+ }
35
+ },
36
+ "order": 0
37
+ },
38
+ "host": {
39
+ "description": "The hostname or IP address of your PostgreSQL server.",
40
+ "examples": ["127.0.0.1"],
41
+ "type": "string",
42
+ "title": "Host",
43
+ "order": 1
44
+ },
45
+ "port": {
46
+ "description": "The port number for your PostgreSQL server, which defaults to 5432, may vary based on your configuration. ",
47
+ "examples": ["5432"],
48
+ "type": "string",
49
+ "title": "Port",
50
+ "order": 2
51
+ },
52
+ "database": {
53
+ "description": "The specific PostgreSQL database to connect to.",
54
+ "examples": ["POSTGRESQL_DB"],
55
+ "type": "string",
56
+ "title": "Database",
57
+ "order": 3
58
+ },
59
+ "schema": {
60
+ "description": "The schema within the PostgreSQL database.",
61
+ "examples": ["POSTGRESQL_SCHEMA"],
62
+ "type": "string",
63
+ "title": "Schema",
64
+ "order": 4
65
+ }
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="432.071pt" height="445.383pt" viewBox="0 0 432.071 445.383" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
4
+ <g id="orginal" style="fill-rule:nonzero;clip-rule:nonzero;stroke:#000000;stroke-miterlimit:4;">
5
+ </g>
6
+ <g id="Layer_x0020_3" style="fill-rule:nonzero;clip-rule:nonzero;fill:none;stroke:#FFFFFF;stroke-width:12.4651;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;">
7
+ <path style="fill:#000000;stroke:#000000;stroke-width:37.3953;stroke-linecap:butt;stroke-linejoin:miter;" d="M323.205,324.227c2.833-23.601,1.984-27.062,19.563-23.239l4.463,0.392c13.517,0.615,31.199-2.174,41.587-7c22.362-10.376,35.622-27.7,13.572-23.148c-50.297,10.376-53.755-6.655-53.755-6.655c53.111-78.803,75.313-178.836,56.149-203.322 C352.514-5.534,262.036,26.049,260.522,26.869l-0.482,0.089c-9.938-2.062-21.06-3.294-33.554-3.496c-22.761-0.374-40.032,5.967-53.133,15.904c0,0-161.408-66.498-153.899,83.628c1.597,31.936,45.777,241.655,98.47,178.31 c19.259-23.163,37.871-42.748,37.871-42.748c9.242,6.14,20.307,9.272,31.912,8.147l0.897-0.765c-0.281,2.876-0.157,5.689,0.359,9.019c-13.572,15.167-9.584,17.83-36.723,23.416c-27.457,5.659-11.326,15.734-0.797,18.367c12.768,3.193,42.305,7.716,62.268-20.224 l-0.795,3.188c5.325,4.26,4.965,30.619,5.72,49.452c0.756,18.834,2.017,36.409,5.856,46.771c3.839,10.36,8.369,37.05,44.036,29.406c29.809-6.388,52.6-15.582,54.677-101.107"/>
8
+ <path style="fill:#336791;stroke:none;" d="M402.395,271.23c-50.302,10.376-53.76-6.655-53.76-6.655c53.111-78.808,75.313-178.843,56.153-203.326c-52.27-66.785-142.752-35.2-144.262-34.38l-0.486,0.087c-9.938-2.063-21.06-3.292-33.56-3.496c-22.761-0.373-40.026,5.967-53.127,15.902 c0,0-161.411-66.495-153.904,83.63c1.597,31.938,45.776,241.657,98.471,178.312c19.26-23.163,37.869-42.748,37.869-42.748c9.243,6.14,20.308,9.272,31.908,8.147l0.901-0.765c-0.28,2.876-0.152,5.689,0.361,9.019c-13.575,15.167-9.586,17.83-36.723,23.416 c-27.459,5.659-11.328,15.734-0.796,18.367c12.768,3.193,42.307,7.716,62.266-20.224l-0.796,3.188c5.319,4.26,9.054,27.711,8.428,48.969c-0.626,21.259-1.044,35.854,3.147,47.254c4.191,11.4,8.368,37.05,44.042,29.406c29.809-6.388,45.256-22.942,47.405-50.555 c1.525-19.631,4.976-16.729,5.194-34.28l2.768-8.309c3.192-26.611,0.507-35.196,18.872-31.203l4.463,0.392c13.517,0.615,31.208-2.174,41.591-7c22.358-10.376,35.618-27.7,13.573-23.148z"/>
9
+ <path d="M215.866,286.484c-1.385,49.516,0.348,99.377,5.193,111.495c4.848,12.118,15.223,35.688,50.9,28.045c29.806-6.39,40.651-18.756,45.357-46.051c3.466-20.082,10.148-75.854,11.005-87.281"/>
10
+ <path d="M173.104,38.256c0,0-161.521-66.016-154.012,84.109c1.597,31.938,45.779,241.664,98.473,178.316c19.256-23.166,36.671-41.335,36.671-41.335"/>
11
+ <path d="M260.349,26.207c-5.591,1.753,89.848-34.889,144.087,34.417c19.159,24.484-3.043,124.519-56.153,203.329"/>
12
+ <path style="stroke-linejoin:bevel;" d="M348.282,263.953c0,0,3.461,17.036,53.764,6.653c22.04-4.552,8.776,12.774-13.577,23.155c-18.345,8.514-59.474,10.696-60.146-1.069c-1.729-30.355,21.647-21.133,19.96-28.739c-1.525-6.85-11.979-13.573-18.894-30.338 c-6.037-14.633-82.796-126.849,21.287-110.183c3.813-0.789-27.146-99.002-124.553-100.599c-97.385-1.597-94.19,119.762-94.19,119.762"/>
13
+ <path d="M188.604,274.334c-13.577,15.166-9.584,17.829-36.723,23.417c-27.459,5.66-11.326,15.733-0.797,18.365c12.768,3.195,42.307,7.718,62.266-20.229c6.078-8.509-0.036-22.086-8.385-25.547c-4.034-1.671-9.428-3.765-16.361,3.994z"/>
14
+ <path d="M187.715,274.069c-1.368-8.917,2.93-19.528,7.536-31.942c6.922-18.626,22.893-37.255,10.117-96.339c-9.523-44.029-73.396-9.163-73.436-3.193c-0.039,5.968,2.889,30.26-1.067,58.548c-5.162,36.913,23.488,68.132,56.479,64.938"/>
15
+ <path style="fill:#FFFFFF;stroke-width:4.155;stroke-linecap:butt;stroke-linejoin:miter;" d="M172.517,141.7c-0.288,2.039,3.733,7.48,8.976,8.207c5.234,0.73,9.714-3.522,9.998-5.559c0.284-2.039-3.732-4.285-8.977-5.015c-5.237-0.731-9.719,0.333-9.996,2.367z"/>
16
+ <path style="fill:#FFFFFF;stroke-width:2.0775;stroke-linecap:butt;stroke-linejoin:miter;" d="M331.941,137.543c0.284,2.039-3.732,7.48-8.976,8.207c-5.238,0.73-9.718-3.522-10.005-5.559c-0.277-2.039,3.74-4.285,8.979-5.015c5.239-0.73,9.718,0.333,10.002,2.368z"/>
17
+ <path d="M350.676,123.432c0.863,15.994-3.445,26.888-3.988,43.914c-0.804,24.748,11.799,53.074-7.191,81.435"/>
18
+ <path style="stroke-width:3;" d="M0,60.232"/>
19
+ </g>
20
+ </svg>
@@ -6,7 +6,7 @@
6
6
  "category": "Data Warehouse",
7
7
  "documentation_url": "https://docs.mutliwoven.com",
8
8
  "github_issue_label": "source-redshift",
9
- "icon": "redshift.svg",
9
+ "icon": "icon.svg",
10
10
  "license": "MIT",
11
11
  "release_stage": "alpha",
12
12
  "support_level": "community",
@@ -6,7 +6,7 @@
6
6
  "category": "Data Warehouse",
7
7
  "documentation_url": "https://docs.mutliwoven.com",
8
8
  "github_issue_label": "source-snowflake",
9
- "icon": "snowflake.svg",
9
+ "icon": "icon.svg",
10
10
  "license": "MIT",
11
11
  "release_stage": "alpha",
12
12
  "support_level": "community",
@@ -33,6 +33,7 @@ require_relative "integrations/core/http_client"
33
33
  require_relative "integrations/source/snowflake/client"
34
34
  require_relative "integrations/source/redshift/client"
35
35
  require_relative "integrations/source/bigquery/client"
36
+ require_relative "integrations/source/postgresql/client"
36
37
 
37
38
  # Destination
38
39
  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.1.26
4
+ version: 0.1.27
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: 2024-02-16 00:00:00.000000000 Z
11
+ date: 2024-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -293,13 +293,6 @@ files:
293
293
  - LICENSE.txt
294
294
  - README.md
295
295
  - Rakefile
296
- - assets/images/connectors/bigquery.svg
297
- - assets/images/connectors/facebook.svg
298
- - assets/images/connectors/klaviyo.svg
299
- - assets/images/connectors/redshift.svg
300
- - assets/images/connectors/salesforce.svg
301
- - assets/images/connectors/slack.svg
302
- - assets/images/connectors/snowflake.svg
303
296
  - lib/multiwoven/integrations.rb
304
297
  - lib/multiwoven/integrations/config.rb
305
298
  - lib/multiwoven/integrations/core/base_connector.rb
@@ -312,18 +305,22 @@ files:
312
305
  - lib/multiwoven/integrations/destination/facebook_custom_audience/config/catalog.json
313
306
  - lib/multiwoven/integrations/destination/facebook_custom_audience/config/meta.json
314
307
  - lib/multiwoven/integrations/destination/facebook_custom_audience/config/spec.json
308
+ - lib/multiwoven/integrations/destination/facebook_custom_audience/icon.svg
315
309
  - lib/multiwoven/integrations/destination/klaviyo/client.rb
316
310
  - lib/multiwoven/integrations/destination/klaviyo/config/catalog.json
317
311
  - lib/multiwoven/integrations/destination/klaviyo/config/meta.json
318
312
  - lib/multiwoven/integrations/destination/klaviyo/config/spec.json
313
+ - lib/multiwoven/integrations/destination/klaviyo/icon.svg
319
314
  - lib/multiwoven/integrations/destination/salesforce_crm/client.rb
320
315
  - lib/multiwoven/integrations/destination/salesforce_crm/config/catalog.json
321
316
  - lib/multiwoven/integrations/destination/salesforce_crm/config/meta.json
322
317
  - lib/multiwoven/integrations/destination/salesforce_crm/config/spec.json
318
+ - lib/multiwoven/integrations/destination/salesforce_crm/icon.svg
323
319
  - lib/multiwoven/integrations/destination/slack/client.rb
324
320
  - lib/multiwoven/integrations/destination/slack/config/catalog.json
325
321
  - lib/multiwoven/integrations/destination/slack/config/meta.json
326
322
  - lib/multiwoven/integrations/destination/slack/config/spec.json
323
+ - lib/multiwoven/integrations/destination/slack/icon.svg
327
324
  - lib/multiwoven/integrations/protocol/protocol.json
328
325
  - lib/multiwoven/integrations/protocol/protocol.rb
329
326
  - lib/multiwoven/integrations/rollout.rb
@@ -331,12 +328,19 @@ files:
331
328
  - lib/multiwoven/integrations/source/bigquery/client.rb
332
329
  - lib/multiwoven/integrations/source/bigquery/config/meta.json
333
330
  - lib/multiwoven/integrations/source/bigquery/config/spec.json
331
+ - lib/multiwoven/integrations/source/bigquery/icon.svg
332
+ - lib/multiwoven/integrations/source/postgresql/client.rb
333
+ - lib/multiwoven/integrations/source/postgresql/config/meta.json
334
+ - lib/multiwoven/integrations/source/postgresql/config/spec.json
335
+ - lib/multiwoven/integrations/source/postgresql/icon.svg
334
336
  - lib/multiwoven/integrations/source/redshift/client.rb
335
337
  - lib/multiwoven/integrations/source/redshift/config/meta.json
336
338
  - lib/multiwoven/integrations/source/redshift/config/spec.json
339
+ - lib/multiwoven/integrations/source/redshift/icon.svg
337
340
  - lib/multiwoven/integrations/source/snowflake/client.rb
338
341
  - lib/multiwoven/integrations/source/snowflake/config/meta.json
339
342
  - lib/multiwoven/integrations/source/snowflake/config/spec.json
343
+ - lib/multiwoven/integrations/source/snowflake/icon.svg
340
344
  - sig/multiwoven/integrations.rbs
341
345
  homepage: https://www.multiwoven.com/
342
346
  licenses: