sefy-cli 0.3.1 → 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.
- package/README.md +40 -13
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -106,9 +106,19 @@ error: 2 items match "ma":
|
|
|
106
106
|
narrow the text, or use an id
|
|
107
107
|
```
|
|
108
108
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
Several machines? `sefy sync` carries the vault through a transport and folds
|
|
110
|
+
what comes back into this one:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
$ sefy sync
|
|
114
|
+
Master password:
|
|
115
|
+
synced "vault" through github
|
|
116
|
+
merged: 2 added, 0 updated, 14 unchanged
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Or fold in a copy you carried across by hand. Either way, where the two disagree
|
|
120
|
+
about the same item, sefy keeps both versions rather than letting a timestamp
|
|
121
|
+
decide which password you get to keep:
|
|
112
122
|
|
|
113
123
|
```
|
|
114
124
|
$ sefy merge ~/from-laptop.bak
|
|
@@ -141,17 +151,29 @@ named `sefy-plugin-*`, found in sefy's data directory or on `PATH`. sefy knows
|
|
|
141
151
|
nothing about git, FTP or any cloud drive - it asks a plugin what it can do and
|
|
142
152
|
what happened.
|
|
143
153
|
|
|
154
|
+
Two transports ship alongside the CLI, and neither stores a credential of its
|
|
155
|
+
own - each authenticates the way the machine already does:
|
|
156
|
+
|
|
157
|
+
- **github** keeps the vault in a git repository. Point `SEFY_GITHUB_REPO` at
|
|
158
|
+
one; version history comes free with it.
|
|
159
|
+
- **sftp** keeps it on a server you control, over OpenSSH. Point
|
|
160
|
+
`SEFY_SFTP_DESTINATION` at `you@server:/path`; nothing lands there but the
|
|
161
|
+
blob.
|
|
162
|
+
|
|
144
163
|
```
|
|
145
164
|
$ sefy plugin list
|
|
146
|
-
ftp 0.2.1 push
|
|
147
165
|
future 9.0.0 unusable: it speaks protocol 99 and this build speaks 1
|
|
148
|
-
github 0.
|
|
166
|
+
github 0.5.0 pull, push
|
|
167
|
+
sftp 0.5.0 pull, push
|
|
149
168
|
```
|
|
150
169
|
|
|
170
|
+
With more than one installed, sefy asks which rather than choosing where your
|
|
171
|
+
vault goes: `sefy sync --transport sftp`, or `SEFY_TRANSPORT=sftp` once.
|
|
172
|
+
|
|
151
173
|
A transport is handed the **path of the sealed file** and nothing else - no
|
|
152
174
|
master password, no key, no item. What it carries is what anyone would find on
|
|
153
|
-
your disk: a blob it cannot read. That is also why a plugin cannot merge
|
|
154
|
-
|
|
175
|
+
your disk: a blob it cannot read. That is also why a plugin cannot merge: it
|
|
176
|
+
moves the other copy to a file, and sefy folds the two together itself, where
|
|
155
177
|
both sides can actually be read.
|
|
156
178
|
|
|
157
179
|
Broken plugins are listed with the reason rather than skipped: an omitted line
|
|
@@ -194,7 +216,8 @@ curl -fsSL https://raw.githubusercontent.com/lacodda/sefy/main/tools/install.sh
|
|
|
194
216
|
|
|
195
217
|
On Windows use the PowerShell line above: `install.sh` carries the macOS and Linux builds only, and run from Git Bash it stops with a pointer back here.
|
|
196
218
|
|
|
197
|
-
**cargo** - `cargo install sefy`
|
|
219
|
+
**cargo** - `cargo install sefy`, plus `cargo install sefy-plugin-github` or
|
|
220
|
+
`sefy-plugin-sftp` for a transport
|
|
198
221
|
|
|
199
222
|
**npm** - `npm install -g sefy-cli`
|
|
200
223
|
|
|
@@ -203,7 +226,9 @@ On Windows use the PowerShell line above: `install.sh` carries the macOS and Lin
|
|
|
203
226
|
`PATH`.
|
|
204
227
|
|
|
205
228
|
Both installers take the newest release by default; set `SEFY_VERSION` to a tag
|
|
206
|
-
to pin one, and `SEFY_INSTALL_DIR` to choose where the binary lands.
|
|
229
|
+
to pin one, and `SEFY_INSTALL_DIR` to choose where the binary lands. They also
|
|
230
|
+
place any transport the archive carries into sefy's plugins directory, so
|
|
231
|
+
`sefy plugin list` finds it without a second step.
|
|
207
232
|
|
|
208
233
|
Shell completions: `sefy completions bash` (also `zsh`, `fish`, `powershell`,
|
|
209
234
|
`elvish`).
|
|
@@ -220,10 +245,12 @@ The database inside the ciphertext is versioned separately, and it does move:
|
|
|
220
245
|
from 0.1.x opens, is migrated on the way in, and is still readable by 0.1.x
|
|
221
246
|
afterwards - the file on disk did not change shape.
|
|
222
247
|
|
|
223
|
-
The **plugin protocol is at version 1** as of 0.3.0.
|
|
224
|
-
added
|
|
225
|
-
|
|
226
|
-
|
|
248
|
+
The **plugin protocol is at version 1** as of 0.3.0. 0.4.0 put it to work and
|
|
249
|
+
0.5.0 added a second transport of a different shape without changing a field of
|
|
250
|
+
it, which is the evidence that it was not built around the first one. Optional
|
|
251
|
+
fields may be added to the manifest without breaking a plugin that predates
|
|
252
|
+
them; changing what an existing field means would arrive as version 2, with both
|
|
253
|
+
accepted for a time.
|
|
227
254
|
|
|
228
255
|
Released versions and what landed in each: [CHANGELOG on the Releases page](https://github.com/lacodda/sefy/releases).
|
|
229
256
|
|