airbyte_ops_mcp.mcp.cloud_auth
Shared Cloud API authentication resolution for MCP wrappers.
1"""Shared Cloud API authentication resolution for MCP wrappers.""" 2 3from fastmcp import Context 4from fastmcp_extensions import get_mcp_config 5 6from airbyte_ops_mcp.cloud_admin.auth import CloudAuthError 7from airbyte_ops_mcp.cloud_admin.version_overrides import ResolvedCloudAuth 8from airbyte_ops_mcp.constants import ServerConfigKey 9 10 11def resolve_cloud_auth(ctx: Context) -> ResolvedCloudAuth: 12 """Resolve Cloud API credentials from MCP transport configuration.""" 13 bearer_token = get_mcp_config(ctx, ServerConfigKey.BEARER_TOKEN) 14 if bearer_token: 15 return ResolvedCloudAuth(bearer_token=bearer_token) 16 17 try: 18 return ResolvedCloudAuth( 19 client_id=get_mcp_config(ctx, ServerConfigKey.CLIENT_ID), 20 client_secret=get_mcp_config(ctx, ServerConfigKey.CLIENT_SECRET), 21 ) 22 except ValueError as e: 23 raise CloudAuthError( 24 f"Failed to resolve credentials. Ensure credentials are provided via " 25 "Authorization header (Bearer token), HTTP headers " 26 "(X-Airbyte-Cloud-Client-Id, X-Airbyte-Cloud-Client-Secret), or " 27 f"environment variables. Error: {e}" 28 ) from e
def
resolve_cloud_auth( ctx: fastmcp.server.context.Context) -> airbyte_ops_mcp.cloud_admin.version_overrides.ResolvedCloudAuth:
12def resolve_cloud_auth(ctx: Context) -> ResolvedCloudAuth: 13 """Resolve Cloud API credentials from MCP transport configuration.""" 14 bearer_token = get_mcp_config(ctx, ServerConfigKey.BEARER_TOKEN) 15 if bearer_token: 16 return ResolvedCloudAuth(bearer_token=bearer_token) 17 18 try: 19 return ResolvedCloudAuth( 20 client_id=get_mcp_config(ctx, ServerConfigKey.CLIENT_ID), 21 client_secret=get_mcp_config(ctx, ServerConfigKey.CLIENT_SECRET), 22 ) 23 except ValueError as e: 24 raise CloudAuthError( 25 f"Failed to resolve credentials. Ensure credentials are provided via " 26 "Authorization header (Bearer token), HTTP headers " 27 "(X-Airbyte-Cloud-Client-Id, X-Airbyte-Cloud-Client-Secret), or " 28 f"environment variables. Error: {e}" 29 ) from e
Resolve Cloud API credentials from MCP transport configuration.