@veilio-inc/cli 0.3.1 → 0.3.2
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 +37 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@ behavior; it only unlocks the four commands below that name Cloud explicitly.
|
|
|
28
28
|
| Command | Purpose |
|
|
29
29
|
| -------------------- | --------------------------------------------------------------------- |
|
|
30
30
|
| `scrub [files...]` | Mask identifiers, redact credentials. Reads stdin when given no file. |
|
|
31
|
-
| `restore [files...]` | Swap placeholders back, strip AI-generated noise.
|
|
31
|
+
| `restore [files...]` | Swap placeholders back, strip AI-generated noise. Signed in, also a teammate's placeholders — see below. |
|
|
32
32
|
| `scan [files...]` | Detect credentials only. Never rewrites. Exits 1 on findings. |
|
|
33
33
|
| `map` | Show the symbol map (`--clear` to wipe it). |
|
|
34
34
|
|
|
@@ -39,7 +39,7 @@ veilio login # email, password, and the authentication code i
|
|
|
39
39
|
veilio whoami # who you're signed in as, no request made
|
|
40
40
|
veilio maps list # ids, scope and symbol counts for everything in Cloud
|
|
41
41
|
veilio maps pull <id> # decrypt locally, write second — never a partial write
|
|
42
|
-
veilio maps push
|
|
42
|
+
veilio maps push [name] # upload the local map under a new Cloud name
|
|
43
43
|
veilio team unlock # open the team key with your vault passphrase (kept 7 days)
|
|
44
44
|
veilio team lock # remove the unlocked team key from this machine
|
|
45
45
|
veilio rules pull # fetch your custom rules; scrub then applies them offline
|
|
@@ -62,6 +62,29 @@ Custom rules (whitelist and replace, set in the web app) are applied by
|
|
|
62
62
|
offline - and says on every run how many rules it applied and how old the copy
|
|
63
63
|
is. Pull again after the rules change; `logout` removes the copy.
|
|
64
64
|
|
|
65
|
+
Three files, all `0600`, all under `~/.veilio/`: `credential.json` (the session,
|
|
66
|
+
removed by `logout`), `rules.json` (the rules copy) and `team-keys.json` (the
|
|
67
|
+
keys `team unlock` opened, kept seven days).
|
|
68
|
+
|
|
69
|
+
### Restoring a teammate's placeholders
|
|
70
|
+
|
|
71
|
+
`veilio restore` resolves a placeholder this project's map cannot explain
|
|
72
|
+
against the team's maps, so a reply pasted from a teammate's agent comes back
|
|
73
|
+
with the real names:
|
|
74
|
+
|
|
75
|
+
- **A disputed placeholder is left, not guessed.** Where this project's store
|
|
76
|
+
and the team use the same placeholder for *different* identifiers, neither
|
|
77
|
+
wins and the placeholder stays in the output with a line naming it. Same for
|
|
78
|
+
one this project numbered on its own while the team was out of reach — a
|
|
79
|
+
wrong name restored silently is worse than a placeholder left visibly.
|
|
80
|
+
- **Locked, and it says so.** With no team key on this machine it tells you to
|
|
81
|
+
run `veilio team unlock` rather than restoring half the text.
|
|
82
|
+
- **Signed out, it makes no request at all** — that restore is as offline as it
|
|
83
|
+
has always been. Signed in, it waits at most **5 seconds** for Cloud, so a
|
|
84
|
+
hung instance cannot stall `… | veilio restore > file`.
|
|
85
|
+
- **The counts are this project's.** "Restored 8 of 9" is measured against your
|
|
86
|
+
own map, not against a team namespace of four hundred entries.
|
|
87
|
+
|
|
65
88
|
The map commands are clients of `GET /api/maps`, `GET /api/maps/:id` and
|
|
66
89
|
`POST /api/maps` — the exact same routes the browser uses, behind the exact
|
|
67
90
|
same entitlement check. There is no CLI-shaped API and nothing here can reach
|
|
@@ -77,9 +100,20 @@ a plan feature the web app couldn't.
|
|
|
77
100
|
-m, --map <path> Use a specific map file
|
|
78
101
|
--json Machine-readable output (scan, map)
|
|
79
102
|
--strict scan: also fail on advisory findings
|
|
80
|
-
-
|
|
103
|
+
--keep-docs restore: keep JSDoc blocks the model wrote
|
|
104
|
+
-f, --force Allow a map write that would drop existing entries
|
|
105
|
+
-q, --quiet Suppress the all-clear summary (findings always show)
|
|
106
|
+
--instance <url> login: the Veilio instance to sign in to. Defaults to
|
|
107
|
+
the public Cloud; https required (localhost excepted)
|
|
108
|
+
-h, --help Show this help
|
|
109
|
+
-v, --version Show the version
|
|
81
110
|
```
|
|
82
111
|
|
|
112
|
+
`--keep-docs` is worth knowing about: the default strip removes JSDoc along with
|
|
113
|
+
the narration and TODOs, which is wrong when the model was *asked* to document
|
|
114
|
+
its output. `--quiet` suppresses the all-clear only — a finding still prints,
|
|
115
|
+
because the text on stdout is what you are about to paste somewhere.
|
|
116
|
+
|
|
83
117
|
## Piping
|
|
84
118
|
|
|
85
119
|
Transformed code goes to **stdout**; summaries, warnings and errors go to **stderr**. That split is what makes the CLI composable — the summary stays visible without corrupting the pipe.
|
package/package.json
CHANGED