Skip to content

Transformation Function SDK

Version 2.0.0 (tag v2.0.0, 2026-10-23)
Artefact Python package openop-tfsdk==2.0.0 in the ETSI GitLab package registry
Specs tf-sdk/
Support matrix TF-SDK support matrix for Release 2.0.0
Changes v1.0.0-release...v2.0.0

The Transformation Function SDK (TF-SDK) is the Python library that SRM uses to carry out one resolved operation on one backend, such as a Kubernetes cluster or a 5G core NEF. It returns a normalized result or a typed error. It runs inside SRM, not as a service.

New in this release

  • Contract package openop_tfsdk.contract. Every adapter offers the same execution methods (activate, update, terminate, query, read_runtime_state), chosen by capability kind. capability_surface() reports what each adapter supports.
  • Topology discovery through a separate read-only interface (get_zones, get_domains, get_capabilities, get_control_path_bindings).
  • Control-path bootstrap. One file declares every control path and its connection. An adapter only accepts requests addressed to its own control path.
  • Adapters:
adapter_type Backend Capability kinds
kubernetes Kubernetes, through Helm workload (Helm chart or single container)
oai EURECOM NEF qod_session, traffic_influence, location_context
open5gs Open5GS NEF qod_session, location_context
open5gcore Open5GCore NEF qod_session

The i2edge and i2cat_ric clients are still shipped but advertise no capabilities in this release.

Breaking changes

  • New name. The package sunrise6g-opensdk (sunrise6g_opensdk) is now openop-tfsdk (openop_tfsdk), published in the ETSI registry, not on PyPI:

    pip install openop-tfsdk==2.0.0 \
      --index-url https://labs.etsi.org/rep/api/v4/projects/396/packages/pypi/simple
    
  • Python 3.10 to 3.13.

  • SRM uses the contract, not the per-domain clients. Callers of the old clients must move to the contract interfaces.
  • Kubernetes connections are explicit: a kubeconfig, context and namespace, or in-cluster mode with a namespace. Kubeconfig credential plugins are rejected.
  • No implicit defaults. OAI QoD profiles are set per control path, and a bootstrap file that is not a mapping is rejected.
  • Field renames. In the Traffic Influence request the oai adapter sends to the NEF, the field appInstanceId is appServerIp (the CAMARA API still uses appInstanceId); container resources are cpu_millicores and memory_mb, both optional.

Upgrade notes

Upgrade TF-SDK, SRM and the SRM chart values together: SRM 2.0.0 pins openop-tfsdk==2.0.0.

Known limitations

  • No can_serve_target. SRM cannot choose between several backends of the same capability kind, so keep one network domain per kind unless requests name a zone and domain.
  • Lab coverage. The release lab tests kubernetes and oai; open5gs and open5gcore are not tested by it. See the support matrix.
  • The repository README still shows the 1.x support matrix. Use the support matrix above.