aserto 0.30.1 → 0.30.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/VERSION +1 -1
- data/lib/aserto/auth_client.rb +1 -1
- data/lib/aserto/config.rb +1 -1
- data/lib/aserto/directory/errors.rb +4 -0
- data/lib/aserto/directory/v3/client.rb +2 -1
- data/lib/aserto/directory/v3/config.rb +16 -9
- data/lib/aserto/directory/v3/importer.rb +9 -3
- data/lib/aserto/directory/v3/reader.rb +11 -11
- data/lib/aserto/directory/v3/writer.rb +8 -8
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6f6d7ede8c8254ea3a7660948f01f70ec2d59d1328676c6e479bfe4e79a2305
|
4
|
+
data.tar.gz: b2314cab25c484a0c7b48254869210f11c386084bdeb2cb0a37b2024dee8716f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65c36aee8d336be3016bf70ee95bd44d8ddc74d06fc1a7c0f9cc51ddff8f5a65b8282cc1160e2a6d0389be5eafaa7c2ce51fb61ce84bb9d0297cfdb6865bde2c
|
7
|
+
data.tar.gz: c27fba66e09a55b63060f93596080f89eb3cdb5ee38eed73ca101ae491528abc7688a2e82879c58d187729d6ee9c3c4108b1e09c35aa7450096e8ed8d5ac7a08
|
data/README.md
CHANGED
@@ -50,7 +50,7 @@ See [Aserto::Directory::V3::Client](https://rubydoc.info/gems/aserto/Aserto/Dire
|
|
50
50
|
`Aserto::Authorization` is a middleware that allows Ruby applications to use Aserto as the Authorization provider.
|
51
51
|
|
52
52
|
### Prerequisites
|
53
|
-
* [Ruby](https://www.ruby-lang.org/en/downloads/)
|
53
|
+
* [Ruby](https://www.ruby-lang.org/en/downloads/) 3.0 or newer.
|
54
54
|
* An [Aserto](https://console.aserto.com) account.
|
55
55
|
|
56
56
|
### Configuration
|
@@ -244,7 +244,7 @@ end
|
|
244
244
|
Prerequisites:
|
245
245
|
|
246
246
|
- go >= 1.17 to run mage
|
247
|
-
- Ruby >=
|
247
|
+
- Ruby >= 3.0 to run the code
|
248
248
|
|
249
249
|
|
250
250
|
Run `bundle install` to install dependencies. Then, run `bundle exec rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.30.
|
1
|
+
0.30.4
|
data/lib/aserto/auth_client.rb
CHANGED
data/lib/aserto/config.rb
CHANGED
@@ -8,6 +8,7 @@ require_relative "writer"
|
|
8
8
|
require_relative "model"
|
9
9
|
require_relative "importer"
|
10
10
|
require_relative "exporter"
|
11
|
+
require_relative "../errors"
|
11
12
|
|
12
13
|
module Aserto
|
13
14
|
module Directory
|
@@ -77,7 +78,7 @@ module Aserto
|
|
77
78
|
end
|
78
79
|
|
79
80
|
def method_missing(method, *_args)
|
80
|
-
|
81
|
+
raise ConfigError, "Cannot call '#{method}': '#{@name.to_s.capitalize}' client is not initialized."
|
81
82
|
end
|
82
83
|
|
83
84
|
def respond_to_missing?(_name, _include_private)
|
@@ -10,7 +10,7 @@ module Aserto
|
|
10
10
|
|
11
11
|
def initialize(config)
|
12
12
|
@base = {
|
13
|
-
url: config[:url]
|
13
|
+
url: config[:url],
|
14
14
|
api_key: config[:api_key],
|
15
15
|
tenant_id: config[:tenant_id],
|
16
16
|
cert_path: config[:cert_path]
|
@@ -28,6 +28,8 @@ module Aserto
|
|
28
28
|
class BaseConfig
|
29
29
|
attr_reader :url, :credentials, :interceptors
|
30
30
|
|
31
|
+
DEFAULT_DIRECTORY_URL = "directory.prod.aserto.com:8443"
|
32
|
+
|
31
33
|
def initialize(url, credentials, interceptors)
|
32
34
|
@url = url
|
33
35
|
@credentials = credentials
|
@@ -35,16 +37,21 @@ module Aserto
|
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
38
|
-
def build(
|
39
|
-
|
40
|
-
api_key: @base[:api_key],
|
41
|
-
tenant_id: @base[:tenant_id],
|
42
|
-
cert_path: @base[:cert_path]
|
43
|
-
)
|
40
|
+
def build(url: nil, api_key: @base[:api_key], tenant_id: @base[:tenant_id], cert_path: @base[:cert_path])
|
41
|
+
return unless valid_config?(@base, { url: url, api_key: api_key, tenant_id: tenant_id })
|
44
42
|
|
45
|
-
interceptors = []
|
46
43
|
interceptors = [Interceptors::Headers.new(api_key, tenant_id)] if !api_key.nil? && !tenant_id.nil?
|
47
|
-
BaseConfig.new(
|
44
|
+
BaseConfig.new(
|
45
|
+
url || @base[:url] || BaseConfig::DEFAULT_DIRECTORY_URL,
|
46
|
+
load_creds(cert_path),
|
47
|
+
interceptors || []
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
def valid_config?(config, fallback)
|
52
|
+
!(config[:url].nil? && fallback[:url].nil?) ||
|
53
|
+
((!config[:api_key].nil? || !fallback[:api_key].nil?) &&
|
54
|
+
(!config[:tenant_id].nil? || !fallback[:tenant_id].nil?))
|
48
55
|
end
|
49
56
|
|
50
57
|
def load_creds(cert_path)
|
@@ -9,15 +9,21 @@ module Aserto
|
|
9
9
|
#
|
10
10
|
# @param Array[Hash] data to be imported
|
11
11
|
#
|
12
|
+
# op_code = {
|
13
|
+
# OPCODE_UNKNOWN = ;
|
14
|
+
# OPCODE_SET = 1;
|
15
|
+
# OPCODE_DELETE = 2;
|
16
|
+
# }
|
12
17
|
# @example
|
13
18
|
# directory.import(
|
14
19
|
# [
|
15
|
-
# { object: {
|
16
|
-
# { object: {
|
20
|
+
# { op_code: 1, object: { type: "user", id: "import-user" } },
|
21
|
+
# { op_code: 1, object: { type: "group", id: "import-group" } },
|
17
22
|
# {
|
23
|
+
# op_code: 1,
|
18
24
|
# relation: {
|
19
|
-
# object_id: "import-user",
|
20
25
|
# object_type: "user",
|
26
|
+
# object_id: "import-user",
|
21
27
|
# relation: "member",
|
22
28
|
# subject_id: "import-group",
|
23
29
|
# subject_type: "group"
|
@@ -7,8 +7,8 @@ module Aserto
|
|
7
7
|
#
|
8
8
|
# find an object by id and type
|
9
9
|
#
|
10
|
-
# @param object_id [String]
|
11
10
|
# @param object_type [String]
|
11
|
+
# @param object_id [String]
|
12
12
|
#
|
13
13
|
# @return [Aserto::Directory::Reader::V3::GetObjectResponse]
|
14
14
|
#
|
@@ -17,11 +17,11 @@ module Aserto
|
|
17
17
|
# object_type: "user",
|
18
18
|
# object_id: "rick@the-citadel.com"
|
19
19
|
# )
|
20
|
-
def get_object(
|
20
|
+
def get_object(object_type:, object_id:)
|
21
21
|
reader.get_object(
|
22
22
|
Aserto::Directory::Reader::V3::GetObjectRequest.new(
|
23
|
-
|
24
|
-
|
23
|
+
object_type: object_type,
|
24
|
+
object_id: object_id
|
25
25
|
)
|
26
26
|
)
|
27
27
|
end
|
@@ -227,13 +227,13 @@ module Aserto
|
|
227
227
|
#
|
228
228
|
# Returns object graph from anchor to subject or object.
|
229
229
|
#
|
230
|
-
# @param [String] anchor_type
|
231
|
-
# @param [String] anchor_id
|
232
|
-
# @param [String] object_type
|
233
|
-
# @param [String] object_id
|
234
|
-
# @param [String] relation
|
235
|
-
# @param [String] subject_type
|
236
|
-
# @param [String]
|
230
|
+
# @param [String] anchor_type
|
231
|
+
# @param [String] anchor_id
|
232
|
+
# @param [String] object_type
|
233
|
+
# @param [String] object_id
|
234
|
+
# @param [String] relation
|
235
|
+
# @param [String] subject_type
|
236
|
+
# @param [String]
|
237
237
|
#
|
238
238
|
# @return [Aserto::Directory::Reader::V3::GetGraphResponse]
|
239
239
|
#
|
@@ -9,8 +9,8 @@ module Aserto
|
|
9
9
|
#
|
10
10
|
# Create a new object
|
11
11
|
#
|
12
|
-
# @param [String] object_id
|
13
12
|
# @param [String] object_type
|
13
|
+
# @param [String] object_id
|
14
14
|
# @param [String] display_name
|
15
15
|
# @param [Hash] properties
|
16
16
|
# @param [String] etag
|
@@ -18,13 +18,13 @@ module Aserto
|
|
18
18
|
# @return [Aserto::Directory::Writer::V3::SetObjectResponse]
|
19
19
|
#
|
20
20
|
# @example
|
21
|
-
# client.set_object(
|
22
|
-
def set_object(
|
21
|
+
# client.set_object(object_type: "user", object_id: "1234", properties: { email: "test" })
|
22
|
+
def set_object(object_type:, object_id:, display_name: "", properties: {}, etag: nil)
|
23
23
|
writer.set_object(
|
24
24
|
Aserto::Directory::Writer::V3::SetObjectRequest.new(
|
25
25
|
object: {
|
26
|
-
id: object_id,
|
27
26
|
type: object_type,
|
27
|
+
id: object_id,
|
28
28
|
display_name: display_name,
|
29
29
|
properties: Google::Protobuf::Struct.from_hash(properties.transform_keys!(&:to_s)),
|
30
30
|
etag: etag
|
@@ -36,19 +36,19 @@ module Aserto
|
|
36
36
|
#
|
37
37
|
# Delete an object
|
38
38
|
#
|
39
|
-
# @param [String] object_id
|
40
39
|
# @param [String] object_type
|
40
|
+
# @param [String] object_id
|
41
41
|
# @param [Boolean] with_relations
|
42
42
|
#
|
43
43
|
# @return [ Aserto::Directory::Writer::V3::DeleteObjectResponse]
|
44
44
|
#
|
45
45
|
# @example
|
46
|
-
# client.delete_object(
|
47
|
-
def delete_object(
|
46
|
+
# client.delete_object(object_type: "user", object_id: "1234")
|
47
|
+
def delete_object(object_type:, object_id:, with_relations: false)
|
48
48
|
writer.delete_object(
|
49
49
|
Aserto::Directory::Writer::V3::DeleteObjectRequest.new(
|
50
|
-
object_id: object_id,
|
51
50
|
object_type: object_type,
|
51
|
+
object_id: object_id,
|
52
52
|
with_relations: with_relations
|
53
53
|
)
|
54
54
|
)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aserto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.30.
|
4
|
+
version: 0.30.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aserto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aserto-authorizer
|
@@ -81,6 +81,7 @@ files:
|
|
81
81
|
- lib/aserto/authorization.rb
|
82
82
|
- lib/aserto/config.rb
|
83
83
|
- lib/aserto/directory/client.rb
|
84
|
+
- lib/aserto/directory/errors.rb
|
84
85
|
- lib/aserto/directory/interceptors/headers.rb
|
85
86
|
- lib/aserto/directory/v2/client.rb
|
86
87
|
- lib/aserto/directory/v2/requests.rb
|