oso-cloud 1.4.0.dev.1 → 1.4.0.dev.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7909947d74e0e8a03b13d9d1741560c6dd6537de2dbb2b3b77ef97b320e3a1a2
4
- data.tar.gz: bdbdf26e703535dd4fd52a05ac6454a51a7cf204a9c365333c5b9c8246973cc8
3
+ metadata.gz: 19949c28883d1f93bb356398c58d7bf7eff4846c518f4555fe7aa9ac58d5bda6
4
+ data.tar.gz: 7191bcd23b76ee1bf649de8121275f8bb893c34272fe78fa732a10e97bbaba39
5
5
  SHA512:
6
- metadata.gz: 7966031165d172979505d5f1c513445427b2950ff50fa7eccda9933174e32f4fbf8ea5fdff1d77a70a195124a7c6864136e1819b8ad0fda98da1285aa93dc1ff
7
- data.tar.gz: 833fcf6b1cb18a83c53b39f3d5f6179b4895d6899189852423574f8f29843f94bdc29f148548c9f3eee6ed8c38fa897c763cbd83d959aaccc355c75c5091dc13
6
+ metadata.gz: 521880120751ab6bc7f22403b5b182b5e43d1c00ccfca4f53aba279b471ebe858ac0cc36d4ac95a7c3ffb2a8e6405764ae60989e617c56377028dd45a3349fb9
7
+ data.tar.gz: 07e1aafd27d027a5f3d20ed095df62b5cd8f27fa39b50d6d340a87f6bab305e6138ac0d11bc48e41963ef6b4ec592119769a04d08877f7d7fa20f61ab14c358d
data/Gemfile.lock CHANGED
@@ -1,22 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oso-cloud (1.4.0.dev.0)
4
+ oso-cloud (1.4.0.dev.2)
5
5
  faraday (~> 2.5.2)
6
6
  faraday-net_http_persistent (~> 2.0)
7
7
  faraday-retry (~> 2.0.0)
8
- faraday-typhoeus (~> 1.0.0)
9
8
 
10
9
  GEM
11
10
  remote: https://rubygems.org/
12
11
  specs:
13
- binding_of_caller (1.0.0)
14
- debug_inspector (>= 0.0.1)
15
- coderay (1.1.3)
16
12
  connection_pool (2.4.1)
17
- debug_inspector (1.1.0)
18
- ethon (0.16.0)
19
- ffi (>= 1.15.0)
20
13
  faraday (2.5.2)
21
14
  faraday-net_http (>= 2.0, < 3.1)
22
15
  ruby2_keywords (>= 0.0.4)
@@ -26,28 +19,11 @@ GEM
26
19
  net-http-persistent (~> 4.0)
27
20
  faraday-retry (2.0.0)
28
21
  faraday (~> 2.0)
29
- faraday-typhoeus (1.0.0)
30
- faraday (~> 2.0)
31
- typhoeus (~> 1.4)
32
- ffi (1.16.3)
33
- interception (0.5)
34
- method_source (1.0.0)
35
22
  minitest (5.18.0)
36
23
  net-http-persistent (4.0.2)
37
24
  connection_pool (~> 2.2)
38
- pry (0.14.2)
39
- coderay (~> 1.1)
40
- method_source (~> 1.0)
41
- pry-rescue (1.5.2)
42
- interception (>= 0.5)
43
- pry (>= 0.12.0)
44
- pry-stack_explorer (0.6.1)
45
- binding_of_caller (~> 1.0)
46
- pry (~> 0.13)
47
25
  rake (12.3.3)
48
26
  ruby2_keywords (0.0.5)
49
- typhoeus (1.4.0)
50
- ethon (>= 0.9.0)
51
27
 
52
28
  PLATFORMS
53
29
  ruby
@@ -55,8 +31,6 @@ PLATFORMS
55
31
  DEPENDENCIES
56
32
  minitest (~> 5.15)
57
33
  oso-cloud!
58
- pry-rescue
59
- pry-stack_explorer
60
34
  rake (~> 12.0)
61
35
 
62
36
  BUNDLED WITH
data/lib/oso/api.rb CHANGED
@@ -2,7 +2,6 @@ require 'json'
2
2
  require 'uri'
3
3
  require 'faraday'
4
4
  require 'faraday/retry'
5
- require 'faraday/typhoeus'
6
5
  require 'faraday/net_http_persistent'
7
6
 
8
7
  require 'oso/helpers'
@@ -203,21 +202,11 @@ module OsoCloud
203
202
  end
204
203
  end
205
204
 
206
- class OsoAdapter < Faraday::Adapter::Typhoeus
207
- @@max_concurrency = 20
208
-
209
- def self.setup_parallel_manager(options = {})
210
- options[:max_concurrency] = @@max_concurrency
211
- ::Typhoeus::Hydra.new(options)
212
- end
213
- end
214
-
215
- Faraday::Adapter.register_middleware(oso_http: OsoAdapter)
216
-
217
205
  # @!visibility private
218
206
  class Api
219
- def get_connection(options: nil)
220
- Faraday.new(url: @url) do |faraday|
207
+ def initialize(url: 'https://api.osohq.com', api_key: nil, options: nil)
208
+ @url = url
209
+ @connection = Faraday.new(url: url) do |faraday|
221
210
  faraday.request :json
222
211
 
223
212
  # responses are processed in reverse order; this stack implies the
@@ -225,7 +214,6 @@ module OsoCloud
225
214
  # parser is only applied if there are no errors
226
215
  faraday.response :json, parser_options: { symbolize_names: true }
227
216
  faraday.response :raise_error
228
- # faraday.response :logger
229
217
  faraday.request :retry, {
230
218
  max: (options && options[:max_retries]) || 10,
231
219
  interval: 0.01,
@@ -243,7 +231,7 @@ module OsoCloud
243
231
  /api/actions
244
232
  /api/query
245
233
  ].include? env.url.path
246
- },
234
+ }
247
235
  }
248
236
 
249
237
  if options && options[:test_adapter]
@@ -258,21 +246,10 @@ module OsoCloud
258
246
  options[:test_adapter][:func].call
259
247
  end
260
248
  end
261
- elsif options && options[:parallel_adapter]
262
- if options[:max_concurrency]
263
- OsoAdapter.class_variable_set(:@@max_concurrency, options[:max_concurrency])
264
- end
265
- faraday.adapter :oso_http, forbid_reuse: false, maxredirs: 1, connecttimeout: 30
266
249
  else
267
- faraday.adapter :net_http_persistent, pool_size: 10, idle_timeout: 30
250
+ faraday.adapter :net_http_persistent, pool_size: 10
268
251
  end
269
252
  end
270
- end
271
-
272
- def initialize(url: 'https://api.osohq.com', api_key: nil, options: {})
273
- @url = url
274
- @connection = get_connection(options: options)
275
- @parallel_connection = get_connection(options: { parallel_adapter: true, max_concurrency: options[:max_concurrency] })
276
253
 
277
254
  if options && options[:fallback_url]
278
255
  @fallback_connection = Faraday.new(url: options[:fallback_url]) do |faraday|
@@ -361,12 +338,6 @@ module OsoCloud
361
338
  ActionsResult.new(**result)
362
339
  end
363
340
 
364
- def post_actions_batch(batch_data)
365
- url = '/actions'
366
- results = POST_BATCH(url, nil, batch_data, false)
367
- results.map { |result| ActionsResult.new(**result.body) }
368
- end
369
-
370
341
  def post_bulk_actions(data)
371
342
  url = '/bulk_actions'
372
343
  results = POST(url, nil, data, false)
@@ -442,36 +413,6 @@ module OsoCloud
442
413
  handle_faraday_error e
443
414
  end
444
415
 
445
- def POST_BATCH(path, params, body_array, isMutation)
446
- connection = @parallel_connection
447
- responses = []
448
- connection.in_parallel do
449
- responses = body_array.map do |body|
450
- connection.post("api#{path}") do |req|
451
- req.params = params unless params.nil?
452
- req.body = OsoCloud::Helpers.to_hash(body) unless body.nil?
453
- req.headers = headers
454
- end
455
- end
456
- end
457
-
458
- connection_failed = responses.find { |r| r.env.custom_members[:typhoeus_connection_failed] }
459
- if connection_failed
460
- raise Faraday::ConnectionFailed, connection_failed.env.custom_members[:typhoeus_return_message]
461
- end
462
-
463
- timed_out = responses.find { |r| r.env.custom_members[:typhoeus_timed_out] }
464
- if timed_out
465
- raise Faraday::TimeoutError, timed_out.env.custom_members[:typhoeus_return_message]
466
- end
467
- if isMutation
468
- @last_offset = responses[-1].headers[:OsoOffset]
469
- end
470
- responses
471
- rescue Faraday::Error => e
472
- handle_faraday_error e
473
- end
474
-
475
416
  def POST(path, params, body, isMutation)
476
417
  begin
477
418
  response = @connection.post("api#{path}") do |req|
@@ -511,6 +452,7 @@ module OsoCloud
511
452
 
512
453
  def handle_faraday_error(error)
513
454
  resp = error.response
455
+ puts resp[:body]
514
456
  err = if resp.respond_to? :body
515
457
  resp.body[:message]
516
458
  else
data/lib/oso/oso.rb CHANGED
@@ -28,12 +28,11 @@ module OsoCloud
28
28
  # Any other elements in the array, which together represent the fact's arguments,
29
29
  # can be "OsoCloud::Value" objects or strings.
30
30
  class Oso
31
- def initialize(url: 'https://cloud.osohq.com', api_key: nil, options: nil, fallback_url: nil)
32
- options ||= {}
33
- options[:fallback_url] = fallback_url unless fallback_url.nil?
34
- @api = OsoCloud::Core::Api.new(url: url, api_key: api_key, options: options)
31
+ def initialize(url: 'https://cloud.osohq.com', api_key: nil, fallback_url: nil)
32
+ @api = OsoCloud::Core::Api.new(url: url, api_key: api_key, options: { :fallback_url => fallback_url })
35
33
  end
36
34
 
35
+ ##
37
36
  # Update the active policy
38
37
  #
39
38
  # Updates the active policy in Oso Cloud, The string passed into
@@ -271,39 +270,6 @@ module OsoCloud
271
270
  context_facts: OsoCloud::Helpers.params_to_facts(context_facts)))
272
271
  OsoCloud::Helpers.facts_to_params(result.results)
273
272
  end
274
-
275
- ##
276
- # List authorized actions for a batch of queries
277
- #
278
- # Fetches a list of actions which an actor can perform on a particular resource.
279
- #
280
- # @param actor [OsoCloud::Value]
281
- # @param queries [Array<OsoCloud::Value>] | Array<[OsoCloud::Value, Array<fact>]>
282
- # @return [Array<Array<String>>]
283
- # @see Oso for more information about facts
284
- def actions_batch(actor, queries:)
285
- actor_typed_id = actor.to_api_value
286
- data = queries.map do |q|
287
- context_facts = []
288
- resource = nil
289
- if (q.is_a?(Array))
290
- resource = q[0]
291
- context_facts = q[1]
292
- else
293
- resource = q
294
- end
295
- resource_typed_id = resource.to_api_value
296
- OsoCloud::Core::ActionsQuery.new(
297
- actor_type: actor_typed_id.type,
298
- actor_id: actor_typed_id.id,
299
- resource_type: resource_typed_id.type,
300
- resource_id: resource_typed_id.id,
301
- context_facts: OsoCloud::Helpers.params_to_facts(context_facts)
302
- )
303
- end
304
- @api.post_actions_batch(data).map { |result| result.results}
305
- end
306
-
307
273
  ##
308
274
  # List authorized actions for a batch of queries
309
275
  #
@@ -336,5 +302,4 @@ module OsoCloud
336
302
  @api.post_bulk_actions(data).map { |result| result.results}
337
303
  end
338
304
  end
339
-
340
305
  end
data/lib/oso/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module OsoCloud
2
- VERSION = '1.4.0.dev.1'.freeze
2
+ VERSION = '1.4.0.dev.3'.freeze
3
3
  end
data/oso-cloud.gemspec CHANGED
@@ -23,9 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency 'faraday', '~> 2.5.2'
24
24
  spec.add_dependency 'faraday-retry', '~> 2.0.0'
25
25
  spec.add_dependency 'faraday-net_http_persistent', '~> 2.0'
26
- spec.add_dependency 'faraday-typhoeus', '~> 1.0.0'
27
- #
28
26
  spec.add_development_dependency 'minitest', '~> 5.15'
29
- spec.add_development_dependency 'pry-rescue'
30
- spec.add_development_dependency 'pry-stack_explorer'
31
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oso-cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0.dev.1
4
+ version: 1.4.0.dev.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oso Security, Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-12 00:00:00.000000000 Z
11
+ date: 2023-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.0'
55
- - !ruby/object:Gem::Dependency
56
- name: faraday-typhoeus
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 1.0.0
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 1.0.0
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: minitest
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,34 +66,6 @@ dependencies:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
68
  version: '5.15'
83
- - !ruby/object:Gem::Dependency
84
- name: pry-rescue
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: pry-stack_explorer
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
69
  description:
112
70
  email:
113
71
  - support@osohq.com