From 9efc6797573ab091e4be85d6f876e198eaafa404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E9=87=8C?= Date: Fri, 4 Sep 2026 10:34:20 +0800 Subject: [PATCH 1/2] feat(agentstudio): support deployment environment variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Deployment 的 create/update 支持 environment_variables,响应回显该字段。 传空 map 表示清空,不传表示不修改。 --- .../com/alibaba/dashscope/agentstudio/model/Deployment.java | 3 +++ .../dashscope/agentstudio/param/DeploymentCreateParam.java | 5 +++++ .../dashscope/agentstudio/param/DeploymentUpdateParam.java | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/src/main/java/com/alibaba/dashscope/agentstudio/model/Deployment.java b/src/main/java/com/alibaba/dashscope/agentstudio/model/Deployment.java index ad08fb6..8bff1ad 100644 --- a/src/main/java/com/alibaba/dashscope/agentstudio/model/Deployment.java +++ b/src/main/java/com/alibaba/dashscope/agentstudio/model/Deployment.java @@ -42,6 +42,9 @@ public class Deployment extends FlattenResultBase { @SerializedName("vault_ids") private List vaultIds; + @SerializedName("environment_variables") + private Map environmentVariables; + @SerializedName("metadata") private Map metadata; diff --git a/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentCreateParam.java b/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentCreateParam.java index 023b13f..1b347b2 100644 --- a/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentCreateParam.java +++ b/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentCreateParam.java @@ -26,6 +26,7 @@ public class DeploymentCreateParam extends FlattenHalfDuplexParamBase { @NonNull private List initialEvents; @Default private List resources = null; @Default private List vaultIds = null; + @Default private Map environmentVariables = null; @Default private Map metadata = null; @Override @@ -61,6 +62,10 @@ public JsonObject getHttpBody() { } body.add("vault_ids", vaultItems); } + if (environmentVariables != null) { + body.add( + "environment_variables", JsonUtils.toJsonElement(new LinkedHashMap<>(environmentVariables))); + } if (metadata != null) { body.add("metadata", JsonUtils.toJsonElement(new LinkedHashMap<>(metadata))); } diff --git a/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentUpdateParam.java b/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentUpdateParam.java index efa77e0..0f0c936 100644 --- a/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentUpdateParam.java +++ b/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentUpdateParam.java @@ -28,6 +28,7 @@ public class DeploymentUpdateParam extends FlattenHalfDuplexParamBase { @Default private List initialEvents = null; @Default private List resources = null; @Default private List vaultIds = null; + @Default private Map environmentVariables = null; @Default private Map metadata = null; @Override @@ -84,6 +85,10 @@ public JsonObject getHttpBody() { } body.add("vault_ids", vaultItems); } + if (environmentVariables != null) { + body.add( + "environment_variables", JsonUtils.toJsonElement(new LinkedHashMap<>(environmentVariables))); + } if (metadata != null) { body.add("metadata", JsonUtils.toJsonElement(new LinkedHashMap<>(metadata))); } From 7eb0f834c07fbadab82f09f2744461d253537b73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E9=87=8C?= Date: Fri, 11 Sep 2026 08:57:22 +0800 Subject: [PATCH 2/2] test(agentstudio): cover deployment environment variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充 create/update 两个用例对 environment_variables 的断言(写入、 空 map 清空、响应回显),fixture 同步补该字段;并按 google-java-format 修正超长行。 --- .../agentstudio/param/DeploymentCreateParam.java | 3 ++- .../agentstudio/param/DeploymentUpdateParam.java | 3 ++- .../com/alibaba/dashscope/TestAgentStudioDeployments.java | 8 ++++++++ src/test/resources/agentstudio.json | 1 + 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentCreateParam.java b/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentCreateParam.java index 1b347b2..809e72b 100644 --- a/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentCreateParam.java +++ b/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentCreateParam.java @@ -64,7 +64,8 @@ public JsonObject getHttpBody() { } if (environmentVariables != null) { body.add( - "environment_variables", JsonUtils.toJsonElement(new LinkedHashMap<>(environmentVariables))); + "environment_variables", + JsonUtils.toJsonElement(new LinkedHashMap<>(environmentVariables))); } if (metadata != null) { body.add("metadata", JsonUtils.toJsonElement(new LinkedHashMap<>(metadata))); diff --git a/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentUpdateParam.java b/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentUpdateParam.java index 0f0c936..57cf9f3 100644 --- a/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentUpdateParam.java +++ b/src/main/java/com/alibaba/dashscope/agentstudio/param/DeploymentUpdateParam.java @@ -87,7 +87,8 @@ public JsonObject getHttpBody() { } if (environmentVariables != null) { body.add( - "environment_variables", JsonUtils.toJsonElement(new LinkedHashMap<>(environmentVariables))); + "environment_variables", + JsonUtils.toJsonElement(new LinkedHashMap<>(environmentVariables))); } if (metadata != null) { body.add("metadata", JsonUtils.toJsonElement(new LinkedHashMap<>(metadata))); diff --git a/src/test/java/com/alibaba/dashscope/TestAgentStudioDeployments.java b/src/test/java/com/alibaba/dashscope/TestAgentStudioDeployments.java index be2b341..3bf46ce 100644 --- a/src/test/java/com/alibaba/dashscope/TestAgentStudioDeployments.java +++ b/src/test/java/com/alibaba/dashscope/TestAgentStudioDeployments.java @@ -81,6 +81,8 @@ public void testCreateAndNestedResponseModels() throws Exception { .mountPath("/mnt/data") .build())) .vaultIds(Collections.singletonList("vault_01")) + .environmentVariables( + Collections.singletonMap("API_BASE_URL", "https://example.test")) .metadata(Collections.singletonMap("biz", "summary")) .build()); @@ -93,6 +95,9 @@ public void testCreateAndNestedResponseModels() throws Exception { assertEquals( "message", body.getAsJsonArray("initial_events").get(0).getAsJsonObject().get("type").getAsString()); + assertEquals( + "https://example.test", + body.getAsJsonObject("environment_variables").get("API_BASE_URL").getAsString()); assertEquals("summary", body.getAsJsonObject("metadata").get("biz").getAsString()); assertEquals("depl_01", deployment.getId()); @@ -101,6 +106,7 @@ public void testCreateAndNestedResponseModels() throws Exception { assertEquals("Asia/Shanghai", deployment.getSchedule().getTimezone()); assertEquals("file_01", deployment.getResources().get(0).getFileId()); assertEquals("RUN_FAILED", deployment.getPausedReason().getError().getCode()); + assertEquals("https://example.test", deployment.getEnvironmentVariables().get("API_BASE_URL")); assertEquals("summary", deployment.getMetadata().get("biz")); assertEquals("req-depl-01", deployment.getRequestId()); } @@ -113,6 +119,7 @@ public void testUpdateCanExplicitlyClearNullableFields() throws Exception { .clearEnvironment(true) .clearSchedule(true) .resources(Collections.emptyList()) + .environmentVariables(Collections.emptyMap()) .metadata(Collections.emptyMap()) .build(); assertTrue(updateParam.getClearEnvironment()); @@ -130,6 +137,7 @@ public void testUpdateCanExplicitlyClearNullableFields() throws Exception { assertTrue(body.has("schedule"), body.toString()); assertTrue(body.get("schedule").isJsonNull()); assertEquals(0, body.getAsJsonArray("resources").size()); + assertEquals(0, body.getAsJsonObject("environment_variables").size()); assertEquals(0, body.getAsJsonObject("metadata").size()); } diff --git a/src/test/resources/agentstudio.json b/src/test/resources/agentstudio.json index 35338d9..495a6d6 100644 --- a/src/test/resources/agentstudio.json +++ b/src/test/resources/agentstudio.json @@ -338,6 +338,7 @@ {"type": "file", "file_id": "file_01", "mount_path": "/mnt/data"} ], "vault_ids": ["vault_01"], + "environment_variables": {"API_BASE_URL": "https://example.test"}, "metadata": {"biz": "summary"}, "status": "paused", "paused_reason": {