workato-connector-sdk 1.3.1 → 1.3.3
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 +4 -4
- data/VERSION +1 -1
- data/lib/workato/cli/multi_auth_selected_fallback.rb +1 -0
- data/lib/workato/cli/oauth2_command.rb +14 -14
- data/lib/workato/connector/sdk/action.rb +1 -1
- data/lib/workato/connector/sdk/blank.rb +4 -0
- data/lib/workato/connector/sdk/dsl/csv_package.rb +12 -5
- data/lib/workato/connector/sdk/dsl/net_package.rb +58 -0
- data/lib/workato/connector/sdk/dsl/workato_package.rb +73 -16
- data/lib/workato/connector/sdk/errors.rb +2 -0
- data/lib/workato/connector/sdk/request.rb +3 -2
- data/lib/workato/connector/sdk/stream.rb +1 -1
- data/lib/workato/connector/sdk/trigger.rb +12 -7
- data/lib/workato/extension/array.rb +1 -1
- data/lib/workato/extension/enumerable.rb +0 -2
- data/lib/workato/extension/extra_chain_cert.rb +2 -2
- data/lib/workato/extension/metadata_fix_wrap_kw_args.rb +1 -0
- data/lib/workato/extension/string.rb +1 -2
- data/lib/workato/types/binary.rb +1 -0
- metadata +13 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '04149c3903c23d8e7e6a02b0f76928d08bd4aeeab5f6fa2602e039a3e1adcb92'
|
4
|
+
data.tar.gz: ad69735af0f602cc35a82507d2479cc5ae3057f0423322aaaa42e7f70c0ad2d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c9d9ecafec79226a203c838395303be2619d602be8d3645bdce7215397d19a628a946ac4ef87efbeb887183fe4fbdaf4ea74797a0a1063198c2c12a60186ce7
|
7
|
+
data.tar.gz: 28da7967c46441234a655bd32c498a04400ed6a26f7d7d5481154c7167ce18bf5f05f0a9e289805132c97b5cc45477eae7b4127a890aa331ee8f8ab04ee3c5c1
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.
|
1
|
+
1.3.3
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# typed: false
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require 'thor'
|
4
5
|
require 'securerandom'
|
5
6
|
require 'workato/web/app'
|
6
7
|
require_relative './multi_auth_selected_fallback'
|
@@ -70,7 +71,7 @@ module Workato
|
|
70
71
|
end
|
71
72
|
|
72
73
|
def require_gems
|
73
|
-
require '
|
74
|
+
require 'rest-client'
|
74
75
|
require 'launchy'
|
75
76
|
require 'rack'
|
76
77
|
end
|
@@ -79,7 +80,7 @@ module Workato
|
|
79
80
|
@thread = Thread.start do
|
80
81
|
Rack::Handler::WEBrick.run(
|
81
82
|
Workato::Web::App.new,
|
82
|
-
{
|
83
|
+
**{
|
83
84
|
Port: port,
|
84
85
|
BindAddress: options[:ip] || DEFAULT_ADDRESS,
|
85
86
|
SSLEnable: https,
|
@@ -100,6 +101,7 @@ module Workato
|
|
100
101
|
return unless @thread
|
101
102
|
|
102
103
|
Rack::Handler::WEBrick.shutdown
|
104
|
+
@thread.join
|
103
105
|
@thread.exit
|
104
106
|
end
|
105
107
|
|
@@ -107,7 +109,7 @@ module Workato
|
|
107
109
|
unless connector.connection.authorization.oauth2?
|
108
110
|
raise 'Authorization type is not OAuth2. ' \
|
109
111
|
'For multi-auth connector ensure correct auth type was used. ' \
|
110
|
-
"Expected: 'oauth2', got: '#{connector.connection.authorization.type}'
|
112
|
+
"Expected: 'oauth2', got: '#{connector.connection.authorization.type}'"
|
111
113
|
end
|
112
114
|
rescue Workato::Connector::Sdk::InvalidMultiAuthDefinition => e
|
113
115
|
raise "#{e.message}. Please ensure:\n" \
|
@@ -116,16 +118,6 @@ module Workato
|
|
116
118
|
'See more: https://docs.workato.com/developing-connectors/sdk/guides/authentication/multi_auth.html'
|
117
119
|
end
|
118
120
|
|
119
|
-
def client
|
120
|
-
@client ||= OAuth2::Client.new(
|
121
|
-
connector.connection.authorization.client_id,
|
122
|
-
connector.connection.authorization.client_secret,
|
123
|
-
site: connector.connection.base_uri,
|
124
|
-
token_url: connector.connection.authorization.token_url,
|
125
|
-
redirect_uri: redirect_url
|
126
|
-
)
|
127
|
-
end
|
128
|
-
|
129
121
|
def authorize_url
|
130
122
|
return @authorize_url if defined?(@authorize_url)
|
131
123
|
|
@@ -193,7 +185,15 @@ module Workato
|
|
193
185
|
extra_settings ||= {}
|
194
186
|
extra_settings.merge(tokens)
|
195
187
|
else
|
196
|
-
|
188
|
+
response = RestClient.post(
|
189
|
+
connector.connection.authorization.token_url,
|
190
|
+
code: code,
|
191
|
+
grant_type: :authorization_code,
|
192
|
+
client_id: connector.connection.authorization.client_id,
|
193
|
+
client_secret: connector.connection.authorization.client_secret,
|
194
|
+
redirect_uri: redirect_url
|
195
|
+
)
|
196
|
+
JSON.parse(response.body).to_hash
|
197
197
|
end
|
198
198
|
end
|
199
199
|
|
@@ -117,7 +117,7 @@ module Workato
|
|
117
117
|
retry_on_response.each { |m| m.is_a?(::Integer) ? @retry_codes << m : @retry_matchers << m }
|
118
118
|
@retry_codes = RETRY_DEFAULT_CODES if @retry_codes.empty?
|
119
119
|
@retry_methods = (retry_on_request.presence || RETRY_DEFAULT_METHODS).map(&:to_s).map(&:downcase)
|
120
|
-
@retries_left =
|
120
|
+
@retries_left = ((max_retries.is_a?(::Integer) && max_retries) || MAX_RETRIES).clamp(0, MAX_RETRIES)
|
121
121
|
end
|
122
122
|
|
123
123
|
sig { params(exception: RequestFailedError).returns(T::Boolean) }
|
@@ -6,7 +6,7 @@ require 'csv'
|
|
6
6
|
module Workato
|
7
7
|
module Connector
|
8
8
|
module Sdk
|
9
|
-
CsvError = Class.new(Sdk::
|
9
|
+
CsvError = Class.new(Sdk::Error)
|
10
10
|
|
11
11
|
CsvFormatError = Class.new(CsvError)
|
12
12
|
|
@@ -65,6 +65,13 @@ module Workato
|
|
65
65
|
end
|
66
66
|
def parse(str, headers:, col_sep: nil, row_sep: nil, quote_char: nil, skip_blanks: nil,
|
67
67
|
skip_first_line: false)
|
68
|
+
if headers.is_a?(FalseClass)
|
69
|
+
raise Sdk::ArgumentError,
|
70
|
+
'Headers are required. ' \
|
71
|
+
'Pass headers: true to implicitly use the first line or array/string for explicit headers'
|
72
|
+
|
73
|
+
end
|
74
|
+
|
68
75
|
if str.bytesize > MAX_FILE_SIZE_FOR_PARSE
|
69
76
|
raise CsvFileTooBigError.new(str.bytesize, MAX_FILE_SIZE_FOR_PARSE)
|
70
77
|
end
|
@@ -88,8 +95,8 @@ module Workato
|
|
88
95
|
end.to_a
|
89
96
|
rescue CSV::MalformedCSVError => e
|
90
97
|
raise CsvFormatError, e
|
91
|
-
rescue ArgumentError => e
|
92
|
-
raise Sdk::
|
98
|
+
rescue ::ArgumentError => e
|
99
|
+
raise Sdk::ArgumentError, e.message
|
93
100
|
end
|
94
101
|
|
95
102
|
sig do
|
@@ -111,8 +118,8 @@ module Workato
|
|
111
118
|
options[:write_headers] = options[:headers].present?
|
112
119
|
|
113
120
|
::CSV.generate(str || String.new, **options, &blk)
|
114
|
-
rescue ArgumentError => e
|
115
|
-
raise Sdk::
|
121
|
+
rescue ::ArgumentError => e
|
122
|
+
raise Sdk::ArgumentError, e.message
|
116
123
|
end
|
117
124
|
|
118
125
|
private
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require 'resolv'
|
5
|
+
|
6
|
+
module Workato
|
7
|
+
module Connector
|
8
|
+
module Sdk
|
9
|
+
NetLookupError = Class.new(Error)
|
10
|
+
|
11
|
+
module Dsl
|
12
|
+
class NetPackage
|
13
|
+
extend T::Sig
|
14
|
+
|
15
|
+
sig { params(name: String, record: String).returns(T::Array[T::Hash[Symbol, T.untyped]]) }
|
16
|
+
def lookup(name, record)
|
17
|
+
case record.upcase
|
18
|
+
when 'A'
|
19
|
+
records = dns_resolver.getresources(name, Resolv::DNS::Resource::IN::A)
|
20
|
+
records.map { |d| { address: d.address.to_s } }
|
21
|
+
when 'SRV'
|
22
|
+
records = dns_resolver.getresources(name, Resolv::DNS::Resource::IN::SRV)
|
23
|
+
records.map do |d|
|
24
|
+
{
|
25
|
+
port: d.port,
|
26
|
+
priority: d.priority,
|
27
|
+
target: d.target.to_s,
|
28
|
+
weight: d.weight
|
29
|
+
}
|
30
|
+
end
|
31
|
+
else
|
32
|
+
raise Sdk::ArgumentError, 'Record type not supported, Supported types: "A", "SRV"'
|
33
|
+
end
|
34
|
+
rescue Resolv::ResolvError, Resolv::ResolvTimeout => e
|
35
|
+
raise NetLookupError, e
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
sig { returns(Resolv::DNS) }
|
41
|
+
def dns_resolver
|
42
|
+
@dns_resolver ||= T.let(Resolv::DNS.new, T.nilable(Resolv::DNS))
|
43
|
+
end
|
44
|
+
|
45
|
+
T::Sig::WithoutRuntime.sig { params(symbol: T.any(String, Symbol), _args: T.untyped).void }
|
46
|
+
def method_missing(symbol, *_args)
|
47
|
+
raise UndefinedStdLibMethodError.new(symbol.to_s, 'workato.net')
|
48
|
+
end
|
49
|
+
|
50
|
+
T::Sig::WithoutRuntime.sig { params(_args: T.untyped).returns(T::Boolean) }
|
51
|
+
def respond_to_missing?(*_args)
|
52
|
+
false
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -3,6 +3,7 @@
|
|
3
3
|
|
4
4
|
require 'jwt'
|
5
5
|
require_relative './csv_package'
|
6
|
+
require_relative './net_package'
|
6
7
|
require_relative './stream_package'
|
7
8
|
|
8
9
|
using Workato::Extension::HashWithIndifferentAccess
|
@@ -10,14 +11,28 @@ using Workato::Extension::HashWithIndifferentAccess
|
|
10
11
|
module Workato
|
11
12
|
module Connector
|
12
13
|
module Sdk
|
14
|
+
JSONParsingError = Class.new(Error)
|
15
|
+
|
13
16
|
module Dsl
|
14
17
|
class WorkatoPackage
|
15
|
-
|
16
|
-
private_constant :
|
18
|
+
JWT_RSA_ALGORITHMS = %w[RS256 RS384 RS512].freeze
|
19
|
+
private_constant :JWT_RSA_ALGORITHMS
|
17
20
|
|
18
21
|
JWT_RSA_KEY_MIN_LENGTH = 2048
|
19
22
|
private_constant :JWT_RSA_KEY_MIN_LENGTH
|
20
23
|
|
24
|
+
JWT_HMAC_ALGORITHMS = %w[HS256 HS384 HS512].freeze
|
25
|
+
private_constant :JWT_HMAC_ALGORITHMS
|
26
|
+
|
27
|
+
JWT_ECDSA_ALGORITHMS = %w[ES256 ES384 ES512].freeze
|
28
|
+
private_constant :JWT_ECDSA_ALGORITHMS
|
29
|
+
|
30
|
+
JWT_ECDSA_KEY_LENGTH_MAPPING = { 'ES256' => 256, 'ES384' => 384, 'ES512' => 521 }.freeze
|
31
|
+
private_constant :JWT_ECDSA_KEY_LENGTH_MAPPING
|
32
|
+
|
33
|
+
JWT_ALGORITHMS = (JWT_RSA_ALGORITHMS + JWT_HMAC_ALGORITHMS + JWT_ECDSA_ALGORITHMS).freeze
|
34
|
+
private_constant :JWT_ALGORITHMS
|
35
|
+
|
21
36
|
VERIFY_RCA_ALGORITHMS = %w[SHA SHA1 SHA224 SHA256 SHA384 SHA512].freeze
|
22
37
|
private_constant :VERIFY_RCA_ALGORITHMS
|
23
38
|
|
@@ -39,37 +54,75 @@ module Workato
|
|
39
54
|
def jwt_encode(payload, key, algorithm, header_fields = {})
|
40
55
|
algorithm = algorithm.to_s.upcase
|
41
56
|
unless JWT_ALGORITHMS.include?(algorithm)
|
42
|
-
raise
|
57
|
+
raise Sdk::ArgumentError,
|
58
|
+
"Unsupported signing method. Supports only #{JWT_ALGORITHMS.join(', ')}. Got: '#{algorithm}'"
|
43
59
|
end
|
44
60
|
|
45
|
-
|
46
|
-
|
47
|
-
|
61
|
+
if JWT_RSA_ALGORITHMS.include?(algorithm)
|
62
|
+
key = OpenSSL::PKey::RSA.new(key)
|
63
|
+
if key.n.num_bits < JWT_RSA_KEY_MIN_LENGTH
|
64
|
+
raise Sdk::ArgumentError,
|
65
|
+
"A RSA key of size #{JWT_RSA_KEY_MIN_LENGTH} bits or larger MUST be used with JWT"
|
66
|
+
end
|
67
|
+
elsif JWT_ECDSA_ALGORITHMS.include?(algorithm)
|
68
|
+
key = OpenSSL::PKey::EC.new(key)
|
69
|
+
if key.group.order.num_bits != JWT_ECDSA_KEY_LENGTH_MAPPING[algorithm]
|
70
|
+
raise Sdk::ArgumentError,
|
71
|
+
"An ECDSA key of size #{JWT_ECDSA_KEY_LENGTH_MAPPING[algorithm]} bits MUST be used with JWT"
|
72
|
+
end
|
48
73
|
end
|
49
74
|
|
50
75
|
header_fields = HashWithIndifferentAccess.wrap(header_fields).except(:typ, :alg)
|
51
|
-
::JWT.encode(payload,
|
76
|
+
::JWT.encode(payload, key, algorithm, header_fields)
|
77
|
+
rescue JWT::IncorrectAlgorithm
|
78
|
+
raise Sdk::ArgumentError, 'Mismatched algorithm and key'
|
79
|
+
rescue OpenSSL::PKey::PKeyError
|
80
|
+
raise Sdk::ArgumentError, 'Invalid key'
|
81
|
+
end
|
82
|
+
|
83
|
+
def jwt_decode(jwt, key, algorithm)
|
84
|
+
algorithm = algorithm.to_s.upcase
|
85
|
+
|
86
|
+
unless JWT_ALGORITHMS.include?(algorithm)
|
87
|
+
raise Sdk::ArgumentError,
|
88
|
+
'Unsupported verification algorithm. ' \
|
89
|
+
"Supports only #{JWT_ALGORITHMS.join(', ')}. Got: '#{algorithm}'"
|
90
|
+
end
|
91
|
+
|
92
|
+
if JWT_RSA_ALGORITHMS.include?(algorithm)
|
93
|
+
key = OpenSSL::PKey::RSA.new(key)
|
94
|
+
elsif JWT_ECDSA_ALGORITHMS.include?(algorithm)
|
95
|
+
key = OpenSSL::PKey::EC.new(key)
|
96
|
+
end
|
97
|
+
|
98
|
+
payload, header = ::JWT.decode(jwt, key, true, { algorithm: algorithm })
|
99
|
+
{ payload: payload, header: header }.with_indifferent_access
|
100
|
+
rescue JWT::IncorrectAlgorithm
|
101
|
+
raise Sdk::ArgumentError, 'Mismatched algorithm and key'
|
102
|
+
rescue OpenSSL::PKey::PKeyError
|
103
|
+
raise Sdk::ArgumentError, 'Invalid key'
|
52
104
|
end
|
53
105
|
|
54
106
|
def verify_rsa(payload, certificate, signature, algorithm = 'SHA256')
|
55
107
|
algorithm = algorithm.to_s.upcase
|
56
108
|
unless VERIFY_RCA_ALGORITHMS.include?(algorithm)
|
57
|
-
raise
|
109
|
+
raise Sdk::ArgumentError,
|
110
|
+
"Unsupported signing method. Supports only #{VERIFY_RCA_ALGORITHMS.join(', ')}. Got: '#{algorithm}'"
|
58
111
|
end
|
59
112
|
|
60
113
|
cert = OpenSSL::X509::Certificate.new(certificate)
|
61
114
|
digest = OpenSSL::Digest.new(algorithm)
|
62
115
|
cert.public_key.verify(digest, signature, payload)
|
63
116
|
rescue OpenSSL::PKey::PKeyError
|
64
|
-
raise 'An error occurred during signature verification. Check arguments'
|
117
|
+
raise Sdk::ArgumentError, 'An error occurred during signature verification. Check arguments'
|
65
118
|
rescue OpenSSL::X509::CertificateError
|
66
|
-
raise 'Invalid certificate format'
|
119
|
+
raise Sdk::ArgumentError, 'Invalid certificate format'
|
67
120
|
end
|
68
121
|
|
69
122
|
def parse_yaml(yaml)
|
70
123
|
::Psych.safe_load(yaml)
|
71
|
-
rescue ::Psych::
|
72
|
-
raise e
|
124
|
+
rescue ::Psych::Exception => e
|
125
|
+
raise Sdk::ArgumentError, "YAML Parsing error. #{e}"
|
73
126
|
end
|
74
127
|
|
75
128
|
def render_yaml(obj)
|
@@ -79,7 +132,7 @@ module Workato
|
|
79
132
|
def parse_json(source)
|
80
133
|
JSON.parse(source)
|
81
134
|
rescue JSON::ParserError => e
|
82
|
-
raise
|
135
|
+
raise JSONParsingError, e
|
83
136
|
end
|
84
137
|
|
85
138
|
def uuid
|
@@ -88,7 +141,7 @@ module Workato
|
|
88
141
|
|
89
142
|
def random_bytes(len)
|
90
143
|
unless (len.is_a? ::Integer) && (len <= RANDOM_SIZE)
|
91
|
-
raise "The requested length or random bytes sequence should be <= #{RANDOM_SIZE}"
|
144
|
+
raise Sdk::ArgumentError, "The requested length or random bytes sequence should be <= #{RANDOM_SIZE}"
|
92
145
|
end
|
93
146
|
|
94
147
|
Types::Binary.new(::OpenSSL::Random.random_bytes(len))
|
@@ -97,7 +150,7 @@ module Workato
|
|
97
150
|
def aes_cbc_encrypt(string, key, init_vector = nil)
|
98
151
|
key_size = key.bytesize * 8
|
99
152
|
unless ALLOWED_KEY_SIZES.include?(key_size)
|
100
|
-
raise 'Incorrect key size for AES'
|
153
|
+
raise Sdk::ArgumentError, 'Incorrect key size for AES'
|
101
154
|
end
|
102
155
|
|
103
156
|
cipher = ::OpenSSL::Cipher.new("AES-#{key_size}-CBC")
|
@@ -110,7 +163,7 @@ module Workato
|
|
110
163
|
def aes_cbc_decrypt(string, key, init_vector = nil)
|
111
164
|
key_size = key.bytesize * 8
|
112
165
|
unless ALLOWED_KEY_SIZES.include?(key_size)
|
113
|
-
raise 'Incorrect key size for AES'
|
166
|
+
raise Sdk::ArgumentError, 'Incorrect key size for AES'
|
114
167
|
end
|
115
168
|
|
116
169
|
cipher = ::OpenSSL::Cipher.new("AES-#{key_size}-CBC")
|
@@ -128,6 +181,10 @@ module Workato
|
|
128
181
|
@csv ||= CsvPackage.new
|
129
182
|
end
|
130
183
|
|
184
|
+
def net
|
185
|
+
@net ||= NetPackage.new
|
186
|
+
end
|
187
|
+
|
131
188
|
def stream
|
132
189
|
@stream ||= StreamPackage.new(streams: streams, connection: connection)
|
133
190
|
end
|
@@ -156,8 +156,9 @@ module Workato
|
|
156
156
|
self
|
157
157
|
end
|
158
158
|
|
159
|
-
def format_xml(root_element_name, namespaces = {},
|
160
|
-
request_format_xml(root_element_name, namespaces)
|
159
|
+
def format_xml(root_element_name, namespaces = {}, strip_response_namespaces: false)
|
160
|
+
request_format_xml(root_element_name, namespaces)
|
161
|
+
.response_format_xml(strip_response_namespaces: strip_response_namespaces)
|
161
162
|
end
|
162
163
|
|
163
164
|
def request_format_xml(root_element_name, namespaces = {})
|
@@ -212,7 +212,7 @@ module Workato
|
|
212
212
|
attr_reader :input
|
213
213
|
|
214
214
|
class Chunk < T::Struct
|
215
|
-
const :data, T.untyped
|
215
|
+
const :data, T.untyped # rubocop:disable Sorbet/ForbidUntypedStructProps
|
216
216
|
const :from, Integer
|
217
217
|
const :eof, T::Boolean
|
218
218
|
const :next_from, T.nilable(Integer)
|
@@ -9,7 +9,14 @@ module Workato
|
|
9
9
|
module Connector
|
10
10
|
module Sdk
|
11
11
|
module SorbetTypes
|
12
|
-
|
12
|
+
WebhookSubscribeClosureHash = T.type_alias { T::Hash[T.any(String, Symbol), T.untyped] }
|
13
|
+
|
14
|
+
WebhookSubscribeOutput = T.type_alias do
|
15
|
+
T.any(
|
16
|
+
WebhookSubscribeClosureHash,
|
17
|
+
[WebhookSubscribeClosureHash, T.nilable(T.any(Time, ActiveSupport::TimeWithZone))]
|
18
|
+
)
|
19
|
+
end
|
13
20
|
|
14
21
|
WebhookNotificationPayload = T.type_alias { T.untyped }
|
15
22
|
|
@@ -121,7 +128,7 @@ module Workato
|
|
121
128
|
headers: T::Hash[T.any(String, Symbol), T.untyped],
|
122
129
|
params: T::Hash[T.any(String, Symbol), T.untyped],
|
123
130
|
settings: T.nilable(SorbetTypes::SettingsHash),
|
124
|
-
webhook_subscribe_output: T.nilable(SorbetTypes::
|
131
|
+
webhook_subscribe_output: T.nilable(SorbetTypes::WebhookSubscribeClosureHash)
|
125
132
|
).returns(
|
126
133
|
SorbetTypes::WebhookNotificationOutputHash
|
127
134
|
)
|
@@ -161,9 +168,7 @@ module Workato
|
|
161
168
|
settings: T.nilable(SorbetTypes::SettingsHash),
|
162
169
|
input: SorbetTypes::OperationInputHash,
|
163
170
|
recipe_id: String
|
164
|
-
).returns(
|
165
|
-
SorbetTypes::WebhookSubscribeOutputHash
|
166
|
-
)
|
171
|
+
).returns(SorbetTypes::WebhookSubscribeOutput)
|
167
172
|
end
|
168
173
|
def webhook_subscribe(webhook_url = '', settings = nil, input = {}, recipe_id = recipe_id!)
|
169
174
|
webhook_subscribe_proc = trigger[:webhook_subscribe]
|
@@ -178,7 +183,7 @@ module Workato
|
|
178
183
|
end
|
179
184
|
end
|
180
185
|
|
181
|
-
sig { params(webhook_subscribe_output: SorbetTypes::
|
186
|
+
sig { params(webhook_subscribe_output: SorbetTypes::WebhookSubscribeClosureHash).returns(T.untyped) }
|
182
187
|
def webhook_unsubscribe(webhook_subscribe_output = {})
|
183
188
|
webhook_unsubscribe_proc = trigger[:webhook_unsubscribe]
|
184
189
|
execute(nil, webhook_subscribe_output) do |_connection, input|
|
@@ -192,7 +197,7 @@ module Workato
|
|
192
197
|
payload: T::Hash[T.any(String, Symbol), T.untyped],
|
193
198
|
headers: T::Hash[T.any(String, Symbol), T.untyped],
|
194
199
|
params: T::Hash[T.any(String, Symbol), T.untyped],
|
195
|
-
webhook_subscribe_output: T.nilable(SorbetTypes::
|
200
|
+
webhook_subscribe_output: T.nilable(SorbetTypes::WebhookSubscribeClosureHash)
|
196
201
|
).returns(
|
197
202
|
T.any(SorbetTypes::WebhookNotificationOutputHash, SorbetTypes::PollOutputHash)
|
198
203
|
)
|
@@ -12,10 +12,10 @@ module Workato
|
|
12
12
|
attr_accessor :extra_chain_cert
|
13
13
|
|
14
14
|
def self.included(base)
|
15
|
-
ssl_ivnames = base.const_get('SSL_IVNAMES', false)
|
15
|
+
ssl_ivnames = base.const_get('SSL_IVNAMES', false) # rubocop:disable Sorbet/ConstantsFromStrings
|
16
16
|
ssl_ivnames << :@extra_chain_cert unless ssl_ivnames.include?(:@extra_chain_cert)
|
17
17
|
|
18
|
-
ssl_attributes = base.const_get('SSL_ATTRIBUTES', false)
|
18
|
+
ssl_attributes = base.const_get('SSL_ATTRIBUTES', false) # rubocop:disable Sorbet/ConstantsFromStrings
|
19
19
|
ssl_attributes << :extra_chain_cert unless ssl_attributes.include?(:extra_chain_cert)
|
20
20
|
end
|
21
21
|
end
|
@@ -45,8 +45,7 @@ module Workato
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def strip_tags
|
48
|
-
|
49
|
-
@html_full_sanitizer.sanitize(self)
|
48
|
+
Rails::Html::Sanitizer.full_sanitizer.new.sanitize(self)
|
50
49
|
end
|
51
50
|
|
52
51
|
def to_time(form = :local, format: nil)
|
data/lib/workato/types/binary.rb
CHANGED
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.
|
4
|
+
version: 1.3.3
|
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
|
+
date: 2023-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -154,30 +154,22 @@ dependencies:
|
|
154
154
|
name: nokogiri
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- -
|
157
|
+
- - ">="
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: 1.13.10
|
160
|
+
- - "<"
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '1.15'
|
160
163
|
type: :runtime
|
161
164
|
prerelease: false
|
162
165
|
version_requirements: !ruby/object:Gem::Requirement
|
163
166
|
requirements:
|
164
|
-
- -
|
167
|
+
- - ">="
|
165
168
|
- !ruby/object:Gem::Version
|
166
169
|
version: 1.13.10
|
167
|
-
-
|
168
|
-
name: oauth2
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - "~>"
|
170
|
+
- - "<"
|
172
171
|
- !ruby/object:Gem::Version
|
173
|
-
version: '1.
|
174
|
-
type: :runtime
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - "~>"
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '1.0'
|
172
|
+
version: '1.15'
|
181
173
|
- !ruby/object:Gem::Dependency
|
182
174
|
name: rack
|
183
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -196,14 +188,14 @@ dependencies:
|
|
196
188
|
name: rails-html-sanitizer
|
197
189
|
requirement: !ruby/object:Gem::Requirement
|
198
190
|
requirements:
|
199
|
-
- -
|
191
|
+
- - "~>"
|
200
192
|
- !ruby/object:Gem::Version
|
201
193
|
version: 1.4.3
|
202
194
|
type: :runtime
|
203
195
|
prerelease: false
|
204
196
|
version_requirements: !ruby/object:Gem::Requirement
|
205
197
|
requirements:
|
206
|
-
- -
|
198
|
+
- - "~>"
|
207
199
|
- !ruby/object:Gem::Version
|
208
200
|
version: 1.4.3
|
209
201
|
- !ruby/object:Gem::Dependency
|
@@ -415,6 +407,7 @@ files:
|
|
415
407
|
- lib/workato/connector/sdk.rb
|
416
408
|
- lib/workato/connector/sdk/account_properties.rb
|
417
409
|
- lib/workato/connector/sdk/action.rb
|
410
|
+
- lib/workato/connector/sdk/blank.rb
|
418
411
|
- lib/workato/connector/sdk/block_invocation_refinements.rb
|
419
412
|
- lib/workato/connector/sdk/connection.rb
|
420
413
|
- lib/workato/connector/sdk/connector.rb
|
@@ -428,6 +421,7 @@ files:
|
|
428
421
|
- lib/workato/connector/sdk/dsl/execution_context.rb
|
429
422
|
- lib/workato/connector/sdk/dsl/http.rb
|
430
423
|
- lib/workato/connector/sdk/dsl/lookup_table.rb
|
424
|
+
- lib/workato/connector/sdk/dsl/net_package.rb
|
431
425
|
- lib/workato/connector/sdk/dsl/reinvoke_after.rb
|
432
426
|
- lib/workato/connector/sdk/dsl/stream_package.rb
|
433
427
|
- lib/workato/connector/sdk/dsl/time.rb
|