evervault 0.1.2 → 0.1.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/Gemfile.lock +1 -1
- data/README.md +22 -13
- data/lib/evervault/client.rb +4 -4
- data/lib/evervault/http/request.rb +25 -7
- data/lib/evervault/models/cage.rb +2 -2
- data/lib/evervault/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3b50c9b63dbb48205dd12e7f25a7df7bde49ccee2945a4a40f999d635d14ca4
|
4
|
+
data.tar.gz: d5582b0e9be47496c09d01581a00e6e3cfd6abf824d8bb57275f3fcd7800ac1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c01d3201c76b86f8924c8ee8f90feb77da2d6bca98cebb724c10a75c181f6ab8ac7847686044cdc7e3f57ea84918e7f15d4eb66b6e2d792cffb9b362d5da8988
|
7
|
+
data.tar.gz: e0b570280d96839cf6df0cb8c595bc3e9b23b9f60fcb763f75513af4961bd97ffadfae01de40be5c023cc7390d7cead0f8e3c0b8ce6c67bda36e2d62e12b3b7e
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
Ruby SDK for [Evervault](https://evervault.com)
|
13
13
|
### Prerequisites
|
14
14
|
|
15
|
-
To get started with the Evervault Ruby SDK, you will need to have created a team on the
|
15
|
+
To get started with the Evervault Ruby SDK, you will need to have created a team on the Evervault dashboard.
|
16
16
|
|
17
17
|
We are currently in invite-only early access. You can apply for early access [here](https://evervault.com).
|
18
18
|
|
@@ -63,7 +63,7 @@ result = evervault.encrypt_and_run(<CAGE-NAME>, { hello: 'World!' })
|
|
63
63
|
|
64
64
|
### Evervault.encrypt
|
65
65
|
|
66
|
-
Encrypt lets you encrypt data for use in any of your
|
66
|
+
Encrypt lets you encrypt data for use in any of your Evervault Cages. You can use it to store encrypted data to be used in a Cage at another time.
|
67
67
|
|
68
68
|
```ruby
|
69
69
|
Evervault.encrypt(data = Hash | String)
|
@@ -75,20 +75,28 @@ Evervault.encrypt(data = Hash | String)
|
|
75
75
|
|
76
76
|
### Evervault.run
|
77
77
|
|
78
|
-
Run lets you invoke your
|
78
|
+
Run lets you invoke your Evervault Cages with a given payload.
|
79
79
|
|
80
80
|
```ruby
|
81
|
-
Evervault.run(cage_name = String, data = Hash)
|
81
|
+
Evervault.run(cage_name = String, data = Hash[, options = Hash])
|
82
82
|
```
|
83
83
|
|
84
84
|
| Parameter | Type | Description |
|
85
85
|
| --------- | ---- | ----------- |
|
86
|
-
| cageName | String | Name of the
|
87
|
-
| data | Hash | Payload for the
|
86
|
+
| cageName | String | Name of the Cage to be run |
|
87
|
+
| data | Hash | Payload for the Cage |
|
88
|
+
| options | Hash | [Options for the Cage run](#Cage-Run-Options) |
|
89
|
+
|
90
|
+
#### Cage Run Options
|
91
|
+
|
92
|
+
| Option | Type | Default | Description |
|
93
|
+
| ------ | ---- | ------- | ----------- |
|
94
|
+
| `async` | `Boolean` | `false` | Run your Cage in async mode. Async Cage runs will be queued for processing. |
|
95
|
+
| `version` | `Integer` | `nil` | Specify the version of your Cage to run. By default, the latest version will be run. |
|
88
96
|
|
89
97
|
### Evervault.encrypt_and_run
|
90
98
|
|
91
|
-
Encrypt your data and use it as the payload to invoke the
|
99
|
+
Encrypt your data and use it as the payload to invoke the Cage.
|
92
100
|
|
93
101
|
```ruby
|
94
102
|
Evervault.encrypt_and_run(cage_name = String, data = Hash)
|
@@ -96,7 +104,7 @@ Evervault.encrypt_and_run(cage_name = String, data = Hash)
|
|
96
104
|
|
97
105
|
| Parameter | Type | Description |
|
98
106
|
| --------- | ---- | ----------- |
|
99
|
-
| cageName | String | Name of the
|
107
|
+
| cageName | String | Name of the Cage to be run |
|
100
108
|
| data | dict | Data to be encrypted |
|
101
109
|
|
102
110
|
### Evervault.cages
|
@@ -129,7 +137,7 @@ Evervault.cages
|
|
129
137
|
|
130
138
|
### Evervault.cage_list
|
131
139
|
|
132
|
-
Return a `CageList` object, containing a list of your team's
|
140
|
+
Return a `CageList` object, containing a list of your team's Cages
|
133
141
|
|
134
142
|
```ruby
|
135
143
|
Evervault.cage_list
|
@@ -167,7 +175,7 @@ Evervault.cage_list
|
|
167
175
|
|
168
176
|
#### CageList.to_hash
|
169
177
|
|
170
|
-
Converts a list of
|
178
|
+
Converts a list of Cages to a hash with keys of CageName => Cage Model
|
171
179
|
|
172
180
|
```ruby
|
173
181
|
Evervault.cage_list.to_hash
|
@@ -210,9 +218,9 @@ Evervault.cage_list.to_hash
|
|
210
218
|
|
211
219
|
### Evervault::Models::Cage.run
|
212
220
|
|
213
|
-
Each Cage model exposes a `run` method, which allows you to run that particular
|
221
|
+
Each Cage model exposes a `run` method, which allows you to run that particular Cage.
|
214
222
|
|
215
|
-
*Note*: this does not encrypt data before running the
|
223
|
+
*Note*: this does not encrypt data before running the Cage
|
216
224
|
```ruby
|
217
225
|
cage = Evervault.cage_list.cages[0]
|
218
226
|
cage.run({'name': 'testing'})
|
@@ -221,7 +229,8 @@ cage.run({'name': 'testing'})
|
|
221
229
|
|
222
230
|
| Parameter | Type | Description |
|
223
231
|
| --------- | ---- | ----------- |
|
224
|
-
| data | Hash | Payload for the
|
232
|
+
| data | Hash | Payload for the Cage |
|
233
|
+
| options | Hash | [Options for the Cage run](#Cage-Run-Options) |
|
225
234
|
|
226
235
|
## Development
|
227
236
|
|
data/lib/evervault/client.rb
CHANGED
@@ -29,13 +29,13 @@ module Evervault
|
|
29
29
|
@crypto_client.encrypt(data)
|
30
30
|
end
|
31
31
|
|
32
|
-
def run(cage_name, encrypted_data)
|
33
|
-
@request.post(cage_name, encrypted_data, cage_run: true)
|
32
|
+
def run(cage_name, encrypted_data, options = {})
|
33
|
+
@request.post(cage_name, encrypted_data, options: options, cage_run: true)
|
34
34
|
end
|
35
35
|
|
36
|
-
def encrypt_and_run(cage_name, data)
|
36
|
+
def encrypt_and_run(cage_name, data, options = {})
|
37
37
|
encrypted_data = encrypt(data)
|
38
|
-
run(cage_name, encrypted_data)
|
38
|
+
run(cage_name, encrypted_data, options)
|
39
39
|
end
|
40
40
|
|
41
41
|
def cages
|
@@ -25,8 +25,8 @@ module Evervault
|
|
25
25
|
execute(:delete, build_url(path), params)
|
26
26
|
end
|
27
27
|
|
28
|
-
def post(path, params, cage_run: false)
|
29
|
-
execute(:post, build_url(path, cage_run), params)
|
28
|
+
def post(path, params, options: {}, cage_run: false)
|
29
|
+
execute(:post, build_url(path, cage_run), params, build_cage_run_headers(options, cage_run))
|
30
30
|
end
|
31
31
|
|
32
32
|
private def build_url(path, cage_run = false)
|
@@ -34,23 +34,41 @@ module Evervault
|
|
34
34
|
"#{@cage_run_url}#{path}"
|
35
35
|
end
|
36
36
|
|
37
|
-
def execute(method, url, params)
|
37
|
+
def execute(method, url, params, optional_headers = {})
|
38
38
|
resp = Faraday.send(method, url) do |req|
|
39
39
|
req.body = params.nil? || params.empty? ? nil : params.to_json
|
40
|
-
req.headers = build_headers
|
40
|
+
req.headers = build_headers(optional_headers)
|
41
41
|
end
|
42
42
|
return JSON.parse(resp.body) if resp.status >= 200 && resp.status <= 300
|
43
43
|
Evervault::Errors::ErrorMap.raise_errors_on_failure(resp.status, resp.body)
|
44
44
|
end
|
45
45
|
|
46
|
-
private def build_headers
|
47
|
-
{
|
46
|
+
private def build_headers(optional_headers)
|
47
|
+
optional_headers.merge({
|
48
48
|
"AcceptEncoding": "gzip, deflate",
|
49
49
|
"Accept": "application/json",
|
50
50
|
"Content-Type": "application/json",
|
51
51
|
"User-Agent": "evervault-ruby/#{VERSION}",
|
52
52
|
"Api-Key": @api_key
|
53
|
-
}
|
53
|
+
})
|
54
|
+
end
|
55
|
+
|
56
|
+
private def build_cage_run_headers(options, cage_run = false)
|
57
|
+
optional_headers = {}
|
58
|
+
return optional_headers unless cage_run
|
59
|
+
if options.key?(:async)
|
60
|
+
if options[:async]
|
61
|
+
optional_headers["x-async"] = "true"
|
62
|
+
end
|
63
|
+
options.delete(:async)
|
64
|
+
end
|
65
|
+
if options.key?(:version)
|
66
|
+
if options[:version].is_a? Integer
|
67
|
+
optional_headers["x-version-id"] = options[:version].to_s
|
68
|
+
end
|
69
|
+
options.delete(:version)
|
70
|
+
end
|
71
|
+
optional_headers.merge(options)
|
54
72
|
end
|
55
73
|
end
|
56
74
|
end
|
data/lib/evervault/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evervault
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonny O'Mahony
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|
@@ -65,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '0'
|
67
67
|
requirements: []
|
68
|
-
rubygems_version: 3.1.
|
68
|
+
rubygems_version: 3.1.4
|
69
69
|
signing_key:
|
70
70
|
specification_version: 4
|
71
71
|
summary: Ruby SDK to run Evervault Cages
|