From 9abba3897fbe3ef60e35fd4909a82b265d9b6e9b Mon Sep 17 00:00:00 2001 From: Qiusheng Wu Date: Sun, 9 Nov 2025 23:03:30 -0500 Subject: [PATCH 1/2] Add EE service account authentication --- geemap/coreutils.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/geemap/coreutils.py b/geemap/coreutils.py index e4b6147dea..aff0d8e25e 100644 --- a/geemap/coreutils.py +++ b/geemap/coreutils.py @@ -76,6 +76,20 @@ def ee_initialize( if ee.data._get_state().credentials is not None: return + if get_env_var("EE_SERVICE_ACCOUNT") is not None: + + key_data = get_env_var("EE_SERVICE_ACCOUNT") + + try: + email = json.loads(key_data)["client_email"] + except json.JSONDecodeError as e: + raise ValueError(f"Invalid JSON for key_data: {e}") + except KeyError: + raise ValueError("key_data JSON does not contain 'client_email'") + credentials = ee.ServiceAccountCredentials(email=email, key_data=key_data) + ee.Initialize(credentials) + return + ee_token = get_env_var(token_name) if ee_token is not None: From c766b750ee1873a7a1424e82c32f615e46058e55 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 10 Nov 2025 04:06:20 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- geemap/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geemap/common.py b/geemap/common.py index 21ad714456..5bc19c2ad5 100644 --- a/geemap/common.py +++ b/geemap/common.py @@ -3299,7 +3299,7 @@ def ee_to_xarray( f"Failed to access Earth Engine internal state for current project: {e}\n" "Please provide the 'project' parameter explicitly or ensure Earth Engine is properly initialized." ) - + # Use current_project if available, otherwise use provided project if current_project is not None: ee.Initialize(project=current_project, opt_url=opt_url)