revault_api 0.1.0-aarch64-linux → 0.3.12-aarch64-linux
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/LICENSE +2 -2
- data/README.md +419 -0
- metadata +11 -27
- data/generated/revault_bindings_pb.rb +0 -305
- data/lib/revault/binding_operations.rb +0 -1093
- data/lib/revault/native_library.rb +0 -40
- data/lib/revault/vault.rb +0 -906
- data/native/linux-aarch64-gnu/librevault_api.so +0 -0
- data/native/linux-aarch64-gnu/librevault_ruby_shim.so +0 -0
- data/native/revault_ruby_shim.c +0 -341
- data/revault_api.rb +0 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3efa85e4f6c3a302809824e0d2bf3917170197aaf19d3b114ce0a4d255941700
|
|
4
|
+
data.tar.gz: 4b269c717259473dfb57bfdef584956307a3bdeebcef77b161a0b584124e2945
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3c098655bb4c721e80751addd38e5be933885faf080cb1a7a03452d47962e6f00ce78587e3dfde79ffe610a6bba8b61f1ccb54f56659c601c5a867d100764fa8
|
|
7
|
+
data.tar.gz: bd955113153f2c8b64d63070bb5a1c01aeda16e7b5b5305c2fac389fdf989f574bc499bd74d49f235ad9a0d86b63b3b9065e7262cc6ac441388f75c618ffc351
|
data/LICENSE
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
Dvault Source Available License 1.0
|
|
2
2
|
|
|
3
3
|
Copyright (c) 2021 OnePub IP Pty Ltd
|
|
4
4
|
|
|
5
|
-
This license applies to the
|
|
5
|
+
This license applies to the dvault software and associated documentation files
|
|
6
6
|
(the "Software").
|
|
7
7
|
|
|
8
8
|
1. Grant of Rights
|
data/README.md
ADDED
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
# reVault / Lockbox
|
|
2
|
+
|
|
3
|
+
reVault creates portable archives that are secure and compressed.
|
|
4
|
+
|
|
5
|
+
The reVault archives are called 'Lockboxes'.
|
|
6
|
+
|
|
7
|
+
You can think of a Lockbox as a zip file on steriods.
|
|
8
|
+
|
|
9
|
+
A Lockbox can be used to store:
|
|
10
|
+
* files
|
|
11
|
+
* directories
|
|
12
|
+
* symlinks
|
|
13
|
+
* file/directory permissions
|
|
14
|
+
* variables
|
|
15
|
+
* forms (collection of variables)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
A lockbox is encrypted, compressed and signed using modern encryption and compress
|
|
19
|
+
techniques.
|
|
20
|
+
|
|
21
|
+
reVault is designed to be simple and safe to use, avoiding overly complex
|
|
22
|
+
terminology.
|
|
23
|
+
|
|
24
|
+
reVault works on Linux, Windows and MacOS.
|
|
25
|
+
|
|
26
|
+
reVault ships as a:
|
|
27
|
+
* cli
|
|
28
|
+
* apis
|
|
29
|
+
* libraries for multiple languages
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
- `revault_cli`, a CLI for everyday use.
|
|
34
|
+
- `revault_lockbox_api`, for creating lockboxes.
|
|
35
|
+
- `revault_vault_api`, for creating and managing vaults.
|
|
36
|
+
|
|
37
|
+
Terminology is explicit:
|
|
38
|
+
|
|
39
|
+
- A **lockbox** is a portable archive and uses the `.lbox` extension.
|
|
40
|
+
- A **key** is used to lock and unlock lockboxes. Keys are more secure than passwords.
|
|
41
|
+
- A **vault** is where we store information about lockboxes such as the keys
|
|
42
|
+
used to open and close a lockbox. The vault also holds a contact list which helps us share
|
|
43
|
+
lockboxes with other people.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
> **Pre-release:** the Rust implementation is currently alpha software. The
|
|
47
|
+
> archive format and public APIs may change between releases. Do not use it as
|
|
48
|
+
> the only copy of important data, and keep vault backups and profile recovery
|
|
49
|
+
> material offline.
|
|
50
|
+
|
|
51
|
+
## Installation
|
|
52
|
+
|
|
53
|
+
The best way to start with reVault is to install the CLI tooling.
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
### crates.io
|
|
57
|
+
The easist way to install the reVault CLI is from crates.io
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
cargo install revault_cli
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
### repo
|
|
65
|
+
|
|
66
|
+
You can also install the CLI by cloning the github repo.
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
git clone https://github.com/onepub-dev/reVault.git
|
|
70
|
+
cd reVault/rust
|
|
71
|
+
cargo xtask install-cli
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
# Initialise your vault
|
|
75
|
+
|
|
76
|
+
In order to create a lockbox you must first initialise your Vault.
|
|
77
|
+
|
|
78
|
+
When you install the reVault CLI, Cargo installs both `lockbox` app and its alias `lbx` into `~/.cargo/bin`.
|
|
79
|
+
Ensure that directory is on your `PATH`.
|
|
80
|
+
|
|
81
|
+
To initialise your vault run:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
lbx vault init
|
|
85
|
+
```
|
|
86
|
+
The init command will create the keys need to create/open and close lockboxes.
|
|
87
|
+
The keys are stored in your reVault vault.
|
|
88
|
+
|
|
89
|
+
The init command will also dump those keys to the terminal. You need to backup those
|
|
90
|
+
keys safely.
|
|
91
|
+
* If you loose the keys you will not be able to access any lockbox - there is no way to recover from this!!!
|
|
92
|
+
* If some else gets access to those keys then they have access to all of your lockboxes.
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
## CLI Quick Start
|
|
96
|
+
|
|
97
|
+
Create a lockbox for the default vault profile: (recommended)
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
lockbox secrets.lbox create
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
For a lockbox protected by a passphrase instead of a vault profile:
|
|
104
|
+
|
|
105
|
+
This form is less secure than using a profile.
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
lockbox secrets.lbox create --password
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Open it for normal commands:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
lockbox secrets.lbox open
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Persistent directory mirrors
|
|
118
|
+
|
|
119
|
+
A mirror project records a one-way relationship between a host directory and
|
|
120
|
+
an exclusively managed directory inside the lockbox. The project definition,
|
|
121
|
+
including its include and exclude rules, is encrypted inside the lockbox and
|
|
122
|
+
travels with it.
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
lbx secrets.lbox mirror source create --from ./src --to /projects/source
|
|
126
|
+
lbx secrets.lbox mirror source rule add exclude target/** '*.tmp'
|
|
127
|
+
lbx secrets.lbox mirror source status
|
|
128
|
+
lbx secrets.lbox mirror source update
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
`status` previews the complete plan; `update` recalculates and applies it.
|
|
132
|
+
Multiple projects can coexist when their destination directories do not
|
|
133
|
+
overlap. See the [CLI guide](docs/cli_how_to.md#mirror-a-host-directory-safely)
|
|
134
|
+
for ownership, deletion, rule, and safety details.
|
|
135
|
+
|
|
136
|
+
The open is cached in a per-user in-memory agent which will automatically close
|
|
137
|
+
it after about 30mins. Lock it when you are done:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
lockbox secrets.lbox close
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Add files:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
lockbox secrets.lbox add --recursive ./project --to project/
|
|
147
|
+
lockbox secrets.lbox add ./generated.env --to secrets/prod.env
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
List and extract:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
lockbox secrets.lbox list /
|
|
154
|
+
lockbox secrets.lbox list '/project/**/*.rs'
|
|
155
|
+
lockbox secrets.lbox extract /project/README.md ./out/README.md
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
See [docs/cli_how_to.md](docs/cli_how_to.md) for command-focused examples.
|
|
159
|
+
|
|
160
|
+
## Profiles And Sharing
|
|
161
|
+
|
|
162
|
+
Create another local profile:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
lockbox vault profile create laptop
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Create an independent encrypted vault with a fresh profile and register that
|
|
169
|
+
profile's public key as a contact in the current vault:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
lbx vault beget production
|
|
173
|
+
# Creates production.vault.lbx with profile:production.
|
|
174
|
+
# Saves only the public key locally as contact:production.
|
|
175
|
+
|
|
176
|
+
lbx access grant shared.lbox contact:production
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Use `--output` to choose the new vault path, `--contact-name` to avoid a local
|
|
180
|
+
contact-name collision, or `--no-contact` to leave the current vault unchanged.
|
|
181
|
+
`beget` never grants lockbox access automatically and never copies private
|
|
182
|
+
material from the current vault.
|
|
183
|
+
|
|
184
|
+
List profiles and export a public key:
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
lockbox vault profile list
|
|
188
|
+
lockbox vault profile export ./laptop.pub --name laptop
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Import a contact public key after independently verifying its fingerprint:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
lockbox vault contact import alice ./alice.pub \
|
|
195
|
+
--fingerprint <fingerprint> \
|
|
196
|
+
--fingerprint-channel phone-call-to-owner
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Create a lockbox for a recipient:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
lockbox shared.lbox create --for alice
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Grant or revoke access on an existing lockbox:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
lockbox shared.lbox access grant alice
|
|
209
|
+
lockbox shared.lbox access list
|
|
210
|
+
lockbox shared.lbox access revoke alice
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Exporting a private key is supported for backup and migration, but treat the
|
|
214
|
+
output as a secret:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
lockbox vault profile backup ./default.profile-backup
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Private vault keys are stored inside the local vault as secret variable records,
|
|
221
|
+
not as normal files in the vault lockbox. See the CLI help and
|
|
222
|
+
[CLI how-to](docs/cli_how_to.md) for vault backup and profile recovery.
|
|
223
|
+
|
|
224
|
+
## Variables
|
|
225
|
+
|
|
226
|
+
Variables are encrypted metadata, not files. They do not appear in file
|
|
227
|
+
listings and are loaded only when variable commands or APIs request them. The
|
|
228
|
+
canonical command is `variable`; `variables` and `var` remain compatibility
|
|
229
|
+
aliases.
|
|
230
|
+
|
|
231
|
+
Plain variables are for values that are useful configuration but not high-value
|
|
232
|
+
secrets:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
lockbox secrets.lbox variable set DATABASE_URL --value 'postgres://localhost/app'
|
|
236
|
+
lockbox secrets.lbox variable set DATABASE_URL='postgres://localhost/app'
|
|
237
|
+
lockbox secrets.lbox variable get DATABASE_URL
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
With a session-default lockbox, assignment syntax is also supported:
|
|
241
|
+
|
|
242
|
+
```bash
|
|
243
|
+
lockbox variable set DATABASE_URL='postgres://localhost/app'
|
|
244
|
+
lockbox variable set DATABASE_URL 'postgres://localhost/app'
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Secret variables are for passwords, API tokens, signing keys, and similar
|
|
248
|
+
material. They use secure-memory handling in the variable path and must be provided
|
|
249
|
+
through an explicit source:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
lockbox secrets.lbox variable set --secret API_TOKEN --interactive
|
|
253
|
+
lockbox secrets.lbox variable set --secret API_TOKEN --file ./api-token.txt
|
|
254
|
+
lockbox secrets.lbox variable set --secret API_TOKEN --stdin
|
|
255
|
+
lockbox secrets.lbox variable set --secret API_TOKEN --from-env API_TOKEN
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Avoid passing secrets as command-line arguments. Shell history and process
|
|
259
|
+
inspection can expose argv. Prefer `--interactive`, `--stdin`, `--file`, or
|
|
260
|
+
`--from-env`.
|
|
261
|
+
|
|
262
|
+
Sensitivity is chosen when a variable is created. Updating the value preserves
|
|
263
|
+
that sensitivity. To change plain to secret, or secret to plain, delete and
|
|
264
|
+
recreate the variable.
|
|
265
|
+
|
|
266
|
+
## Avoiding Leaks
|
|
267
|
+
|
|
268
|
+
Use these defaults unless you have a specific reason not to:
|
|
269
|
+
|
|
270
|
+
- Use `lockbox open` and the local agent instead of repeatedly passing
|
|
271
|
+
passwords or private keys.
|
|
272
|
+
- Use secret variables for credentials and tokens.
|
|
273
|
+
- Do not store secrets as normal files when variable semantics are appropriate.
|
|
274
|
+
- Do not pass secret values on the command line.
|
|
275
|
+
- Keep private key exports offline, short-lived, and permission-restricted.
|
|
276
|
+
- Prefer recipient keys over shared passwords for team access.
|
|
277
|
+
- Run `lockbox secrets.lbox close` when an open should no longer be cached.
|
|
278
|
+
- Use `lockbox secrets.lbox visualize` for diagnostics; it intentionally avoids
|
|
279
|
+
printing file paths, file contents, variable names, or variable values.
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
Lockbox protects data inside the container. It cannot protect a secret after you
|
|
283
|
+
write it to a normal terminal, shell history, clipboard, exported file, build
|
|
284
|
+
log, or process environment controlled by other tooling.
|
|
285
|
+
|
|
286
|
+
## Key Server, Topology, and Replication
|
|
287
|
+
|
|
288
|
+
`revault_key_server` is a short-lived rendezvous service for sharing candidate
|
|
289
|
+
contact public keys. A publisher uploads a payload, verifies their email, and
|
|
290
|
+
shares the resulting publish code with the recipient. The recipient uses that
|
|
291
|
+
code to receive the candidate key, then verifies its fingerprint independently
|
|
292
|
+
before trusting it. The server does not establish profile trust and is not a
|
|
293
|
+
store for private keys.
|
|
294
|
+
|
|
295
|
+
### Single server
|
|
296
|
+
|
|
297
|
+
A first deployment uses one server with `server_id = 0`. Publish codes include
|
|
298
|
+
that server id as their first digit, followed by a random code body. Using a
|
|
299
|
+
self-routing code from the start keeps pending publishes compatible if the
|
|
300
|
+
deployment later gains standby servers.
|
|
301
|
+
|
|
302
|
+
### Topology servers
|
|
303
|
+
|
|
304
|
+
Servers publish a topology document containing the known server URLs and the
|
|
305
|
+
primary/failover route for each publish-code owner id. Clients use it as follows:
|
|
306
|
+
|
|
307
|
+
- For a publish, discover the cluster through a topology endpoint, select a
|
|
308
|
+
key-server member, and keep that choice sticky locally.
|
|
309
|
+
- For receive and delete, read the publish code's first digit, contact that
|
|
310
|
+
owner id's primary server, then use only its configured failovers.
|
|
311
|
+
- Do not fail over after a rate-limit response; hopping servers must not bypass
|
|
312
|
+
abuse controls.
|
|
313
|
+
|
|
314
|
+
DNS can provide normal host resolution, but it is not the routing mechanism.
|
|
315
|
+
Round-robin DNS alone can send a receive request to a server that does not own
|
|
316
|
+
the corresponding publish code.
|
|
317
|
+
|
|
318
|
+
### Replication and failover
|
|
319
|
+
|
|
320
|
+
Each server is authoritative for the codes carrying its own server id. It sends
|
|
321
|
+
signed state events—published payloads, receive counts, payload lifecycle
|
|
322
|
+
tombstones, and rate-limit blocks—to configured standby peers through the separate
|
|
323
|
+
`/v1/replicate` endpoint. Events carry an origin server id, epoch, and sequence
|
|
324
|
+
number, so standbys apply duplicates idempotently and never replicate received
|
|
325
|
+
peer events again.
|
|
326
|
+
|
|
327
|
+
Replication does not make the cluster hot/hot. A standby keeps replica state
|
|
328
|
+
but serves an owner's payloads only after an operator explicitly promotes it for
|
|
329
|
+
that owner id. This avoids two servers consuming a single-use publish at the
|
|
330
|
+
same time during a network partition. See the [key-server deployment guide](https://github.com/onepub-dev/reVault/blob/master/rust/revault_key_server/README.md), [configuration reference](https://github.com/onepub-dev/reVault/blob/master/rust/revault_key_server/KEY_SERVER_CONFIG.md), and [redundancy design](https://github.com/onepub-dev/reVault/blob/master/rust/revault_key_server/REDUNDANCY.md) for the deployment and recovery procedures.
|
|
331
|
+
|
|
332
|
+
## Rust Library
|
|
333
|
+
|
|
334
|
+
Use `revault_lockbox_api` when you need the portable storage engine:
|
|
335
|
+
|
|
336
|
+
```rust
|
|
337
|
+
use revault_lockbox_api::{Lockbox, LockboxOpen, LockboxPath, LockboxProtection, SecretVec};
|
|
338
|
+
use std::path::Path;
|
|
339
|
+
|
|
340
|
+
let key = SecretVec::try_from_slice(b"correct horse battery staple")?;
|
|
341
|
+
let signing_key = revault_lockbox_api::OwnerSigningKeyPair::generate()?;
|
|
342
|
+
let mut lockbox = Lockbox::create_file(
|
|
343
|
+
Path::new("secrets.lbox"),
|
|
344
|
+
LockboxProtection::ContentKey(key.try_clone()?),
|
|
345
|
+
&signing_key,
|
|
346
|
+
)?;
|
|
347
|
+
|
|
348
|
+
lockbox.add_file(&LockboxPath::new("/docs/a.txt")?, b"alpha", false)?;
|
|
349
|
+
lockbox.add_file(&LockboxPath::new("/docs/b.txt")?, b"bravo", false)?;
|
|
350
|
+
lockbox.commit()?;
|
|
351
|
+
|
|
352
|
+
let reopened = Lockbox::open(
|
|
353
|
+
Path::new("secrets.lbox"),
|
|
354
|
+
LockboxOpen::ContentKey(&key),
|
|
355
|
+
)?;
|
|
356
|
+
let file = reopened.get_file(&LockboxPath::new("/docs/a.txt")?)?;
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
Use `revault_vault_api` for native applications that want the local vault and
|
|
360
|
+
open-cache behavior:
|
|
361
|
+
|
|
362
|
+
```rust
|
|
363
|
+
use revault_vault_api::{local_vault, SecretString};
|
|
364
|
+
|
|
365
|
+
let vault = local_vault();
|
|
366
|
+
let password = SecretString::try_from_bytes(b"pw".to_vec())?;
|
|
367
|
+
|
|
368
|
+
vault.create_lockbox_with_password("secrets.lbox", &password)?;
|
|
369
|
+
|
|
370
|
+
let lockbox = vault.open_lockbox_with_password("secrets.lbox", &password)?;
|
|
371
|
+
let mut lockbox = lockbox;
|
|
372
|
+
lockbox.add_file_from_path("notes.txt", &revault_lockbox_api::LockboxPath::new("/notes.txt")?)?;
|
|
373
|
+
lockbox.commit()?;
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
## Documentation
|
|
377
|
+
|
|
378
|
+
- [reVault manual](https://docs.revault.onepub.dev/): installation, concepts,
|
|
379
|
+
CLI workflows, language APIs, and operational guidance.
|
|
380
|
+
- [CLI how-to](docs/cli_how_to.md): command examples.
|
|
381
|
+
- [CI/CD with reVault](docs/ci_cd.md): proposed bootstrap and ephemeral CI
|
|
382
|
+
workflow for encrypted deployment secrets.
|
|
383
|
+
- [Lockbox Session Agent](docs/lockbox_session_agent.md): local open cache
|
|
384
|
+
lifecycle, protocol, and security model.
|
|
385
|
+
- [Archive format](rust/revault_lockbox_api/ARCHIVE_FORMAT.md): lockbox archive details and page
|
|
386
|
+
layout.
|
|
387
|
+
- [Rust development](docs/rust_development.md): build, test, and API docs.
|
|
388
|
+
- [Dependency review](rust/docs/dependency_review.md): dependency and security
|
|
389
|
+
review notes.
|
|
390
|
+
|
|
391
|
+
## Development
|
|
392
|
+
|
|
393
|
+
Run the Rust checks:
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
cd rust
|
|
397
|
+
cargo fmt --all
|
|
398
|
+
cargo check --workspace --all-targets --all-features
|
|
399
|
+
cargo test --workspace
|
|
400
|
+
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
Generate Rust API docs:
|
|
404
|
+
|
|
405
|
+
```bash
|
|
406
|
+
cd rust
|
|
407
|
+
cargo xtask generate-api-docs
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
## License
|
|
411
|
+
|
|
412
|
+
Dvault Source Available License 1.0 - see [LICENSE](LICENSE).
|
|
413
|
+
|
|
414
|
+
The source remains available for inspection, modification, and redistribution.
|
|
415
|
+
Derivative works must publish their corresponding source code in a publicly
|
|
416
|
+
accessible repository such as GitHub or a similar service. The license also
|
|
417
|
+
restricts third parties from offering dvault, modified dvault, or substantially
|
|
418
|
+
similar dvault-derived functionality as a hosted, managed, or
|
|
419
|
+
network-accessible service without a separate written license.
|
metadata
CHANGED
|
@@ -1,48 +1,32 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: revault_api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.12
|
|
5
5
|
platform: aarch64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- OnePub
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
12
|
-
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: google-protobuf
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '3.25'
|
|
20
|
-
type: :runtime
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '3.25'
|
|
11
|
+
date: 2026-08-26 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
27
13
|
description: Complete class-based reVault lockbox and vault API
|
|
28
14
|
email:
|
|
15
|
+
- bsutton@onepub.dev
|
|
29
16
|
executables: []
|
|
30
17
|
extensions: []
|
|
31
18
|
extra_rdoc_files: []
|
|
32
19
|
files:
|
|
33
20
|
- LICENSE
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
- lib/revault/native_library.rb
|
|
37
|
-
- lib/revault/vault.rb
|
|
38
|
-
- native/linux-aarch64-gnu/librevault_api.so
|
|
39
|
-
- native/linux-aarch64-gnu/librevault_ruby_shim.so
|
|
40
|
-
- native/revault_ruby_shim.c
|
|
41
|
-
- revault_api.rb
|
|
42
|
-
homepage: https://github.com/onepub-dev/reVault
|
|
21
|
+
- README.md
|
|
22
|
+
homepage: https://docs.revault.onepub.dev/
|
|
43
23
|
licenses:
|
|
44
24
|
- Nonstandard
|
|
45
|
-
metadata:
|
|
25
|
+
metadata:
|
|
26
|
+
bug_tracker_uri: https://github.com/onepub-dev/reVault/issues
|
|
27
|
+
changelog_uri: https://github.com/onepub-dev/reVault/blob/main/bindings/CHANGELOG.md
|
|
28
|
+
documentation_uri: https://docs.revault.onepub.dev/
|
|
29
|
+
source_code_uri: https://github.com/onepub-dev/reVault/tree/main/bindings/ruby
|
|
46
30
|
post_install_message:
|
|
47
31
|
rdoc_options: []
|
|
48
32
|
require_paths:
|