dependabot-bot's Description of Work
Updates the requirements on @slack/bolt to permit the latest version.
Changelog
Sourced from @slack/bolt's changelog.
5.1.0
Minor Changes
6cf7b0c: Enforce a configurable request body size limit in
HTTPReceiverandExpressReceiverto prevent unauthenticated large-body denial-of-service attempts. Both receivers previously buffered the entire request body into memory before signature verification, so a flood of large invalid requests could exhaust memory and crash a publicly exposed app.Both receivers now reject request bodies larger than a new
bodyLimitoption with an HTTP413response before the whole body is buffered. The limit is enforced on the bytes actually received (not theContent-Lengthheader, which a client controls) and applies even whensignatureVerificationisfalse. It defaults to4194304(4 MB); pass a differentnumberof bytes, abytes-style string like'4mb', orInfinityto disable it (not recommended in production).This is a security fix with a minor behavioral change: requests with bodies larger than 4 MB are now rejected with
413by default (previously unbounded). Apps that legitimately receive larger payloads can raisebodyLimiton the receiver.Patch Changes
- b9acd4f: Fix
AwsEventV1.multiValueQueryStringParametersto allownull, matching the actual AWS API Gateway payload and the@types/aws-lambdaAPIGatewayProxyEventtype. This resolves the type error when passing anAPIGatewayProxyEventdirectly to the handler returned byAwsLambdaReceiver.5.0.0
Major Changes
d284e69: Drop Node.js 18 support. The minimum required runtime is now Node.js 20 (npm >=9.6.4).
d284e69: Remove deprecated
WorkflowStepclass and all associated types, middleware, and utilities. UseCustomFunctionandapp.function()instead.d284e69: Replace axios with native fetch for response_url calls. Remove
agentandclientTlsoptions fromAppOptions— useclientOptions.fetchto provide a custom fetch implementation for proxy/TLS needs. Add adispatcheroption toSocketModeReceiverfor proxy/TLS configuration in socket mode.
respond()now throws aRespondErrorwhen theresponse_urlrequest returns a non-2xx status (restoring the throw-on-failure behavior that axios provided) and resolves to aResponseon success rather than an axios response object.Minor Changes
- d284e69: Improve error handling by leveraging
@slack/web-apiv8 error classes. Authorization errors are now properly wrapped in anAuthorizationError, preserving the original thrown value (non-Errorrejections are retained via thecauseof the wrapped original). Default error handlers log richer details for web-api errors (API error codes, rate limit durations, HTTP status codes) alongside the full error object, so stack traces and causes remain available. The@slack/web-apierror classes (SlackError,WebAPIPlatformError,WebAPIRequestError,WebAPIHTTPError,WebAPIRateLimitedError) can be imported from@slack/web-apiforinstanceofchecks.Patch Changes
9839a50: Pass the App's named
bolt-appConsoleLoggerto the default receivers when nologgeroption is provided. Previously the App constructor built a named logger onthis.loggerbut threaded the raw (potentially undefined) constructor argument intoinitReceiver, soHTTPReceiver/SocketModeReceivereach built their own anonymous logger and receiver-side log lines (e.g. unhandled HTTP requests on custom routes) appeared without thebolt-appprefix.Behaviour change for the no-
loggercase: the default receiver now shares the sameLoggerinstance asapp.logger, so a downstreamapp.logger.setLevel(...)after construction will affect receiver-side logging too. This is consistent with the existing behaviour that already mutatesthis.logger's level via thelogLevelconstructor option. Apps that supplied their ownloggerare unaffected; apps that relied on the receiver's logger being independent ofapp.loggerwill need to pass a separateloggerinto the receiver explicitly.e1c21d7: Fix
AwsLambdaReceiver.toHandler()so Bolt apps on the AWS Lambda Node.js 24+ runtime no longer fail at startup withRuntime.CallbackHandlerDeprecated. The returned handler is now a 2-arg promise-based function; the unused trailingcallbackparameter has been removed from theAwsHandlertype. The legacyAwsCallbackexport is retained and marked@deprecated.f2de079: Add
context_team_idandcontext_enterprise_idas optional fields on theEnvelopedEventtype. Slack's Events API delivers these on the envelope for Slack Connect channels and Enterprise Grid org-wide apps, whereteam_idmay refer to a workspace different from the one the bot is installed in. Without the typed fields, downstream code had to reach for@ts-expect-erroror unsafe casts to route by the correct workspace.4.7.3
Patch Changes
- 341b60e: Reject empty
signingSecretat initialization to prevent accidental HMAC signature forgery.4.7.2
Patch Changes
- 4545150: Require exact
ssl_check=1value to bypass signature verification, preventing truthy but incorrect values from skipping authentication checks.4.7.1
<!-- raw HTML omitted -->
... (truncated)
Commits
-
ffbe0b6chore: release (#3020) -
6cf7b0cfeat(receivers): add configurable bodyLimit to cap request body size (#3057) -
08d52eechore(deps-dev): bump@changesets/clifrom 2.30.0 to 3.0.1 (#3067) -
f7a7379chore(deps-dev): update serverless requirement from ^4.41.0 to ^4.41.1 in /ex... -
0542410chore(deps-dev): bump@changesets/get-release-planfrom 4.0.15 to 4.0.16 (#3066) -
278eb5bchore(deps-dev): bump@changesets/configfrom 3.1.3 to 3.1.4 (#3063) -
b4d97d8chore(deps-dev): bump@changesets/assemble-release-planfrom 6.0.9 to 6.0.10 ... -
d374244chore(deps-dev): bump@changesets/get-dependents-graphfrom 2.1.3 to 2.1.4 (#... -
9ae4bdeci: allow Dependabot to update the changesets toolchain (#3061) -
e973b79chore(deps): bump@slack/web-apifrom 8.0.0 to 8.1.1 (#3059) - Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)