@@ -10,6 +10,11 @@ import (
1010 "github.com/aws/smithy-go/middleware"
1111)
1212
13+ const (
14+ // ContextKeyOriginalInput is the key used to store the original DynamoDB input in the context
15+ ContextKeyOriginalInput = "originalInput"
16+ )
17+
1318type DBEsdkMiddleware struct {
1419 client * awscryptographydbencryptionsdkdynamodbtransformssmithygenerated.Client
1520}
@@ -56,7 +61,8 @@ func (m DBEsdkMiddleware) createRequestInterceptor() middleware.InitializeMiddle
5661func (m DBEsdkMiddleware ) handleRequestInterception (ctx context.Context , request interface {}) (context.Context , error ) {
5762 switch v := request .(type ) {
5863 case * dynamodb.PutItemInput :
59- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
64+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
65+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
6066 transformedRequest , err := m .client .PutItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemInputTransformInput {
6167 SdkInput : * v ,
6268 })
@@ -65,7 +71,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
6571 }
6672 * v = transformedRequest .TransformedInput
6773 case * dynamodb.GetItemInput :
68- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
74+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
75+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
6976 transformedRequest , err := m .client .GetItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemInputTransformInput {
7077 SdkInput : * v ,
7178 })
@@ -74,7 +81,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
7481 }
7582 * v = transformedRequest .TransformedInput
7683 case * dynamodb.BatchGetItemInput :
77- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
84+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
85+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
7886 transformedRequest , err := m .client .BatchGetItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemInputTransformInput {
7987 SdkInput : * v ,
8088 })
@@ -83,7 +91,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
8391 }
8492 * v = transformedRequest .TransformedInput
8593 case * dynamodb.BatchWriteItemInput :
86- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
94+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
95+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
8796 transformedRequest , err := m .client .BatchWriteItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemInputTransformInput {
8897 SdkInput : * v ,
8998 })
@@ -92,7 +101,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
92101 }
93102 * v = transformedRequest .TransformedInput
94103 case * dynamodb.BatchExecuteStatementInput :
95- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
104+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
105+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
96106 transformedRequest , err := m .client .BatchExecuteStatementInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementInputTransformInput {
97107 SdkInput : * v ,
98108 })
@@ -101,7 +111,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
101111 }
102112 * v = transformedRequest .TransformedInput
103113 case * dynamodb.DeleteItemInput :
104- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
114+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
115+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
105116 transformedRequest , err := m .client .DeleteItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemInputTransformInput {
106117 SdkInput : * v ,
107118 })
@@ -110,7 +121,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
110121 }
111122 * v = transformedRequest .TransformedInput
112123 case * dynamodb.ExecuteStatementInput :
113- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
124+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
125+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
114126 transformedRequest , err := m .client .ExecuteStatementInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementInputTransformInput {
115127 SdkInput : * v ,
116128 })
@@ -119,7 +131,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
119131 }
120132 * v = transformedRequest .TransformedInput
121133 case * dynamodb.ExecuteTransactionInput :
122- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
134+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
135+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
123136 transformedRequest , err := m .client .ExecuteTransactionInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionInputTransformInput {
124137 SdkInput : * v ,
125138 })
@@ -128,7 +141,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
128141 }
129142 * v = transformedRequest .TransformedInput
130143 case * dynamodb.QueryInput :
131- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
144+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
145+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
132146 transformedRequest , err := m .client .QueryInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryInputTransformInput {
133147 SdkInput : * v ,
134148 })
@@ -137,7 +151,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
137151 }
138152 * v = transformedRequest .TransformedInput
139153 case * dynamodb.ScanInput :
140- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
154+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
155+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
141156 transformedRequest , err := m .client .ScanInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanInputTransformInput {
142157 SdkInput : * v ,
143158 })
@@ -146,7 +161,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
146161 }
147162 * v = transformedRequest .TransformedInput
148163 case * dynamodb.TransactGetItemsInput :
149- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
164+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
165+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
150166 transformedRequest , err := m .client .TransactGetItemsInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsInputTransformInput {
151167 SdkInput : * v ,
152168 })
@@ -155,7 +171,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
155171 }
156172 * v = transformedRequest .TransformedInput
157173 case * dynamodb.TransactWriteItemsInput :
158- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
174+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
175+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
159176 transformedRequest , err := m .client .TransactWriteItemsInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsInputTransformInput {
160177 SdkInput : * v ,
161178 })
@@ -164,7 +181,8 @@ func (m DBEsdkMiddleware) handleRequestInterception(ctx context.Context, request
164181 }
165182 * v = transformedRequest .TransformedInput
166183 case * dynamodb.UpdateItemInput :
167- ctx = middleware .WithStackValue (ctx , "originalInput" , * v )
184+ ctx = middleware .WithStackValue (ctx , ContextKeyOriginalInput , * v )
185+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
168186 transformedRequest , err := m .client .UpdateItemInputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemInputTransformInput {
169187 SdkInput : * v ,
170188 })
@@ -198,116 +216,129 @@ func (m DBEsdkMiddleware) createResponseInterceptor() middleware.FinalizeMiddlew
198216func (m DBEsdkMiddleware ) handleResponseInterception (ctx context.Context , response interface {}) error {
199217 switch v := response .(type ) {
200218 case * dynamodb.PutItemOutput :
219+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
201220 transformedRequest , err := m .client .PutItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.PutItemOutputTransformInput {
202- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.PutItemInput ),
221+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.PutItemInput ),
203222 SdkOutput : * v ,
204223 })
205224 if err != nil {
206225 return err
207226 }
208227 * v = transformedRequest .TransformedOutput
209228 case * dynamodb.GetItemOutput :
229+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
210230 transformedRequest , err := m .client .GetItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.GetItemOutputTransformInput {
211- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.GetItemInput ),
231+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.GetItemInput ),
212232 SdkOutput : * v ,
213233 })
214234 if err != nil {
215235 return err
216236 }
217237 * v = transformedRequest .TransformedOutput
218238 case * dynamodb.BatchGetItemOutput :
239+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
219240 transformedRequest , err := m .client .BatchGetItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchGetItemOutputTransformInput {
220- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.BatchGetItemInput ),
241+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.BatchGetItemInput ),
221242 SdkOutput : * v ,
222243 })
223244 if err != nil {
224245 return err
225246 }
226247 * v = transformedRequest .TransformedOutput
227248 case * dynamodb.BatchWriteItemOutput :
249+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
228250 transformedRequest , err := m .client .BatchWriteItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchWriteItemOutputTransformInput {
229- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.BatchWriteItemInput ),
251+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.BatchWriteItemInput ),
230252 SdkOutput : * v ,
231253 })
232254 if err != nil {
233255 return err
234256 }
235257 * v = transformedRequest .TransformedOutput
236258 case * dynamodb.BatchExecuteStatementOutput :
259+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
237260 transformedRequest , err := m .client .BatchExecuteStatementOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.BatchExecuteStatementOutputTransformInput {
238- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.BatchExecuteStatementInput ),
261+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.BatchExecuteStatementInput ),
239262 SdkOutput : * v ,
240263 })
241264 if err != nil {
242265 return err
243266 }
244267 * v = transformedRequest .TransformedOutput
245268 case * dynamodb.DeleteItemOutput :
269+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
246270 transformedRequest , err := m .client .DeleteItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.DeleteItemOutputTransformInput {
247- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.DeleteItemInput ),
271+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.DeleteItemInput ),
248272 SdkOutput : * v ,
249273 })
250274 if err != nil {
251275 return err
252276 }
253277 * v = transformedRequest .TransformedOutput
254278 case * dynamodb.ExecuteStatementOutput :
279+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
255280 transformedRequest , err := m .client .ExecuteStatementOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteStatementOutputTransformInput {
256- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.ExecuteStatementInput ),
281+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.ExecuteStatementInput ),
257282 SdkOutput : * v ,
258283 })
259284 if err != nil {
260285 return err
261286 }
262287 * v = transformedRequest .TransformedOutput
263288 case * dynamodb.ExecuteTransactionOutput :
289+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
264290 transformedRequest , err := m .client .ExecuteTransactionOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ExecuteTransactionOutputTransformInput {
265- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.ExecuteTransactionInput ),
291+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.ExecuteTransactionInput ),
266292 SdkOutput : * v ,
267293 })
268294 if err != nil {
269295 return err
270296 }
271297 * v = transformedRequest .TransformedOutput
272298 case * dynamodb.QueryOutput :
299+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
273300 transformedRequest , err := m .client .QueryOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.QueryOutputTransformInput {
274- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.QueryInput ),
301+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.QueryInput ),
275302 SdkOutput : * v ,
276303 })
277304 if err != nil {
278305 return err
279306 }
280307 * v = transformedRequest .TransformedOutput
281308 case * dynamodb.ScanOutput :
309+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
282310 transformedRequest , err := m .client .ScanOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.ScanOutputTransformInput {
283- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.ScanInput ),
311+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.ScanInput ),
284312 SdkOutput : * v ,
285313 })
286314 if err != nil {
287315 return err
288316 }
289317 * v = transformedRequest .TransformedOutput
290318 case * dynamodb.TransactGetItemsOutput :
319+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
291320 transformedRequest , err := m .client .TransactGetItemsOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactGetItemsOutputTransformInput {
292- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.TransactGetItemsInput ),
321+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.TransactGetItemsInput ),
293322 SdkOutput : * v ,
294323 })
295324 if err != nil {
296325 return err
297326 }
298327 * v = transformedRequest .TransformedOutput
299328 case * dynamodb.TransactWriteItemsOutput :
329+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
300330 transformedRequest , err := m .client .TransactWriteItemsOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.TransactWriteItemsOutputTransformInput {
301- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.TransactWriteItemsInput ),
331+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.TransactWriteItemsInput ),
302332 SdkOutput : * v ,
303333 })
304334 if err != nil {
305335 return err
306336 }
307337 * v = transformedRequest .TransformedOutput
308338 case * dynamodb.UpdateItemOutput :
339+ // Note: this context is not propagated downstream into dafny layer so it's left as context.TODO() https://issues.amazon.com/CrypTool-5403
309340 transformedRequest , err := m .client .UpdateItemOutputTransform (context .TODO (), awscryptographydbencryptionsdkdynamodbtransformssmithygeneratedtypes.UpdateItemOutputTransformInput {
310- OriginalInput : middleware .GetStackValue (ctx , "originalInput" ).(dynamodb.UpdateItemInput ),
341+ OriginalInput : middleware .GetStackValue (ctx , ContextKeyOriginalInput ).(dynamodb.UpdateItemInput ),
311342 SdkOutput : * v ,
312343 })
313344 if err != nil {
0 commit comments