@vectros-ai/cli 0.6.8 → 0.9.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/CHANGELOG.md +85 -0
- package/README.md +7 -0
- package/dist/cli.js +1339 -95
- package/dist/cli.js.map +1 -1
- package/dist/cli.mjs +1339 -95
- package/dist/cli.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,91 @@
|
|
|
3
3
|
All notable changes to `@vectros-ai/cli` are documented here.
|
|
4
4
|
This project adheres to [Semantic Versioning](https://semver.org).
|
|
5
5
|
|
|
6
|
+
## 0.9.0
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
|
|
10
|
+
- **Ownership scopes across the provisioning verbs.** `role create` gains
|
|
11
|
+
`--data-scope <json>` to confine a role's clause to owned data (e.g.
|
|
12
|
+
`'{"userId":["${{ self.userId }}"]}'` for per-request "records I own", or
|
|
13
|
+
`'{"scope:org":["<orgId>", null]}'` for one org's data plus scope-less records).
|
|
14
|
+
`access grant` and `vectros join` gain `--org <orgId>` (and `access grant` the
|
|
15
|
+
general `--identity-overrides <json>`), placing the principal under an
|
|
16
|
+
organization for the context so its key can write org/team-scoped data — a
|
|
17
|
+
credential can only stamp ownership its identity carries.
|
|
18
|
+
- **`vectros access explain`** — renders what a principal's binding actually
|
|
19
|
+
grants: the clause list plus a concrete access matrix (your private records, a
|
|
20
|
+
teammate's shared records, another team's, scope-less content, …) evaluated
|
|
21
|
+
under the documented matching rules — per-dimension match, AND across a
|
|
22
|
+
clause's keys, UNION across clauses, and the `null` opt-in for scope-less
|
|
23
|
+
items. Answers "who can see what?" before any data exists, and catches the
|
|
24
|
+
classic one-clause mis-authoring that silently denies teammates' shared
|
|
25
|
+
records.
|
|
26
|
+
- **`vectros join` + the multi-principal keyring** — `vectros join <context>
|
|
27
|
+
(--role <r> | --actions <csv>) [--as me|usr_<id>] [--alias <name>]` enrolls a
|
|
28
|
+
principal in a context in one step: it grants the role, issues a scoped key,
|
|
29
|
+
and stores that key as a named keyring entry, then makes it the active
|
|
30
|
+
identity. Several identities can now live side by side. `vectros switch
|
|
31
|
+
<alias>` (or `vectros keyring use <alias>`) flips the active one; `vectros
|
|
32
|
+
keyring list` shows them all with the active one marked; `vectros keyring show
|
|
33
|
+
[--format env|raw]` reveals the active key (e.g. `--format env` prints
|
|
34
|
+
`VECTROS_API_KEY=…` to export into the MCP server); `vectros keyring remove
|
|
35
|
+
<alias>` drops one. Re-joining an alias whose key is still held is idempotent
|
|
36
|
+
(it re-activates without churning the key); it only rotates when the local
|
|
37
|
+
secret is missing.
|
|
38
|
+
- **Keys are encrypted at rest** — keyring secrets are stored AES-256-GCM
|
|
39
|
+
encrypted under a machine-derived key, rather than in plaintext. (An OS-native
|
|
40
|
+
secret store is a planned follow-up for login/hardware-gated protection.)
|
|
41
|
+
- **Bundled blueprints updated to `0.7.0`** — `agentic-sdlc` gains governed agent
|
|
42
|
+
memory (enroll with `vectros join agentic-sdlc --role member`), and the blueprint
|
|
43
|
+
format gains `accessProfile.identityOverrides` + per-seed `scopes`, which
|
|
44
|
+
`bootstrap`/`blueprint-test` apply. **Full detail in the `@vectros-ai/blueprints`
|
|
45
|
+
changelog** — this entry is an overview; the schema, role, and format specifics
|
|
46
|
+
live there.
|
|
47
|
+
|
|
48
|
+
## 0.8.1 — 2026-07-10
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- **Dependency maintenance** — repinned the bundled `@vectros-ai/sdk` to `0.34.0`
|
|
53
|
+
(additive `scopes` read-back on record/document/folder responses, plus webhooks).
|
|
54
|
+
The CLI bundles the SDK into its published binary, so this is a rebuild against the
|
|
55
|
+
current SDK; no CLI behavior changes.
|
|
56
|
+
|
|
57
|
+
## 0.8.0
|
|
58
|
+
|
|
59
|
+
### Added
|
|
60
|
+
|
|
61
|
+
- **Blueprint identity resolution** — a blueprint can now declare a top-level
|
|
62
|
+
`identities:` block (tenant-wide principals: `user`, `org`, or `client`) and reference
|
|
63
|
+
them with `${{ identities.<name> }}` tokens in ownership and data-scope positions
|
|
64
|
+
(schema `userId`/`orgId`/`clientId`, access-profile and role `dataScope`). At apply
|
|
65
|
+
time (`vectros bootstrap` / `vectros blueprint-test`) each declared identity is ensured
|
|
66
|
+
(idempotent by `externalId`) and every token is substituted with the principal's
|
|
67
|
+
resolved id — so a blueprint can provision data owned by, or a credential scoped to,
|
|
68
|
+
specific principals. `vectros blueprint validate` / `plan` accept an identity-using
|
|
69
|
+
blueprint offline (linting that every reference is declared) and defer resolution to
|
|
70
|
+
apply time; the plan preview discloses the identities that will be ensured. Declared
|
|
71
|
+
identities are tenant-global and are never removed by `blueprint-test` teardown.
|
|
72
|
+
|
|
73
|
+
## 0.7.0 — 2026-07-08
|
|
74
|
+
|
|
75
|
+
### Added
|
|
76
|
+
|
|
77
|
+
- **`--tenant test|live` on `context create`, `context list`, and `context get`** —
|
|
78
|
+
pick the tenant a context is created in / read from (default `live`), mirroring the
|
|
79
|
+
flag `context destroy` and `blueprint-test` already carried. Previously these verbs
|
|
80
|
+
always targeted the live tenant, so a context on the test tenant could neither be
|
|
81
|
+
created, read, nor listed from the CLI.
|
|
82
|
+
- **`vectros context destroy <contextId>`** — permanently destroy an app context and
|
|
83
|
+
everything in it (records, documents, folders, schemas, roles, access profiles; the
|
|
84
|
+
context's scoped keys are revoked up front). The teardown is irreversible and runs
|
|
85
|
+
asynchronously on the server (the context reports `purging` until the drain
|
|
86
|
+
completes). Two safety rails: interactively you must re-type the context id to
|
|
87
|
+
confirm; `--force` skips the prompt and is required when stdin is not a terminal.
|
|
88
|
+
`--tenant test|live` picks the tenant the context lives in (default `live`).
|
|
89
|
+
Authenticates as the account owner — no root API key required.
|
|
90
|
+
|
|
6
91
|
## 0.6.8 — 2026-07-05
|
|
7
92
|
|
|
8
93
|
### Changed
|
package/README.md
CHANGED
|
@@ -130,6 +130,13 @@ after the window resets, or split a large blueprint. See the
|
|
|
130
130
|
- [`@vectros-ai/mcp-server`](https://www.npmjs.com/package/@vectros-ai/mcp-server) — the runtime this CLI provisions for.
|
|
131
131
|
- [`@vectros-ai/blueprints`](https://www.npmjs.com/package/@vectros-ai/blueprints) — the curated use-case library the CLI applies.
|
|
132
132
|
|
|
133
|
+
## Security & trust
|
|
134
|
+
|
|
135
|
+
Vectros enforces per-customer, fail-closed isolation and least-privilege scoped keys, with a
|
|
136
|
+
tamper-evident audit and version history. Customer-facing surfaces are hardened through extensive
|
|
137
|
+
adversarial security review. For the full trust posture, drawn plainly with its boundaries, see the
|
|
138
|
+
[compliance and trust guide](https://docs.vectros.ai/guides/operations-trust/compliance).
|
|
139
|
+
|
|
133
140
|
## License
|
|
134
141
|
|
|
135
142
|
Apache-2.0. See the LICENSE file.
|