evervault 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|