Skip to content

Releases: SAP/cloud-sdk-python

v0.23.1 - June 03, 2026

03 Jun 12:51
4b50671

Choose a tag to compare

Improvements

Upgrade traceloop-sdk and OpenTelemetry dependencies

  • traceloop-sdk: 0.54.0 → 0.61.0
  • opentelemetry-api / opentelemetry-sdk: >=1.28.0 → >=1.42.1
  • opentelemetry-exporter-otlp-proto-grpc / opentelemetry-exporter-otlp-proto-http: 1.41.0 → 1.42.1
  • Removed wrapt<2 constraint: the traceloop-sdk upgrade 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

02 Jun 12:51
6ddcff6

Choose a tag to compare

What's New

  • Agent Gateway token cache: AgentGatewayClient now maintains an in-memory _TokenCache (system tokens) and _GatewayUrlCache (gateway URLs) per instance. Repeated calls to get_system_auth and get_user_auth reuse valid tokens without a new network request, eliminating redundant token fetches in agentic loops.
  • New ClientConfig fields for controlling cache behaviour (all backwards-compatible with defaults):
    • fallback_token_ttl_seconds (default 300.0): cache TTL when a token response provides no expiry metadata.
    • token_expiry_buffer_seconds (default 30.0): safety buffer subtracted from explicit token expiries before a cached token is reused.
    • max_system_token_cache_size (default 32): LRU cap for cached system tokens per client instance.
    • max_user_token_cache_size (default 256): LRU cap for cached exchanged user tokens per client instance.

Contributors

v0.22.0 - May 29, 2025

29 May 14:35
6b328db

Choose a tag to compare

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.
  • AuthResult dataclass — new public model (sap_cloud_sdk.agentgateway.AuthResult) with two fields: access_token (raw JWT, no Bearer prefix) and gateway_url (Agent Gateway base URL, no trailing slash).
  • get_ias_user_fragment_name in _lob.py — automatic discovery of the subscriber.ias.user destination fragment for token exchange, removing the need to pass the fragment name through the call stack.
  • Two new telemetry operations: AGENTGATEWAY_GET_SYSTEM_AUTH and AGENTGATEWAY_GET_USER_AUTH.
  • Integration test suite for Agent Gateway auth methods (BDD scenarios using pytest-bdd).

Contributors

v0.21.1 - May 27, 2026

27 May 20:06
9fb1c8b

Choose a tag to compare

Bug Fixes

  • Secret resolver - servicebinding.io flat path support (sap_cloud_sdk.core.secret_resolver):
    When SERVICE_BINDING_ROOT is set in the environment, read_from_mount_and_fallback_to_env_var now 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. When SERVICE_BINDING_ROOT is 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

27 May 19:36
63d7ccc

Choose a tag to compare

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

27 May 14:33
08466b2

Choose a tag to compare

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_CLIENT telemetry on AuditClient.__init__, covering both create_client() and direct AuditClient(config=...) instantiation paths.
  • Preserve factory-level error telemetry for configuration failures before client construction.
  • Extend record_metrics source detection to read _telemetry_source from constructor kwargs when needed.

Related

v0.20.1 - May 26, 2025

26 May 18:56
747766c

Choose a tag to compare

Breaking Changes

  • Removed add_extension_integration_dependencies (sap_cloud_sdk.extensibility):
    The function add_extension_integration_dependencies(document, local_tenant_id, ext_client) has
    been removed from the public API and is no longer importable from sap_cloud_sdk.extensibility.
    The entire _ord_integration internal module has been deleted.

    Migration: Remove any usage of add_extension_integration_dependencies from your ORD
    implementation — it is no longer necessary for extensibility.

Contributors

v0.20.0

26 May 14:53
f9a51d8

Choose a tag to compare

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 the CLOUD_SDK_CFG environment variable.
    • DataAnonymizationClient with four typed operations:
      • anonymize_text(AnonymizeTextRequest)AnonymizeResult
      • anonymize_file(AnonymizeFileRequest)FileOperationResult
      • pseudonymize_text(PseudonymizeTextRequest)PseudonymizeResult
      • pseudonymize_file(PseudonymizeFileRequest)FileOperationResult
    • Backward-compatible aliases anonymize() and pseudonymize() on both the client and the transport layer.
    • HttpTransport with mTLS client-certificate authentication; automatically materializes inline base64 PEM values to temporary files and cleans them up on close().
    • Operation-level telemetry via @record_metrics; request and response payloads are never attached to telemetry attributes.
  • Telemetry registry extended:

    • Module.DATA_ANONYMIZATION added to core/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

21 May 13:28
001c927

Choose a tag to compare

Bug Fixes

  • Extensibility UMS destination lookup: Use ConsumptionLevel.PROVIDER_SUBACCOUNT for UMS destination lookup, avoiding invalid @SUB_ACCOUNT path 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).

Contributors

v0.19.2 - May 20, 2026

20 May 19:11
3d8a7db

Choose a tag to compare

Improvements

  • Dependency updates since v0.19.1:
    • Bump idna from 3.10 to 3.15 (#127)
    • Bump urllib3 from 2.6.3 to 2.7.0 (#105)
    • Bump mako from 1.3.11 to 1.3.12 (#96)
    • Bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 in CI workflow (#86)

Contributors