Our future generation platform is in closed beta. During the beta, expect some rough edges, broken windows overlooking blue sky vistas, and regularly scheduled changes.

Already signed up? Great! You can ignore this.
Need to sign up? Apply to join the beta.

Changelog

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)

  • Added distribution control for Functions. Now you can --grant and --revoke access to Run On Slack functions with the new distribute command. Read more.

v1.2.0 (May 24th, 2022)

  • Added --no-cleanup flag for slack run, which persists the development version of your app in your workspace between runs.
  • Added breaking change warnings to app manifest validation
  • Fixed auto-update support on Linux
  • Updated default template to work with Deno v1.22
  • Added disclaimer about transferring app ownership between workspaces

v1.0.1 (May 5th, 2022)

  • Added support for passing Datastore type generics into client.apps.datastore.* calls. See Using Datastores for details.
  • Added support for directly calling Slack API methods. Now instead of client.apiCall('chat.postMessage', {...}), you can do client.chat.postMessage({...}). See Calling Slack API methods for details.
  • Quickstart installer script properly handles Deno upgrades
  • Panic events in the CLI are now logged
  • Improved logging for local run when developer exits
  • Fixed issue with activity --tail not working properly
  • Improved token rotation

v1.0.0 (April 19, 2022)

Did you build next-generation apps before April 19, 2022?
If you built apps on the next-generation platform before April 19, 2022, you will need to re-authorize your CLI into your workspace. Do this by running slack auth logout and then slack auth login.

What's new?

  1. Projects no longer include Workflows, Triggers, and Functions, and instead are fully centered around Functions.
  2. Functions have been rebuilt from the ground up. You can now create modular "Run On Slack functions" that are deployed to Slack.
    • Functions are defined in the Manifest, and implemented in "source files"
    • For DefineFunction, the id has been moved into the function definition and is now known as callback_id.
    • To make the transition easier, you can now test a function with the new Developer Shortcut that is automatically created for each function.
    • In the future, you can add these as steps to Workflow Builder.
    • In the future, supercharge existing Bolt apps with Remote functions.
  3. You no longer need to define Workflows or Triggers within the project in order to produce a fully functioning app.
  4. Tables have been supplanted by a stronger, more resilient system called Datastores (key-value storage for your apps).
  5. Project.ts is now manifest.ts; your apps are configured in your project's manifest.
  6. New apps require Deno version 1.20.0 or greater to use the new Deno Slack SDK.
  7. Manifests are authored in a manifest file, which can be js, ts, or json.
  8. Each function's runtime logic comes from its own file, which can be js or ts.
  9. The new SDK supports three main areas: functions, types, and datastores.
  10. For DefineType, the id has been moved into the type definition and is now known as callback_id.
  11. The schema types we support are now limited to channels, user, boolean, and string. We also support array of user, channel, and string enum.
  12. We no longer provide a client to every function, and instead let developers opt into the client by importing our separate API library that can be instantiated with the token helper.
  13. TypeScript types are available through the FunctionHandler.
  14. Admin audit logs are now tracked by Platform API instead of CLI SDK
  15. Deno Slack SDK is open sourced!
  16. slack create creates a Reverse String app using the new Deno SDK
  17. slack activity has a new look & feel for deployment logs
  18. slack run now deletes your dev app when the local development server stops
  19. slack doctor has a new look & feel with extra details
  20. slack list now lists all authed accounts instead of listing collaborators
  21. .slack/cli.json has been removed from the project
  22. slack.json is now a required file in the root of your project
  23. slack.json has a new format to make SDK updates smoother
  24. slack tables command is removed (see slack datastore)
  25. CLI no longer manages the creating, updating, & deleting of Triggers

What has not changed?

The following features and functionality have not changed:

  1. Logging in with slack login
  2. Creating an app with slack create
  3. Local development with slack run
  4. Deploying an apps with slack deploy
  5. Debugging deployed apps with slack activity --tail
  6. Managing collaborators with slack collaborators
  7. Using DefineFunction and DefineType

What about my Tables and the data in them?

We will keep your tables and the API routes to access them (apps.tables.*) for two weeks. Please use this time to extract any data that you would like to extract via the API. (The CLI/SDK will no longer support these routes, so you'll need to use the API directly). We've put together some scripts to help the migration process.