From e22a8fab588ebfcf4440b9795b77db0d3e7bd037 Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Mon, 31 Aug 2026 14:54:29 +0530 Subject: [PATCH 01/13] Add SAP HANA client JAR staging support When SAP_HANA_CLIENT_ENABLED is set to a non-empty value, the buildpack fetches ngdbc.jar from Maven Central and places it in model/lib/userlib/ so the Mendix runtime can load it via the project-userlib classpath. SAP_HANA_CLIENT_URL can be set to override the default Maven Central URL (e.g. to point to a CDN-hosted version or a different ngdbc version). Co-Authored-By: Claude Sonnet 4.6 --- buildpack/core/runtime.py | 41 +++++++++++++++++++++++++++++++++++++++ buildpack/stage.py | 1 + dependencies.yml | 5 +++++ 3 files changed, 47 insertions(+) diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index c6e047f83..2794265ea 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -57,6 +57,47 @@ def is_version_maintained(version): return False +SAP_HANA_CLIENT_ENABLED_KEY = "SAP_HANA_CLIENT_ENABLED" +SAP_HANA_CLIENT_URL_KEY = "SAP_HANA_CLIENT_URL" +_SAP_HANA_CLIENT_DEPENDENCY = "sap.hana.client" + + +def is_sap_hana_client_enabled(): + return bool(os.environ.get(SAP_HANA_CLIENT_ENABLED_KEY, "").strip()) + + +def stage_hana_client(buildpack_dir, build_dir, cache_dir): + if not is_sap_hana_client_enabled(): + return + + logging.debug("Staging SAP HANA client JAR...") + dest = os.path.join(build_dir, "model", "lib", "userlib") + util.mkdir_p(dest) + + custom_url = os.environ.get(SAP_HANA_CLIENT_URL_KEY, "").strip() + if custom_url: + dependency = { + "name": ["sap", "hana", "client"], + "artifact": custom_url, + } + util.resolve_dependency( + dependency, + dest, + buildpack_dir=buildpack_dir, + cache_dir=cache_dir, + unpack=False, + ) + else: + util.resolve_dependency( + _SAP_HANA_CLIENT_DEPENDENCY, + dest, + buildpack_dir=buildpack_dir, + cache_dir=cache_dir, + unpack=False, + ) + logging.info("SAP HANA client JAR staged to [%s]", dest) + + def stage(buildpack_dir, build_path, cache_path): logging.debug("Creating directory structure for Mendix runtime...") for name in ["runtimes", "log", "database", "data", "bin"]: diff --git a/buildpack/stage.py b/buildpack/stage.py index 2f37be179..34147a5c2 100755 --- a/buildpack/stage.py +++ b/buildpack/stage.py @@ -217,6 +217,7 @@ def cleanup_dependency_cache(cached_dir, dependency_list): metering.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) database.stage(BUILDPACK_DIR, BUILD_DIR) runtime.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) + runtime.stage_hana_client(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) logs.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) nginx.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) logging.info("Mendix Cloud Foundry Buildpack staging completed") diff --git a/dependencies.yml b/dependencies.yml index 2fb38101f..1ba3caff4 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -88,6 +88,11 @@ dependencies: commit: 5fed98f8 fs: cflinuxfs4 version: 3.2.2 + sap: + hana: + client: + artifact: "https://repo1.maven.org/maven2/com/sap/cloud/db/jdbc/ngdbc/{{ version }}/ngdbc-{{ version }}.jar" + version: "2.27.7" telegraf: agent: artifact: telegraf/telegraf-{{ version }}_linux_amd64.tar.gz From ae5810516351d374d760787c4fb6544b318f6503 Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Mon, 31 Aug 2026 15:01:21 +0530 Subject: [PATCH 02/13] Handle staging failure gracefully and log JAR version If fetching the HANA client JAR fails, log a warning and continue deployment instead of failing the staging process. Also log the JAR filename (including version) and destination path on success. Co-Authored-By: Claude Sonnet 4.6 --- buildpack/core/runtime.py | 42 +++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index 2794265ea..d42f76aac 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -70,16 +70,23 @@ def stage_hana_client(buildpack_dir, build_dir, cache_dir): if not is_sap_hana_client_enabled(): return - logging.debug("Staging SAP HANA client JAR...") - dest = os.path.join(build_dir, "model", "lib", "userlib") - util.mkdir_p(dest) - - custom_url = os.environ.get(SAP_HANA_CLIENT_URL_KEY, "").strip() - if custom_url: - dependency = { - "name": ["sap", "hana", "client"], - "artifact": custom_url, - } + try: + logging.debug("Staging SAP HANA client JAR...") + dest = os.path.join(build_dir, "model", "lib", "userlib") + util.mkdir_p(dest) + + custom_url = os.environ.get(SAP_HANA_CLIENT_URL_KEY, "").strip() + if custom_url: + dependency = { + "name": ["sap", "hana", "client"], + "artifact": custom_url, + } + jar_name = custom_url.split("/")[-1] + else: + dependency = _SAP_HANA_CLIENT_DEPENDENCY + dep = util.get_dependency(_SAP_HANA_CLIENT_DEPENDENCY, buildpack_dir=buildpack_dir) + jar_name = "ngdbc-{}.jar".format(dep["version"]) + util.resolve_dependency( dependency, dest, @@ -87,15 +94,16 @@ def stage_hana_client(buildpack_dir, build_dir, cache_dir): cache_dir=cache_dir, unpack=False, ) - else: - util.resolve_dependency( - _SAP_HANA_CLIENT_DEPENDENCY, + logging.info( + "SAP HANA client JAR [%s] staged to [%s]", + jar_name, dest, - buildpack_dir=buildpack_dir, - cache_dir=cache_dir, - unpack=False, ) - logging.info("SAP HANA client JAR staged to [%s]", dest) + except Exception: + logging.warning( + "Failed to stage SAP HANA client JAR, continuing deployment...", + exc_info=True, + ) def stage(buildpack_dir, build_path, cache_path): From 844c93cec7f365998a9ccfbfe95cf64e22fdf3cc Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Tue, 1 Sep 2026 12:15:14 +0530 Subject: [PATCH 03/13] Use Mendix Nexus proxy for SAP HANA client JAR Co-Authored-By: Claude Sonnet 4.6 --- dependencies.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.yml b/dependencies.yml index 1ba3caff4..c02d48b84 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -91,7 +91,7 @@ dependencies: sap: hana: client: - artifact: "https://repo1.maven.org/maven2/com/sap/cloud/db/jdbc/ngdbc/{{ version }}/ngdbc-{{ version }}.jar" + artifact: "https://nexus.rnd.mendix.com/repository/repo1-proxy/com/sap/cloud/db/jdbc/ngdbc/{{ version }}/ngdbc-{{ version }}.jar" version: "2.27.7" telegraf: agent: From 3b367661375832c86284dcf0d1b7e842505f8b9f Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Tue, 1 Sep 2026 16:41:51 +0530 Subject: [PATCH 04/13] Use Mendix CDN for SAP HANA client JAR Co-Authored-By: Claude Sonnet 4.6 --- dependencies.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dependencies.yml b/dependencies.yml index c02d48b84..3337a3eb0 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -91,8 +91,8 @@ dependencies: sap: hana: client: - artifact: "https://nexus.rnd.mendix.com/repository/repo1-proxy/com/sap/cloud/db/jdbc/ngdbc/{{ version }}/ngdbc-{{ version }}.jar" - version: "2.27.7" + artifact: "/mx-cdn/mcdep/sap-hana-client/ngdbc-{{ version }}.jar" + version: "2.29.11" telegraf: agent: artifact: telegraf/telegraf-{{ version }}_linux_amd64.tar.gz From 9d9f109ca8246699c16065fd7d952ef3139d1a5e Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Tue, 1 Sep 2026 16:51:59 +0530 Subject: [PATCH 05/13] Fix SAP HANA client JAR CDN artifact path Co-Authored-By: Claude Sonnet 4.6 --- dependencies.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.yml b/dependencies.yml index 3337a3eb0..7d79a35a9 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -91,7 +91,7 @@ dependencies: sap: hana: client: - artifact: "/mx-cdn/mcdep/sap-hana-client/ngdbc-{{ version }}.jar" + artifact: "ngdbc-{{ version }}.jar" version: "2.29.11" telegraf: agent: From 4ecbf561813fa18b40a989200cda9ae9b2a79ee5 Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Wed, 2 Sep 2026 12:06:32 +0530 Subject: [PATCH 06/13] Update SAP HANA client JAR CDN path to sap-hana-client subdirectory Co-Authored-By: Claude Sonnet 4.6 --- dependencies.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.yml b/dependencies.yml index 7d79a35a9..ad2c21200 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -91,7 +91,7 @@ dependencies: sap: hana: client: - artifact: "ngdbc-{{ version }}.jar" + artifact: "sap-hana-client/ngdbc-{{ version }}.jar" version: "2.29.11" telegraf: agent: From a7e01e483ed189c1d7b5a17cfb6df86195238dd1 Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Wed, 2 Sep 2026 14:09:27 +0530 Subject: [PATCH 07/13] Use private getter functions for SAP HANA client env vars Co-Authored-By: Claude Sonnet 4.6 --- buildpack/core/runtime.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index d42f76aac..76d2f15d2 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -57,17 +57,19 @@ def is_version_maintained(version): return False -SAP_HANA_CLIENT_ENABLED_KEY = "SAP_HANA_CLIENT_ENABLED" -SAP_HANA_CLIENT_URL_KEY = "SAP_HANA_CLIENT_URL" _SAP_HANA_CLIENT_DEPENDENCY = "sap.hana.client" -def is_sap_hana_client_enabled(): - return bool(os.environ.get(SAP_HANA_CLIENT_ENABLED_KEY, "").strip()) +def _is_sap_hana_client_enabled(): + return bool(os.environ.get("SAP_HANA_CLIENT_ENABLED", "").strip()) + + +def _get_sap_hana_client_url(): + return os.environ.get("SAP_HANA_CLIENT_URL", "").strip() def stage_hana_client(buildpack_dir, build_dir, cache_dir): - if not is_sap_hana_client_enabled(): + if not _is_sap_hana_client_enabled(): return try: @@ -75,7 +77,7 @@ def stage_hana_client(buildpack_dir, build_dir, cache_dir): dest = os.path.join(build_dir, "model", "lib", "userlib") util.mkdir_p(dest) - custom_url = os.environ.get(SAP_HANA_CLIENT_URL_KEY, "").strip() + custom_url = _get_sap_hana_client_url() if custom_url: dependency = { "name": ["sap", "hana", "client"], From b18c544535d5b3c8b55032207fc1a1bbe9ca479e Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Wed, 2 Sep 2026 14:16:49 +0530 Subject: [PATCH 08/13] Remove unused SAP_HANA_CLIENT_URL override, simplify stage_hana_client Co-Authored-By: Claude Sonnet 4.6 --- buildpack/core/runtime.py | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index 76d2f15d2..a13d9fb20 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -64,33 +64,17 @@ def _is_sap_hana_client_enabled(): return bool(os.environ.get("SAP_HANA_CLIENT_ENABLED", "").strip()) -def _get_sap_hana_client_url(): - return os.environ.get("SAP_HANA_CLIENT_URL", "").strip() - - def stage_hana_client(buildpack_dir, build_dir, cache_dir): if not _is_sap_hana_client_enabled(): return try: - logging.debug("Staging SAP HANA client JAR...") dest = os.path.join(build_dir, "model", "lib", "userlib") util.mkdir_p(dest) - - custom_url = _get_sap_hana_client_url() - if custom_url: - dependency = { - "name": ["sap", "hana", "client"], - "artifact": custom_url, - } - jar_name = custom_url.split("/")[-1] - else: - dependency = _SAP_HANA_CLIENT_DEPENDENCY - dep = util.get_dependency(_SAP_HANA_CLIENT_DEPENDENCY, buildpack_dir=buildpack_dir) - jar_name = "ngdbc-{}.jar".format(dep["version"]) - + dep = util.get_dependency(_SAP_HANA_CLIENT_DEPENDENCY, buildpack_dir=buildpack_dir) + jar_name = "ngdbc-{}.jar".format(dep["version"]) util.resolve_dependency( - dependency, + _SAP_HANA_CLIENT_DEPENDENCY, dest, buildpack_dir=buildpack_dir, cache_dir=cache_dir, From f684e3c0944f5e43c034a7a867d76bc235d4d1d1 Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Wed, 2 Sep 2026 14:27:19 +0530 Subject: [PATCH 09/13] Rename env var to INCLUDE_SAP_HANA_CLIENT, check for true value explicitly Co-Authored-By: Claude Sonnet 4.6 --- buildpack/core/runtime.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index a13d9fb20..5be3e18b9 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -61,7 +61,7 @@ def is_version_maintained(version): def _is_sap_hana_client_enabled(): - return bool(os.environ.get("SAP_HANA_CLIENT_ENABLED", "").strip()) + return os.environ.get("INCLUDE_SAP_HANA_CLIENT", "").strip().lower() == "true" def stage_hana_client(buildpack_dir, build_dir, cache_dir): From c927cf9fd6af04c88d9ac45fbb6b02a0ee731a28 Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Thu, 3 Sep 2026 12:43:27 +0530 Subject: [PATCH 10/13] Fetch SAP HANA JAR via version.txt from CDN, remove dependency entry Co-Authored-By: Claude Sonnet 4.6 --- buildpack/core/runtime.py | 25 ++++++++++++++----------- buildpack/stage.py | 2 +- dependencies.yml | 5 ----- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index 5be3e18b9..edb8d2148 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -57,29 +57,32 @@ def is_version_maintained(version): return False -_SAP_HANA_CLIENT_DEPENDENCY = "sap.hana.client" +_SAP_HANA_CLIENT_CDN_PREFIX = "/mx-buildpack/sap-hana-client" def _is_sap_hana_client_enabled(): return os.environ.get("INCLUDE_SAP_HANA_CLIENT", "").strip().lower() == "true" -def stage_hana_client(buildpack_dir, build_dir, cache_dir): +def _get_hana_jar_name(): + import requests as req + + version_url = util.get_blobstore_url(f"{_SAP_HANA_CLIENT_CDN_PREFIX}/version.txt") + resp = req.get(version_url, timeout=10) + resp.raise_for_status() + return f"ngdbc-{resp.text.strip()}.jar" + + +def stage_hana_client(build_dir): if not _is_sap_hana_client_enabled(): return try: dest = os.path.join(build_dir, "model", "lib", "userlib") util.mkdir_p(dest) - dep = util.get_dependency(_SAP_HANA_CLIENT_DEPENDENCY, buildpack_dir=buildpack_dir) - jar_name = "ngdbc-{}.jar".format(dep["version"]) - util.resolve_dependency( - _SAP_HANA_CLIENT_DEPENDENCY, - dest, - buildpack_dir=buildpack_dir, - cache_dir=cache_dir, - unpack=False, - ) + jar_name = _get_hana_jar_name() + jar_url = util.get_blobstore_url(f"{_SAP_HANA_CLIENT_CDN_PREFIX}/{jar_name}") + util.download(jar_url, os.path.join(dest, jar_name)) logging.info( "SAP HANA client JAR [%s] staged to [%s]", jar_name, diff --git a/buildpack/stage.py b/buildpack/stage.py index 34147a5c2..776b4dc6e 100755 --- a/buildpack/stage.py +++ b/buildpack/stage.py @@ -217,7 +217,7 @@ def cleanup_dependency_cache(cached_dir, dependency_list): metering.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) database.stage(BUILDPACK_DIR, BUILD_DIR) runtime.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) - runtime.stage_hana_client(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) + runtime.stage_hana_client(BUILD_DIR) logs.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) nginx.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) logging.info("Mendix Cloud Foundry Buildpack staging completed") diff --git a/dependencies.yml b/dependencies.yml index ad2c21200..2fb38101f 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -88,11 +88,6 @@ dependencies: commit: 5fed98f8 fs: cflinuxfs4 version: 3.2.2 - sap: - hana: - client: - artifact: "sap-hana-client/ngdbc-{{ version }}.jar" - version: "2.29.11" telegraf: agent: artifact: telegraf/telegraf-{{ version }}_linux_amd64.tar.gz From 53750666187184865f5db9c74716cd3117600afb Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Thu, 3 Sep 2026 21:56:38 +0530 Subject: [PATCH 11/13] Rename env var to MXRUNTIME_IncludeSAPHanaClient, add README docs Co-Authored-By: Claude Sonnet 4.6 --- README.md | 10 ++++++++++ buildpack/core/runtime.py | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cf0196e39..729a503da 100644 --- a/README.md +++ b/README.md @@ -273,6 +273,16 @@ Selection based on name `hana` and tags `["hana", "database", "relational"]`. ], ``` +#### SAP HANA JDBC Client JAR + +To include the SAP HANA JDBC client JAR (`ngdbc.jar`) in your app's classpath at staging time, set the following environment variable: + +```shell +cf set-env MXRUNTIME_IncludeSAPHanaClient true +``` + +When enabled, the buildpack fetches the latest `ngdbc.jar` from the Mendix CDN and places it in `model/lib/userlib/`, making it available to the Mendix runtime. If the download fails, staging continues without the JAR and a warning is logged. + ### Connect an External File Store The Mendix Runtime supports multiple external file stores: AWS S3, Azure Storage and Swift (Bluemix Object Storage). diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index edb8d2148..5ab404c73 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -61,7 +61,7 @@ def is_version_maintained(version): def _is_sap_hana_client_enabled(): - return os.environ.get("INCLUDE_SAP_HANA_CLIENT", "").strip().lower() == "true" + return os.environ.get("MXRUNTIME_IncludeSAPHanaClient", "").strip().lower() == "true" def _get_hana_jar_name(): From b2078b4457e821d4c6fd7b46db3b48b78a5ee361 Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Thu, 3 Sep 2026 22:27:20 +0530 Subject: [PATCH 12/13] Address review: move hana staging into runtime.stage, rename to _get_hana_jar_version Co-Authored-By: Claude Sonnet 4.6 --- buildpack/core/runtime.py | 9 +++++---- buildpack/stage.py | 1 - 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index 5ab404c73..c3acce0b7 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -64,23 +64,23 @@ def _is_sap_hana_client_enabled(): return os.environ.get("MXRUNTIME_IncludeSAPHanaClient", "").strip().lower() == "true" -def _get_hana_jar_name(): +def _get_hana_jar_version(): import requests as req version_url = util.get_blobstore_url(f"{_SAP_HANA_CLIENT_CDN_PREFIX}/version.txt") resp = req.get(version_url, timeout=10) resp.raise_for_status() - return f"ngdbc-{resp.text.strip()}.jar" + return resp.text.strip() -def stage_hana_client(build_dir): +def _stage_hana_client(build_dir): if not _is_sap_hana_client_enabled(): return try: dest = os.path.join(build_dir, "model", "lib", "userlib") util.mkdir_p(dest) - jar_name = _get_hana_jar_name() + jar_name = f"ngdbc-{_get_hana_jar_version()}.jar" jar_url = util.get_blobstore_url(f"{_SAP_HANA_CLIENT_CDN_PREFIX}/{jar_name}") util.download(jar_url, os.path.join(dest, jar_name)) logging.info( @@ -123,6 +123,7 @@ def stage(buildpack_dir, build_path, cache_path): util.set_executable(file_path) resolve_runtime_dependency(buildpack_dir, build_path, cache_path) + _stage_hana_client(build_path) FORCED_MXRUNTIME_URL_KEY = "FORCED_MXRUNTIME_URL" diff --git a/buildpack/stage.py b/buildpack/stage.py index 776b4dc6e..2f37be179 100755 --- a/buildpack/stage.py +++ b/buildpack/stage.py @@ -217,7 +217,6 @@ def cleanup_dependency_cache(cached_dir, dependency_list): metering.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) database.stage(BUILDPACK_DIR, BUILD_DIR) runtime.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) - runtime.stage_hana_client(BUILD_DIR) logs.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) nginx.stage(BUILDPACK_DIR, BUILD_DIR, CACHE_DIR) logging.info("Mendix Cloud Foundry Buildpack staging completed") From 48ab8bc3146f71065510d62e7078a2024cfcdcb5 Mon Sep 17 00:00:00 2001 From: "priyal.chawda@mendix.com" Date: Fri, 4 Sep 2026 12:26:43 +0530 Subject: [PATCH 13/13] Use util.BLOBSTORE_BUILDPACK_DEFAULT_PREFIX to construct SAP HANA CDN prefix Co-Authored-By: Claude Sonnet 4.6 --- buildpack/core/runtime.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildpack/core/runtime.py b/buildpack/core/runtime.py index c3acce0b7..e17a1f2e7 100644 --- a/buildpack/core/runtime.py +++ b/buildpack/core/runtime.py @@ -57,7 +57,7 @@ def is_version_maintained(version): return False -_SAP_HANA_CLIENT_CDN_PREFIX = "/mx-buildpack/sap-hana-client" +_SAP_HANA_CLIENT_CDN_PREFIX = util.BLOBSTORE_BUILDPACK_DEFAULT_PREFIX + "sap-hana-client" def _is_sap_hana_client_enabled():