impreza-mcp 0.50.0 → 0.52.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 CHANGED
@@ -20,6 +20,30 @@ Set `IMPREZA_BASE_URL` before pairing for a different API endpoint. HTTPS is req
20
20
 
21
21
  An existing credential file is never overwritten. Revoke an old paired key in clientarea before removing its file and pairing again. If an exchange or disk write fails, the code may already have been consumed: check and revoke the new key in clientarea before generating another code. Restart the AI client after pairing.
22
22
 
23
+ ## Inbound access for non-HTTP ports (0.52.0)
24
+
25
+ - **`impreza_get_ingress`** reads which address ranges may reach each non-HTTP port an application publishes
26
+ (databases, game servers, RustDesk...). Every deployment starts open. The answer carries the revision, the status
27
+ (`open`, `pending`, `enforced`, `not_enforced` with a reason, or `agent_update_required` with the minimum agent
28
+ version) and, per port, open or restricted with its sources. Requires read scope.
29
+ - **`impreza_set_ingress`** replaces the allowlist with the complete desired state: `rules` lists only the restricted
30
+ ports, each with its IPv4 or IPv6 CIDR sources, and `rules=[]` opens every port again. Restricting can block your own
31
+ access, so it needs `confirm: true`; opening does not. Pass the `base_revision` you read; a stale one is refused with
32
+ `REVISION_CONFLICT`. The agent applies it within about a minute. If a restriction cannot be applied, the ports stay
33
+ open, the status says `not_enforced` with the reason, and an alert fires on the app. Requires manage scope.
34
+ - HTTP and HTTPS are not covered: they go through the proxy and the Shield. Enforcement needs agent 0.6.26 or later.
35
+
36
+ ## Exact top-up amounts and checked IDs in API paths (0.51.0)
37
+
38
+ - **Exact top-up amounts.** `impreza_topup` accepts the amount as an exact decimal string (for example `"25.50"`)
39
+ and sends it to the API unchanged, without converting it to a binary floating-point number. A JSON number is still
40
+ accepted. Strings with an exponent, a sign, spaces or more than two decimal places are refused.
41
+ - **Every ID placed in an API path is checked.** The 0.50.0 guard for `deployment_id` now covers every identifier the
42
+ package places in an API URL path: task, backup, VPS, image, invoice, command, read and run IDs, agent IDs, onion
43
+ client names, the domain in tools that route by domain, and the dedicated IP for reverse DNS. A value that would add
44
+ or change path segments (`.`, `..`, `/`, `\`, `%`, whitespace or control characters) is refused before any request
45
+ leaves the process. Valid IDs are sent exactly as before.
46
+
23
47
  ## Protect an app, safer deployment IDs and bare VPS orders (0.50.0)
24
48
 
25
49
  - **Protect an app, as a guided prompt.** `prompts/list` adds `impreza_protect_app`. Starting from one of your
@@ -315,7 +339,7 @@ Static npm sites: choose build_strategy=node_npm_static with a Git/context sourc
315
339
 
316
340
  ## Status
317
341
 
318
- **Package version: 0.50.0.** The tool catalog covers app deployment plus account +
342
+ **Package version: 0.52.0.** The tool catalog covers app deployment plus account +
319
343
  crypto balance, catalog + ordering, domains/DNS + registration, invoices, VPS
320
344
  lifecycle with snapshots and backups, dedicated / bare-metal servers, plan
321
345
  upgrades, and Titan / Google Workspace mailboxes — with a setup wizard that
@@ -327,7 +351,7 @@ output kept, outbound webhooks so you stop polling, reading the app's own
327
351
  files, and running the app's own command line.
328
352
 
329
353
  The local (`npx`) server and the hosted OAuth connector expose the **same tool
330
- catalog — 216 tools in the local package**. Declared, one-direction gaps remain:
354
+ catalog — 218 tools in the local package**. Declared, one-direction gaps remain:
331
355
  `impreza_get_log_request` stays hosted-only (only the control plane resolves a
332
356
  bare `request_id`; locally, call `impreza_tail_logs` again on the application —
333
357
  requests dedupe); `impreza_list_approvals`, `impreza_get_approval` and