From b21bde035f3881e9a6daa99db963de9394a1d2a9 Mon Sep 17 00:00:00 2001 From: Steve Lee Date: Thu, 23 Oct 2025 07:46:57 -0700 Subject: [PATCH 1/3] Fix `Echo` resource to have correct type for object --- resources/dscecho/src/echo.rs | 6 +++--- resources/dscecho/src/main.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/dscecho/src/echo.rs b/resources/dscecho/src/echo.rs index f91eca84f..d7b8b8dd8 100644 --- a/resources/dscecho/src/echo.rs +++ b/resources/dscecho/src/echo.rs @@ -3,7 +3,7 @@ use schemars::JsonSchema; use serde::{Deserialize, Serialize}; -use serde_json::Value; +use serde_json::{Map, Value}; #[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema)] #[serde(untagged)] @@ -22,7 +22,7 @@ pub enum Output { String(String), // Object has to be last so it doesn't get matched first #[serde(rename = "object")] - Object(Value), + Object(Map), } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema)] @@ -36,7 +36,7 @@ pub struct SecureString { #[serde(deny_unknown_fields)] pub struct SecureObject { #[serde(rename = "secureObject")] - pub secure_object: Value, + pub secure_object: Map, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema)] diff --git a/resources/dscecho/src/main.rs b/resources/dscecho/src/main.rs index 6845211dc..6a26db664 100644 --- a/resources/dscecho/src/main.rs +++ b/resources/dscecho/src/main.rs @@ -40,7 +40,7 @@ fn main() { } }, Output::Object(ref mut obj) => { - *obj = redact(obj); + *obj = redact(&Value::Object(obj.clone())).as_object().unwrap().clone(); }, _ => {} } From a9030d30dca4513634719728852f646f2fd2f7eb Mon Sep 17 00:00:00 2001 From: Steve Lee Date: Thu, 23 Oct 2025 09:02:09 -0700 Subject: [PATCH 2/3] Update resources/dscecho/src/main.rs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- resources/dscecho/src/main.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/dscecho/src/main.rs b/resources/dscecho/src/main.rs index 6a26db664..90547aa6f 100644 --- a/resources/dscecho/src/main.rs +++ b/resources/dscecho/src/main.rs @@ -40,7 +40,10 @@ fn main() { } }, Output::Object(ref mut obj) => { - *obj = redact(&Value::Object(obj.clone())).as_object().unwrap().clone(); + *obj = redact(&Value::Object(obj.clone())) + .as_object() + .expect("Expected redact() to return a Value::Object") + .clone(); }, _ => {} } From 0527d97a7153691d2d86ce1258879cdaa63a68f1 Mon Sep 17 00:00:00 2001 From: Steve Lee Date: Thu, 23 Oct 2025 09:09:32 -0700 Subject: [PATCH 3/3] fix allow null --- resources/dscecho/src/echo.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/dscecho/src/echo.rs b/resources/dscecho/src/echo.rs index d7b8b8dd8..01540d311 100644 --- a/resources/dscecho/src/echo.rs +++ b/resources/dscecho/src/echo.rs @@ -23,6 +23,8 @@ pub enum Output { // Object has to be last so it doesn't get matched first #[serde(rename = "object")] Object(Map), + #[serde(rename = "null")] + Null, } #[derive(Debug, Clone, PartialEq, Deserialize, Serialize, JsonSchema)]