Skip to content

Releases: slack-php/slack-php-app-framework

v1.0.0

24 Feb 19:06
21c5ebe
Compare
Choose a tag to compare

Consider it stable!

v0.7.1

04 Aug 19:50
Compare
Choose a tag to compare
v0.7.1 Pre-release
Pre-release
  • Fixed missing Context::error() method. 😅
  • Added InputStateValidator::new() method.
  • Fixed InputStateValidator::rule() so that callback can accept string or string[] (e.g., for multi-selects) values.

v0.7.0

03 Aug 22:03
Compare
Choose a tag to compare
v0.7.0 Pre-release
Pre-release
  • Added Context::appHome() that returns a Home object.
  • Added Home::update() (force), Home::safeUpdate(), and Home::updateIfSafe().
  • Deprecated Context::home() in favor of Context::appHome().
  • Updated Modals::update() and Added Modals::safeUpdate() and Modals::updateIfSafe().
  • Updated Context::error() to return an Error object, that helps you log and display errors.
  • Added methods in AppConfig to configure the error templates for the Error object.
  • Added InputStateValidator and InputStateValidationException for validating InputState.
  • Updated ClassResolver listener to add the listener's class to the logging context.
  • Updated WIP listener to better handle push vs. open for modals.
  • Removed vestigial Context::setSensitive() method.

v0.6.0

11 Jul 17:08
Compare
Choose a tag to compare
v0.6.0 Pre-release
Pre-release
  • Improved Base listener.
  • Fixed another bug in the WIP listener.
  • Removed previously deprecated Dual listener (should use Base listener now).

v0.5.0

09 Jul 18:21
Compare
Choose a tag to compare
v0.5.0 Pre-release
Pre-release
  • Added support for Socket Mode in a separate package: slack-php/slack-php-socket-mode.
  • Removed SensitiveValue code and logic. Was unused by framework and not something we want to support externally.
  • Added InputState helper class to assist in extracting submitted data from view_submission into a flat associative array structure and simplify the non-uniform input types.
  • Fixed a bug in the Chain interceptor that was preventing interceptors from firing more than once in Socket Mode.
  • Added the Base listener, which is an improvement on Dual listener.
  • Deprecated the Dual listener (should use Base listener now).
  • Fixed a bug in the WIP listener.

v0.4.0

18 Jun 20:53
Compare
Choose a tag to compare
v0.4.0 Pre-release
Pre-release
  • Fixed a bug with App::viewSubmissionAsync().
  • Updated Context::home() for better support when working with App Home surfaces:
    • Allows specifying the user now via the 2nd parameter, instead of only being able to use the current user.
    • Allows specifying whether to include the hash via the 3rd parameter for better control over handling race conditions.
    • Bumped up the version requirement for slack-php/slack-block-kit to 0.19.0 which allows you to set all the supported fields (including private_metadata) on App Home surfaces.
    • Updated Payload::getMetadata() to work correctly for extracting data from the app_home_opened event.
  • Updated the HasData trait (part of Context, to make the general get*() functions less restrictive on return type.
  • Added a timestamp value to the Context (for HTTP server) that holds the request timestamp value provided by Slack.
    • This could potentially be used to determine how close you are to the ack/trigger_id timeout.

v0.3.0

16 Jun 16:36
7f458b6
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

This release contains updates made while dogfooding.

  • Improved Router:
    • Added viewSubmissionAsync to routing (available via either App or Router). I found myself unexpectedly needing this while dogfooding.
  • Improved Context object:
    • Added Context::getAppConfig() and Context::getApiClient() getters to Context. Seemed useful while dogfooding to have these.
    • Added support for Surface factories (i.e., callables that return Surfaces) to methods accepting surfaces like: ack(), respond(), say(), home(), modals(), and view(). Applies to anything calling the Coerce methods for Surfaces.
  • Improve Payload object:
    • Added HasData::getAllOf() method, which also applies to the Payload.
    • Updated Payload::getMetadata() to return an empty PrivateMetadata object when metadata is null, instead of throwing an exception.
    • Added Payload::getResponseUrl() for abstracting the process of getting the response_url from the payload. Works for view_submission payloads too, where response_urls are created from Conversation or Channel Select inputs.
  • Added some new Listeners:
    • Dual - An abstract Listener you can extend to provide both sync/pre-Ack and async/post-Ack logic.
    • WIP - A stub-like Listener that outputs "Work in progress" in the best way (e.g., message, modal, log) available for the current interaction type.
  • Improved logging:
    • (BC) Renamed SlackLogger::addData() to SlackLogger::addContext()` because it fit with PSR-3 nomenclature better.
    • Added the ability to add and get context data with the base Exception class via ::addContext() and ::getContext(), respectively.
    • Improve StderrLogger to include context from the exception, when available.
  • Improved CommandRouter:
    • (BC) Renamed the default list command in CommandRouter to help.
    • Added support for custom default commands by using '*' or the CommandRouter::withDefault() command.
    • (BC) Renamed CommandRouter::description() to withDescription().
  • Improved Deferrers:
    • Fixed a couple of issues with DeferredContextCliServer while dogfooding.
    • Fixed ShellExecDeferrer so that it allows logging via stderr.

v0.2.0

22 Apr 21:24
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release
  • Improved AppServer implementations:
    • Added overrideable init() method to assist in initialization since constructor is final.
    • Added support for setting AppCredentials on the base AppServer.
  • Improved Deferrer implementations:
    • Moved PreAckDeferrer to new Deferral namespace.
    • Added ShellExecDeferrer to allow deferring via a background shell_exec call.
    • Added DeferredContextCliServer for processing deferred Contexts via CLI.
    • Fixed initialization bug in Ack listener.
  • Improved MultiTenantHttpServer implementation:
    • Added support for more lenient/intuitive app registrations.
    • Added Coerce::application() helper.
  • Improved Auth components:
    • Fixed bug in AuthMiddleware that validated credentials too early.
    • Updated AppCredentials::supports*() methods.
    • Added missing App::withBotToken() method.

v0.1.2

15 Apr 18:02
Compare
Choose a tag to compare
v0.1.2 Pre-release
Pre-release
  • Fixes AppCredentials::fromEnv() to handle null values.

v0.1.1

15 Apr 16:19
Compare
Choose a tag to compare
v0.1.1 Pre-release
Pre-release
  • Replaced jeremeamia/slack-block-kit with the new version: slack-php/slack-block-kit