Releases: slackapi/bolt-js
@slack/[email protected]
Updated @slack/socket-mode
dependency to use a range (^1.0.0
) instead of a specific version - thanks @stevengill
@slack/[email protected]
- Added Four New Workflow / Workflow Step Event Interfaces (#767, #768) - thanks @misscoded
- Fixed node-slack-sdk issue 1156 where Socket Mode error was not bubbling up (#764) - thanks @stevengill
- Added a localized Japanese Heroku deployment guide (#762) - thanks @seratch, @shaydewael
@slack/[email protected]
Breaking changes
- Updated minimum Nodejs version to 12.13.0, updated minimum TypeScript version to 4.1 (#727, #728) - thanks @stevengill
- Removed
orgAuthorize
option when initializingApp
. If you used this option previously, you must useauthorize
instead for both single workspace installs and org wide app installs. See the migration guide to learn more! (#730) - thanks @stevengill - The built-in OAuth with Org wide app installs no longer uses
InstallationStore.fetchOrgInstallation()
orInstallationStore.storeOrgInstallation()
. If you used these previously, you must useInstallationStore.fetchInstallation()
andInstallationStore.storeInstallation()
instead. See the migration guide to learn more! (#730) - thanks @stevengill
New Features
- Bolt for JavaScript now supports Socket Mode! When initializing an
App
, use thesocketMode: true
option to choose connecting to Slack without an HTTP server (:wave: goodbye managing ngrok). In order to use Socket Mode, you must first enable it for your app’s configuration (https://api.slack.com/apps → Your App → Socket Mode).- This is implemented using the new
SocketModeReceiver
class. This receiver allows your app to receive events from Slack over a WebSocket connection. - To learn more about Socket Mode, checkout the release blog post and Bolt for JavaScript docs and example
- Implemented in #630 - thanks @stevengill, @aoberoi, @seratch, @shaydewael, @mwbrooks
- This is implemented using the new
- Added a new Developer Mode. When initializing an
App
, conditionally check for when you’re not in production (e.g.process.NODE_ENV !==
'``production``'
) to setdeveloperMode:
```true`. Developer Mode currently enables debug logging, enables SocketMode, adds a custom failure handler for OAuth, and outputs the body of every incoming request. (#714, #742) - thanks @stevengill HTTPReceiver
is the new default receiver forApp
. This will allow Bolt for JavaScript apps to more easily work with other popular web frameworks (Hapi.js, Koa, etc). (#670, #753) - thanks @aoberoiExpressReceiver
is still available to use for those of you that have usecases which aren’t covered byHTTPReceiver
.- This new receiver does not allow you to add custom routes, but instead allows you to access its
requestListener
property to selectively send it requests. This property follows the exact function signature as the first argument to Node’s built-inhttp.createServer()
, so it’s very flexible. It will throw anHTTPReceiverDeferredRequestError
, with areq
andres
property if it was not able to handle a given request.
- Added support for starting an HTTPS server with
app.start()
. This method now takes TLS options as its second parameter (after the port). The simplest example of starting an HTTP server isapp.start(3000, { key: MY_TLS_KEY, cert: MY_TLS_CERT })
. (#234, #658) - thanks @aoberoi
@slack/[email protected]
- Fix regression in
is_enterprise_install
check for slash commands (#737, #738) - thanks @mattcasey - Added missing properties to
AppMentionInterface
(#735, #739) - thanks @misscoded, @BenAlderfer - Add
channel
and other missing properties to allMessageEvent
interfaces (#736, #740) - thanks @misscoded, @BenAlderfer
@slack/[email protected]
- Fixed security vulnerability with
axios
dependency (#721, #722) - Thanks @brendan-miller-snyk - Added reference docs to documentation site (#712) - Thanks @shaydewael
- Added deploying to AWS Lambda guide (#698) - Thanks @mwbrooks
- Improved types for message events and all subtypes. (#709, #311) - Thanks @aoberoi
- Moved CI over to GitHub Actions (#704) - Thanks @stevengill
@slack/[email protected]
- Added support for org wide app installations. If you are using the built-in OAuth support, make sure to update your
InstallationStore
by addingsaveOrgInstall
andfetchOrgInstall
methods. (#521) - thanks @stevengill, @aoberoi - added support for
Authorizations
in event api payloads which are replacingauthed_users
andauthed_teams
(#655, #656) - thanks @stevengill - Added heroku deployment guide (#220, #651) - thanks @mwbrooks
- Docs fixes (#641, #665, #667, #668, #683, #686, #693 ) - thanks @shaydewael, @misscoded, @mwbrooks, @seratch, @stevengill
- Updated hubot example to work with bolt for Javascript v2.0+ (#676) - thanks @nicholas-a-clark
@slack/[email protected]
@slack/[email protected]
-
The new
WorkflowStep
class gives Bolt apps the ability to offer Workflow Builder Steps from Apps.Slack users can compose Workflows using steps that your app defines. Your app will create the interface for the user to add or edit their step, with the specific inputs and ouputs it needs. Later, Slack will send an event to your app when it's time to execute that step. Learn how to build using
WorkflowStep
in the Bolt for JS docs.Thanks to @misscoded, @selfcontained, @amarinelli, @seratch (#607, #592, #593 )
-
Fixes types for radio buttons and date picker to allow
selected_options
to benull
- Thanks @stevengill (#622) -
Adds documentation for publishing views to the App Home Home Tab - Thanks @shaydewael (#626)
-
A slew of documentation updates!
- Updates docs to use
client
listener arg instead ofapp.client
consistently - Thanks @shaydewael (#613) - Fixes various errors found in code snippets inside docs (in English and Japanese) - Thanks @seratch (#628)
- Improves code snippet in README to be more Unicode friendly - Thanks @seratch (#610)
- Many incremental improvements to align the Bolt for JS docs with Bolt for Python docs - Thanks @mwbrooks (#631, #623)
- Improved and clarified language in shortcuts documentation - Thanks @shaydewael (#563)
- Fixes v2 Migration Guide to reflect that error handlers are async functions (in English and Japanese) - Thanks @atl-mk (#599, #598)
- Clarifies language in "Listening and Responding to a Message" about bot channel membership (in English and Japanese) - Thanks @misscoded, @seratch (#600, #603)
- Updating out of date info and removing duplicate info in the README - Thanks @shaydewael (#609)
- Improvements to the header: filters out prereleases from showing up in the version badge, uses the more canonical "Bolt for JS" title - Thanks @misscoded, @shaydewael (#602, #635)
- Improves copy-pastability (yes, I just made that word up) of the OAuth example config - Thanks @tomquirk (#605)
- Fixes a typo in the README - Thanks @kale (#606)
- Adds missing section break to Getting Started guide - Thanks @mwbrooks, @seratch (#617, #618)
- Updates docs to use
@slack/[email protected]
This release includes additions to the Workflow Steps from Apps beta. 🎉
- Added
WorkflowStep
class, new utility props, tests, and associated types - Thanks, @misscoded! - Updated docs to reflect changes - Thanks, @misscoded!
Install via npm install @slack/bolt@feat-workflow-steps
@slack/[email protected]
- Added
api_app_id
to slash command payloads (#573, #574) - Thanks @stevengill clientOptions
gets passed down to@slack/oauth
(#585, #586) - Thanks @stevengill- Added a new property to
installerOptions
namedauthorizationUrl
. This can be used to change the default authorization endpoint when doing OAuth. (#585, #586) - Thanks @stevengill Bolt-js
now exposes exported interfaces from@slack/oauth
and everything exported from@slack/types
(#585, #586) - Thanks @stevengill