multiwoven-integrations 0.1.26 → 0.1.27

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.
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: