workato-connector-sdk 1.3.9 → 1.3.10

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: dc61d331c5e90aefecdbb3f336ae69937bb29b68f7bd7719d81bcdb5c3c86bd9
4
- data.tar.gz: b229cca847d63f6e209f84d10e82aa63fda5b87408f4af80c0c5608f2bc42654
3
+ metadata.gz: a4307598e8aa6c86eb54f75b63648f20bc192be58e22a6a5f7c5aa0b4efefd01
4
+ data.tar.gz: 1db7b500cec4f2e761a2ca3eb9d21c11b14b0a7b67c239f600348bbdac0ec393
5
5
  SHA512:
6
- metadata.gz: 5c235fca45159067ee8a175893692d739b4ad484f25538a6791e2a4f09fec895e719b6cbfb2159be790427f29226cea9be018d460679cafff1aa81416d9f8e14
7
- data.tar.gz: 95d48a7b47e8dde25b95491594914a1f3a4e932c92edbaa94c98f6a80621b4c536b259465f46af21f5d634a1a18c021b9453e4b44b9f0ea0522a13db9a239ad7
6
+ metadata.gz: d4e29f03eed4679751a90297de15988ac154cd83404da08a95484d2651c95c2bdc3aa7bc6a3647225bbb78776de222fe482ef846e21f0d6e8a5cc4d7953be620
7
+ data.tar.gz: 9d82d01badd7c60f971d3b2bbecf452d6d80314a7833f414b05fd8eb4d6510d7c7328a7c893c99daa6b713c7a66714e4f04d086f4bf2161bfb114e6f08639a47
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.9
1
+ 1.3.10
@@ -70,7 +70,7 @@ module Workato
70
70
  extended_input_schema,
71
71
  extended_output_schema,
72
72
  next_continue,
73
- &(block || action[:execute])
73
+ &block || action[:execute]
74
74
  )
75
75
  end
76
76
  rescue RequestFailedError => e
@@ -1,4 +1,5 @@
1
1
  # typed: false
2
2
  # frozen_string_literal: true
3
+
3
4
  #
4
5
  # This file is intentionally left blank. Do not remove
@@ -268,7 +268,7 @@ module Workato
268
268
 
269
269
  sig { void }
270
270
  def define_action_methods
271
- methods.each do |method, _definition|
271
+ methods.each_key do |method|
272
272
  define_singleton_method(method) do |*args|
273
273
  @actions[method] ||= Action.new(
274
274
  action: {
@@ -40,6 +40,12 @@ module Workato
40
40
  ALLOWED_KEY_SIZES = [128, 192, 256].freeze
41
41
  private_constant :ALLOWED_KEY_SIZES
42
42
 
43
+ ALLOWED_INITIALIZATION_VECTOR_SIZE = 96
44
+ private_constant :ALLOWED_INITIALIZATION_VECTOR_SIZE
45
+
46
+ ALLOWED_AUTH_TAG_SIZES = [96, 104, 112, 120, 128].freeze
47
+ private_constant :ALLOWED_AUTH_TAG_SIZES
48
+
43
49
  def initialize(streams:, connection:)
44
50
  @streams = streams
45
51
  @connection = connection
@@ -163,6 +169,33 @@ module Workato
163
169
  Types::Binary.new(cipher.update(string) + cipher.final)
164
170
  end
165
171
 
172
+ def aes_gcm_encrypt(string, key, init_vector, auth_data = '')
173
+ unless string.is_a?(String) && key.is_a?(String) && init_vector.is_a?(String) && auth_data.is_a?(String)
174
+ raise Sdk::ArgumentError, 'All arguments must be of type String'
175
+ end
176
+
177
+ unless string.valid_encoding?
178
+ raise Sdk::ArgumentEncodingError, 'Data to be encrypted must have valid encoding'
179
+ end
180
+
181
+ raise Sdk::ArgumentError, 'Data to be encrypted must not be empty' if string.empty?
182
+
183
+ key_size = key.bytesize * 8
184
+ raise Sdk::ArgumentError, 'Incorrect key size for AES' unless ALLOWED_KEY_SIZES.include?(key_size)
185
+
186
+ init_vector_size = init_vector.bytesize * 8
187
+ unless init_vector_size == ALLOWED_INITIALIZATION_VECTOR_SIZE
188
+ raise Sdk::ArgumentError, 'Incorrect key size for Initialization Vector'
189
+ end
190
+
191
+ cipher = ::OpenSSL::Cipher.new("AES-#{key_size}-GCM")
192
+ cipher.encrypt
193
+ cipher.key = key
194
+ cipher.iv = init_vector
195
+ cipher.auth_data = auth_data
196
+ [cipher.update(string) + cipher.final, cipher.auth_tag].map { |v| Types::Binary.new(v) }
197
+ end
198
+
166
199
  def aes_cbc_decrypt(string, key, init_vector = nil)
167
200
  key_size = key.bytesize * 8
168
201
  unless ALLOWED_KEY_SIZES.include?(key_size)
@@ -178,6 +211,39 @@ module Workato
178
211
  raise Sdk::ArgumentError, e.message
179
212
  end
180
213
 
214
+ def aes_gcm_decrypt(encrypted, key, auth_tag, init_vector, auth_data = '')
215
+ unless encrypted.is_a?(String) &&
216
+ key.is_a?(String) &&
217
+ auth_tag.is_a?(String) &&
218
+ init_vector.is_a?(String) &&
219
+ auth_data.is_a?(String)
220
+ raise Sdk::ArgumentError, 'All arguments must be of type String'
221
+ end
222
+
223
+ unless encrypted.valid_encoding?
224
+ raise Sdk::ArgumentEncodingError, 'Data to be decrypted must have valid encoding'
225
+ end
226
+
227
+ raise Sdk::ArgumentError, 'Data to be decrypted must not be empty' if encrypted.blank?
228
+
229
+ auth_tag_size = auth_tag.bytesize * 8
230
+ unless ALLOWED_AUTH_TAG_SIZES.include?(auth_tag_size)
231
+ raise Sdk::ArgumentError, 'Incorrect authentication tag size'
232
+ end
233
+
234
+ key_size = key.bytesize * 8
235
+ raise Sdk::ArgumentError, 'Incorrect key size for AES' unless ALLOWED_KEY_SIZES.include?(key_size)
236
+
237
+ decipher = ::OpenSSL::Cipher.new("AES-#{key_size}-GCM").decrypt
238
+ decipher.key = key
239
+ decipher.iv = init_vector
240
+ decipher.auth_data = auth_data
241
+ decipher.auth_tag = auth_tag
242
+ Types::Binary.new(decipher.update(encrypted) + decipher.final)
243
+ rescue OpenSSL::Cipher::CipherError
244
+ raise Sdk::ArgumentError, 'Not able to decrypt, please check input values again'
245
+ end
246
+
181
247
  def pbkdf2_hmac_sha1(string, salt, iterations = 1000, key_len = 16)
182
248
  Types::Binary.new(::OpenSSL::PKCS5.pbkdf2_hmac_sha1(string, salt, iterations, key_len))
183
249
  end
@@ -12,6 +12,8 @@ module Workato
12
12
 
13
13
  ArgumentError = Class.new(Error)
14
14
 
15
+ ArgumentEncodingError = Class.new(ArgumentError)
16
+
15
17
  InvalidDefinitionError = Class.new(Error)
16
18
 
17
19
  InvalidURIError = Class.new(Error)
@@ -155,8 +155,8 @@ module Workato
155
155
  self
156
156
  end
157
157
 
158
- def format_xml(root_element_name, namespaces = {}, strip_response_namespaces: false)
159
- request_format_xml(root_element_name, namespaces)
158
+ def format_xml(root_element_name, namespaces = {}, strip_response_namespaces: false, **kwargs)
159
+ request_format_xml(root_element_name, namespaces.merge(kwargs))
160
160
  .response_format_xml(strip_response_namespaces: strip_response_namespaces)
161
161
  end
162
162
 
@@ -35,7 +35,7 @@ module Workato
35
35
 
36
36
  sig { params(streams_source: SorbetTypes::SourceHash).void }
37
37
  def define_action_methods(streams_source)
38
- streams_source.each do |stream, _stream_proc|
38
+ streams_source.each_key do |stream|
39
39
  define_singleton_method(stream) do |input = {}, from = 0, to = nil, frame_size = Stream::DEFAULT_FRAME_SIZE|
40
40
  to ||= from + frame_size
41
41
  self[stream].chunk(input, from, to, frame_size)
@@ -54,7 +54,7 @@ module Workato
54
54
  time = ::Time.strptime(self, format)
55
55
  form == :utc ? time.utc : time.getlocal
56
56
  else
57
- super form
57
+ super(form)
58
58
  end
59
59
  end
60
60
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workato-connector-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.9
4
+ version: 1.3.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Abolmasov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-09 00:00:00.000000000 Z
11
+ date: 2024-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -34,14 +34,20 @@ dependencies:
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - '='
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.2'
40
+ - - ">="
38
41
  - !ruby/object:Gem::Version
39
42
  version: 1.2.4
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
43
46
  requirements:
44
- - - '='
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '1.2'
50
+ - - ">="
45
51
  - !ruby/object:Gem::Version
46
52
  version: 1.2.4
47
53
  - !ruby/object:Gem::Dependency
@@ -90,14 +96,20 @@ dependencies:
90
96
  name: gyoku
91
97
  requirement: !ruby/object:Gem::Requirement
92
98
  requirements:
93
- - - '='
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '1.3'
102
+ - - ">="
94
103
  - !ruby/object:Gem::Version
95
104
  version: 1.3.1
96
105
  type: :runtime
97
106
  prerelease: false
98
107
  version_requirements: !ruby/object:Gem::Requirement
99
108
  requirements:
100
- - - '='
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '1.3'
112
+ - - ">="
101
113
  - !ruby/object:Gem::Version
102
114
  version: 1.3.1
103
115
  - !ruby/object:Gem::Dependency
@@ -158,16 +170,16 @@ dependencies:
158
170
  name: net-http-digest_auth
159
171
  requirement: !ruby/object:Gem::Requirement
160
172
  requirements:
161
- - - '='
173
+ - - "~>"
162
174
  - !ruby/object:Gem::Version
163
- version: 1.4.0
175
+ version: '1.4'
164
176
  type: :runtime
165
177
  prerelease: false
166
178
  version_requirements: !ruby/object:Gem::Requirement
167
179
  requirements:
168
- - - '='
180
+ - - "~>"
169
181
  - !ruby/object:Gem::Version
170
- version: 1.4.0
182
+ version: '1.4'
171
183
  - !ruby/object:Gem::Dependency
172
184
  name: nokogiri
173
185
  requirement: !ruby/object:Gem::Requirement
@@ -177,7 +189,7 @@ dependencies:
177
189
  version: 1.13.10
178
190
  - - "<"
179
191
  - !ruby/object:Gem::Version
180
- version: '1.15'
192
+ version: '1.16'
181
193
  type: :runtime
182
194
  prerelease: false
183
195
  version_requirements: !ruby/object:Gem::Requirement
@@ -187,7 +199,7 @@ dependencies:
187
199
  version: 1.13.10
188
200
  - - "<"
189
201
  - !ruby/object:Gem::Version
190
- version: '1.15'
202
+ version: '1.16'
191
203
  - !ruby/object:Gem::Dependency
192
204
  name: rack
193
205
  requirement: !ruby/object:Gem::Requirement