Skip to content

Releases: slackapi/java-slack-sdk

version 1.21.0

06 Apr 04:05

Choose a tag to compare

Changes

  • [slack-api-client] #957 Fix #954 Add setToken(String) to MethodsClient request Interface - Thanks @seratch
  • [slack-api-client] #958 Add domain to team.info API parameters - Thanks @seratch
  • [slack-api-client] #956 Fix #955 Add more Javadocs to slack-api-method classes and interfaces - Thanks @seratch
  • [all] #959 Upgrade optional dependency patch/minor versions - Thanks @seratch

version 1.20.2

18 Mar 03:31

Choose a tag to compare

Changes

  • [slack-api-client] #953 Add external_limited to conversations.inviteShared API parameters - Thanks @seratch
  • [slack-api-model] Add Clip related properties to file object - Thanks @seratch
  • [slack-api-client] Add new constant values to Audit Logs API client - Thanks @seratch

version 1.20.1

03 Mar 04:21

Choose a tag to compare

Changes

  • [slack-api-client] #943 Add missing parameters in chat.update API method - Thanks @seratch
  • [slack-api-client] #946 Fix #945 Log level for rate-limited error logging - Thanks @seratch @jahlbornG
  • [slack-api-client] Audit Logs API response updates - Thanks @seratch

version 1.20.0

19 Feb 01:09

Choose a tag to compare

Changes

  • [bolt-socket-mode] #939 #937 bolt-socket-mode establishes a connection before a SocketModeApp#start()/startAsync() method call - Thanks @seratch
  • [slack-api-client] #938 #931 AdminAppsRequestsListRequest class missing enterpriseId field - Thanks @seratch @andrewtcobb

version 1.19.0

17 Feb 11:50

Choose a tag to compare

New Features

A new option to completely disable the underlying API call metrics management

The smart rate limiter feature in this SDK is so useful for easily managing rate limits in Slack API calls.
https://slack.dev/java-slack-sdk/guides/web-api-basics#rate-limits

However, as reported at #933, the feature can be a bit overhead for the app that needs to handle requests associated with a large number of workspace installations (say, thousands!).

Since this version, we've added a new option statsEnabled to SlackConfig and its API client level sub configs such as MethodsConfig, SCIMConfig, and AuditConfig. The default value is true, which is compatible with the past versions.

If you don't need the traffic metrics at all, you can disable this feature by the following way:

SlackConfig config = new SlackConfig();
config.setStatsEnabled(false);
Slack slack = Slack.getInstance(config);

For more granular control, you can set the same flag for each API client:

SlackConfig config = new SlackConfig();
// Disable the metrics only for Web API methods
config.getMethodsConfig().setStatsEnabled(false);
// For SCIM, Audit Logs APIs, the metrics are still available
Slack slack = Slack.getInstance(config);

If you set this flag to false, you can get rid of the potential overhead for large-scale apps. The downside of the customization would be that your app needs to manage rate-limited error patterns on our own. This is because disabling the option means that API call history data, which this SDK's smart rate limiter feature relies on, is no longer maintained.

Also, since this release, the API client behavior with the default settings is significantly improved. Therefore, for most apps, now the default configuration should work without any performance issues.

Changes

  • [slack-api-client] #931 Add bookmarks.* Web APIs - Thanks @seratch
  • [slack-api-cljent] #930 Add admin.users.unsupportedVersions.export API support - Thanks @seratch
  • [slack-api-client] #925 Add accessibility_label to button block element - Thanks @seratch
  • [slack-api-client] #934 Fix #933 by adjusting the internals of smart rate limiter - Thanks @sidneyamani @seratch
  • [all] #932 Upgrade gson, slf4j versions and others - Thanks @seratch

version 1.18.0

27 Jan 23:32

Choose a tag to compare

New Features

Jakarta EE Servlet Compatible Bolt Adapters

In this release, we've added new Bolt adapters for Jakarta EE users:

  • com.slack.api:bolt-jakarta-servlet(javadocs), which is compatible with jakarta.servlet 5.0
  • com.slack.api:bolt-jakarta-jetty (javadocs), which is compatible with jakarta.servlet 5.0 + jetty 11.x

There is no breaking change to the existing Java EE based modules. Also, we know that many developers in the Java community are still using javax.servlet for their production apps. We will continue to support both Java EE and Jakarta EE for a long enough time.

As for the transition of the rest of Jakarta EE dependencies (specifically, we have javax.websocket dependency in provided scope), refer to the discussion at #919 (comment).

Deprecations

The classes under com.slack.api.app_backend.events.servlet in com.slack.api:slack-app-backend are deprecated since this version. We generally recommend using Bolt for Java for new app development. To learn do the same with Bolt, please read the document page. If you have to continue using the deprecated classes for a certain reason, please feel free to copy them into your application under the MIT open-source license.

Changes

  • [slack-api-client] #921 Improve #917 not to rely on #toString() method behavior - Thanks @seratch
  • [bolt] #920 Add bolt-jakarta-servlet and bolt-jakarta-jetty modules for Jakarta EE supports - Thanks @seratch @kuzuha
  • [all] #922 Upgrade optional dependencies and organize pom.xml - Thanks @seratch

version 1.17.1

26 Jan 00:50

Choose a tag to compare

Changes

  • [slack-api-client] #917 Improve the thread pool management under the hood - Thanks @seratch
  • [bolt] #918 Fix context.getTeamId() to return a valid ID for org-wide installations - Thanks @seratch
  • [all] Upgrade slf4j-api patch version and other optionals ones - Thanks @seratch

version 1.17.0

21 Jan 01:39

Choose a tag to compare

New Features

Customize ExecutorService used inside the SDK

f you desire to pass your own ExecutorService to this SDK, now ExecutorServiceProvider interface is available for you.

You can implement the interface with your own factory methods and pass its instance to either SlackConfig (for API clients) or AppConfig (for Bolt apps).

var config = new SlackConfig();
config.setExecutorServiceProvider(new MyExecutorServiceProvider())
var slack = Slack.getInstance(config);

// ExecutorService will be provided by MyExecutorServiceProvider
var future = slack.methodsAsync().authTest(r -> r.token(System.getenv("SLACK_BOT_TOKEN"));

If you pass it to AppConfig, all the underlying API clients use the same ExecutorServiceProvider.

var config = AppConfig.builder()
  .signingSecret(System.getenv("SLACK_SIGNING_SECRET"))
  .singleTeamBotToken(System.getenv("SLACK_BOT_TOKEN"))
  .executorServiceProvider(new MyExecutorServiceProvider())
  .build();
var app = new App(config);
var server = new SlackAppServer(app);
server.start();

Refer to #915 and #916 for more details.

Changes

  • [all] #916 Fix #915 by adding ExecutorServiceProvider to enable developers to use their own ExecutorService - Thanks @seratch @jahlbornG
  • [all] Upgrade minor/patch versions of the optional dependencies. - Thanks @seratch

version 1.16.1

17 Jan 06:07

Choose a tag to compare

Changes

  • [slack-api-client] #911 Add admin.apps.requests.cancel API - Thanks @seratch
  • [bolt] #914 Fix #913 user-scope only OAuth does not work since v1.10 - Thanks @seratch @loc02998375
  • [all] #912 Upgrade slf4j-api patch version and other optionals ones - Thanks @seratch

version 1.16.0

17 Dec 03:19

Choose a tag to compare

Changes

  • [slack-api-client] Add newly added properties in Events API payloads / Web API responses - Thanks @seratch
  • [bolt-micronaut] #903 Fix #891 Migrate Micronaut version to 3.2 - Thanks @seratch @volgin
  • [all] #905 Upgrade optional module dependencies' minor/patch versions - Thanks @seratch
  • [all] #898 Add GitHub stale action for better triaging issues - Thanks @srajiang @seratch
  • [docs] #902 Replace instances of "event" with "request" in docs - Thanks @wongjas