lattice-mcp 1.2.0 → 1.3.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/AGENTS.md +22 -0
- package/index.js +1 -1
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -227,6 +227,28 @@ kind this repo's rules warn about:
|
|
|
227
227
|
the API allocates a free port from 20000-29999 and returns 409 naming the conflict if you pin one
|
|
228
228
|
that is taken.
|
|
229
229
|
|
|
230
|
+
**1.3.0** masks secrets in every response. No tool count change (133).
|
|
231
|
+
|
|
232
|
+
`api()` now passes every decoded response through `sanitise()` before returning it — see
|
|
233
|
+
*Sensitive value masking* under *How code is written here* for the rules. This closes a real leak
|
|
234
|
+
rather than a theoretical one: this MCP authenticates as a Lattice **admin**, and `lattice-api`
|
|
235
|
+
only masks global env vars server-side for *non-admin* callers
|
|
236
|
+
(`HandleGlobalEnvVars.router.go:39`), so `lattice_list_env_vars` was returning every `is_secret`
|
|
237
|
+
value in plaintext — while its own description claimed they were masked. Container and stack
|
|
238
|
+
`env_vars`, `compose_yaml` environment blocks, database passwords and freshly minted
|
|
239
|
+
deploy/worker/API tokens were all reaching the transcript verbatim too.
|
|
240
|
+
|
|
241
|
+
Masked values keep their **first two characters** and get a fixed-width tail
|
|
242
|
+
(`"supersecret"` → `"su**********"`), so they stay comparable without staying usable. Set
|
|
243
|
+
`LATTICE_ALLOW_SECRET_VALUES=1` to opt out.
|
|
244
|
+
|
|
245
|
+
Three tool descriptions changed to match reality: `lattice_list_env_vars` (which was lying),
|
|
246
|
+
`lattice_reveal_database_credentials`, `lattice_create_deploy_token` and
|
|
247
|
+
`lattice_create_worker_token` now each say the value comes back masked and where to get the real
|
|
248
|
+
one. `verify.mjs` gained a tripwire asserting `sanitise()` is still wired into `api()` and still
|
|
249
|
+
defaults to on — unwiring that single call is a silent, total regression that no other check
|
|
250
|
+
would notice.
|
|
251
|
+
|
|
230
252
|
**Consolidations.** Where `lattice-api` exposes several paths served by one handler, this repo
|
|
231
253
|
exposes one tool with an enum rather than N tools. `lattice_database_action` covers
|
|
232
254
|
`/start`, `/stop`, `/restart` and `/remove`. Worker actions are the historical exception — they
|
package/index.js
CHANGED