vmware-debug 2.2.0__py3-none-any.whl → 2.3.0__py3-none-any.whl

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.
vmware_debug/__init__.py CHANGED
@@ -6,4 +6,4 @@ remediation to vmware-aiops / vmware-pilot. Never writes to any VMware system
6
6
  and never executes fixes; its only writes go to the local case ledger.
7
7
  """
8
8
 
9
- __version__ = "2.2.0"
9
+ __version__ = "2.3.0"
@@ -898,5 +898,8 @@ def main(
898
898
  )
899
899
 
900
900
 
901
+ # Role metadata for network callers (HLD §18).
902
+ import vmware_debug.policy_roles # noqa: F401
903
+
901
904
  if __name__ == "__main__":
902
905
  main()
@@ -0,0 +1,27 @@
1
+ """What vmware-policy needs to apply roles to this skill (HLD §18 D-21/D-22).
2
+
3
+ Policy cannot see which tools escape a role or how a missing target resolves; this
4
+ module declares them. Imported by the MCP server (roles apply only to a network
5
+ MCP server). With a vmware-policy that has no roles module (< 1.24) nothing is
6
+ declared.
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ from vmware_policy import skill_name
12
+
13
+ #: Tools that give their holder more than a role. Host-path tools are added by
14
+ #: policy while a file root is set.
15
+ ESCAPES = frozenset()
16
+
17
+
18
+ try:
19
+ from vmware_policy.roles import declare_role_metadata
20
+ except ImportError: # vmware-policy without roles: nothing to declare
21
+ declare_role_metadata = None
22
+
23
+ if declare_role_metadata is not None:
24
+ declare_role_metadata(
25
+ skill_name(__name__),
26
+ escapes=ESCAPES,
27
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: vmware-debug
3
- Version: 2.2.0
3
+ Version: 2.3.0
4
4
  Summary: VMware diagnostic brain — offline incident triage, log/event correlation, and root-cause routing across the VMware skill family
5
5
  Project-URL: Homepage, https://github.com/vmware-skills/VMware-Debug
6
6
  Project-URL: Repository, https://github.com/vmware-skills/VMware-Debug
@@ -145,6 +145,71 @@ pip wheel . -w dist # → dist/*.whl (or: uv build, for just this packa
145
145
  pip install --no-index --find-links dist vmware-debug
146
146
  ```
147
147
 
148
+ <!-- usage: remote-and-exposure -->
149
+ ## Remote access (HTTPS) and limiting tools
150
+
151
+ By default `vmware-debug mcp` speaks stdio to one local client and offers every tool. Two options change that
152
+ (vmware-policy ≥ 1.21.0).
153
+
154
+ **Serve over HTTPS** so clients on other machines can connect. Every caller needs a bearer token:
155
+
156
+ ```bash
157
+ vmware-audit token create alice # prints the token once; give it to alice
158
+ vmware-audit token list # names only
159
+ vmware-audit token revoke alice # refused from its next request, no restart
160
+ vmware-debug mcp --transport https --host 0.0.0.0 --port 8443 \
161
+ --cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \
162
+ --public-name mcp.example.com
163
+ ```
164
+
165
+ Connect a client (Claude Code shown; any MCP client that supports streamable HTTP and custom headers works):
166
+
167
+ ```bash
168
+ claude mcp add --transport http vmware-debug https://mcp.example.com:8443/mcp \
169
+ --header "Authorization: Bearer $VMWARE_MCP_TOKEN"
170
+ ```
171
+
172
+ ```json
173
+ {
174
+ "mcpServers": {
175
+ "vmware-debug": {
176
+ "type": "http",
177
+ "url": "https://mcp.example.com:8443/mcp",
178
+ "headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
179
+ }
180
+ }
181
+ }
182
+ ```
183
+
184
+ - The server will not start without a token, refuses Host/Origin values outside `--public-name`, and checks
185
+ before it binds that unauthenticated requests get 401. Use a certificate your clients trust for those names.
186
+ - Behind a TLS-terminating reverse proxy on the same machine use `--transport http --host 127.0.0.1
187
+ --public-name mcp.example.com` and pass the `Authorization` header through.
188
+ - Behind a load balancer or gateway on another machine, keep `--transport https` (a self-signed certificate is
189
+ fine), list in `--public-name` the host name the balancer sends as `Host`, and have it forward `Authorization`.
190
+ Its health probe can use `GET /healthz`, which needs no token and returns only `{"status": "ok"}`
191
+ (vmware-policy ≥ 1.23.0).
192
+ - Send `traceparent` or `X-Request-ID` with each request to have it stored on the audit row;
193
+ `vmware-audit log --correlation-id ID` then finds the calls behind one platform request.
194
+ - The audit log records each caller as `token:<name>`. Calls naming different targets run in parallel; calls that
195
+ name no target run one at a time, so name the target when several people share a server.
196
+ - **Everyone who can reach the endpoint acts with this server's account.** Tokens identify callers; they grant
197
+ nothing on the platform. Run one endpoint per privilege level.
198
+ - **Several people or roles on one endpoint:** run `vmware-audit roles enable` once, then give each token a role (`vmware-audit token create NAME --role reader`, or a role in `roles.yaml` naming tools and targets; vmware-policy ≥ 1.24.0). A role limits what the token may call on this endpoint; it cannot grant more than the account has. See vmware-policy's README, "Roles for network callers".
199
+
200
+ **Offer only read tools, plus the writes you choose:**
201
+
202
+ ```bash
203
+ vmware-debug mcp --expose read --allow-write close_case
204
+ # or: VMWARE_DEBUG_MCP_EXPOSE=read VMWARE_DEBUG_MCP_ALLOW_WRITE=close_case vmware-debug mcp
205
+ ```
206
+
207
+ Tools not offered do not appear in the client's tool list. A bad value or an unknown write tool stops the server
208
+ (exit 2). This limits what clients are offered; it is not authorization, so the account itself should be
209
+ least-privilege.
210
+
211
+ Details: `skills/vmware-debug/references/setup-guide.md` ("Serving MCP over HTTPS", "Limiting which tools are offered").
212
+
148
213
  ## License
149
214
 
150
215
  MIT.
@@ -1,10 +1,11 @@
1
- vmware_debug/__init__.py,sha256=JjgubSbR8Xhn-i8kk8lV2EtYQxwqZUwSAQqxyW3k46o,376
1
+ vmware_debug/__init__.py,sha256=0dK-ncVKNGTFt0B6J-gsebCoG4w8IvlMccw14J5iOtM,376
2
2
  vmware_debug/cli.py,sha256=nho92ORzfyqEPPvnFWuAY3J5uyWpVdzx5kAd7DPmbcA,5690
3
3
  vmware_debug/envelope.py,sha256=66AQzI_h4JoopUcFxHvqaFe48rYRZz0uX9Wdm5lDcuI,11235
4
+ vmware_debug/policy_roles.py,sha256=iaKA3rT5qg0tfjO59cZHjsJTF4xirIzmsxfkVytrgH0,844
4
5
  vmware_debug/mcp/__init__.py,sha256=isuSzMWp1iXgJWGz2Q0JyUXlDTfcFfHNPSTHALuNHaA,220
5
6
  vmware_debug/mcp/tools.py,sha256=TcWywxro1zqGYFmJC8NUgxb7DMyGpSQbZusJrHzqnGI,2796
6
7
  vmware_debug/mcp_server/__init__.py,sha256=QZpQxriDdqDCYaS-HP7McsaPbTPbHwcamIwu-7UxY-E,49
7
- vmware_debug/mcp_server/server.py,sha256=uz4BnW-6Zu7G4fYYffT6B5cfOQ7xVFDzLWsmpASTrfc,47379
8
+ vmware_debug/mcp_server/server.py,sha256=pzaqn3oZIgxszVmCzRGZY33rrvupgrdtsPxducXTiGc,47475
8
9
  vmware_debug/ops/__init__.py,sha256=Co9u0zZexST7-IOUBOAS5eq5RHkaEeI2FqfYijzhI1g,46
9
10
  vmware_debug/ops/skill_names.py,sha256=JkBaKBJYyq0RrEqzro-e-zhSVh7Cn5wlxjAoakgXSyY,3990
10
11
  vmware_debug/ops/timeline.py,sha256=GzafF7jkEfa6cr3H2wO0At7fZEBdn_9m9_0Omh7faTs,27556
@@ -25,7 +26,7 @@ vmware_debug/ops/cases/store.py,sha256=dIgdAR111_gDoZ4rYbTtccuiaQVdksMCDoZOHKmbW
25
26
  vmware_debug/ops/cases/timeline.py,sha256=WbJg2xUrqyHxMERBFYA-tgU9Mmy67whH9GGh96R8ifk,7843
26
27
  vmware_debug/rules/evidence_sources.yaml,sha256=w8YOdUtKw-oi-t9c5ePJaktx7CwZlfFinH8aQAQfhzo,11387
27
28
  vmware_debug/rules/grading_rules.yaml,sha256=USCp7D2geU_CZgscvo8GMHEHZPgqbzbjqE-qwWG3QtA,3261
28
- vmware_debug-2.2.0.dist-info/METADATA,sha256=HCpMz0WTX-CNGVrBN0YmFA3M6IANeTRMH7fRJFyAPVM,8059
29
- vmware_debug-2.2.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
30
- vmware_debug-2.2.0.dist-info/entry_points.txt,sha256=4d14JRHy0ouSOfCJyczaxUFH6p8AsHZNS19AKom0v4c,109
31
- vmware_debug-2.2.0.dist-info/RECORD,,
29
+ vmware_debug-2.3.0.dist-info/METADATA,sha256=bwr3Fy4vc2DdqHHEwVaRQFbZCpZR-Ocu6NxYpncz894,11541
30
+ vmware_debug-2.3.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
31
+ vmware_debug-2.3.0.dist-info/entry_points.txt,sha256=4d14JRHy0ouSOfCJyczaxUFH6p8AsHZNS19AKom0v4c,109
32
+ vmware_debug-2.3.0.dist-info/RECORD,,