oso-cloud 1.4.0.dev.1 → 1.4.0.dev.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 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