What's Changed (beta)
This beta release contains feature enhancements to Bolt JS for developers participating in the Slack Platform Beta 🚀
Compatible with the Slack CLI tool
Create a new app from a Github sample template
$ slack create my-app -t slack-samples/bolt-js-starter-template -b future
Run your app for local development from the CLI. We take care of installation, tokens and starting the app in development mode.
$ slack run
Configure your app in code
Declare a manifest.js
or manifest.ts
file import handly utility functions and define any recomposable units contained such as Functions
, Workflows
and Triggers
.
# my-app/manifest.js
const { Manifest } = require('@slack/bolt');
module.exports = Manifest({
runOnSlack: false,
name: '',
displayName: '',
description: '',
botScopes: ['chat:write'],
socketModeEnabled: true,
workflows: [TimeOffWorkflow],
features: {
appHome: {
messagesTabEnabled: true,
messagesTabReadOnlyEnabled: true,
},
},
settings: {
interactivity: {
is_enabled: true,
},
org_deploy_enabled: false,
},
});
Compose Custom Function handling logic via a SlackFunction
.
Write a recomposable unit of logic:
Example:
const myFunc = new SlackFunction('fn_callback_id', () => {});
Attach optional handlers for block_action
and view
events related to your function.
Example:
myFunc.action('action_id', () => {})
.view('view_callback_id', () => {});
Enhancements
- Bolt-JS projects containing a valid
slack.json
file in their project root are now Slack CLI compatible by @srajiang - Adds CLI hook implementations
get-manifest
start
andget-hooks
by @srajiang - Exports utility types and functions intended for
manifest.js
authoring by @srajiang @neptunel - Adds SlackFunction and Function Localized Interactivity handling by @srajiang in #1567
Full Changelog
https://github.com/slackapi/bolt-js/compare/@slack/bolt@3.12.1...@slack/bolt@4.0.0-nextGen.2