vmware-aria 2.4.2__tar.gz → 2.4.4__tar.gz
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_aria-2.4.2 → vmware_aria-2.4.4}/.claude-plugin/plugin.json +1 -1
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/.mcp.json +1 -1
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/PKG-INFO +24 -8
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/README-CN.md +22 -6
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/README.md +22 -6
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/RELEASE_NOTES.md +24 -3
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/SECURITY.md +3 -3
- vmware_aria-2.4.4/gemini-extension.json +16 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/openclaw.plugin.json +1 -1
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/package.json +1 -1
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/pyproject.toml +2 -2
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/server.json +2 -2
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/SKILL.md +4 -4
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/setup-guide.md +24 -19
- vmware_aria-2.4.4/tests/eval/regression/test_macos_proxy_bypass.py +47 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/uv.lock +1 -1
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/__init__.py +1 -1
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/connection.py +10 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/.clawhubignore +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/.env.example +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/.gitignore +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/Dockerfile +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/config.example.yaml +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/docker-compose.yml +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/examples/mcp-configs/claude-code.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/examples/mcp-configs/cursor.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/examples/mcp-configs/goose.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/evals/evals.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/agent-guardrails.md +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/capabilities.md +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/cli-reference.md +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/investigation-protocol.md +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/skills/vmware-aria/references/ops-playbooks.md +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/smithery.yaml +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/__init__.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/conftest.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/__init__.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/__init__.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/_family.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/_scores.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/_scoring.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/_skill.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/conftest.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/test_entity_reachability.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/test_error_actionability.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/test_tool_description_quality.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/capability/test_tool_manifest_budget.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alert_adapter_childs_no_data.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alert_notes_404.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alert_notes_empty.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alert_vcapp_health.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alertdefinition_adapter_childs_no_data.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/alertdefinition_vcapp_health.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/contributingsymptoms_vcapp_health.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/host_relationships_all.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/host_relationships_child.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/host_relationships_parent.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/host_statkey_definitions.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/maintenanceschedules_empty.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/node_status_503.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_adapters.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_node_statkey_definitions.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_node_statkeys.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_resources_node.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_resources_watchdog.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_stats_latest.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_stats_query.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_watchdog_statkey_definitions.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/platform_watchdog_statkeys.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/properties_bulk_vcapp_services.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/recommendation_404.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/recommendations_by_id_adapter_childs.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/recommendations_by_id_vcapp.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/resource_test_llm.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/service_resource_mem.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/services_info.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/stats_query_mixed.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/stats_query_no_values.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/symptoms_ignores_id_filter.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/topn_no_groups.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vcapp_children.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/versions_current.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_properties.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_relationships_all.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_relationships_child.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_relationships_parent.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_resource_test_llm.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_statkey_definitions.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_statkey_definitions_full.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_statkeys.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/fixtures/aria_8187/vm_statkeys_180.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/__init__.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/_live_8187.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/fixtures/aria_8187_alerts.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/fixtures/aria_8187_rightsizing.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_a_9x_only_404_is_not_a_bad_id.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_alert_ids_are_pasteable_and_times_readable.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_alert_notes.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_alert_recommendations.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_anomaly_count_is_total_anomalies.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_anomaly_limit_bounds_the_answer.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_aria_spec_conformance.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_aria_spec_shapes.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_aria_specific.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_cached_loader_agrees_with_the_resolver.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_capability_grader.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_cli_value_errors_are_usage_errors.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_cli_writes_guarded.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_credential_env_override.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_destructive_cli_asks_twice.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_doctor_does_not_send_you_to_doctor.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_doctor_uses_the_config_the_tools_use.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_documented_metric_keys_exist.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_empty_metrics_say_why.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_empty_vs_unrecognized.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_env_secret_obfuscation.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_fleet_rows_survive_the_container_key.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_health_degraded_is_not_down.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_health_says_what_it_observed.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_ids_must_be_uuid_shaped.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_instructions_name_targets.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_live_8187_alert_names.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_maintenance_mode.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_maintenance_schedules.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_mcp_parity.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_metrics_interval.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_metrics_summary.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_paging_loop_terminates.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_platform_adapters.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_platform_node_resources.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_platform_surfaces.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_product_version_is_read_and_parseable.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_release_blockers.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_report_fields_do_not_lie.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_resource_catalog.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_resource_list_says_which_objects_stopped_reporting.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_result_envelope.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_rightsizing_live_8187.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_rightsizing_recommendation_history.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_service_health_is_not_the_badge.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_stats_n1.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_text_io_declares_encoding.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_top_consumers_value_is_the_ranking.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_vcapp_symptoms_name_their_resources.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_vcf91_fleet_spec.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_verify_ssl_false_needs_no_urllib3.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/eval/regression/test_version_gated_calls_declare_their_floor.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_api_escape.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_config.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_error_hints.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_gated_writes.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_init_and_onboarding.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_investigate.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_no_destructive_ops.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_policy_roles.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_safe_error_passthrough.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/tests/test_session_pool.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/api_spec/vcf91_fleet_operations.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/api_spec/vcfops91_operations.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/api_spec/vrops86_operations.json +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/cli.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/cli_api.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/cli_catalog.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/cli_platform.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/cli_workflow.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/config.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/doctor.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/init_wizard.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/__init__.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/__main__.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/_shared.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/server.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/__init__.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/alert_definitions.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/alert_workflow.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/alerts.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/anomaly.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/api.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/capacity.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/catalog.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/fleet.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/health.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/maintenance.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/reports.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/mcp_server/tools/resources.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/notify/__init__.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/notify/audit.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/__init__.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/_collection.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/_ids.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/_paging.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/alert_notes.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/alert_recommendations.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/alerts.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/anomaly.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/api_escape.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/capacity.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/catalog.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/fleet.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/gate_measures.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/health.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/investigate.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/maintenance.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/metric_summary.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/platform.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/promql.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/reports.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/resources.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/service_state.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/symptom_resources.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/ops/write_gate.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/policy_environment.py +0 -0
- {vmware_aria-2.4.2 → vmware_aria-2.4.4}/vmware_aria/policy_roles.py +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
|
|
3
3
|
"name": "vmware-aria",
|
|
4
4
|
"displayName": "VMware Aria",
|
|
5
|
-
"version": "2.4.
|
|
5
|
+
"version": "2.4.4",
|
|
6
6
|
"description": "VMware Aria Operations: metrics, alerts, capacity, anomaly detection — 46 MCP tools.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "Wei Zhou",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: vmware-aria
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.4
|
|
4
4
|
Summary: VMware Aria Operations (vRealize Operations) monitoring, alerting, and capacity planning
|
|
5
5
|
Project-URL: Homepage, https://github.com/vmware-skills/VMware-Aria
|
|
6
6
|
Project-URL: Repository, https://github.com/vmware-skills/VMware-Aria
|
|
7
7
|
Project-URL: Issues, https://github.com/vmware-skills/VMware-Aria/issues
|
|
8
8
|
Project-URL: Changelog, https://github.com/vmware-skills/VMware-Aria/blob/main/RELEASE_NOTES.md
|
|
9
|
-
Author-email: Wei Zhou <
|
|
9
|
+
Author-email: Wei Zhou <zhouwei008@gmail.com>
|
|
10
10
|
License-Expression: MIT
|
|
11
11
|
Keywords: ai-ops,aria,capacity,mcp,monitoring,vmware,vrealize,vrops
|
|
12
12
|
Classifier: Development Status :: 4 - Beta
|
|
@@ -30,7 +30,7 @@ For a read-only check of this skill with your model and agent host, use the shar
|
|
|
30
30
|
|
|
31
31
|
> **Note**: In VCF 9.0 and later, **VMware Aria Operations** has been rebranded as **VCF Operations**. This skill works against both names — the `/suite-api/` REST endpoints are unchanged.
|
|
32
32
|
|
|
33
|
-
> **Author**: Wei Zhou, VMware by Broadcom —
|
|
33
|
+
> **Author**: Wei Zhou, VMware by Broadcom — zhouwei008@gmail.com
|
|
34
34
|
> This is a community-driven project by a VMware engineer, not an official VMware product.
|
|
35
35
|
> For official VMware developer tools see [developer.broadcom.com](https://developer.broadcom.com).
|
|
36
36
|
|
|
@@ -39,6 +39,10 @@ AI-assisted monitoring and capacity planning for VMware Aria Operations (vRealiz
|
|
|
39
39
|
[](https://www.python.org/downloads/)
|
|
40
40
|
[](https://opensource.org/licenses/MIT)
|
|
41
41
|
|
|
42
|
+
MCP uses local stdio by default. Opt-in HTTPS opens the configured listener and requires TLS plus caller authentication; it is a network service, not a local-only mode. Credential examples create owner-only placeholder files without overwriting existing files; edit secrets locally.
|
|
43
|
+
|
|
44
|
+
Container examples build a local version-tagged image and run it with `--pull=never`, avoiding registry fallback. A local version tag is not an immutable image digest.
|
|
45
|
+
|
|
42
46
|
## Upgrading to 2.0
|
|
43
47
|
|
|
44
48
|
2.0 renames 4 of its MCP tools so every name starts with a verb (e.g. `findings_list` → `list_findings`, `fleet_certificate_list` → `list_fleet_certificates`, `fleet_domain_list` → `list_fleet_domains`). The full old → new table is in
|
|
@@ -72,7 +76,7 @@ against both the old and the new name, so one file serves both.
|
|
|
72
76
|
|
|
73
77
|
```bash
|
|
74
78
|
# Install
|
|
75
|
-
uv tool install vmware-aria
|
|
79
|
+
uv tool install vmware-aria==2.4.4
|
|
76
80
|
|
|
77
81
|
# Configure
|
|
78
82
|
mkdir -p ~/.vmware-aria
|
|
@@ -88,13 +92,25 @@ default_target: prod
|
|
|
88
92
|
EOF
|
|
89
93
|
|
|
90
94
|
# Set password (never in config.yaml)
|
|
91
|
-
|
|
92
|
-
|
|
95
|
+
(
|
|
96
|
+
umask 077
|
|
97
|
+
set -C # Refuse existing files; edit an existing .env locally instead
|
|
98
|
+
cat > ~/.vmware-aria/.env <<'EOF'
|
|
99
|
+
VMWARE_ARIA_PROD_PASSWORD=REPLACE_IN_LOCAL_EDITOR
|
|
100
|
+
EOF
|
|
101
|
+
)
|
|
102
|
+
# Before continuing, edit .env locally; never type live secrets into shell commands.
|
|
93
103
|
|
|
94
104
|
# Verify setup
|
|
95
105
|
vmware-aria doctor
|
|
96
106
|
```
|
|
97
107
|
|
|
108
|
+
This writes placeholders only. Enter passwords or tokens using a local editor after creation; do not paste live credentials into terminal commands, chat or commits. If the file exists, the command refuses to overwrite it; edit the existing file after checking its permissions are `600`.
|
|
109
|
+
|
|
110
|
+
On macOS, v2.4.3 honors the system proxy bypass list for Aria targets. If an
|
|
111
|
+
older installation reaches TCP/443 but token acquisition ends with a TLS close,
|
|
112
|
+
upgrade and rerun `vmware-aria doctor`. `doctor --skip-auth` checks TCP only.
|
|
113
|
+
|
|
98
114
|
### Offline / Air-Gapped Install (from source)
|
|
99
115
|
|
|
100
116
|
This project uses the modern PEP 517 build system (hatchling), so there is **no
|
|
@@ -167,7 +183,7 @@ vmware-aria alert recommendations <alert-id>
|
|
|
167
183
|
|
|
168
184
|
## MCP Setup (Claude Code)
|
|
169
185
|
|
|
170
|
-
After `uv tool install vmware-aria`, add to `~/.claude.json`:
|
|
186
|
+
After `uv tool install vmware-aria==2.4.4`, add to `~/.claude.json`:
|
|
171
187
|
|
|
172
188
|
```json
|
|
173
189
|
{
|
|
@@ -185,7 +201,7 @@ After `uv tool install vmware-aria`, add to `~/.claude.json`:
|
|
|
185
201
|
|
|
186
202
|
> **v1.5.15+** uses the single-command form `vmware-aria mcp`. The legacy
|
|
187
203
|
> `vmware-aria-mcp` console script is still kept for backward compatibility.
|
|
188
|
-
> If you must use `uvx --from vmware-aria vmware-aria mcp` (no install) and hit
|
|
204
|
+
> If you must use `uvx --from vmware-aria==2.4.4 vmware-aria mcp` (no install) and hit
|
|
189
205
|
> `invalid peer certificate: UnknownIssuer` behind a corporate TLS proxy, set
|
|
190
206
|
> `UV_NATIVE_TLS=true` or use the recommended `vmware-aria mcp` form above.
|
|
191
207
|
|
|
@@ -3,12 +3,16 @@
|
|
|
3
3
|
|
|
4
4
|
要用自己的模型和 Agent 平台进行只读自测,请看 marketplace 根目录的[共享模型适配自测任务](https://github.com/vmware-skills/marketplace/blob/main/MODEL_FIT_SELF_TEST.md)。
|
|
5
5
|
|
|
6
|
-
> **作者**: Wei Zhou, VMware by Broadcom —
|
|
6
|
+
> **作者**: Wei Zhou, VMware by Broadcom — zhouwei008@gmail.com
|
|
7
7
|
> 本项目由 VMware 工程师维护的社区项目,非 VMware 官方产品。
|
|
8
8
|
> VMware 官方开发者工具请访问 [developer.broadcom.com](https://developer.broadcom.com)。
|
|
9
9
|
|
|
10
10
|
通过 Model Context Protocol (MCP) 为 VMware Aria Operations(原 vRealize Operations)提供 AI 辅助的监控与容量规划能力。
|
|
11
11
|
|
|
12
|
+
MCP 默认使用本地 stdio。启用可选 HTTPS 后会打开配置的监听端口,并要求 TLS 与调用者认证;此时属于网络服务。凭据示例先创建仅当前用户可读写的占位文件,拒绝覆盖已有文件,再由用户在本地编辑秘密值。
|
|
13
|
+
|
|
14
|
+
容器示例先在本地构建带版本标签的镜像,再用 `--pull=never` 运行,避免回退到镜像仓库拉取。本地版本标签不等于不可变的镜像摘要。
|
|
15
|
+
|
|
12
16
|
## 升级到 2.0
|
|
13
17
|
|
|
14
18
|
2.0 把 MCP 工具名改成动词在前(共改名 4 处)(例如 `findings_list` → `list_findings`, `fleet_certificate_list` → `list_fleet_certificates`, `fleet_domain_list` → `list_fleet_domains`),完整的新旧名对照表见
|
|
@@ -40,7 +44,7 @@ vmware-policy ≥ 1.18 下仍然生效(`vmware-audit policy` 会列出因改
|
|
|
40
44
|
|
|
41
45
|
```bash
|
|
42
46
|
# 安装
|
|
43
|
-
uv tool install vmware-aria
|
|
47
|
+
uv tool install vmware-aria==2.4.4
|
|
44
48
|
|
|
45
49
|
# 配置
|
|
46
50
|
mkdir -p ~/.vmware-aria
|
|
@@ -56,13 +60,25 @@ default_target: prod
|
|
|
56
60
|
EOF
|
|
57
61
|
|
|
58
62
|
# 设置密码(绝不存入 config.yaml)
|
|
59
|
-
|
|
60
|
-
|
|
63
|
+
(
|
|
64
|
+
umask 077
|
|
65
|
+
set -C # 拒绝覆盖已有文件;已有 .env 请直接用本地编辑器修改
|
|
66
|
+
cat > ~/.vmware-aria/.env <<'EOF'
|
|
67
|
+
VMWARE_ARIA_PROD_PASSWORD=REPLACE_IN_LOCAL_EDITOR
|
|
68
|
+
EOF
|
|
69
|
+
)
|
|
70
|
+
# 继续前,先用本地编辑器填写 .env;不要在终端命令中输入真实秘密值。
|
|
61
71
|
|
|
62
72
|
# 验证配置
|
|
63
73
|
vmware-aria doctor
|
|
64
74
|
```
|
|
65
75
|
|
|
76
|
+
模板只写入占位符。创建后用本地编辑器填写密码或令牌;不要把真实凭据粘贴到终端命令、聊天或提交中。若文件已存在,上述命令会拒绝覆盖;直接编辑现有文件并先确认权限为 `600`。
|
|
77
|
+
|
|
78
|
+
macOS 上的 v2.4.3 会遵守系统代理对 Aria 目标的绕过规则。如果旧版本能连通 TCP/443,
|
|
79
|
+
但获取认证 token 时 TLS 连接被关闭,请升级后重新运行 `vmware-aria doctor`。
|
|
80
|
+
`doctor --skip-auth` 只检查 TCP 连通性。
|
|
81
|
+
|
|
66
82
|
### 离线 / 气隙环境安装(从源码)
|
|
67
83
|
|
|
68
84
|
本项目采用现代 PEP 517 构建系统(hatchling),因此**没有 `setup.py`**——这是
|
|
@@ -132,7 +148,7 @@ vmware-aria alert recommendations <alert-id>
|
|
|
132
148
|
|
|
133
149
|
## MCP 配置(Claude Code)
|
|
134
150
|
|
|
135
|
-
完成 `uv tool install vmware-aria` 后,在 `~/.claude.json` 中添加:
|
|
151
|
+
完成 `uv tool install vmware-aria==2.4.4` 后,在 `~/.claude.json` 中添加:
|
|
136
152
|
|
|
137
153
|
```json
|
|
138
154
|
{
|
|
@@ -149,7 +165,7 @@ vmware-aria alert recommendations <alert-id>
|
|
|
149
165
|
```
|
|
150
166
|
|
|
151
167
|
> **v1.5.15+** 推荐使用单命令 `vmware-aria mcp`。旧的 `vmware-aria-mcp` 入口仍然
|
|
152
|
-
> 保留以向后兼容。如必须使用 `uvx --from vmware-aria vmware-aria mcp`(不安装)
|
|
168
|
+
> 保留以向后兼容。如必须使用 `uvx --from vmware-aria==2.4.4 vmware-aria mcp`(不安装)
|
|
153
169
|
> 且公司 TLS 代理报 `invalid peer certificate: UnknownIssuer`,请设置
|
|
154
170
|
> `UV_NATIVE_TLS=true`,或直接使用上面的 `vmware-aria mcp` 形式。
|
|
155
171
|
|
|
@@ -5,7 +5,7 @@ For a read-only check of this skill with your model and agent host, use the shar
|
|
|
5
5
|
|
|
6
6
|
> **Note**: In VCF 9.0 and later, **VMware Aria Operations** has been rebranded as **VCF Operations**. This skill works against both names — the `/suite-api/` REST endpoints are unchanged.
|
|
7
7
|
|
|
8
|
-
> **Author**: Wei Zhou, VMware by Broadcom —
|
|
8
|
+
> **Author**: Wei Zhou, VMware by Broadcom — zhouwei008@gmail.com
|
|
9
9
|
> This is a community-driven project by a VMware engineer, not an official VMware product.
|
|
10
10
|
> For official VMware developer tools see [developer.broadcom.com](https://developer.broadcom.com).
|
|
11
11
|
|
|
@@ -14,6 +14,10 @@ AI-assisted monitoring and capacity planning for VMware Aria Operations (vRealiz
|
|
|
14
14
|
[](https://www.python.org/downloads/)
|
|
15
15
|
[](https://opensource.org/licenses/MIT)
|
|
16
16
|
|
|
17
|
+
MCP uses local stdio by default. Opt-in HTTPS opens the configured listener and requires TLS plus caller authentication; it is a network service, not a local-only mode. Credential examples create owner-only placeholder files without overwriting existing files; edit secrets locally.
|
|
18
|
+
|
|
19
|
+
Container examples build a local version-tagged image and run it with `--pull=never`, avoiding registry fallback. A local version tag is not an immutable image digest.
|
|
20
|
+
|
|
17
21
|
## Upgrading to 2.0
|
|
18
22
|
|
|
19
23
|
2.0 renames 4 of its MCP tools so every name starts with a verb (e.g. `findings_list` → `list_findings`, `fleet_certificate_list` → `list_fleet_certificates`, `fleet_domain_list` → `list_fleet_domains`). The full old → new table is in
|
|
@@ -47,7 +51,7 @@ against both the old and the new name, so one file serves both.
|
|
|
47
51
|
|
|
48
52
|
```bash
|
|
49
53
|
# Install
|
|
50
|
-
uv tool install vmware-aria
|
|
54
|
+
uv tool install vmware-aria==2.4.4
|
|
51
55
|
|
|
52
56
|
# Configure
|
|
53
57
|
mkdir -p ~/.vmware-aria
|
|
@@ -63,13 +67,25 @@ default_target: prod
|
|
|
63
67
|
EOF
|
|
64
68
|
|
|
65
69
|
# Set password (never in config.yaml)
|
|
66
|
-
|
|
67
|
-
|
|
70
|
+
(
|
|
71
|
+
umask 077
|
|
72
|
+
set -C # Refuse existing files; edit an existing .env locally instead
|
|
73
|
+
cat > ~/.vmware-aria/.env <<'EOF'
|
|
74
|
+
VMWARE_ARIA_PROD_PASSWORD=REPLACE_IN_LOCAL_EDITOR
|
|
75
|
+
EOF
|
|
76
|
+
)
|
|
77
|
+
# Before continuing, edit .env locally; never type live secrets into shell commands.
|
|
68
78
|
|
|
69
79
|
# Verify setup
|
|
70
80
|
vmware-aria doctor
|
|
71
81
|
```
|
|
72
82
|
|
|
83
|
+
This writes placeholders only. Enter passwords or tokens using a local editor after creation; do not paste live credentials into terminal commands, chat or commits. If the file exists, the command refuses to overwrite it; edit the existing file after checking its permissions are `600`.
|
|
84
|
+
|
|
85
|
+
On macOS, v2.4.3 honors the system proxy bypass list for Aria targets. If an
|
|
86
|
+
older installation reaches TCP/443 but token acquisition ends with a TLS close,
|
|
87
|
+
upgrade and rerun `vmware-aria doctor`. `doctor --skip-auth` checks TCP only.
|
|
88
|
+
|
|
73
89
|
### Offline / Air-Gapped Install (from source)
|
|
74
90
|
|
|
75
91
|
This project uses the modern PEP 517 build system (hatchling), so there is **no
|
|
@@ -142,7 +158,7 @@ vmware-aria alert recommendations <alert-id>
|
|
|
142
158
|
|
|
143
159
|
## MCP Setup (Claude Code)
|
|
144
160
|
|
|
145
|
-
After `uv tool install vmware-aria`, add to `~/.claude.json`:
|
|
161
|
+
After `uv tool install vmware-aria==2.4.4`, add to `~/.claude.json`:
|
|
146
162
|
|
|
147
163
|
```json
|
|
148
164
|
{
|
|
@@ -160,7 +176,7 @@ After `uv tool install vmware-aria`, add to `~/.claude.json`:
|
|
|
160
176
|
|
|
161
177
|
> **v1.5.15+** uses the single-command form `vmware-aria mcp`. The legacy
|
|
162
178
|
> `vmware-aria-mcp` console script is still kept for backward compatibility.
|
|
163
|
-
> If you must use `uvx --from vmware-aria vmware-aria mcp` (no install) and hit
|
|
179
|
+
> If you must use `uvx --from vmware-aria==2.4.4 vmware-aria mcp` (no install) and hit
|
|
164
180
|
> `invalid peer certificate: UnknownIssuer` behind a corporate TLS proxy, set
|
|
165
181
|
> `UV_NATIVE_TLS=true` or use the recommended `vmware-aria mcp` form above.
|
|
166
182
|
|
|
@@ -1,4 +1,25 @@
|
|
|
1
|
-
## v2.4.
|
|
1
|
+
## v2.4.4 — Security documentation and Gemini extension packaging
|
|
2
|
+
|
|
3
|
+
Released 2026-11-09.
|
|
4
|
+
|
|
5
|
+
Clarify actual capability, credential, local-write and transport boundaries where applicable.
|
|
6
|
+
Pin documented setup/fallback tools and make credential examples owner-only before writing,
|
|
7
|
+
without overwriting existing files. Runtime permissions, TLS defaults and approval behavior are unchanged.
|
|
8
|
+
These edits do not establish a new ClawHub scan verdict.
|
|
9
|
+
|
|
10
|
+
Add the root Gemini CLI extension manifest and discovery metadata, using the existing canonical skill and exact MCP package version. No duplicate skill entrypoint is introduced.
|
|
11
|
+
|
|
12
|
+
Runtime infrastructure operations, permissions, TLS defaults and confirmation behavior are unchanged. No new vSphere/VCF 9.x or live product compatibility is claimed. ClawHub skill and bundle verdicts are checked separately after publication; documentation corrections are not a clean-scan claim.
|
|
13
|
+
|
|
14
|
+
## v2.4.3 — honor macOS proxy bypass for Aria targets (2026-11-08)
|
|
15
|
+
|
|
16
|
+
* Update public author/project contact metadata to `zhouwei008@gmail.com`.
|
|
17
|
+
|
|
18
|
+
* **Connection fix:** when macOS marks an Aria host as bypassed from its system HTTPS proxy, the HTTP client now uses a direct route for that host. It still honors CA bundle settings such as `SSL_CERT_FILE`; targets without a bypass keep their existing proxy route. Previously `httpx` picked up the proxy but missed the bypass, so token acquisition failed with a TLS connection close even though the appliance was healthy.
|
|
19
|
+
* **Live verification on Aria Operations 8.18.7:** `get_aria_health` returned `HEALTHY`; resource and metric-key discovery succeeded. For a powered-on VM, 24-hour `cpu|usage_average` had 56 five-minute points and p95 44.154666900634766. The summary p95 exactly matched an independent nearest-rank calculation from the raw points. A powered-off VM had no CPU points and correctly reported `no_data_in_window`, not zero.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## v2.4.2 — p95 in metric summaries; the `confirmed` alias is gone; error hints fit the error (2026-11-01)
|
|
2
23
|
|
|
3
24
|
* **Breaking for callers still sending `confirmed`:** the deprecated alias on `acknowledge_alert`, `cancel_alert`,
|
|
4
25
|
`delete_alert_definition`, `delete_report`, `start_resource_maintenance` and `end_resource_maintenance` is removed. A call that passes it is refused
|
|
@@ -6,7 +27,7 @@
|
|
|
6
27
|
`confirm` previews, as before.
|
|
7
28
|
* **`get_resource_metrics(summary=true)` adds `p95`** per series (nearest rank), with `p95_unavailable` saying why
|
|
8
29
|
when the window holds fewer than 20 numeric points ("widen the window or use a finer interval"). Issue #22.
|
|
9
|
-
Live on 8.18.7: 288 five-minute points, `cpu|demandmhz` p95 50.2.
|
|
30
|
+
Live on 8.18.7: 288 five-minute points, `cpu|demandmhz` p95 50.2. A fresh lab call on 2026-11-01 was unavailable because the configured appliance did not accept a TCP 443 connection; this release does not claim a second live measurement.
|
|
10
31
|
* **Error hints fit the error.** A malformed id, a 400/404/409/422 the message already explains (including the
|
|
11
32
|
9.0+-only fleet / findings / PromQL endpoints on 8.x) and a missing password env var now say "The error message
|
|
12
33
|
says what to change; connectivity is not the problem" instead of sending the agent to `doctor`, which would
|
|
@@ -1663,7 +1684,7 @@ This release tracks vmware-pilot v1.5.17 (new `investigate_alert` template + `re
|
|
|
1663
1684
|
- **[READ]/[WRITE] tool prefixes**: All MCP tool descriptions now start with [READ] or [WRITE] to clearly indicate operation type
|
|
1664
1685
|
- **Read/write split counts**: SKILL.md MCP Tools section header shows exact read vs write tool counts
|
|
1665
1686
|
- **Negative routing**: Description frontmatter includes "Do NOT use when..." clause to prevent misrouting
|
|
1666
|
-
- **Broadcom author attestation**: README.md, README-CN.md, and pyproject.toml include VMware by Broadcom author identity (
|
|
1687
|
+
- **Broadcom author attestation**: README.md, README-CN.md, and pyproject.toml include VMware by Broadcom author identity (zhouwei008@gmail.com) to resolve Snyk E005 brand warnings
|
|
1667
1688
|
|
|
1668
1689
|
### Aria-specific
|
|
1669
1690
|
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
This is a community-maintained open-source project and is **not affiliated with, endorsed by, or sponsored by VMware, Inc. or Broadcom Inc.** "VMware" and "Aria" are trademarks of Broadcom Inc.
|
|
6
6
|
|
|
7
|
-
**Author**: Wei Zhou, VMware by Broadcom —
|
|
7
|
+
**Author**: Wei Zhou, VMware by Broadcom — zhouwei008@gmail.com
|
|
8
8
|
|
|
9
9
|
## Reporting Vulnerabilities
|
|
10
10
|
|
|
11
11
|
If you discover a security vulnerability, please report it privately:
|
|
12
12
|
|
|
13
|
-
- **Email**:
|
|
13
|
+
- **Email**: zhouwei008@gmail.com
|
|
14
14
|
- **GitHub**: Open a [private security advisory](https://github.com/vmware-skills/VMware-Aria/security/advisories/new)
|
|
15
15
|
|
|
16
16
|
Do **not** open a public GitHub issue for security vulnerabilities.
|
|
@@ -69,7 +69,7 @@ This skill makes no webhook, HTTP listener, or outbound network connections beyo
|
|
|
69
69
|
This project is scanned with [Bandit](https://bandit.readthedocs.io/) before every release, targeting 0 Medium+ issues:
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
uvx bandit -r vmware_aria/
|
|
72
|
+
uvx bandit==1.9.4 -r vmware_aria/
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
## Supported Versions
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vmware-aria",
|
|
3
|
+
"version": "2.4.4",
|
|
4
|
+
"description": "VMware Aria Operations (vRealize Operations) monitoring, alerting, and capacity planning",
|
|
5
|
+
"mcpServers": {
|
|
6
|
+
"vmware-aria": {
|
|
7
|
+
"type": "stdio",
|
|
8
|
+
"command": "uvx",
|
|
9
|
+
"args": [
|
|
10
|
+
"--from",
|
|
11
|
+
"vmware-aria==2.4.4",
|
|
12
|
+
"vmware-aria-mcp"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -4,12 +4,12 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "vmware-aria"
|
|
7
|
-
version = "2.4.
|
|
7
|
+
version = "2.4.4"
|
|
8
8
|
description = "VMware Aria Operations (vRealize Operations) monitoring, alerting, and capacity planning"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
11
11
|
requires-python = ">=3.10"
|
|
12
|
-
authors = [{ name = "Wei Zhou", email = "
|
|
12
|
+
authors = [{ name = "Wei Zhou", email = "zhouwei008@gmail.com" }]
|
|
13
13
|
keywords = ["vmware", "aria", "vrealize", "vrops", "monitoring", "capacity", "mcp", "ai-ops"]
|
|
14
14
|
classifiers = [
|
|
15
15
|
"Development Status :: 4 - Beta",
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"url": "https://github.com/vmware-skills/VMware-Aria",
|
|
8
8
|
"source": "github"
|
|
9
9
|
},
|
|
10
|
-
"version": "2.4.
|
|
10
|
+
"version": "2.4.4",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "pypi",
|
|
14
14
|
"identifier": "vmware-aria",
|
|
15
|
-
"version": "2.4.
|
|
15
|
+
"version": "2.4.4",
|
|
16
16
|
"runtimeHint": "uvx",
|
|
17
17
|
"packageArguments": [
|
|
18
18
|
{
|
|
@@ -16,7 +16,7 @@ compatibility: >
|
|
|
16
16
|
vmware-policy auto-installed as Python dependency (provides @vmware_tool decorator and audit logging). All write operations audited to ~/.vmware/audit.db.
|
|
17
17
|
Credentials: Each Aria Operations target requires a per-target password env var in ~/.vmware-aria/.env following the pattern VMWARE_ARIA_<TARGET_NAME_UPPER>_PASSWORD. Passwords are never logged or echoed.
|
|
18
18
|
Read-heavy: 36 of 46 tools are read-only. Write operations limited to alert acknowledge/cancel, alert notes, alert definition management, report management, and resource maintenance start/end.
|
|
19
|
-
No webhooks
|
|
19
|
+
No webhooks or guest operations. API calls use the configured Aria endpoint (HTTPS 443); MCP defaults to stdio, with opt-in authenticated HTTPS.
|
|
20
20
|
Transitive dependencies: Only vmware-policy (audit/policy). No post-install scripts or background services.
|
|
21
21
|
---
|
|
22
22
|
|
|
@@ -51,7 +51,7 @@ VMware Aria Operations (vRealize Operations 8.x, VCF Operations 9.x) AI-assisted
|
|
|
51
51
|
## Quick Install
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
uv tool install vmware-aria==2.4.
|
|
54
|
+
uv tool install vmware-aria==2.4.4
|
|
55
55
|
vmware-aria init # guided setup: writes config + .env (chmod 600, password grep-safe), then verifies
|
|
56
56
|
vmware-aria doctor
|
|
57
57
|
```
|
|
@@ -308,13 +308,13 @@ Set `VMWARE_ARIA_<TARGET_NAME_UPPER>_PASSWORD` (hyphens become underscores; targ
|
|
|
308
308
|
|
|
309
309
|
### `invalid peer certificate: UnknownIssuer` when running uvx (corporate TLS proxy)
|
|
310
310
|
|
|
311
|
-
`uvx` re-resolves from PyPI on every launch, and a TLS-intercepting proxy breaks that. Run `vmware-aria mcp` after `uv tool install vmware-aria==2.4.
|
|
311
|
+
`uvx` re-resolves from PyPI on every launch, and a TLS-intercepting proxy breaks that. Run `vmware-aria mcp` after `uv tool install vmware-aria==2.4.4` (no network on launch), or set `UV_NATIVE_TLS=true` to use the system cert store.
|
|
312
312
|
|
|
313
313
|
## Audit & Safety
|
|
314
314
|
|
|
315
315
|
1. **Source code**: [github.com/vmware-skills/VMware-Aria](https://github.com/vmware-skills/VMware-Aria) (MIT).
|
|
316
316
|
2. **Config and credentials**: `config.yaml` holds hosts and usernames only; passwords live in `~/.vmware-aria/.env` (chmod 600) as `VMWARE_ARIA_<TARGET>_PASSWORD` and are never logged.
|
|
317
|
-
3. **
|
|
317
|
+
3. **Network**: no webhooks. API calls use configured Aria HTTPS endpoints; MCP defaults to local stdio, with opt-in authenticated HTTPS.
|
|
318
318
|
4. **TLS**: verification on by default; for a private CA set `SSL_CERT_FILE` rather than `verify_ssl: false` (isolated labs only).
|
|
319
319
|
5. **Prompt-injection defense**: API text is sanitized (control characters stripped, length capped) before it reaches the agent.
|
|
320
320
|
6. **Least privilege**: use an Aria Operations account with read-only roles unless the write tools (alert acknowledge/cancel, alert notes, alert definitions, reports, resource maintenance) are needed.
|
|
@@ -16,19 +16,19 @@ Complete setup and security guide for `vmware-aria`.
|
|
|
16
16
|
### Via uv (recommended)
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
uv tool install vmware-aria==2.4.
|
|
19
|
+
uv tool install vmware-aria==2.4.4
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
### Via pip
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
pip install vmware-aria==2.4.
|
|
25
|
+
pip install vmware-aria==2.4.4
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
### From source
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
git clone --branch v2.4.
|
|
31
|
+
git clone --branch v2.4.4 https://github.com/vmware-skills/VMware-Aria.git
|
|
32
32
|
cd VMware-Aria
|
|
33
33
|
pip install -e .
|
|
34
34
|
```
|
|
@@ -65,16 +65,21 @@ default_target: prod
|
|
|
65
65
|
|
|
66
66
|
**Option A — .env file (recommended)**:
|
|
67
67
|
```bash
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
(
|
|
69
|
+
umask 077
|
|
70
|
+
set -C # Refuse existing files; edit an existing .env locally instead
|
|
71
|
+
cat > ~/.vmware-aria/.env <<'EOF'
|
|
72
|
+
VMWARE_ARIA_PROD_PASSWORD=REPLACE_IN_LOCAL_EDITOR
|
|
70
73
|
EOF
|
|
71
|
-
|
|
74
|
+
)
|
|
75
|
+
# Before continuing, edit .env locally; never type live secrets into shell commands.
|
|
72
76
|
```
|
|
73
77
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
This writes placeholders only. Enter passwords or tokens using a local editor after creation; do not paste live credentials into terminal commands, chat or commits. If the file exists, the command refuses to overwrite it; edit the existing file after checking its permissions are `600`.
|
|
79
|
+
|
|
80
|
+
**Option B — injected environment**: have your secret manager or launcher set
|
|
81
|
+
`VMWARE_ARIA_PROD_PASSWORD` in the process environment. Do not type the secret in
|
|
82
|
+
a terminal command or include it in MCP configuration committed to source control.
|
|
78
83
|
|
|
79
84
|
Password variable naming convention: `VMWARE_ARIA_<TARGET_UPPER>_PASSWORD`
|
|
80
85
|
- Target `prod` → `VMWARE_ARIA_PROD_PASSWORD`
|
|
@@ -194,7 +199,7 @@ Add to `~/.claude.json` (or use `claude mcp add`):
|
|
|
194
199
|
|
|
195
200
|
> v1.5.15+ recommends `vmware-aria mcp`. Pre-1.5.15 used the legacy
|
|
196
201
|
> `vmware-aria-mcp` console script (still kept for backward compatibility).
|
|
197
|
-
> If using `uvx --from vmware-aria==2.4.
|
|
202
|
+
> If using `uvx --from vmware-aria==2.4.4 vmware-aria mcp` and you hit
|
|
198
203
|
> `invalid peer certificate: UnknownIssuer` behind a corporate TLS proxy,
|
|
199
204
|
> set `UV_NATIVE_TLS=true` or use the recommended form above.
|
|
200
205
|
|
|
@@ -307,19 +312,19 @@ decide:
|
|
|
307
312
|
### Build and run
|
|
308
313
|
|
|
309
314
|
```bash
|
|
310
|
-
docker build -t vmware-aria .
|
|
311
|
-
docker run -i \
|
|
315
|
+
docker build -t vmware-aria:2.4.4 .
|
|
316
|
+
docker run --pull=never -i \
|
|
312
317
|
-v ~/.vmware-aria:/root/.vmware-aria:ro \
|
|
313
318
|
-e VMWARE_ARIA_CONFIG=/root/.vmware-aria/config.yaml \
|
|
314
|
-
vmware-aria
|
|
319
|
+
vmware-aria:2.4.4
|
|
315
320
|
```
|
|
316
321
|
|
|
322
|
+
These commands run the image built locally above; `--pull=never` prevents a missing local image from falling back to a registry. The version tag identifies this build, not an immutable digest.
|
|
323
|
+
|
|
317
324
|
### Using docker-compose
|
|
318
325
|
|
|
319
326
|
```bash
|
|
320
|
-
#
|
|
321
|
-
export VMWARE_ARIA_PROD_PASSWORD=your_password
|
|
322
|
-
|
|
327
|
+
# Inject VMWARE_ARIA_PROD_PASSWORD through your secret manager/launcher first.
|
|
323
328
|
docker-compose up
|
|
324
329
|
```
|
|
325
330
|
|
|
@@ -361,7 +366,7 @@ Aria Operations Manager
|
|
|
361
366
|
VMs / Hosts / Clusters / Datastores / Alerts / Capacity
|
|
362
367
|
```
|
|
363
368
|
|
|
364
|
-
|
|
369
|
+
By default the MCP server uses local stdio without a listener; opt-in HTTPS opens a listener and requires TLS plus caller authentication. Connections to Aria Ops use HTTPS on port 443 with vRealizeOpsToken authentication (6-hour sliding token validity, auto-refreshed).
|
|
365
370
|
|
|
366
371
|
## Security Notes
|
|
367
372
|
|
|
@@ -371,7 +376,7 @@ The MCP server uses stdio transport (local only, no network listener). Connectio
|
|
|
371
376
|
- **Never** store passwords in `config.yaml` — use env vars or `.env` file
|
|
372
377
|
- `.env` file must be `chmod 600` (owner read/write only)
|
|
373
378
|
- TLS verification is on by default (`verify_ssl: true`); trust a private CA with `SSL_CERT_FILE` rather than disabling verification (see [TLS Certificate Verification](#tls-certificate-verification))
|
|
374
|
-
-
|
|
379
|
+
- By default the MCP server uses local stdio without a listener. Opt-in HTTPS requires TLS plus caller authentication and opens the configured listener
|
|
375
380
|
- Audit log at `~/.vmware/audit.db` (SQLite WAL, via vmware-policy) records all write operations (alert acknowledge/cancel, alert definition management, report generate/delete)
|
|
376
381
|
- Tokens have a 6-hour sliding validity (extended on each call); the client re-acquires automatically 60 seconds before expiry. Requests carry `Authorization: vRealizeOpsToken <token>`
|
|
377
382
|
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"""A macOS proxy bypass must cover the Aria HTTP client, including login."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import time
|
|
6
|
+
import urllib.request
|
|
7
|
+
|
|
8
|
+
import httpx
|
|
9
|
+
|
|
10
|
+
from vmware_aria import connection
|
|
11
|
+
from vmware_aria.config import TargetConfig
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def test_system_proxy_bypass_routes_aria_auth_directly(monkeypatch):
|
|
15
|
+
"""httpx sees system proxies but does not apply macOS's bypass list."""
|
|
16
|
+
monkeypatch.setenv("HTTPS_PROXY", "http://127.0.0.1:1")
|
|
17
|
+
monkeypatch.delenv("NO_PROXY", raising=False)
|
|
18
|
+
monkeypatch.setattr(urllib.request, "proxy_bypass", lambda host: host == "aria.invalid")
|
|
19
|
+
|
|
20
|
+
seen = []
|
|
21
|
+
|
|
22
|
+
def direct(request: httpx.Request) -> httpx.Response:
|
|
23
|
+
seen.append(request.url.path)
|
|
24
|
+
if request.url.path.endswith("/auth/token/acquire"):
|
|
25
|
+
return httpx.Response(
|
|
26
|
+
200,
|
|
27
|
+
json={"token": "test-token", "validity": int((time.time() + 3600) * 1000)},
|
|
28
|
+
)
|
|
29
|
+
return httpx.Response(200, json={})
|
|
30
|
+
|
|
31
|
+
monkeypatch.setattr(
|
|
32
|
+
connection.httpx,
|
|
33
|
+
"HTTPTransport",
|
|
34
|
+
lambda **_kwargs: httpx.MockTransport(direct),
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
client = connection.AriaClient(
|
|
38
|
+
TargetConfig(host="aria.invalid", username="admin", verify_ssl=False),
|
|
39
|
+
"test-password",
|
|
40
|
+
)
|
|
41
|
+
try:
|
|
42
|
+
assert client._token == "test-token"
|
|
43
|
+
assert client._client.get("https://aria.invalid/suite-api/api/resources").status_code == 200
|
|
44
|
+
assert any(path.endswith("/auth/token/acquire") for path in seen)
|
|
45
|
+
assert any(path.endswith("/resources") for path in seen)
|
|
46
|
+
finally:
|
|
47
|
+
client.close()
|
|
@@ -17,6 +17,7 @@ from __future__ import annotations
|
|
|
17
17
|
import logging
|
|
18
18
|
import re
|
|
19
19
|
import time
|
|
20
|
+
import urllib.request
|
|
20
21
|
from typing import Any
|
|
21
22
|
|
|
22
23
|
import httpx
|
|
@@ -288,10 +289,19 @@ class AriaClient:
|
|
|
288
289
|
self._product_version: str | None | object = _UNPROBED
|
|
289
290
|
|
|
290
291
|
|
|
292
|
+
# httpx reads macOS system proxies but can miss their bypass list. Route
|
|
293
|
+
# an explicitly bypassed Aria host directly while keeping trust_env for
|
|
294
|
+
# CA bundle settings such as SSL_CERT_FILE.
|
|
295
|
+
mounts = None
|
|
296
|
+
if urllib.request.proxy_bypass(target.host):
|
|
297
|
+
origin = f"https://{target.host}:{target.port}"
|
|
298
|
+
mounts = {origin: httpx.HTTPTransport(verify=target.verify_ssl, trust_env=True)}
|
|
299
|
+
|
|
291
300
|
self._client = httpx.Client(
|
|
292
301
|
base_url=self._base_url,
|
|
293
302
|
verify=target.verify_ssl,
|
|
294
303
|
timeout=30.0,
|
|
304
|
+
mounts=mounts,
|
|
295
305
|
)
|
|
296
306
|
self._acquire_token()
|
|
297
307
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|