{
  "schema": 1,
  "sqlstate": "0P000",
  "condition_name": "invalid_role_specification",
  "sources": [
    {
      "id": "src.errcodes.18.6",
      "kind": "upstream_source",
      "source_role": "condition_definition",
      "tag": "REL_18_6",
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "path": "src/backend/utils/errcodes.txt",
      "sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt"
    },
    {
      "id": "src.calls.REL_18_6",
      "kind": "local_artifact",
      "source_role": "source_call_scan",
      "sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf",
      "tag": "REL_18_6"
    },
    {
      "id": "src.calls.REL_10_23",
      "kind": "local_artifact",
      "source_role": "source_call_scan",
      "sha256": "00d16d3eb01b71ccf1b245c8f3102f9d0ec9f36fb02777b8dd1b99fcb263040c",
      "tag": "REL_10_23"
    },
    {
      "id": "src.auth-name-translation.18.6",
      "kind": "upstream_source",
      "source_role": "source_path",
      "tag": "REL_18_6",
      "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
      "path": "src/backend/libpq/auth.c",
      "sha256": "94252cb1e2c49b0ddb15f6596d0abf8056c84493de07cc81439da4c5b07018f1",
      "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/libpq/auth.c#L1514-L1516"
    },
    {
      "id": "src.auth-name-translation.10.23",
      "kind": "upstream_source",
      "source_role": "source_path",
      "tag": "REL_10_23",
      "commit": "02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4",
      "path": "src/backend/libpq/auth.c",
      "sha256": "15418faa6d6ee1b2a4ad1e50ebc9b34c2daf4799f7062df425e33dbf777ade61",
      "url": "https://github.com/postgres/postgres/blob/02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4/src/backend/libpq/auth.c#L1699-L1701"
    },
    {
      "id": "src.auth-sspi-upn.10.23",
      "kind": "upstream_source",
      "source_role": "source_path",
      "tag": "REL_10_23",
      "commit": "02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4",
      "path": "src/backend/libpq/auth.c",
      "sha256": "15418faa6d6ee1b2a4ad1e50ebc9b34c2daf4799f7062df425e33dbf777ade61",
      "url": "https://github.com/postgres/postgres/blob/02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4/src/backend/libpq/auth.c#L1666-L1758"
    },
    {
      "id": "manifest.0P000",
      "kind": "local_artifact",
      "source_role": "case_manifest",
      "sha256": "2460d980be19d06e88766a7907f6f3a301ae4786dcab8c019736a904116aadc4",
      "tag": "workspace"
    }
  ],
  "claims": [
    {
      "id": "identity.class-and-condition",
      "statement": "0P000 is the invalid_role_specification condition in Class 0P.",
      "method": "Read the fixed errcodes.txt definition and the locked catalogue metadata.",
      "limits": "Directory identity does not identify every backend or client path.",
      "sources": [
        "src.errcodes.18.6"
      ]
    },
    {
      "id": "mechanism.source-boundary",
      "statement": "Under ENABLE_SSPI, the fixed pg_SSPI_make_upn path builds a DOMAIN\\user SAM name, calls Windows TranslateName to obtain a user@realm UPN, and logs 0P000 when translation fails, the result has no @, or the realm or translated account exceeds its target buffer. These are server LOG branches, not client ErrorResponse fields.",
      "method": "Read the complete fixed SSPI authentication and pg_SSPI_make_upn paths in REL_18_6 and REL_10_23, including each explicit LOG branch.",
      "limits": "This is a bounded source claim under ENABLE_SSPI; the disposable trust target cannot faithfully exercise it, and it is not an observed natural SQLSTATE case.",
      "sources": [
        "src.auth-name-translation.18.6",
        "src.auth-name-translation.10.23",
        "src.auth-sspi-upn.10.23"
      ]
    },
    {
      "id": "versions.catalogue-boundary",
      "statement": "The locked catalogue records 0P000 in the listed snapshots; this page compares only the fixed REL_18_6 and REL_10_23 SSPI source paths and has no selected natural runtime.",
      "method": "Read the generated facts block and fixed SSPI source records; no runtime result is used for this source-only page.",
      "limits": "Presence in a definition file is not an exact behavioral introduction, and the fixed source paths do not prove every intermediate release or authentication configuration.",
      "sources": [
        "src.errcodes.18.6",
        "src.auth-name-translation.18.6",
        "src.auth-sspi-upn.10.23"
      ]
    }
  ],
  "messages": [
    {
      "id": "message.auth-name-translation",
      "sqlstate": "0P000",
      "severity_source": "LOG",
      "sources": [
        "src.auth-name-translation.18.6",
        "src.auth-name-translation.10.23",
        "src.auth-sspi-upn.10.23"
      ],
      "primary_template": "could not translate name"
    },
    {
      "id": "message.auth-sspi-realm-too-long",
      "sqlstate": "0P000",
      "severity_source": "explicit LOG",
      "sources": [
        "src.auth-sspi-upn.10.23"
      ],
      "primary_template": "realm name too long"
    },
    {
      "id": "message.auth-sspi-account-too-long",
      "sqlstate": "0P000",
      "severity_source": "explicit LOG",
      "sources": [
        "src.auth-sspi-upn.10.23"
      ],
      "primary_template": "translated account name too long"
    }
  ],
  "usage_evidence": [
    {
      "scope": "SQLSTATE directory identity",
      "status": "definition_only",
      "evidence_ids": [
        "identity.class-and-condition",
        "src.errcodes.18.6"
      ]
    },
    {
      "scope": "Fixed source or definition boundary",
      "status": "source_path_confirmed",
      "evidence_ids": [
        "mechanism.source-boundary",
        "src.auth-name-translation.18.6",
        "src.auth-name-translation.10.23",
        "src.auth-sspi-upn.10.23"
      ]
    },
    {
      "scope": "Locked release presence and bounded version comparison",
      "status": "definition_only",
      "evidence_ids": [
        "versions.catalogue-boundary",
        "src.errcodes.18.6"
      ]
    }
  ],
  "runtime": []
}
