Skip to the content.

AOS8 0.6 live-lab evaluation

Status: in progress

Branch: feat/centralmcp-0.6.0 (historical branch name in the legacy secure-ssid/centralmcp repository, preserved verbatim as provenance; the current project is hpe-networking-mcp)

Safety mode: read-only target evidence; no configuration write attempted

This document records live evidence gathered for the 0.6 migration work. It is separate from the completed 0.5 read-only evaluation because the 0.6 harness permits OAuth/session authentication while independently blocking non-read data-plane requests.

Reproduction

# Offline baseline
uv run python scripts/evaluate_aos8_060_lab.py --offline

# Live AOS8 evidence when source credentials are configured
uv run python scripts/evaluate_aos8_060_lab.py \
  --live-aos8-readonly \
  --config-path /md \
  --limit 100 \
  --max-items-per-type 1000

# Live Classic or New Central evidence with an explicit target
uv run python scripts/evaluate_aos8_060_lab.py \
  --live-central-readonly \
  --target-type new_central \
  --scope-name "<explicit scope>" \
  --persona CAMPUS_AP \
  --candidates inputs/aos8-lab-candidates.json

The complete controlled-write workflow is documented in optional-products.md. No controlled write has been executed for this evaluation.

Current access

Surface Availability Current evidence
New Central Available OAuth token bootstrap succeeded, then the data-plane guard observed only GET requests.
AOS8 source Blocked AOS8_BASE_URL, AOS8_USERNAME, AOS8_PASSWORD, and legacy AOS8_API_TOKEN are not configured.
Classic Central Blocked No explicit Classic group, GUID, or device serial is configured; New Central scope data is never reused.

New Central live result

The 0.6 harness refreshed the OAuth token through the HPE authentication endpoint, installed the Central data-plane request guard, and evaluated the representative AP-persona candidate set against an explicit Global target.

The bounded reads covered global scope resolution, role preflight, VLAN preflight, and WLAN preflight. This confirms the harness can authenticate without weakening the post-authentication GET-only contract. It does not promote any conditional mapping to exact because no create/read-back/delete lifecycle was executed.

A separate bounded GET /network-config/v1alpha1/config-assignments observed 41 distinct profile-type values. The returned values included all five blocked AOS8 dependency families:

This confirms the literal values and supports exact client-side assignment tuple verification. It does not authorize assignment writes: collection POST, tuple read-back, instance DELETE, and object cleanup still require a disposable lab round trip.

A second bounded GET used the extra profile-type=roles query parameter. The service returned 28 assignment tuples and every returned profile-type was roles, confirming that the live service honors the filter even though the committed GET schema does not declare it. Verification continues to inspect the full returned tuple client-side.

Contract findings incorporated

Live bounded reads against the MOBILITY_GW device function also confirmed:

Remaining live gates

  1. Configure AOS8 source credentials and collect a bounded sanitized export.
  2. Provide an explicit Classic group/GUID/serial and run Classic GET-only WLAN preflight evidence.
  3. Generate and review a controlled-write plan for a disposable SHARED profile and assignment.
  4. Execute create/assign/read-back/unassign/delete only after the unchanged plan digest and exact target are confirmed.
  5. Execute the dry-run-reviewed Gateway policy create/read-back/delete lifecycle for a lab-owned centralmcp-lab-* policy (historical prefix from that run; current builds guard on hpe-mcp-lab-*).
  6. Capture a non-empty Gateway interface-VRRP read and a non-default static route before implementing route or VRRP writes.

Until those gates are completed, affected mappings remain conditional, manual, or unsupported exactly as recorded in the contract matrix.