The new Slack platform and the features described below are in beta and under active development.

Changelog

Your experience while developing on the new platform is largely governed by the SDKs and CLI you use to interact with it. The tools change as the platform changes and we release new versions regularly. Let us know how we're doing.

v1.16.4 (November 17th, 2022)

  • When uninstalling an app using the slack uninstall command, you will now receive a warning message confirming that all of the data related to this app will also be deleted (i.e. the app's related workflows, functions, and datastores). See update here.
  • When validating an app's manifest via the CLI using slack manifest validate --verbose, you are now prompted to choose an AppID. This change fixes a bug where an app manifest may have previously been validated against an incorrect AppID. Since each app may have a slightly different manifest depending on what stage of development it's in (for example, a local development app vs. a deployed app), you can now specify the app to validate your local project's manifest against.
  • When adding or removing a collaborator via the CLI, you are now prompted with a more descriptive <email and user_id> flag that adds or removes a user directly, e.g. slack collaborator add U123456789 or slack collaborator add iuseslack@mycompany.com.
  • We've improved how authentication tokens are managed behind the scenes by updating various CLI commands that will prevent future bugs.
  • Run slack create and choose our Scaffolded app to familiarize yourself more closely with datastores on the new Slack platform.

v1.15.0 (November 3rd, 2022)

Breaking change

Beginning January 19th, 2023, you must specify all domains you'll use for remote HTTP requests in the outgoingDomains property of your app's manifest.

  • outgoingDomains will be enforced on all workspaces for Slack-hosted apps. Previously, outgoingDomains was only enforced on workspaces with Admin-Approved Apps enabled.

When does this happen?

  • On January 19th, 2023 At 16:00 UTC 👉 (which is 09:00 AM Pacific Standard Time and 01:00 AM Japan Standard Time) 👈 outgoingDomains will be enforced on all workspaces for Slack-hosted apps.
  • Additionally, hooks.slack.com was being implicitly added as an approved outgoing domain on AAA-enabled workspaces. After January 19th, 2023, it will be removed from that list and will need to be added explicitly as an outgoing domain if your functions make network requests to hooks.slack.com.

How should I get ready?

  • Once you upgrade to the v1.15.0 release and upgrade your project's deno-slack-hooks dependency to v0.7.0, the slack run command will enforce your app's outgoingDomains setting locally.
  • If your app makes network requests, test your app using slack run. If you recieve a "Requires net access to <domain_name>" error message, add the listed domain to your outgoingDomains setting and try again. Once you're done, redeploy it using the command slack deploy.

Other changes

  • Enhanced visibility of app selection prompt, the "status" of an app is now indicated by a green App ID, e.g. AO12345678 instead of text, e.g. Status: Installed.

Bug fix

  • slack manifest validate no longer throws requires_request_url or requires_socket_mode_enabled errors when validating the Hello World starter template manifest.

v1.14.0 (October 20th, 2022)

v1.13.1 (October 6th, 2022)

  • Improved Windows path handling.

v1.13.0 (October 6th, 2022)

  • Updated slack activity command to now support selecting local app development application.
  • Added --secret flag to slack external-auth add-secret command warning message text.
  • When a response is returned as "not ok", the slack-debug-[date].log file will log the response and request. No other activity will be logged.
  • Removed PII (personally identifiable information) such as a user's home directory and username from the slack-debug-[date].log file.

Bug fix

  • When running the commands slack run or slack activity --tail, the command will exit once a timeout is reached.

v1.12.0 (September 29th, 2022)

  • Added slack trigger info command to CLI to display trigger ID, type, name, and URL e.g. slack trigger info --trigger-id "Ft123ABC456".
  • Added slack feedback command to CLI. We would love to know about your experience (good or not so good) using the Slack CLI. Use this command to submit feedback or submit it directly here.
  • Updated the Slack CLI debug log to include the date as a suffix e.g. slack-debug-20220915.log. This log file will be accessible in the .slack/logs folder on your computer. Note: The CLI will auto-cleanup log files older than one week from the .slack/logs folder.
  • Improved error handling by adding additional error details to output.

Bug fix

  • The slack trigger and slack workspace command will return an 'Error: unknown command' if an invalid command is executed e.g. slack trigger <invalid_command> or slack workspace <invalid_command>.
  • slack auth and slack collaborators default to slack auth list and slack collaborators list command if no additional arguments are passed in the command.

v1.11.0 (September 8th, 2022)

Breaking changes

  • All apps built with the Slack CLI are now Org-wide apps. All apps installed in an enterprise workspace must be reinstalled.
  • The type FunctionHandler is no longer exported. Use the SlackFunctionHandler type when building custom functions instead. Alternatively, use the new SlackFunction helper included in this release.
  • DefineType() no longer accepts callback_id as a property. The callback_id has been deprecated in favor of name.
  • The options.client_secret_env_key property has been removed from DefineOAuth2Provider() in favor of using the add-secret CLI command. If you are using client_secret_env_key, you can remove it and then use add-secret instead to provide the value.
  • The following built-in functions no longer allow Block Kit values in the message field:
    • SendDm
    • SendMessage
    • SendEphemeralMessage Both text and rich_text are still supported.
  • The following fields have been removed from the block_actions/view_submission/view_closed interactivity event payload:
    • body.user.username
    • body.trigger_id
    • body.token
    • body.is_enterprise_install
    • body.app_unfurl
    • body.workflow_step
    • body.trigger_info
  • If you have an interactivity handler that relies on body.trigger_id, use body.interactivity.interactivity_pointer instead.
  • uri has been renamed to url for the string type. If you're using format: "uri" as either an OpenForm input field or top-level string parameter in a custom function, please update to format: "url".

Other changes

  • The reverse-string app template has been removed.
  • The following new app templates are available in the CLI:
    • Hello World, a simplified workflow that sends a greeting
    • Scaffolded project, a solid foundation to start building upon
    • Blank project, a, well, blank project
  • Now the CLI will emit a warning when you make breaking changes to a function or metadata.
  • Terms of Service check is being removed from slack run. On workspaces that don't require admin approval to install apps, slack run will start a local development server without first having to have an admin accept the Terms of Service.
  • A new field interactive_blocks has been added to the following built-in functions:
    • SendDm
    • SendMessage
    • SendEphemeralMessage
  • Added support for external authentication.
  • Improved how slack run watches for filesystem changes.
  • Triggers can now take workflow definitions to improve typeahead.

v1.10.0 (August 25th, 2022)

Breaking changes

  • Each built-in function now requires scopes to be included in the manifest.ts file. See updates here.

  • Using autogenerated shortcuts to run your function will no longer be supported on the future platform. In its place, we have introduced workflows and triggers to automate your function. Add your function to a workflow and assign that workflow a trigger to power your functions.

Other changes

  • The Deno Slack SDK now supports view_submission and view_closed events with the new ViewsRouter API. Allowing you to create custom visual flows within your app.
  • With the BlockActionRouter API, your app has the ability to create robust Block Kit messages with interactive components like buttons, multi-select fields, text input fields, date and time pickers, etc.
  • Added access control for triggers. Now you can manage who can run your trigger in your workspace with the new slack trigger access command. Read more
  • Added new built-in types: Schema.slack.types.rich_text and Schema.slack.types.date.
  • Added examples for each built-in type. See updates here.
  • Updated the manifest definition with new optional properties displayName, longDescription, functions, workflows, outgoingDomains, events, types, datastores, and features.
  • Added steps to the Quickstart guide on how to create a trigger and configure it to your workflow.
  • Token rotation behaves as expected when there are multiple accounts with different API hosts.

v1.9.0 (August 11th, 2022)

Breaking change

Link triggers are replacing Global Shortcuts as the tool that powers your functions. This means that you will no longer be able to create Global Shortcuts on the new Slack platform and that functions must be added to workflows and have a trigger configured in order for them to be used.

Link triggers will allow you to add more interactivity and user input into your app (try out the new OpenForm built-in function). Simultaneously, leverage workflows to automate tasks more seamlessly throughout your workspace. Since triggers and workflows go hand in hand i.e. you need to configure a trigger to start your workflow, see the Migrating to workflows and triggers guide for instructions on how to migrate the previous version of your app to a modern version that leverages workflows and triggers.

What has changed?

What has not changed?

v1.8.1 (July 26th, 2022)

  • Improved version naming convention.

v1.8.0 (July 26th, 2022)

  • Changed the plural form triggers and collaborators CLI commands to the singular form trigger and collaborator commands.
  • Deprecated CLI command slack var. Use the command slack env with the appropriate subcommand to add, list, and remove environment variables.
  • Simplified the CLI commands page. For full details on each command, run the command in a terminal with the --help flag.

v1.7.0 (July 14th, 2022)

  • Improved datastore schema validations.

v1.6.0 (July 14th, 2022)

  • Added type support for integer, number, usergroup, timestamp, blocks (see here), and Object.
  • Added support for App Home configuration properties read_only_message_tab and messages_tab_enabled. You can now hide the Messages tab in your app with the new features property in the manifest.
  • Added new name property and deprecated callback_id property in DefineType definition. Check out our updated code sample here!

v1.5.0 (June 30th, 2022)

  • The default behavior of slack run is to now persist the dev version of your app. in your workspace between runs. (If you do want to remove it between runs, you can use the --cleanup flag.)
  • Added upgrade command. Now you can run slack upgrade to update your CLI and SDK together.
  • Continuing to add support for more robust error handling and resolution guidance.
  • Fixed issue that removed the .slack directory when executing CLI commands in user's home directory.

v1.4.0 (June 16th, 2022)

  • Updated post-distribution directions. After using the distribute command, your app must be deployed again for other users to have access to your function. Read more.
  • Added new optional filter flags --component-id, --source, and --trace-id for slack activity command. Read more.
  • Fixed a cache_error bug that affected some users when using slack run.
  • Improved experience when token is revoked or expired due to rotation. Added a robust error message and removed auth blockage allowing user to resume slack login without errors.

v1.3.0 (June 2nd, 2022)