{
  "schemaVersion": 1,
  "methodology": "https://ionbin.com/interfaces/methodology/#evaluations",
  "evaluation": {
    "id": "google-cloud-cli",
    "testedOn": "2026-10-18",
    "coverage": "local-runtime",
    "summary": "The CLI stored and read a synthetic project setting, rejected an invalid project identifier and reported an empty authentication list. No Google Cloud resource or IAM permission was tested.",
    "identity": {
      "version": "589.0.0 (core 2026.10.09)",
      "target": "Official Google Cloud CLI Windows x64 archive; existing Python 3.12.10 interpreter",
      "integrity": "SHA-256 1458a138e05a2e1c9efb5ff0d501289fcf8a747746f643bab4c9a8dd95360baf of the official downloaded gcloud.zip artifact."
    },
    "environment": [
      "Windows 11 x64; Python 3.12.10 harness. Raw timestamps UTC.",
      "Fresh per-tool home/config/cache; child environment constructed from OS/runtime paths, explicit isolation variables and no inherited credentials. Synthetic fixtures only; no user account sign-in."
    ],
    "checks": [
      {
        "id": "google-cloud-cli-version",
        "name": "Downloaded version",
        "method": "<python-install>\\python.exe <evaluation>\\downloads\\cli\\gcloud\\google-cloud-sdk\\lib\\gcloud.py version --format=json",
        "expected": "Print the pinned Cloud SDK version.",
        "observed": "Exit 0. {\r\n  \"Google Cloud SDK\": \"589.0.0\",\r\n  \"bq\": \"2.1.40\",\r\n  \"core\": \"2026.10.09\",\r\n  \"gcloud-crc32c\": \"1.0.0\",\r\n  \"gsutil\": \"5.37\"\r\n}",
        "outcome": "pass"
      },
      {
        "id": "google-cloud-cli-set-project",
        "name": "Set isolated project property",
        "method": "<python-install>\\python.exe <evaluation>\\downloads\\cli\\gcloud\\google-cloud-sdk\\lib\\gcloud.py config set project ionbin-synthetic-project --quiet",
        "expected": "Store the synthetic project ID locally.",
        "observed": "Exit 0. Updated property [core/project].",
        "outcome": "pass"
      },
      {
        "id": "google-cloud-cli-config-list",
        "name": "Read isolated project property",
        "method": "<python-install>\\python.exe <evaluation>\\downloads\\cli\\gcloud\\google-cloud-sdk\\lib\\gcloud.py config list --format=json",
        "expected": "Return core.project=ionbin-synthetic-project.",
        "observed": "Exit 0. JSON contained core.project=ionbin-synthetic-project, disable_usage_reporting=true and disable_update_check=true.",
        "outcome": "pass"
      },
      {
        "id": "google-cloud-cli-auth-empty",
        "name": "Empty authentication list",
        "method": "<python-install>\\python.exe <evaluation>\\downloads\\cli\\gcloud\\google-cloud-sdk\\lib\\gcloud.py auth list --format=json",
        "expected": "Return an empty local account list.",
        "observed": "Exit 0. []",
        "outcome": "pass"
      },
      {
        "id": "google-cloud-cli-invalid-project",
        "name": "Reject malformed project identifier",
        "method": "<python-install>\\python.exe <evaluation>\\downloads\\cli\\gcloud\\google-cloud-sdk\\lib\\gcloud.py config set project \"INVALID PROJECT\" --quiet",
        "expected": "Reject INVALID PROJECT as an invalid project ID.",
        "observed": "Exit 1. The project property must be set to a valid project ID, not the project name [INVALID PROJECT].",
        "outcome": "pass"
      }
    ],
    "findings": [
      {
        "title": "A project setting does not establish project access",
        "basis": "observed",
        "severity": "informational",
        "detail": "Setting and listing ionbin-synthetic-project succeeded while auth list returned an empty array. This changes local routing context only; the project was not created or contacted as a resource.",
        "practicalAdvice": "Check the selected account, project and permissions before resource operations; use separate named configurations for separate environments."
      },
      {
        "title": "Configuration boundaries matter in automation",
        "basis": "documented",
        "severity": "informational",
        "detail": "CLOUDSDK_CONFIG redirected the test state into the fixture. Google documents named configurations and property overrides, so the active configuration is part of the execution context.",
        "practicalAdvice": "Make configuration/account/project explicit in scripts and review environment overrides before running them."
      }
    ],
    "caveats": [
      "The archive used an existing Python interpreter; bundled-Python installation and component updates were not evaluated.",
      "Local identifier validation does not verify that the project exists or that an account may access it."
    ],
    "notTested": [
      "OAuth/service-account/ADC authentication, IAM enforcement, organization policies and impersonation.",
      "Cloud resource reads/writes, deployment, storage transfers, billing and remote API failures."
    ],
    "sources": [
      {
        "label": "Official documentation",
        "url": "https://docs.cloud.google.com/sdk/docs/overview"
      },
      {
        "label": "Configuration isolation and switching",
        "url": "https://docs.cloud.google.com/sdk/docs/configurations"
      }
    ],
    "reportUrl": "/interface-evaluations/google-cloud-cli.json"
  }
}
