Skip to content

v0.26.0 - June 11, 2026

Choose a tag to compare

@ArthurTonial ArthurTonial released this 11 Jun 16:51
· 18 commits to main since this release
9e39c4c

What's New

  • sap_cloud_sdk.adms module — full-featured sync and async Python client for the SAP Advanced Document Management Service (ADM), backed by IAS X.509 client-credentials authentication and OData V4.

    Clients

    • AdmsClient (sync) and AsyncAdmsClient (async) with sub-namespaces documents, relations, jobs, and config
    • create_client() / create_async_client() factories that load IAS bindings from a mounted secret volume with CLOUD_SDK_CFG_ADMS_DEFAULT_* environment-variable fallback

    Document API

    • Document CRUD: create, get, update, delete
    • Content download URL generation; scan-state handling (PENDING / CLEAN / INFECTED)
    • get_all() transparently queries DocumentRelation?$expand=Document (the ADM service has no top-level Document collection)
    • update() returns the full entity (follows up with a GET after UpdateDocument)
    • Fields: DocumentStateText, DocumentContentHash; size fields typed as int

    DocumentRelation API

    • Full draft lifecycle: create_draft, validate_draft, activate_draft, discard_draft
    • delete_business_object_node — removes all relations for a BO node (requires system-user scope)
    • get_change_logs() and get_bo_node_change_logs() — read-only audit trails
    • New model: DraftAdministrativeData (returned by draft lifecycle responses)
    • New fields: is_active_entity, has_active_entity, has_draft_entity, document_relation_is_output_relevant, draft_messages, doc_relation_changed_by_user_name, doc_relation_changed_at_date_time

    Configuration API

    • AllowedDomain, DocumentType, BusinessObjectNodeType, DocumentTypeBusinessObjectTypeMap: full CRUD including get_by_id and update (PATCH)
    • FileExtensionPolicy CRUD: get_all, create, get, delete
    • ApplicationTenant CRUD: get_all, create, get, delete
    • mark_default(mapping_id) — sets a DocType↔BOType map as default

    Jobs API

    • ZIP_DOWNLOAD and DELETE_USER_DATA job orchestration via AdminService
    • get_status sync/async parity — both accept use_admin_service parameter

    OData query options — tiered dataclasses replace scattered keyword arguments:

    • ConfigQueryOptions (filter, top, skip)
    • RelationQueryOptions (+ select, expand)
    • DocumentQueryOptions (+ orderby)

    Authentication & token cache

    • IasTokenFetcherclient_credentials (cached) and jwt-bearer OBO (intentionally not cached; OBO tokens are user-scoped and must not be shared across pods)
    • Pluggable TokenCache protocol with InMemoryTokenCache (thread-safe); TokenCache and InMemoryTokenCache exported from sap_cloud_sdk.adms

Contributors