Releases: SAP/cloud-sdk-python
v0.23.1 - June 03, 2026
Improvements
Upgrade traceloop-sdk and OpenTelemetry dependencies
traceloop-sdk: 0.54.0 → 0.61.0opentelemetry-api/opentelemetry-sdk: >=1.28.0 → >=1.42.1opentelemetry-exporter-otlp-proto-grpc/opentelemetry-exporter-otlp-proto-http: 1.41.0 → 1.42.1- Removed
wrapt<2constraint: thetraceloop-sdkupgrade resolves the upstream incompatibility with wrapt 2.x that previously caused the LangChain instrumentor to fail at import time
Contributors
v0.23.0 - June 02, 2026
What's New
- Agent Gateway token cache:
AgentGatewayClientnow maintains an in-memory_TokenCache(system tokens) and_GatewayUrlCache(gateway URLs) per instance. Repeated calls toget_system_authandget_user_authreuse valid tokens without a new network request, eliminating redundant token fetches in agentic loops. - New
ClientConfigfields for controlling cache behaviour (all backwards-compatible with defaults):fallback_token_ttl_seconds(default300.0): cache TTL when a token response provides no expiry metadata.token_expiry_buffer_seconds(default30.0): safety buffer subtracted from explicit token expiries before a cached token is reused.max_system_token_cache_size(default32): LRU cap for cached system tokens per client instance.max_user_token_cache_size(default256): LRU cap for cached exchanged user tokens per client instance.
Contributors
v0.22.0 - May 29, 2025
What's New
AgentGatewayClient.get_system_auth(app_tid=None) -> AuthResult— new public method to acquire a system-scoped (client credentials) token independently of tool listing or invocation. Works for both LoB and Customer agent flows.AgentGatewayClient.get_user_auth(user_token, app_tid=None) -> AuthResult— new public method to perform a user token exchange and retrieve a user-scoped token. Works for both LoB and Customer agent flows.AuthResultdataclass — new public model (sap_cloud_sdk.agentgateway.AuthResult) with two fields:access_token(raw JWT, noBearerprefix) andgateway_url(Agent Gateway base URL, no trailing slash).get_ias_user_fragment_namein_lob.py— automatic discovery of thesubscriber.ias.userdestination fragment for token exchange, removing the need to pass the fragment name through the call stack.- Two new telemetry operations:
AGENTGATEWAY_GET_SYSTEM_AUTHandAGENTGATEWAY_GET_USER_AUTH. - Integration test suite for Agent Gateway auth methods (BDD scenarios using
pytest-bdd).
Contributors
v0.21.1 - May 27, 2026
Bug Fixes
- Secret resolver - servicebinding.io flat path support (
sap_cloud_sdk.core.secret_resolver):
WhenSERVICE_BINDING_ROOTis set in the environment,read_from_mount_and_fallback_to_env_varnow tries the flat two-level path$ROOT/<module>/<field>first (as required by the servicebinding.io spec), before falling back to the legacy three-level path$ROOT/<module>/<instance>/<field>, and then to environment variables. WhenSERVICE_BINDING_ROOTis not set, behaviour is unchanged.
All SDK modules backed by the secret resolver (Agent Memory, Audit Log, Destination, Object Store, DMS) benefit from this fix automatically.
Contributors
- Application Foundation Toolkit Libraries Team
v0.21.0 - May 27, 2025
What's New
- DestinationHttpClient: simplify calls to target systems handling auth tokens, URL.headers.* properties, and ERP headers (sap-client,
sap-language) automatically. - get_headers() on Destination: returns all headers that should be forwarded to the target system, including
ERP-specific headers (sap-client, sap-language) and any URL.headers.* properties. - get_instance_destination() and get_subaccount_destination() are now deprecated in favor of get_destination(), which
fetches the destination via the v2 API.
Contributors
- Application Foundation Toolkit Libraries Team
v0.20.2 - May 27, 2025
Summary
Patch release that improves ALS v3 (auditlog_ng) module-usage telemetry so the capability metric is recorded when AuditClient is initialized, not only when create_client() is used.
Changes
- Record
AUDITLOG_CREATE_CLIENTtelemetry onAuditClient.__init__, covering bothcreate_client()and directAuditClient(config=...)instantiation paths. - Preserve factory-level error telemetry for configuration failures before client construction.
- Extend
record_metricssource detection to read_telemetry_sourcefrom constructor kwargs when needed.
Related
v0.20.1 - May 26, 2025
Breaking Changes
-
Removed
add_extension_integration_dependencies(sap_cloud_sdk.extensibility):
The functionadd_extension_integration_dependencies(document, local_tenant_id, ext_client)has
been removed from the public API and is no longer importable fromsap_cloud_sdk.extensibility.
The entire_ord_integrationinternal module has been deleted.Migration: Remove any usage of
add_extension_integration_dependenciesfrom your ORD
implementation — it is no longer necessary for extensibility.
Contributors
v0.20.0
What's New
-
Data Anonymization module (
sap_cloud_sdk.core.data_anonymization): SDK module for the SAP Data Anonymization Service.create_client()factory with automatic credential detection from the secret mount (/etc/secrets/appfnd) or theCLOUD_SDK_CFGenvironment variable.DataAnonymizationClientwith four typed operations:anonymize_text(AnonymizeTextRequest)→AnonymizeResultanonymize_file(AnonymizeFileRequest)→FileOperationResultpseudonymize_text(PseudonymizeTextRequest)→PseudonymizeResultpseudonymize_file(PseudonymizeFileRequest)→FileOperationResult
- Backward-compatible aliases
anonymize()andpseudonymize()on both the client and the transport layer. HttpTransportwith mTLS client-certificate authentication; automatically materializes inline base64 PEM values to temporary files and cleans them up onclose().- Operation-level telemetry via
@record_metrics; request and response payloads are never attached to telemetry attributes.
-
Telemetry registry extended:
Module.DATA_ANONYMIZATIONadded tocore/telemetry/module.py.- Five new operations added to
core/telemetry/operation.py:DATA_ANONYMIZATION_CREATE_CLIENT,DATA_ANONYMIZATION_ANONYMIZE_TEXT,DATA_ANONYMIZATION_ANONYMIZE_FILE,DATA_ANONYMIZATION_PSEUDONYMIZE_TEXT,DATA_ANONYMIZATION_PSEUDONYMIZE_FILE.
Contributors
- venkateshkasiraj
v0.19.3 - May 21, 2026
Bug Fixes
- Extensibility UMS destination lookup: Use
ConsumptionLevel.PROVIDER_SUBACCOUNTfor UMS destination lookup, avoiding invalid@SUB_ACCOUNTpath values rejected by the Destination Service V2 API (#132, supersedes #128).
Improvements
- Telemetry extension tool calls: Remove the prefixed tool name convention from extension tool calls and use raw tool names for source mapping and MCP tool invocation (#132, supersedes #115).