cerbos 0.2.0 → 0.5.0

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: 93f2bb2c6e0ffb8fc9e59238a36388b706ae790057473f62c51b181a30c1ec93
4
- data.tar.gz: 91e8c713dac8b1f7f89245b53463f3f8098af17ade471249d10c0fae5e4cabfe
3
+ metadata.gz: e1c86d3d658d13d5226bad856d440ce3a511e260fb7c7a1d0df57ab6c1368584
4
+ data.tar.gz: b776cb441ca8011e80c43fa2647aa36e7640873290086c3b04cd6233b0192f4c
5
5
  SHA512:
6
- metadata.gz: 2224efcc85af2a8238c946f44d853985cd3ce5d9b5c0c913992eaad7b738bc196c2fc88f985ae3ea38b3d03f6c72dcc851af77586e2628b6f80773db6d49894e
7
- data.tar.gz: 9ac45962052d139c904134eafb42dce8ac781af74a4041d22950ba4a997da1cf02e55e55462ff8237da0e916e56909822631dcc0be5a2873e933cbd6900a6e71
6
+ metadata.gz: b13e093563c7ad60ac1b524dffee33b22fb1d553b433d0927063ff61b4ba10b2aa3516ac309f03384848b40913776605ea7b922fce906d2c6dbe43f8c175dd19
7
+ data.tar.gz: '039c5611d71e663451ecb192efaa91fe63a09f81de902b21ec67dee270374170e0fd08db61eee9b3b43283bca8299cd362bccb16a010670e77f9017ecf0a5932'
data/CHANGELOG.md CHANGED
@@ -1,6 +1,23 @@
1
1
  ## [Unreleased]
2
2
  No notable changes.
3
3
 
4
+ ## [0.5.0] - 2022-06-09
5
+ ### Added
6
+ - Allow symbol keys in nested attributes hashes ([#28](https://github.com/cerbos/cerbos-sdk-ruby/pull/28))
7
+
8
+ ## [0.4.0] - 2022-06-03
9
+ ### Added
10
+ - `on_validation_error` option to `Cerbos::Client#initialize` ([#22](https://github.com/cerbos/cerbos-sdk-ruby/pull/22))
11
+
12
+ ### Changed
13
+ - Minor documentation fixes ([#21](https://github.com/cerbos/cerbos-sdk-ruby/pull/21))
14
+
15
+ ## [0.3.0] - 2022-05-13
16
+ ### Added
17
+ - More helper methods ([#11](https://github.com/cerbos/cerbos-sdk-ruby/pull/11))
18
+ - `Cerbos::Client#allow?` for checking a single action on a resource
19
+ - `Cerbos::Output::CheckResources#allow_all?` and `Cerbos::Output::CheckResources::Result#allow_all?` for checking if all input actions were allowed
20
+
4
21
  ## [0.2.0] - 2022-05-12
5
22
  ### Changed
6
23
  - Increased `grpc` version requirement to 1.46+ to avoid [installing a native gem compiled for `x86_64-darwin` on `arm64-darwin`](https://github.com/grpc/grpc/issues/29100) ([#8](https://github.com/cerbos/cerbos-sdk-ruby/pull/8))
@@ -9,6 +26,9 @@ No notable changes.
9
26
  ### Added
10
27
  - Initial implementation of `Cerbos::Client` ([#2](https://github.com/cerbos/cerbos-sdk-ruby/pull/2))
11
28
 
12
- [Unreleased]: https://github.com/cerbos/cerbos-sdk-ruby/compare/v0.2.0...HEAD
29
+ [Unreleased]: https://github.com/cerbos/cerbos-sdk-ruby/compare/v0.5.0...HEAD
30
+ [0.5.0]: https://github.com/cerbos/cerbos-sdk-ruby/compare/v0.4.0...v0.5.0
31
+ [0.4.0]: https://github.com/cerbos/cerbos-sdk-ruby/compare/v0.3.0...v0.4.0
32
+ [0.3.0]: https://github.com/cerbos/cerbos-sdk-ruby/compare/v0.2.0...v0.3.0
13
33
  [0.2.0]: https://github.com/cerbos/cerbos-sdk-ruby/compare/v0.1.0...v0.2.0
14
34
  [0.1.0]: https://github.com/cerbos/cerbos-sdk-ruby/compare/4481009e9dec2e1e6a2df8ea2f828690ceabbefc...v0.1.0
data/README.md CHANGED
@@ -53,3 +53,13 @@ decision.allow?("edit") # => false
53
53
  ```
54
54
 
55
55
  For more details, [see the `Client` documentation](https://www.rubydoc.info/gems/cerbos/Cerbos/Client).
56
+
57
+ ## Further reading
58
+
59
+ - [API reference](https://www.rubydoc.info/gems/cerbos/Cerbos)
60
+ - [Cerbos documentation](https://docs.cerbos.dev)
61
+
62
+ ## Get help
63
+
64
+ - [Join the Cerbos community on Slack](http://go.cerbos.io/slack)
65
+ - [Email us at help@cerbos.dev](mailto:help@cerbos.dev)
data/lib/cerbos/client.rb CHANGED
@@ -9,9 +9,10 @@ module Cerbos
9
9
  class Client
10
10
  # Create a client for interacting with the Cerbos PDP server over gRPC.
11
11
  #
12
- # @param target [String] Cerbos PDP server address (`"host", "host:port"`, or `"unix:/path/to/socket"`).
12
+ # @param target [String] Cerbos PDP server address (`"host"`, `"host:port"`, or `"unix:/path/to/socket"`).
13
13
  # @param tls [TLS, MutualTLS, false] gRPC connection encryption settings (`false` for plaintext).
14
14
  # @param grpc_channel_args [Hash{String, Symbol => String, Integer}] low-level settings for the gRPC channel (see [available keys in the gRPC documentation](https://grpc.github.io/grpc/core/group__grpc__arg__keys.html)).
15
+ # @param on_validation_error [:return, :raise, #call] action to take when input fails schema validation (`:return` to return the validation errors in the response, `:raise` to raise {Error::ValidationFailed}, or a callback to invoke).
15
16
  # @param playground_instance [String, nil] identifier of the playground instance to use when prototyping against the hosted demo PDP.
16
17
  # @param timeout [Numeric, nil] timeout for gRPC calls, in seconds (`nil` to never time out).
17
18
  #
@@ -23,7 +24,15 @@ module Cerbos
23
24
  #
24
25
  # @example Connect to the hosted demo PDP to experiment [in the playground](https://play.cerbos.dev)
25
26
  # client = Cerbos::Client.new("demo-pdp.cerbos.cloud", tls: Cerbos::TLS.new, playground_instance: "gE623b0180QlsG5a4QIN6UOZ6f3iSFW2")
26
- def initialize(target, tls:, grpc_channel_args: {}, playground_instance: nil, timeout: nil)
27
+ #
28
+ # @example Raise an error when input fails schema validation
29
+ # client = Cerbos::Client.new("localhost:3593", tls: false, on_validation_error: :raise)
30
+ #
31
+ # @example Invoke a callback when input fails schema validation
32
+ # client = Cerbos::Client.new("localhost:3593", tls: false, on_validation_error: ->(validation_errors) { do_something_with validation_errors })
33
+ def initialize(target, tls:, grpc_channel_args: {}, on_validation_error: :return, playground_instance: nil, timeout: nil)
34
+ @on_validation_error = on_validation_error
35
+
27
36
  handle_errors do
28
37
  credentials = tls ? tls.to_channel_credentials : :this_channel_is_insecure
29
38
 
@@ -44,11 +53,37 @@ module Cerbos
44
53
  end
45
54
  end
46
55
 
56
+ # Check if a principal is allowed to perform an action on a resource.
57
+ #
58
+ # @param principal [Input::Principal, Hash] the principal to check.
59
+ # @param resource [Input::Resource, Hash] the resource to check.
60
+ # @param action [String] the action to check.
61
+ # @param aux_data [Input::AuxData, Hash, nil] auxiliary data.
62
+ # @param request_id [String] identifier for tracing the request.
63
+ #
64
+ # @return [Boolean]
65
+ #
66
+ # @example
67
+ # client.allow?(
68
+ # principal: {id: "user@example.com", roles: ["USER"]},
69
+ # resource: {kind: "document", id: "1"},
70
+ # action: "view"
71
+ # ) # => true
72
+ def allow?(principal:, resource:, action:, aux_data: nil, request_id: SecureRandom.uuid)
73
+ check_resource(
74
+ principal: principal,
75
+ resource: resource,
76
+ actions: [action],
77
+ aux_data: aux_data,
78
+ request_id: request_id
79
+ ).allow?(action)
80
+ end
81
+
47
82
  # Check a principal's permissions on a resource.
48
83
  #
49
84
  # @param principal [Input::Principal, Hash] the principal to check.
50
85
  # @param resource [Input::Resource, Hash] the resource to check.
51
- # @param actions [Input::Resource, Hash] the actions to check.
86
+ # @param actions [Array<String>] the actions to check.
52
87
  # @param aux_data [Input::AuxData, Hash, nil] auxiliary data.
53
88
  # @param include_metadata [Boolean] `true` to include additional metadata ({Output::CheckResources::Result::Metadata}) in the results.
54
89
  # @param request_id [String] identifier for tracing the request.
@@ -100,7 +135,7 @@ module Cerbos
100
135
  # ]
101
136
  # )
102
137
  #
103
- # result.allow?(resource: {kind: "document", id: "1"}, action: "view") # => true
138
+ # decision.allow?(resource: {kind: "document", id: "1"}, action: "view") # => true
104
139
  def check_resources(principal:, resources:, aux_data: nil, include_metadata: false, request_id: SecureRandom.uuid)
105
140
  handle_errors do
106
141
  request = Protobuf::Cerbos::Request::V1::CheckResourcesRequest.new(
@@ -113,7 +148,9 @@ module Cerbos
113
148
 
114
149
  response = perform_request(@cerbos_service, :check_resources, request)
115
150
 
116
- Output::CheckResources.from_protobuf(response)
151
+ Output::CheckResources.from_protobuf(response).tap do |output|
152
+ handle_validation_errors output
153
+ end
117
154
  end
118
155
  end
119
156
 
@@ -181,6 +218,17 @@ module Cerbos
181
218
  raise Error, error.message
182
219
  end
183
220
 
221
+ def handle_validation_errors(output)
222
+ return if @on_validation_error == :return
223
+
224
+ validation_errors = output.results.flat_map(&:validation_errors)
225
+ return if validation_errors.empty?
226
+
227
+ raise Error::ValidationFailed.new(validation_errors) if @on_validation_error == :raise
228
+
229
+ @on_validation_error.call validation_errors
230
+ end
231
+
184
232
  def perform_request(service, rpc, request)
185
233
  service.public_send(rpc, request)
186
234
  end
data/lib/cerbos/error.rb CHANGED
@@ -3,6 +3,21 @@
3
3
  module Cerbos
4
4
  # Base type for errors thrown by the `cerbos` gem.
5
5
  class Error < StandardError
6
+ # Input failed schema validation.
7
+ class ValidationFailed < Error
8
+ # The validation errors that occurred.
9
+ #
10
+ # @return [Array<Output::CheckResources::Result::ValidationError>]
11
+ attr_reader :validation_errors
12
+
13
+ # @private
14
+ def initialize(validation_errors)
15
+ super "Input failed schema validation"
16
+
17
+ @validation_errors = validation_errors
18
+ end
19
+ end
20
+
6
21
  # An error indicating an unsuccessful gRPC operation.
7
22
  class NotOK < Error
8
23
  # The gRPC status code.
@@ -33,7 +48,7 @@ module Cerbos
33
48
 
34
49
  # @private
35
50
  def initialize(code:, details:, metadata: {})
36
- super("gRPC error #{code}: #{details}")
51
+ super "gRPC error #{code}: #{details}"
37
52
 
38
53
  @code = code
39
54
  @details = details
@@ -22,7 +22,20 @@ module Cerbos
22
22
 
23
23
  # @private
24
24
  def to_protobuf
25
- @attributes.transform_values { |value| Google::Protobuf::Value.from_ruby(value) }
25
+ @attributes.transform_values { |value| Google::Protobuf::Value.from_ruby(deep_stringify_keys(value)) }
26
+ end
27
+
28
+ private
29
+
30
+ def deep_stringify_keys(object)
31
+ case object
32
+ when Hash
33
+ object.each_with_object({}) { |(key, value), result| result[key.to_s] = deep_stringify_keys(value) }
34
+ when Array
35
+ object.map { |value| deep_stringify_keys(value) }
36
+ else
37
+ object
38
+ end
26
39
  end
27
40
  end
28
41
  end
@@ -43,7 +43,7 @@ module Cerbos
43
43
 
44
44
  # @private
45
45
  def to_protobuf
46
- Protobuf::Cerbos::Engine::V1::PlanResourcesRequest::Resource.new(
46
+ Protobuf::Cerbos::Engine::V1::PlanResourcesInput::Resource.new(
47
47
  kind: kind,
48
48
  attr: attributes.to_protobuf,
49
49
  policy_version: policy_version,
@@ -23,7 +23,7 @@ module Cerbos
23
23
  )
24
24
  end
25
25
 
26
- # Check the policy decision was that an action should be allowed for a resource.
26
+ # Check if the policy decision was that an action should be allowed for a resource.
27
27
  #
28
28
  # @param resource [Input::Resource, Hash] the resource search criteria (see {#find_result}).
29
29
  # @param action [String] the action to check.
@@ -34,6 +34,16 @@ module Cerbos
34
34
  find_result(resource)&.allow?(action)
35
35
  end
36
36
 
37
+ # Check if the policy decision was that all input actions should be allowed for a resource.
38
+ #
39
+ # @param resource [Input::Resource, Hash] the resource search criteria (see {#find_result}).
40
+ #
41
+ # @return [Boolean]
42
+ # @return [nil] if the resource is not present in the results.
43
+ def allow_all?(resource)
44
+ find_result(resource)&.allow_all?
45
+ end
46
+
37
47
  # Find an item from {#results} by resource.
38
48
  #
39
49
  # @param resource [Input::Resource, Hash] the resource search criteria. `kind` and `id` are required; `policy_version` and `scope` may also be provided if needed to distinguish between multiple results for the same `kind` and `id`.
@@ -95,6 +105,13 @@ module Cerbos
95
105
  actions[action]&.eql?(:EFFECT_ALLOW)
96
106
  end
97
107
 
108
+ # Check if the policy decision was that all input actions should be allowed for the resource.
109
+ #
110
+ # @return [Boolean]
111
+ def allow_all?
112
+ actions.each_value.all? { |effect| effect == :EFFECT_ALLOW }
113
+ end
114
+
98
115
  # List the actions that should be allowed for the resource.
99
116
  #
100
117
  # @return [Array<String>]
@@ -23,6 +23,20 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
23
23
  repeated :inputs, :message, 4, "cerbos.engine.v1.CheckInput", json_name: "inputs"
24
24
  repeated :outputs, :message, 5, "cerbos.engine.v1.CheckOutput", json_name: "outputs"
25
25
  optional :error, :string, 6, json_name: "error"
26
+ oneof :method do
27
+ optional :check_resources, :message, 7, "cerbos.audit.v1.DecisionLogEntry.CheckResources", json_name: "checkResources"
28
+ optional :plan_resources, :message, 8, "cerbos.audit.v1.DecisionLogEntry.PlanResources", json_name: "planResources"
29
+ end
30
+ end
31
+ add_message "cerbos.audit.v1.DecisionLogEntry.CheckResources" do
32
+ repeated :inputs, :message, 1, "cerbos.engine.v1.CheckInput", json_name: "inputs"
33
+ repeated :outputs, :message, 2, "cerbos.engine.v1.CheckOutput", json_name: "outputs"
34
+ optional :error, :string, 3, json_name: "error"
35
+ end
36
+ add_message "cerbos.audit.v1.DecisionLogEntry.PlanResources" do
37
+ optional :input, :message, 1, "cerbos.engine.v1.PlanResourcesInput", json_name: "input"
38
+ optional :output, :message, 2, "cerbos.engine.v1.PlanResourcesOutput", json_name: "output"
39
+ optional :error, :string, 3, json_name: "error"
26
40
  end
27
41
  add_message "cerbos.audit.v1.MetaValues" do
28
42
  repeated :values, :string, 1, json_name: "values"
@@ -41,6 +55,8 @@ module Cerbos::Protobuf::Cerbos
41
55
  module V1
42
56
  AccessLogEntry = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.audit.v1.AccessLogEntry").msgclass
43
57
  DecisionLogEntry = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.audit.v1.DecisionLogEntry").msgclass
58
+ DecisionLogEntry::CheckResources = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.audit.v1.DecisionLogEntry.CheckResources").msgclass
59
+ DecisionLogEntry::PlanResources = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.audit.v1.DecisionLogEntry.PlanResources").msgclass
44
60
  MetaValues = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.audit.v1.MetaValues").msgclass
45
61
  Peer = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.audit.v1.Peer").msgclass
46
62
  end
@@ -13,20 +13,69 @@ require 'cerbos/protobuf/validate/validate_pb'
13
13
 
14
14
  Google::Protobuf::DescriptorPool.generated_pool.build do
15
15
  add_file("cerbos/engine/v1/engine.proto", :syntax => :proto3) do
16
- add_message "cerbos.engine.v1.PlanResourcesRequest" do
16
+ add_message "cerbos.engine.v1.PlanResourcesInput" do
17
17
  optional :request_id, :string, 1, json_name: "requestId"
18
18
  optional :action, :string, 2, json_name: "action"
19
19
  optional :principal, :message, 3, "cerbos.engine.v1.Principal", json_name: "principal"
20
- optional :resource, :message, 4, "cerbos.engine.v1.PlanResourcesRequest.Resource", json_name: "resource"
20
+ optional :resource, :message, 4, "cerbos.engine.v1.PlanResourcesInput.Resource", json_name: "resource"
21
21
  optional :aux_data, :message, 5, "cerbos.engine.v1.AuxData", json_name: "auxData"
22
22
  optional :include_meta, :bool, 6, json_name: "includeMeta"
23
23
  end
24
- add_message "cerbos.engine.v1.PlanResourcesRequest.Resource" do
24
+ add_message "cerbos.engine.v1.PlanResourcesInput.Resource" do
25
25
  optional :kind, :string, 1, json_name: "kind"
26
26
  map :attr, :string, :message, 2, "google.protobuf.Value"
27
27
  optional :policy_version, :string, 3, json_name: "policyVersion"
28
28
  optional :scope, :string, 4, json_name: "scope"
29
29
  end
30
+ add_message "cerbos.engine.v1.PlanResourcesAst" do
31
+ optional :filter_ast, :message, 1, "cerbos.engine.v1.PlanResourcesAst.Node", json_name: "filterAst"
32
+ end
33
+ add_message "cerbos.engine.v1.PlanResourcesAst.Node" do
34
+ oneof :node do
35
+ optional :logical_operation, :message, 1, "cerbos.engine.v1.PlanResourcesAst.LogicalOperation", json_name: "logicalOperation"
36
+ optional :expression, :message, 2, "google.api.expr.v1alpha1.CheckedExpr", json_name: "expression"
37
+ end
38
+ end
39
+ add_message "cerbos.engine.v1.PlanResourcesAst.LogicalOperation" do
40
+ optional :operator, :enum, 1, "cerbos.engine.v1.PlanResourcesAst.LogicalOperation.Operator", json_name: "operator"
41
+ repeated :nodes, :message, 2, "cerbos.engine.v1.PlanResourcesAst.Node", json_name: "nodes"
42
+ end
43
+ add_enum "cerbos.engine.v1.PlanResourcesAst.LogicalOperation.Operator" do
44
+ value :OPERATOR_UNSPECIFIED, 0
45
+ value :OPERATOR_AND, 1
46
+ value :OPERATOR_OR, 2
47
+ value :OPERATOR_NOT, 3
48
+ end
49
+ add_message "cerbos.engine.v1.PlanResourcesFilter" do
50
+ optional :kind, :enum, 1, "cerbos.engine.v1.PlanResourcesFilter.Kind", json_name: "kind"
51
+ optional :condition, :message, 2, "cerbos.engine.v1.PlanResourcesFilter.Expression.Operand", json_name: "condition"
52
+ end
53
+ add_message "cerbos.engine.v1.PlanResourcesFilter.Expression" do
54
+ optional :operator, :string, 1, json_name: "operator"
55
+ repeated :operands, :message, 2, "cerbos.engine.v1.PlanResourcesFilter.Expression.Operand", json_name: "operands"
56
+ end
57
+ add_message "cerbos.engine.v1.PlanResourcesFilter.Expression.Operand" do
58
+ oneof :node do
59
+ optional :value, :message, 1, "google.protobuf.Value", json_name: "value"
60
+ optional :expression, :message, 2, "cerbos.engine.v1.PlanResourcesFilter.Expression", json_name: "expression"
61
+ optional :variable, :string, 3, json_name: "variable"
62
+ end
63
+ end
64
+ add_enum "cerbos.engine.v1.PlanResourcesFilter.Kind" do
65
+ value :KIND_UNSPECIFIED, 0
66
+ value :KIND_ALWAYS_ALLOWED, 1
67
+ value :KIND_ALWAYS_DENIED, 2
68
+ value :KIND_CONDITIONAL, 3
69
+ end
70
+ add_message "cerbos.engine.v1.PlanResourcesOutput" do
71
+ optional :request_id, :string, 1, json_name: "requestId"
72
+ optional :action, :string, 2, json_name: "action"
73
+ optional :kind, :string, 3, json_name: "kind"
74
+ optional :policy_version, :string, 4, json_name: "policyVersion"
75
+ optional :scope, :string, 5, json_name: "scope"
76
+ optional :filter, :message, 6, "cerbos.engine.v1.PlanResourcesFilter", json_name: "filter"
77
+ optional :filter_debug, :string, 7, json_name: "filterDebug"
78
+ end
30
79
  add_message "cerbos.engine.v1.CheckInput" do
31
80
  optional :request_id, :string, 1, json_name: "requestId"
32
81
  optional :resource, :message, 2, "cerbos.engine.v1.Resource", json_name: "resource"
@@ -46,30 +95,6 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
46
95
  optional :policy, :string, 2, json_name: "policy"
47
96
  optional :scope, :string, 3, json_name: "scope"
48
97
  end
49
- add_message "cerbos.engine.v1.PlanResourcesOutput" do
50
- optional :request_id, :string, 1, json_name: "requestId"
51
- optional :action, :string, 2, json_name: "action"
52
- optional :kind, :string, 3, json_name: "kind"
53
- optional :policy_version, :string, 4, json_name: "policyVersion"
54
- optional :scope, :string, 5, json_name: "scope"
55
- optional :filter, :message, 6, "cerbos.engine.v1.PlanResourcesOutput.Node", json_name: "filter"
56
- end
57
- add_message "cerbos.engine.v1.PlanResourcesOutput.Node" do
58
- oneof :node do
59
- optional :logical_operation, :message, 1, "cerbos.engine.v1.PlanResourcesOutput.LogicalOperation", json_name: "logicalOperation"
60
- optional :expression, :message, 2, "google.api.expr.v1alpha1.CheckedExpr", json_name: "expression"
61
- end
62
- end
63
- add_message "cerbos.engine.v1.PlanResourcesOutput.LogicalOperation" do
64
- optional :operator, :enum, 1, "cerbos.engine.v1.PlanResourcesOutput.LogicalOperation.Operator", json_name: "operator"
65
- repeated :nodes, :message, 2, "cerbos.engine.v1.PlanResourcesOutput.Node", json_name: "nodes"
66
- end
67
- add_enum "cerbos.engine.v1.PlanResourcesOutput.LogicalOperation.Operator" do
68
- value :OPERATOR_UNSPECIFIED, 0
69
- value :OPERATOR_AND, 1
70
- value :OPERATOR_OR, 2
71
- value :OPERATOR_NOT, 3
72
- end
73
98
  add_message "cerbos.engine.v1.Resource" do
74
99
  optional :kind, :string, 1, json_name: "kind"
75
100
  optional :policy_version, :string, 2, json_name: "policyVersion"
@@ -143,15 +168,20 @@ end
143
168
  module Cerbos::Protobuf::Cerbos
144
169
  module Engine
145
170
  module V1
146
- PlanResourcesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesRequest").msgclass
147
- PlanResourcesRequest::Resource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesRequest.Resource").msgclass
171
+ PlanResourcesInput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesInput").msgclass
172
+ PlanResourcesInput::Resource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesInput.Resource").msgclass
173
+ PlanResourcesAst = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesAst").msgclass
174
+ PlanResourcesAst::Node = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesAst.Node").msgclass
175
+ PlanResourcesAst::LogicalOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesAst.LogicalOperation").msgclass
176
+ PlanResourcesAst::LogicalOperation::Operator = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesAst.LogicalOperation.Operator").enummodule
177
+ PlanResourcesFilter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesFilter").msgclass
178
+ PlanResourcesFilter::Expression = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesFilter.Expression").msgclass
179
+ PlanResourcesFilter::Expression::Operand = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesFilter.Expression.Operand").msgclass
180
+ PlanResourcesFilter::Kind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesFilter.Kind").enummodule
181
+ PlanResourcesOutput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesOutput").msgclass
148
182
  CheckInput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.CheckInput").msgclass
149
183
  CheckOutput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.CheckOutput").msgclass
150
184
  CheckOutput::ActionEffect = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.CheckOutput.ActionEffect").msgclass
151
- PlanResourcesOutput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesOutput").msgclass
152
- PlanResourcesOutput::Node = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesOutput.Node").msgclass
153
- PlanResourcesOutput::LogicalOperation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesOutput.LogicalOperation").msgclass
154
- PlanResourcesOutput::LogicalOperation::Operator = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.PlanResourcesOutput.LogicalOperation.Operator").enummodule
155
185
  Resource = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.Resource").msgclass
156
186
  Principal = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.Principal").msgclass
157
187
  AuxData = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.engine.v1.AuxData").msgclass
@@ -19,7 +19,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
19
19
  optional :request_id, :string, 1, json_name: "requestId"
20
20
  optional :action, :string, 2, json_name: "action"
21
21
  optional :principal, :message, 3, "cerbos.engine.v1.Principal", json_name: "principal"
22
- optional :resource, :message, 4, "cerbos.engine.v1.PlanResourcesRequest.Resource", json_name: "resource"
22
+ optional :resource, :message, 4, "cerbos.engine.v1.PlanResourcesInput.Resource", json_name: "resource"
23
23
  optional :aux_data, :message, 5, "cerbos.request.v1.AuxData", json_name: "auxData"
24
24
  optional :include_meta, :bool, 6, json_name: "includeMeta"
25
25
  end
@@ -5,10 +5,10 @@ require 'google/protobuf'
5
5
 
6
6
  require 'cerbos/protobuf/cerbos/audit/v1/audit_pb'
7
7
  require 'cerbos/protobuf/cerbos/effect/v1/effect_pb'
8
+ require 'cerbos/protobuf/cerbos/engine/v1/engine_pb'
8
9
  require 'cerbos/protobuf/cerbos/policy/v1/policy_pb'
9
10
  require 'cerbos/protobuf/cerbos/schema/v1/schema_pb'
10
11
  require 'google/protobuf/empty_pb'
11
- require 'google/protobuf/struct_pb'
12
12
  require 'cerbos/protobuf/protoc-gen-openapiv2/options/annotations_pb'
13
13
 
14
14
  Google::Protobuf::DescriptorPool.generated_pool.build do
@@ -18,30 +18,9 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
18
18
  optional :action, :string, 2, json_name: "action"
19
19
  optional :resource_kind, :string, 3, json_name: "resourceKind"
20
20
  optional :policy_version, :string, 4, json_name: "policyVersion"
21
- optional :filter, :message, 5, "cerbos.response.v1.PlanResourcesResponse.Filter", json_name: "filter"
21
+ optional :filter, :message, 5, "cerbos.engine.v1.PlanResourcesFilter", json_name: "filter"
22
22
  optional :meta, :message, 6, "cerbos.response.v1.PlanResourcesResponse.Meta", json_name: "meta"
23
23
  end
24
- add_message "cerbos.response.v1.PlanResourcesResponse.Expression" do
25
- optional :operator, :string, 1, json_name: "operator"
26
- repeated :operands, :message, 2, "cerbos.response.v1.PlanResourcesResponse.Expression.Operand", json_name: "operands"
27
- end
28
- add_message "cerbos.response.v1.PlanResourcesResponse.Expression.Operand" do
29
- oneof :node do
30
- optional :value, :message, 1, "google.protobuf.Value", json_name: "value"
31
- optional :expression, :message, 2, "cerbos.response.v1.PlanResourcesResponse.Expression", json_name: "expression"
32
- optional :variable, :string, 3, json_name: "variable"
33
- end
34
- end
35
- add_message "cerbos.response.v1.PlanResourcesResponse.Filter" do
36
- optional :kind, :enum, 1, "cerbos.response.v1.PlanResourcesResponse.Filter.Kind", json_name: "kind"
37
- optional :condition, :message, 2, "cerbos.response.v1.PlanResourcesResponse.Expression.Operand", json_name: "condition"
38
- end
39
- add_enum "cerbos.response.v1.PlanResourcesResponse.Filter.Kind" do
40
- value :KIND_UNSPECIFIED, 0
41
- value :KIND_ALWAYS_ALLOWED, 1
42
- value :KIND_ALWAYS_DENIED, 2
43
- value :KIND_CONDITIONAL, 3
44
- end
45
24
  add_message "cerbos.response.v1.PlanResourcesResponse.Meta" do
46
25
  optional :filter_debug, :string, 1, json_name: "filterDebug"
47
26
  optional :matched_scope, :string, 2, json_name: "matchedScope"
@@ -189,10 +168,6 @@ module Cerbos::Protobuf::Cerbos
189
168
  module Response
190
169
  module V1
191
170
  PlanResourcesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.response.v1.PlanResourcesResponse").msgclass
192
- PlanResourcesResponse::Expression = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.response.v1.PlanResourcesResponse.Expression").msgclass
193
- PlanResourcesResponse::Expression::Operand = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.response.v1.PlanResourcesResponse.Expression.Operand").msgclass
194
- PlanResourcesResponse::Filter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.response.v1.PlanResourcesResponse.Filter").msgclass
195
- PlanResourcesResponse::Filter::Kind = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.response.v1.PlanResourcesResponse.Filter.Kind").enummodule
196
171
  PlanResourcesResponse::Meta = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.response.v1.PlanResourcesResponse.Meta").msgclass
197
172
  CheckResourceSetResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.response.v1.CheckResourceSetResponse").msgclass
198
173
  CheckResourceSetResponse::ActionEffectMap = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.response.v1.CheckResourceSetResponse.ActionEffectMap").msgclass
@@ -7,93 +7,117 @@ require 'google/protobuf/duration_pb'
7
7
 
8
8
  Google::Protobuf::DescriptorPool.generated_pool.build do
9
9
  add_file("cerbos/telemetry/v1/telemetry.proto", :syntax => :proto3) do
10
- add_message "cerbos.telemetry.v1.Ping" do
10
+ add_message "cerbos.telemetry.v1.ServerLaunch" do
11
11
  optional :version, :string, 1, json_name: "version"
12
- optional :source, :message, 2, "cerbos.telemetry.v1.Ping.Source", json_name: "source"
13
- optional :features, :message, 3, "cerbos.telemetry.v1.Ping.Features", json_name: "features"
14
- optional :stats, :message, 4, "cerbos.telemetry.v1.Ping.Stats", json_name: "stats"
12
+ optional :source, :message, 2, "cerbos.telemetry.v1.ServerLaunch.Source", json_name: "source"
13
+ optional :features, :message, 3, "cerbos.telemetry.v1.ServerLaunch.Features", json_name: "features"
14
+ optional :stats, :message, 4, "cerbos.telemetry.v1.ServerLaunch.Stats", json_name: "stats"
15
15
  end
16
- add_message "cerbos.telemetry.v1.Ping.Cerbos" do
16
+ add_message "cerbos.telemetry.v1.ServerLaunch.Cerbos" do
17
17
  optional :version, :string, 1, json_name: "version"
18
18
  optional :commit, :string, 2, json_name: "commit"
19
19
  optional :build_date, :string, 3, json_name: "buildDate"
20
20
  optional :module_version, :string, 4, json_name: "moduleVersion"
21
21
  optional :module_checksum, :string, 5, json_name: "moduleChecksum"
22
22
  end
23
- add_message "cerbos.telemetry.v1.Ping.Source" do
24
- optional :cerbos, :message, 1, "cerbos.telemetry.v1.Ping.Cerbos", json_name: "cerbos"
23
+ add_message "cerbos.telemetry.v1.ServerLaunch.Source" do
24
+ optional :cerbos, :message, 1, "cerbos.telemetry.v1.ServerLaunch.Cerbos", json_name: "cerbos"
25
25
  optional :os, :string, 2, json_name: "os"
26
26
  optional :arch, :string, 3, json_name: "arch"
27
27
  optional :num_cpus, :uint32, 4, json_name: "numCpus"
28
28
  end
29
- add_message "cerbos.telemetry.v1.Ping.Features" do
30
- optional :audit, :message, 1, "cerbos.telemetry.v1.Ping.Features.Audit", json_name: "audit"
31
- optional :schema, :message, 2, "cerbos.telemetry.v1.Ping.Features.Schema", json_name: "schema"
32
- optional :admin_api, :message, 3, "cerbos.telemetry.v1.Ping.Features.AdminApi", json_name: "adminApi"
33
- optional :storage, :message, 4, "cerbos.telemetry.v1.Ping.Features.Storage", json_name: "storage"
29
+ add_message "cerbos.telemetry.v1.ServerLaunch.Features" do
30
+ optional :audit, :message, 1, "cerbos.telemetry.v1.ServerLaunch.Features.Audit", json_name: "audit"
31
+ optional :schema, :message, 2, "cerbos.telemetry.v1.ServerLaunch.Features.Schema", json_name: "schema"
32
+ optional :admin_api, :message, 3, "cerbos.telemetry.v1.ServerLaunch.Features.AdminApi", json_name: "adminApi"
33
+ optional :storage, :message, 4, "cerbos.telemetry.v1.ServerLaunch.Features.Storage", json_name: "storage"
34
34
  end
35
- add_message "cerbos.telemetry.v1.Ping.Features.Audit" do
35
+ add_message "cerbos.telemetry.v1.ServerLaunch.Features.Audit" do
36
36
  optional :enabled, :bool, 1, json_name: "enabled"
37
37
  optional :backend, :string, 2, json_name: "backend"
38
38
  end
39
- add_message "cerbos.telemetry.v1.Ping.Features.Schema" do
39
+ add_message "cerbos.telemetry.v1.ServerLaunch.Features.Schema" do
40
40
  optional :enforcement, :string, 1, json_name: "enforcement"
41
41
  end
42
- add_message "cerbos.telemetry.v1.Ping.Features.AdminApi" do
42
+ add_message "cerbos.telemetry.v1.ServerLaunch.Features.AdminApi" do
43
43
  optional :enabled, :bool, 1, json_name: "enabled"
44
44
  end
45
- add_message "cerbos.telemetry.v1.Ping.Features.Storage" do
45
+ add_message "cerbos.telemetry.v1.ServerLaunch.Features.Storage" do
46
46
  optional :driver, :string, 1, json_name: "driver"
47
47
  oneof :store do
48
- optional :disk, :message, 2, "cerbos.telemetry.v1.Ping.Features.Storage.Disk", json_name: "disk"
49
- optional :git, :message, 3, "cerbos.telemetry.v1.Ping.Features.Storage.Git", json_name: "git"
50
- optional :blob, :message, 4, "cerbos.telemetry.v1.Ping.Features.Storage.Blob", json_name: "blob"
48
+ optional :disk, :message, 2, "cerbos.telemetry.v1.ServerLaunch.Features.Storage.Disk", json_name: "disk"
49
+ optional :git, :message, 3, "cerbos.telemetry.v1.ServerLaunch.Features.Storage.Git", json_name: "git"
50
+ optional :blob, :message, 4, "cerbos.telemetry.v1.ServerLaunch.Features.Storage.Blob", json_name: "blob"
51
51
  end
52
52
  end
53
- add_message "cerbos.telemetry.v1.Ping.Features.Storage.Disk" do
53
+ add_message "cerbos.telemetry.v1.ServerLaunch.Features.Storage.Disk" do
54
54
  optional :watch, :bool, 1, json_name: "watch"
55
55
  end
56
- add_message "cerbos.telemetry.v1.Ping.Features.Storage.Git" do
56
+ add_message "cerbos.telemetry.v1.ServerLaunch.Features.Storage.Git" do
57
57
  optional :protocol, :string, 1, json_name: "protocol"
58
58
  optional :auth, :bool, 2, json_name: "auth"
59
59
  optional :poll_interval, :message, 3, "google.protobuf.Duration", json_name: "pollInterval"
60
60
  end
61
- add_message "cerbos.telemetry.v1.Ping.Features.Storage.Blob" do
61
+ add_message "cerbos.telemetry.v1.ServerLaunch.Features.Storage.Blob" do
62
62
  optional :provider, :string, 1, json_name: "provider"
63
63
  optional :poll_interval, :message, 2, "google.protobuf.Duration", json_name: "pollInterval"
64
64
  end
65
- add_message "cerbos.telemetry.v1.Ping.Stats" do
66
- optional :policy, :message, 1, "cerbos.telemetry.v1.Ping.Stats.Policy", json_name: "policy"
67
- optional :schema, :message, 2, "cerbos.telemetry.v1.Ping.Stats.Schema", json_name: "schema"
65
+ add_message "cerbos.telemetry.v1.ServerLaunch.Stats" do
66
+ optional :policy, :message, 1, "cerbos.telemetry.v1.ServerLaunch.Stats.Policy", json_name: "policy"
67
+ optional :schema, :message, 2, "cerbos.telemetry.v1.ServerLaunch.Stats.Schema", json_name: "schema"
68
68
  end
69
- add_message "cerbos.telemetry.v1.Ping.Stats.Policy" do
69
+ add_message "cerbos.telemetry.v1.ServerLaunch.Stats.Policy" do
70
70
  map :count, :string, :uint32, 1
71
71
  map :avg_rule_count, :string, :double, 2
72
72
  map :avg_condition_count, :string, :double, 3
73
73
  end
74
- add_message "cerbos.telemetry.v1.Ping.Stats.Schema" do
74
+ add_message "cerbos.telemetry.v1.ServerLaunch.Stats.Schema" do
75
75
  optional :count, :uint32, 1, json_name: "count"
76
76
  end
77
+ add_message "cerbos.telemetry.v1.ServerStop" do
78
+ optional :version, :string, 1, json_name: "version"
79
+ optional :uptime, :message, 2, "google.protobuf.Duration", json_name: "uptime"
80
+ optional :requests_total, :uint64, 3, json_name: "requestsTotal"
81
+ end
82
+ add_message "cerbos.telemetry.v1.Event" do
83
+ oneof :data do
84
+ optional :api_activity, :message, 1, "cerbos.telemetry.v1.Event.ApiActivity", json_name: "apiActivity"
85
+ end
86
+ end
87
+ add_message "cerbos.telemetry.v1.Event.CountStat" do
88
+ optional :key, :string, 1, json_name: "key"
89
+ optional :count, :uint64, 2, json_name: "count"
90
+ end
91
+ add_message "cerbos.telemetry.v1.Event.ApiActivity" do
92
+ optional :version, :string, 1, json_name: "version"
93
+ optional :uptime, :message, 2, "google.protobuf.Duration", json_name: "uptime"
94
+ repeated :method_calls, :message, 3, "cerbos.telemetry.v1.Event.CountStat", json_name: "methodCalls"
95
+ repeated :user_agents, :message, 4, "cerbos.telemetry.v1.Event.CountStat", json_name: "userAgents"
96
+ end
77
97
  end
78
98
  end
79
99
 
80
100
  module Cerbos::Protobuf::Cerbos
81
101
  module Telemetry
82
102
  module V1
83
- Ping = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping").msgclass
84
- Ping::Cerbos = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Cerbos").msgclass
85
- Ping::Source = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Source").msgclass
86
- Ping::Features = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Features").msgclass
87
- Ping::Features::Audit = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Features.Audit").msgclass
88
- Ping::Features::Schema = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Features.Schema").msgclass
89
- Ping::Features::AdminApi = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Features.AdminApi").msgclass
90
- Ping::Features::Storage = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Features.Storage").msgclass
91
- Ping::Features::Storage::Disk = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Features.Storage.Disk").msgclass
92
- Ping::Features::Storage::Git = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Features.Storage.Git").msgclass
93
- Ping::Features::Storage::Blob = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Features.Storage.Blob").msgclass
94
- Ping::Stats = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Stats").msgclass
95
- Ping::Stats::Policy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Stats.Policy").msgclass
96
- Ping::Stats::Schema = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Ping.Stats.Schema").msgclass
103
+ ServerLaunch = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch").msgclass
104
+ ServerLaunch::Cerbos = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Cerbos").msgclass
105
+ ServerLaunch::Source = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Source").msgclass
106
+ ServerLaunch::Features = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Features").msgclass
107
+ ServerLaunch::Features::Audit = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Features.Audit").msgclass
108
+ ServerLaunch::Features::Schema = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Features.Schema").msgclass
109
+ ServerLaunch::Features::AdminApi = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Features.AdminApi").msgclass
110
+ ServerLaunch::Features::Storage = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Features.Storage").msgclass
111
+ ServerLaunch::Features::Storage::Disk = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Features.Storage.Disk").msgclass
112
+ ServerLaunch::Features::Storage::Git = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Features.Storage.Git").msgclass
113
+ ServerLaunch::Features::Storage::Blob = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Features.Storage.Blob").msgclass
114
+ ServerLaunch::Stats = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Stats").msgclass
115
+ ServerLaunch::Stats::Policy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Stats.Policy").msgclass
116
+ ServerLaunch::Stats::Schema = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerLaunch.Stats.Schema").msgclass
117
+ ServerStop = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.ServerStop").msgclass
118
+ Event = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Event").msgclass
119
+ Event::CountStat = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Event.CountStat").msgclass
120
+ Event::ApiActivity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("cerbos.telemetry.v1.Event.ApiActivity").msgclass
97
121
  end
98
122
  end
99
123
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Cerbos
4
4
  # Current version of the `cerbos` gem.
5
- VERSION = "0.2.0"
5
+ VERSION = "0.5.0"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cerbos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cerbos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-12 00:00:00.000000000 Z
11
+ date: 2022-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grpc
@@ -81,7 +81,7 @@ licenses:
81
81
  metadata:
82
82
  bug_tracker_uri: https://github.com/cerbos/cerbos-sdk-ruby/issues
83
83
  changelog_uri: https://github.com/cerbos/cerbos-sdk-ruby/blob/main/CHANGELOG.md
84
- documentation_uri: https://www.rubydoc.info/gems/cerbos/0.2.0
84
+ documentation_uri: https://www.rubydoc.info/gems/cerbos/0.5.0
85
85
  homepage_uri: https://github.com/cerbos/cerbos-sdk-ruby
86
86
  source_code_uri: https://github.com/cerbos/cerbos-sdk-ruby
87
87
  rubygems_mfa_required: 'true'