Expose effective login methods in config requirements (#45495)

## Why

Configuration requirements did not report which login methods the running app server permits after applying managed policy, forced login settings, and workspace restrictions.

## What changed

- Add `allowedLoginMethods` to `configRequirements/read`, using the running authentication manager's effective policy rather than newly read authentication settings.
- Return requirements when login methods are restricted even without managed requirements, while preserving `requirements: null` for the unrestricted default.
- Update protocol schemas and generated TypeScript and Python types. An empty list permits no login method; older servers may omit the field.

## Testing

Add coverage for managed and forced login restrictions, workspace intersections, policy reporting after requirements files change, invalid login methods, and API-only Amazon Bedrock without ChatGPT requests. Extend tests for conflicting authentication requirements and cloud policy precedence.

GitOrigin-RevId: 56c0767a74143e793aac2ac165d0cbe98a09469b
This commit is contained in:
acrognale-oai
2026-09-14 18:57:15 +00:00
committed by copyberry
parent d3812ddbb3
commit a20092a7a2
16 changed files with 355 additions and 31 deletions

View File

@@ -11280,6 +11280,13 @@ class ConfigRequirements(BaseModel):
allowed_approval_policies: Annotated[
list[AskForApproval] | None, Field(alias="allowedApprovalPolicies")
] = None
allowed_login_methods: Annotated[
list[ForcedLoginMethod] | None,
Field(
alias="allowedLoginMethods",
description="Effective login methods after managed, forced-login, and workspace restrictions. An empty list permits no login method. Older servers may omit this field.",
),
] = None
allowed_permission_profiles: Annotated[
dict[str, Any] | None, Field(alias="allowedPermissionProfiles")
] = None