Skip to content

Results schema ​

Beacon writes three files per run next to each other:

FilePurpose
validation-<yyyyMMdd-HHmmss>.jsonMachine readable result, validated by results.schema.json (JSON Schema 2020-12)
validation-<yyyyMMdd-HHmmss>.logPlain text table of every check
validation-<yyyyMMdd-HHmmss>.htmlSelf-contained report (no scripts, no external assets)

In WinPE the folder is X:\results\; elsewhere $env:TEMP. The timestamp in the file name is UTC. With -Redact only the redacted document is written. A copy of the Environment Checker's own report (AzStackHciEnvironmentReport.json) is added when it exists and -Redact is not used.

Document ​

json
{
  "schemaVersion": "1.1",
  "tool": { "name": "AzL Beacon", "version": "1.1.0", "releaseTrain": "12.2609 (latest)" },
  "runId": "00000000-0000-0000-0000-0000000000aa",
  "startedUtc": "2026-10-15T14:00:05Z",
  "finishedUtc": "2026-10-15T14:03:41Z",
  "durationSeconds": 216,
  "redacted": false,
  "node": {
    "hostname": "MININT-EXAMPLE", "serialNumber": "EXAMPLE0001", "smbiosUuid": "00000000-0000-0000-0000-000000000001",
    "manufacturer": "Example Vendor", "model": "Example AX Node"
  },
  "context": {
    "region": "eastus", "regionRequested": "East US", "oem": "dell",
    "arcGatewayMode": false, "proxyConfigured": false,
    "categories": [1, 2, 3, 4, 5, 6],
    "endpointSource": "https://github.com/Azure/AzureStack-Tools/blob/master/HCI/EastUSendpoints/eastus-hci-endpoints.md"
  },
  "summary": { "total": 25, "pass": 15, "fail": 1, "warn": 4, "skip": 5, "verdict": "FAIL" },
  "results": [
    {
      "category": "Cat-3-AD",
      "name": "AD-ADWS-192.0.2.10",
      "target": "192.0.2.10:9389",
      "status": "Fail",
      "severity": "critical",
      "detail": "Timeout",
      "durationMs": 5003,
      "remediation": "Allow TCP/9389 from the nodes to the domain controller (ADWS).",
      "source": "https://learn.microsoft.com/azure/azure-local/concepts/firewall-requirements#active-directory"
    }
  ]
}

Fields ​

FieldMeaning
schemaVersionContract version. The major part changes only on breaking changes.
tool.versionBeacon version (one semantic version everywhere: banner, JSON, changelog, release manifest).
tool.releaseTrainAzure Local release the endpoint data and checks target.
runIdNew GUID per run.
startedUtc, finishedUtcUTC, yyyy-MM-ddTHH:mm:ssZ. (Earlier builds wrote local time with a Z.)
nodeHostname and SMBIOS identity. Empty strings when WMI is unavailable.
context.regionRegion key actually used. If it differs from regionRequested, the requested region had no list and eastus was used (also reported as a Warn).
summary.verdictPASS (no Fail), FAIL, or NO_CHECKS.
results[].categoryCat-1-Network, Cat-2-DNS, Cat-3-AD, Cat-4-Endpoints, Cat-5-EnvChecker, Cat-6-Arc.
results[].statusPass, Fail (potential deployment blocker), Warn (review), Skip (not applicable or not provable).
results[].severitycritical, warning, informational, or empty. For endpoint rows it is the severity from the endpoint list.
results[].remediationWhat to change. Empty for Pass and most Skip.
results[].sourceLearn page, endpoint list or validator the requirement comes from.

Environment Checker findings are itemised: one row per non-successful check with the validator's own name, severity, remediation and target resource. A summary row (EnvChecker-Connectivity, EnvChecker-Network) carries the counts.

What is in the file (read before sharing) ​

Results contain IP addresses, domain controller and node names, the Active Directory domain, the node serial number and SMBIOS UUID. Arc results show a masked subscription id (********-****-****-****-********abcd); tokens, tenant ids and full subscription ids are never written.

-Redact (or the redact question in menu option 8) replaces: configured domain, NetBIOS name, cluster, Key Vault, Arc gateway, proxy, DC and node names; the node hostname, serial and SMBIOS UUID; every remaining GUID (<guid>); and every IPv4 address (<ip-1>, <ip-2> ... stable within one document). Review a redacted file before publishing it anyway: free-text details from third-party validators can contain other identifying text.

Validate a file ​

powershell
Test-Json -Json (Get-Content .\validation-20261015-140341.json -Raw) -SchemaFile .\docs\reference\results.schema.json

Copying results off the node ​

Use menu option 8, or Start-AzlValidation.ps1 -ExportTo:

TargetExampleNotes
Drive letterE or E:\folderFiles go to beacon-results on that drive.
SMB share\\server\shareOptional credential for this call only; mapped as a temporary drive.
HTTPShttps://example.com/beaconJSON POST. Plain http:// is refused.

Released under the MIT License.