Skip to content

Commit 2459ef2

Browse files
committed
Disable filterSensitiveLog for event stream
1 parent f4c1862 commit 2459ef2

File tree

3 files changed

+41
-3
lines changed

3 files changed

+41
-3
lines changed

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/StructuredMemberWriter.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import software.amazon.smithy.model.shapes.UnionShape;
3030
import software.amazon.smithy.model.traits.IdempotencyTokenTrait;
3131
import software.amazon.smithy.model.traits.SensitiveTrait;
32+
import software.amazon.smithy.model.traits.StreamingTrait;
3233

3334
/**
3435
* Generates objects, interfaces, enums, etc.
@@ -107,10 +108,13 @@ void writeStructureFilterSensitiveLog(
107108
if (structureTarget.hasTrait(SensitiveTrait.class)) {
108109
// member is Sensitive, hide the value.
109110
writer.write("SENSITIVE_STRING");
110-
return;
111+
} else if (structureTarget.hasTrait(StreamingTrait.class) && structureTarget.isUnionShape()) {
112+
// disable logging for StreamingTrait
113+
writer.write("'STREAMING_TRAIT'");
114+
} else {
115+
// Call filterSensitiveLog on Structure.
116+
writer.write("$T.filterSensitiveLog($L)", symbolProvider.toSymbol(structureTarget), structureParam);
111117
}
112-
// Call filterSensitiveLog on Structure.
113-
writer.write("$T.filterSensitiveLog($L)", symbolProvider.toSymbol(structureTarget), structureParam);
114118
}
115119

116120
/**

smithy-typescript-codegen/src/test/java/software/amazon/smithy/typescript/codegen/StructureGeneratorTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,17 @@ public void callsFilterInUnionWithoutSensitiveData() {
179179
+ " }\n");
180180
}
181181

182+
@Test
183+
public void filtersStreamingUnion() {
184+
testStructureCodegen("test-streaming-union.smithy",
185+
" export const filterSensitiveLog = (obj: GetFooInput): any => ({\n"
186+
+ " ...obj,\n"
187+
+ " ...(obj.foo && { foo:\n"
188+
+ " 'STREAMING_TRAIT'\n"
189+
+ " }),\n"
190+
+ " })\n");
191+
}
192+
182193
@Test
183194
public void filtersSensitiveUnion() {
184195
testStructureCodegen("test-sensitive-union.smithy",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
namespace smithy.example
2+
3+
service Example {
4+
version: "1.0.0",
5+
operations: [GetFoo]
6+
}
7+
8+
operation GetFoo {
9+
input: GetFooInput
10+
}
11+
12+
structure GetFooInput {
13+
foo: StreamingUnion
14+
}
15+
16+
@streaming
17+
union StreamingUnion {
18+
message: Message
19+
}
20+
21+
structure Message {
22+
message: String
23+
}

0 commit comments

Comments
 (0)