AWS powertools documentation change
Summary
Added documentation for detecting oversized AppSync events exceeding 240KB limit and added links to Data Masking/Signer features
Security assessment
The change adds observability for oversized events but doesn't address a specific security vulnerability. The warning feature helps debug message delivery issues but doesn't mitigate security risks.
Diff
diff --git a/powertools/typescript/latest/features/event-handler/appsync-events.md b/powertools/typescript/latest/features/event-handler/appsync-events.md index 90eb3fc88..8829bd924 100644 --- a//powertools/typescript/latest/features/event-handler/appsync-events.md +++ b//powertools/typescript/latest/features/event-handler/appsync-events.md @@ -57,0 +58 @@ Event Handler + * Detecting oversized events @@ -77,0 +79 @@ Event Handler + * [ Data Masking ](../../data-masking/) @@ -78,0 +81 @@ Event Handler + * [ Signer ](../../signer/) @@ -112,0 +116 @@ Table of contents + * Detecting oversized events @@ -994,0 +999,51 @@ Aggregated processing with partial results +### Detecting oversized events¶ + +AWS AppSync Events limits each event to a [maximum size of 240 KB](https://docs.aws.amazon.com/appsync/latest/eventapi/event-api-concepts.html), including its `id`. Events larger than this limit are silently dropped by AppSync and never delivered to subscribers, which can be hard to diagnose. + +You can enable the `warnOnLargePayload` option to emit a warning log whenever an individual event in your response exceeds this limit. To avoid log spam, the warning is emitted at most once per channel path. + +Warning on oversized events + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + +| + + + import { AppSyncEventsResolver } from '@aws-lambda-powertools/event-handler/appsync-events'; + import type { Context } from 'aws-lambda'; + + const app = new AppSyncEventsResolver({ + warnOnLargePayload: true, + }); + + app.onPublish('/default/foo', (payload) => { + return { + processed: true, + original_payload: payload, + }; + }); + + export const handler = async (event: unknown, context: Context) => + app.resolve(event, context); + + +---|--- + +This option is disabled by default because measuring the size requires serializing each event in the response, which has a performance cost on large batches. Enable it while you investigate dropped messages, or keep it on if the overhead is acceptable for your workload. + @@ -1956 +2011 @@ Testing subscribe eventsSample subscribe event -2026-05-27 +2026-07-10