こちらの新機能は現在開発中およびオープンベータ中です。
試したい方はこちらをご覧ください。

Changelog (変更履歴)

新しい Slack プラットフォームでの開発体験は、 SDK や CLI によって大きく左右されます。この開発ツールは定期的にプラットフォームの変更により、新しいバージョンをリリースしています。ご意見をぜひお聞かせください(日本語でも大丈夫です)

v2.8.0 (2023 年 8 月 24 日)

  • Deno の依存ライブラリのキャッシュを改善しました。
  • app list コマンドは認証を必要としなくなりました。代わりに認証が見つからない場合、アプリのステータスは unknown を表示するようになりました。
  • rundeploydelete のコマンドは、ワークスペースレベルの認証がない場合に OrG レベルの認証を使うようになりました。

v2.7.0 (2023 年 8 月 10 日)

  • slack trigger list コマンドに --type=<string> というフラグを追加しました。このフラグを指定すると特定の種別のトリガーのみを表示するようになります。
    • 例えば、このコマンドを実行するとリンクトリガーのみが表示されます: slack trigger list --type=shortcut
    • --type=<string> に指定できるフラグの値は allshortcuteventwebhookscheduledexternal です。
  • 多くの対話型プロンプトに値を提供するフラグを追加した。各コマンドに --help を指定すると利用可能なフラグの詳細が表示されます。
    • 例:slack external-auth add-secret --provider github --secret my-secret-value
  • slack app list コマンドで、アプリの詳細情報にアクセスするための認証を行っていないアプリの表示を改善しました。
    • ローカルでインストールされたアプリには (local) が表示されるようになりました。
    • アプリがインストールされたかのステータスが不明な場合は Status: Unknown と表示するようになりました。
  • デバッグログファイルに存在していた不正なタイムスタンプの出力を削除しました。
  • Deno SDK v2.2.0 から、意図せず workflowfunctiondatastorecustomTypeeventprovider の定義で重複する主キーを登録した場合、エディター上でエラーが表示されるようになりました。この改善により、実行時の意図しない挙動を防ぐことができるようになります。

v2.6.0 (2023 年 7 月 27 日)

  • サンプルアプリから作成された新しいプロジェクトでは .github ディレクトリーが含まれなくなりました。
  • サポートのメールアドレスを feedback@slack.com に変更しました。アプリが internal_error (内部エラー) を返した場合、このメールアドレスにお問い合わせください。
  • slack app list コマンドを実行したときに、インストール済のアプリについて Status: Unknown ではなく Status: Installed が表示されるようになりました。
  • CI パイプラインのような非対話的環境で CLI を実行したとき、プロンプトの入力を待ってハングし続けるのではなく、エラーにして代わりに指定すべきフラグをサジェストするようになりました。
  • 非対話的環境で slack runslack deploy コマンドを実行したとき、トリガーがいくつ存在するかに関わらず、トリガーを生成するプロンプトを自動的にスキップするようになりました。
  • 「アプリの承認が必要」 の設定が有効なワークスペースにアプリをインストールする際の管理者による承認の要件を明確にしました。
  • slack run セッションの終了時、ソケットコネクションを適切に終了させるようになりました。
  • Deno SDK で定義された functionsdatastorestype フィールドについて、入力候補の自動補完を改善しました。

v2.5.1 (2023 年 7 月 10 日)

  • ワークスペースからアプリをアンインストールしたときに適切に削除されない不具合を修正しました。

v2.5.0 (2023 年 6 月 29 日)

  • slack app delete コマンドを実行したが、アプリを削除しないよう選択したという場合に確認のメッセージを表示するようにしました。
  • slack runslack deploy にアプリのトリガーを表示しないようにするための --hide-triggers というフラグを追加しました。
  • Slack コネクトのチャンネルではイベントトリガーがサポートされない旨の警告をトリガーの一覧情報に追加しました。
  • トリガーの一覧情報にアプリのコラボレーターを追加しました。
  • trigger list --limit <n> コマンドで表示をページネーションされた結果に絞ることができるようになりました。
  • トリガーの ACL を named_entities に設定した場合、アプリのコラボレーターを named entities リストに含めるか除外するかを促されるようになりました。--include-app-collaborators というフラグで、このプロンプトをスキップすることができます。
  • データストアのイベントとエラーログをサポートするために slack activity コマンドを更新しました。詳細はloggingを参照してください。
  • --token フラグが指定されている場合、バックグラウンドでの更新のチェックは自動的に無効化されるようになりました。
  • deno upgrade が失敗した場合 deno の インストールは curl を使用するようにしました。
  • slack logout コマンドが --workspace フラグを受け付けるようになりました。
  • slack run コマンドがアプリのすべてのトリガーとその種別を表示するようになったため、slack run から --show-triggers というフラグを削除しました。

CLI v1.17.0 とそれより古いバージョンは非推奨に (2023 年 6 月 28 日)

破壊的変更

6 月 28 日より、v1.17.0以下の CLI は非推奨となりました。最新バージョンへのアップグレードは slack upgrade コマンドを使用してください。詳しくはこちらを参照してください。

v2.4.0 (2023 年 6 月 15 日)

  • Linux/macOS のインストールスクリプトを更新し、CLI のバージョンを指定するフラグの -v のサポートするようになりました。
  • Linux/macOS のインストールスクリプトに Deno のインストールを回避する -d フラグを追加しました。
  • Windows のインストールスクリプトに Alias 、 Version 、 SkipDeno 、 SkipGit というフラグを追加しました。
  • Windows ユーザーが Slack CLI のインストール後に新しいターミナルを開いて Slack CLI をユーザーの PATH 環境変数に追加することを促されるようになりました。
  • Deno の最低限必要なバージョンを 1.31.1 に引き上げました。
  • workspace コマンドを新しい app コマンドで置き換えました。
  • グローバルで有効なフラグの config-dir が表示されるようになりました。
  • 認証ログインでは今後 token を利用するため、auth フラグは非推奨となりました。
  • インストール状況を表示するよう app list コマンドを更新しました。

v2.3.0 (2023 年 6 月 1 日)

  • external-auth remove コマンドを利用する際、削除するトークンを選択できるようになりました。
  • 新しい external-auth select-auth コマンドは、アプリの各ワークフローに対してユニークな認証を指定することができます。このコマンドは、credentialSource DEVELOPER を含むステップを持つワークフローを使用するときに必須です。つまり、ワークフローを作成するたびに external-auth add コマンドの実行後、このコマンドを呼び出す必要があります。
  • サービストークンの作成と削除に slack auth tokenslack auth revoke というコマンドを利用できるようになりました。
    • slack auth token コマンドを実行すると slackauthticket のスラッシュコマンドが表示され、そのコマンドをワークスペース内で実行すると、サービストークンが付与されます。
    • サービストークンは credentials.json ファイルには保存されない代わりに、Slack CLI のプロンプトに表示されます。 CI/CD パイプラインのご利用の場合、こちらから保存しておいてください。
    • サービストークンを取得したら、slack login --auth <your-service-token> コマンドで Slack CLI を認証することができます。
このサービストークンは通常の認証トークンとは衝突しないため、Slack CLI では通常の認証トークンを使用し続けることができます。CI/CD パイプラインではサービストークンを利用してください。
  • グローバルに有効な --token <token> フラグを追加しました。このフラグにより、認証が必要とするリクエストで使用するサービストークンを渡すことができます。例えば、以下の場合:
    • アプリのインストール: slack install --token <your-service-token>
    • トリガーの作成: slack trigger create --token <your-service-token> --app deployed --trigger-def triggers/trigger_def_file.ts
    • アプリのデプロイ: slack deploy --token <your-service-token>
  • グローバルに有効な --experiment [name,name,...] フラグのサポートを追加しました。

v2.2.0 (2023 年 5 月 4 日)

  • trigger info の出力に、誰がトリガーを実行できるか表示されるようになりました。
  • 絵文字や色の ANSI シーケンスを削除する --no-color フラグを追加しました。これにより CLI からの出力をテキストファイルへパイプするのが容易になりました。
  • datastore query コマンドが cursor 引数をサポートし、クエリ結果を自由にページネーションできるようになりました。
  • トリガーの操作で、無効なトリガーファイルが無視されたことを知らせるようになりました。
  • エラー報告とヘルプテキストを改善しました。

一般提供 (2023 年 4 月 24 日)

本日、 Slack でオートメーションをより早く柔軟に構築することができる 次世代の Slack プラットフォームを開発者の皆さんに一般公開することをお知らせします。

このプラットフォームの刷新されたアーキテクチャは、開発者の皆さんがカスタムアプリやワークフローをセキュアかつコンプライアンスに準拠した環境を用いて、より早く簡単に構築・コーディング・デプロイを行うためのより多くの手段を提供します。発表のブログポストを読んだり、クイックスタートガイドに従って今すぐ始めてみましょう!

v2.1.0 (2023 年 4 月 20 日)

CLIの機能強化

  • 新しく始める開発者の方向けに login の手順をより分かりやすくしました。
  • trigger_execution のログをより読みやすいフォーマットに改善しました。
  • Windows のインストールスクリプトにより具体的なエラーメッセージを表示されるように改善しました。
  • ローカルの git バージョンを表示するよう slack doctor コマンドを更新しました。
  • slack help コマンドを使用する際に表示されるいくつかのフラグを非表示にしました。これらの隠されたコマンドは slack help -v コマンドの実行時に表示されます。
  • アクセシビリティを向上させるために、テキストフォーマットを改良しました。

バグ修正

  • データストアのメソッドには、アプリを選択するプロンプトが表示されるようになりました。
  • 引数なしで slack help deno コマンドを実行したときに発生する CLI ランタイムエラーを修正しました。

v2.0.0(2023 年 4 月 6 日)

  • TTY デバイスのサポートを追加しました。出力をリダイレクトする場合に色と絵文字を除去するようになりました。
  • --verbose フラグ指定時の出力にタイムスタンプが表示されるようになりました。
  • インストールからデプロイまでの create コマンドの開発体験がよりシンプルになりました。
  • trigger createtrigger list を実行する際に、イベントを受信するためにアプリをチャンネルに招待するようにヒントを追加しました。また、トリガーの詳細を表示するときの出力を整えました。
  • message_limit_exceeded というエラーコードのサポートを追加しました。無料ワークスペースがメッセージ制限に達した場合、このエラーコードが callbacks.chat/postMessage、chat/postEphemeral、chat/postMessage、chat/scheduleMessage、chat/shareMessage、files/share、drafts/create というエンドポイントからの応答に含まれます。詳細については、無料ワークスペースに設定されている使用制限を参照してください。
  • slack cloud コマンドを slack platform に改名しました。詳しくは、コマンド のドキュメントをお読みください。
  • ワークスペースの一覧で、ローカルアプリでは (dev) の代わりに (local) が表示されるようになりました。
  • Windows ユーザーが Slack CLI、Deno、Git、Deno 拡張機能を含む VSCode をインストールできるようになりました。より詳細な情報は、クイックスタートをご参照ください。
  • slack workspace uninstall コマンドを slack workspace delete に改名しました。
  • slack login --auth <string> コマンドを使用してログインする際のユーザー体験を改善しました。
  • --app フラグの省略形の -a を追加しました。
  • slack auth info コマンドを削除しました。関連する情報は slack auth list コマンドで確認できます。
  • slack samples コマンドを追加しました。このコマンドを使用すると、新しいアプリを作成する時に利用できるテンプレートのリストが表示されます。
  • サンプルアプリをインストールするときに、必要な依存関係としての git を削除しました。

v1.21.0 (2023 年 3 月 23 日)

CLI の更新

  • トリガーファイルが見つからない場合、ユーザーは CLI でリンクトリガーを作成する ドキュメントに誘導されるようになりました。また、 slack trigger access コマンドに --no-prompt フラグを渡すとプロンプトを回避するようになりました。
  • OpenForm の応答結果を含む CSV ファイルを生成する open-form-response export コマンドが追加されました。
  • --local-run を置き換えるものとして、グローバルに有効な --app <id|env> フラグを追加しました。
  • デフォルトのマニフェストの function_runtimeslack ではなく undefined に変更しました。
  • ローカルアプリ名の接尾辞を dev から local に更新しました。

v1.20.0 (2023 年 2 月 23 日)

新機能

  • datastore update コマンドを追加しました。データストアの put コマンドがレコード全体を置き換えるのに対し( HTTP PUT と同様)、この新しい update コマンドはフィールド単位での変更を行うことができ、指定されていないプロパティーは変更されません( HTTP PATCH と同様)。

  • slack.json 内で config.trigger-paths プロパティーを設定して、トリガーファイルのカスタムパスを指定できるようになりました。

  • trigger createtrigger update を使用する際、ファイルが指定されていない場合、ファイルを選択するプロンプトが表示されるようになりました。

  • deploy, run, env コマンドを実行するときに、ワークスペースを指定するための --workspace (-w) フラグを使用できるようになりました。このフラグを指定しない場合、 CLI は現在ログインされているワークスペースから選択するよう促されます。 slack auth list コマンドでアプリがどのワークスペースに認証されているか確認することができます。指定したいワークスペースが表示されない場合、slack login コマンドで再度ログインしてみてください。

機能強化

  • activity コマンドが workflow_bot_invited イベントタイプをフォーマットするようになりました。
  • ターミナルの体験をより簡潔なものにするために、外部ドメインに対する警告を削除しました。
  • external-auth remove コマンドにトークンの失効に関する情報を追加しました。
  • invalid_challenge というエラーの解決案を追加しました。
  • deployrun コマンドを実行する際に、今後の破壊的変更に関するアナウンスを追加しました。今後の破壊的変更については、以下に記載しています。
  • 必要でないテキストヒントを削除しました。
  • 次に何をすればよいか分かりやすくなるよう create コマンドの出力を改善しました。

メンテナンスウィンドウの予定

2023 年 3 月 13 日 13 時から 17 時(太平洋標準時/PST)の間、セキュリティーに関する改善を行う予定です。この間、Run on Slack のファンクションにラグやダウンタイムが発生する可能性があります。

今後の破壊的変更

以下の破壊的変更は、2023 年 4 月 6 日 に適用されます。アプリを動作させ続けるには 4 月 6 日までに以下の手順に従ってアプリをアップデートしてください。

サードパーティ認証

  • OAuth2 入力パラメーターに空のオブジェクトを渡し、どのトークンタイプを使用するかを定義する代わりに、ワークフロー実行中にどのユーザーのトークンを選択または要求すべきかを指定する新しい credential_source プロパティーを使用してください。例えば、以下のように設定します:
// これまでの例
const sampleFunctionStep = SampleWorkflow.addStep(SampleFunctionDefinition, {
  user: SampleWorkflow.inputs.user,
  googleAccessTokenId: {},
});


// 新しい実装の例
const sampleFunctionStep = SampleWorkflow.addStep(SampleFunctionDefinition, {
  user: SampleWorkflow.inputs.user,
  googleAccessTokenId: {
    credential_source: "DEVELOPER" // これを 2023 4 月 6 日までに追加してください
  },
});

データストア

  • アプリマニフェストbotScopes 属性に datastore:readdatastore:write スコープが自動的に追加されなくなります。
  • apps.datastore.put の関数は指定したフィールドのみを上書きするのではなく、データストアのアイテム全体を上書きするようになりました。各フィールドをアップデートする場合は apps.datastore.update を使用してください。
  • データストアのアイテムでは primary_key が唯一の必須の属性で、他の属性はすべて任意(必須でない)の属性として扱われます。適切に扱われていない任意の属性を指定した場合、コード内で TypeScript エラーが発生する可能性があります。任意の属性に移行したい場合、DatastoreItem にキャストすることができます。
import { DatastoreItem } from "deno-slack-api/types.ts";

 const response = await client.apps.datastore.get<typeof SampleObjectDatastore.definition>({
    datastore: "SampleObjects",
    id: sampleObject,
  },
);
const item = resp.item as DatastoreItem<
  typeof SampleObjectDatastore.definition
>;

resp.item.original_msg // これはまだ必須ですが
item.original_msg // この属性は任意です

インタラクティブなペイロード

  • Block Kit のインタラクティブ機能である actionview_submission のペイロードがハンドラー関数にルーティングされる際、 そのペイロードに response_url プロパティーは含まれなくなりました。引き続き、これらのハンドラーでも使用できる Slack API クライアントである client オブジェクトを使って Slack のメッセージ API を直接呼び出すことはできます。

組み込みのファンクション

  • 新しい ReplyInThread ファンクションは、スレッドのメッセージに返信する新しい方法です。返信したいメッセージを SendDMSendMessagethread_ts パラメーターとして渡す代わりに、そのメッセージを ReplyInThread ファンクションの message_context パラメーターに渡せるようになりました。
  • InviteUserToChannel に新しい任意のパラメーターが二つ追加されました。ユーザー ID の配列である user_ids と、チャンネル ID の配列である channel_ids です。 user_idchannel_id は、2023 年 4 月 6 日に削除される予定です。
  • AddUserToUsergroupRemoveUserFromUserGroup には新しい任意のパラメーターとして user_ids というユーザー ID の配列が追加されました。 user_id のパラメーターは削除されます。

v1.19.0 (2023 年 2 月 9 日)

Slack CLI

  • Slack CLI インストーラーが、システムにある他のバイナリーや slack という名前のプログラムを上書きしないように変更されました。
  • ワークスペースにログインしていなくても、Slack CLI をアップデートできるようになりました。
  • slack logout でログアウトすると、認証トークンとリフレッシュトークンが無効となるよう改善しました。
  • アプリを選択する際、最初はワークスペースの選択を表示してから、アプリの環境(ローカルまたはデプロイ済み)を促されるようになりました。 slack runslack deployslack collaborator list などの環境に応じたコマンドでは、ワークスペースの選択のみがプロンプトされます。その後、コマンドにより自動的に環境が選択されるようになりました。

トリガーの更新

  • 特定のワークスペースや OrG に対して、トリガーのアクセスの付与と削除ができるようになりました。
  • slack deploy でデプロイをする際、環境にトリガーが存在しない場合、トリガーファイルからトリガーを生成するプロンプトが表示されるようになりました。
  • slack triggers list を実行すると、各トリガーの作成時刻と最終更新時刻が含まれるようになりました。
  • トリガーのパラメーターがないか空の場合、トリガーが作成されないようにしました。
  • トリガーの作成が workflow_not_found で失敗した場合に、どう修正すればよいかをサジェストするエラーメッセージを表示されるようになりました。

その他の変更

  • Deno Slack SDK に DefineProperty オブジェクトラッパーが追加され、ネストしたオブジェクトのプロパティーとパラメーターに正確な型付けができるようになりました。
  • メッセージを扱う際に、より強力な型付けができるよう、新しく message_tsmessage_context というタイプが Deno Slack SDK に追加されました。
  • ファンクション、フォーム、ワークフローの入力を検証するのに役立つ Slack.types.string 型の emailurl のフォーマットプロパティーが追加されました。
  • オートコンプリート対応の外部認証トークンを取得するための client.apps.external.auth.get メソッドが Deno Slack API に追加されました。
  • ファンクションのモジュールがデフォルトで関数をエクスポートしない場合、エラーが出されるようになりました。

v.1.18.0 (2023 年 1 月 26 日)

重要な変更

  • 以前アナウンスされた通り、外部への HTTP リクエストを行う場合はその全てのドメインをアプリマニフェストoutgoingDomains 属性に設定する必要があります。
  • challenge のステップを含む新しい処理に移行するため、既存のログイン処理は非推奨となりました。これからは slack login の実行とワークスペースで /slackauthticket を貼り付けることでログインするとき、そのまま CLI に戻ってくるのではなく、検証用のコードが発行されるので、それを CLI に入力してログインを完了させる流れになります。この変更は、古いバージョンでのログインセッションを無効化しません。また credentials.json ファイルに保存されている既存のログインセッションも影響を受けません。

その他の変更

  • slack run コマンドを使うときに、トリガーの作成を選択できるようになりました。この選択プロンプトは slack deploy コマンドの実行時には発生しません。
  • datastores_deletedschema_compatibility_error に関するエラーメッセージを改善しました。
  • ヘルプの文言がウェブサイト上のドキュメントと一貫した内容となるよう slack datastore コマンドを更新しました。
  • トリガーのアクセスコントロールリストに含まれるチャンネルのエンティティのサポートを追加しました。channel_id をトリガーへのアクセスを付与・削除するときに指定できるようになりました。
  • 全ての slack datastore コマンドを app_id パラメーターが不要となるように更新しました。今後は内部のアプリ選択処理が自動的に app_id をクエリに含めるようになります。
  • slack env addslack env remove コマンドで必要なフラグが渡されていない場合、これまでの理解が難しいエラー表示の代わりに何が必要か表示するようにしました。また、slack env add が秘匿すべき情報を受け取るときに、パスワード入力時のようにターミナル上でその内容を非表示とするようにしました。これによってターミナルの履歴から情報が漏洩することを防止できるようになりました。
  • slack と名前のつけられた他のバイナリファイルを強制上書きしないようにする防止策を講じました。
  • テンプレートを使って slack create コマンドを利用するときに git コマンドがインストールされていない場合のエラーメッセージを追加しました。
  • channel_not_found エラーが発生したときに、どう修正すべきかの助けとなるメッセージを追加しました。

v.1.17.0 (2022 年 12 月 8 日)

  • 存在しないアプリやインストールされていないアプリを選択肢から除外することで、アプリを選択するときの CLI の利用体験を改善しました。
  • slack install/slack deploy コマンドを選択されたワークスペースのトークンを利用するように変更しました。
  • slack datastore get/slack datastore delete コマンドで primary_key の名前の代わりに id を使用するよう変更しました。

v1.16.4 (2022 年 11 月 17 日)

  • slack uninstall コマンドを使ってアプリをアンインストールするときに、そのアプリに関する全てのデータ(ワークフロー、ファンクション、データストア)が削除される旨を警告するメッセージが表示されるようになりました。詳しくはこちらのアップデートをご確認ください。
  • CLI の slack manifest validate --verbose コマンドを使ってアプリマニフェストのバリデーションを行うときにアプリの ID を選択するよう促されるようになりました。この変更は、これまで正しくないアプリ ID に対してバリデーションが行われていた不具合への修正です。各アプリは、その開発段階に応じて少し異なるマニフェストを持つ場合がありますが(ローカル開発かデプロイ済の本番アプリかによって違いがあります)、アプリを選択することでローカル開発プロジェクトのマニフェストも正しく検証できるようになりました。
  • CLI を使ってコラボレーターを追加・削除するときに、ユーザ ID だけでなくメールアドレスのフラグを指定できるようになりました。具体的には slack collaborator add U123456789slack collaborator add iuseslack@mycompany.com のどちらでも利用できるようになりました。
  • 将来の不具合を防止するために、多くの CLI コマンドの処理を更新することでツール内での認証用のトークンの管理方法を改善しました。
  • slack create コマンドを実行する際にぜひ scaffold のアプリを選んでみてください。新しいプラットフォームのデータストア について、より理解を深められるはずです。

v1.15.0 (2022 年 11 月 3 日)

破壊的変更

2023 年 1 月 19 日以降、リモート HTTP リクエストを使用する場合、そのすべてのドメインをアプリの マニフェストファイルoutgoingDomains プロパティーとして指定する必要があります。

これまで Slack にホスティングされたアプリのための outgoingDomains は「アプリの承認が必要」の設定が有効なワークスペースにのみ適用されていましたが、今後は全てのワークスペースに適用されます。

この変更はいつ適用されますか?

  • outgoingDomains は 2023 年 1 月 19 日 (木)16:00 UTC(日本時間:2023 年 1 月 20 日(金)午前 01:00)、 Slack にホスティングされたアプリの全てのワークスペースに適用されます。

  • また、これまで「アプリの承認が必要」の設定が有効なワークスペースでは hooks.slack.com が外部ドメインの許可リストに暗黙的に追加されていました。 2023 年 1 月 19 日以降は hooks.slack.com はこのリストから削除されます。あなたのファンクションが hooks.slack.com にネットワークリクエストを行う場合、外部ドメインとして明示的に追加する必要があります。

どのように準備すればよいでしょうか?

  • CLI を v1.15.0にアップグレードして、依存パッケージの deno-slack-hooksv0.7.0 にアップグレードすると slack run コマンドでアプリをローカル実行するとき outgoingDomains のプロパティーが強制されます。

  • アプリが外部ドメインへのネットワークリクエストを行う場合、 slack run コマンドで動作テストをしてみてください。"Requires net access to <domain_name>" (<ドメイン名>へのネットワークアクセスが必要です) というエラーが発生した場合、表示されたドメイン名を outgoingDomains プロパティーに追加して、もう一度 slack run を実行します。これらの確認が全て完了したら、slack deploy コマンドで再度デプロイを行ってください。

アップデート

  • CLI でアプリの選択するときのプロンプトを改善しました。具体的には、アプリのステータスが "Installed" のような文字での説明ではなく、アプリ ID(例:AO12345678)を緑色で表示する形に変更されています。

バグ修正

  • slack manifest validate コマンドが Hello World テンプレートのマニフェストを検証する際に requires_request_urlrequires_socket_mode_enabled というエラーを発生する問題を修正しました。

v1.14.0 (2022 年 10 月 20 日)

  • 使用されていない slack workspace default コマンドを削除しました。
  • deno-slack-sdk でアプリのファンクション(およびそのインタラクティビティハンドラー)のパラメーターとして、 enterprise_id を追加しました。すべてのファンクションコンテキストパラメーターはこちらをご覧ください。
  • 以下の Block Kit エレメントのデフォルトのプレースホルダーテキストを更新しました。 channels_selectconversations_selectmulti_channels_selectmulti_users_selectusers_select

v1.13.1 (2022 年 10 月 6 日)

  • Windows の PATH に関する処理を改善しました。

v1.13.0 (2022 年 10 月 6 日)

  • slack activity コマンドを更新しました。ローカル開発のアプリを選択できるようになりました。
  • slack external-auth add-secret コマンドの警告メッセージに --secret フラグを追加しました。
  • 成功でないレスポンスが返された場合、レスポンスとリクエストが slack-debug-[date].log ファイルに出力されるようになりました。その他の動作に関する情報は何もログに出力されません。
  • slack-debug-[date].log ファイルからユーザーのホームディレクトリやユーザー名などの PII (個人を特定できる情報) を削除しました。

バグ修正

  • slack runslack activity --tail を実行しているときに、タイムアウトまで時間が経過するとコマンドを終了してしまう問題を修正しました。

v1.12.0 (2022 年 9 月 29 日)

  • CLI に slack trigger info コマンドを追加しました。このコマンドを実行するとトリガーの ID、種類、名前と URL が表示されます(実行例:slack trigger info --trigger-id "Ft123ABC456")。
  • CLI に slack feedback コマンドを追加しました。 Slack CLI へのご意見(良かったことも良くなかったことも)をぜひお聞かせください。フィードバックを送信するには、このコマンドを利用するか、こちらのアンケートページから送信いただきますようお願いいたします。
  • Slack CLI のデバッグログにサフィックスとして日付を含めるようになりました(例: slack-debug-20220915.log)。このログファイルは .slack/logs フォルダからアクセスできます。(注意).slack/logs フォルダにあるログファイルは 1 週間以上立つと CLI により自動的に削除されます。
  • エラーのより詳細な内容をログに出力するよう、エラー処理を改善しました。

バグ修正

  • 無効なコマンドを実行した場合に slack triggerslack workspace コマンドが 'Error: unknown command' というエラーを返す問題を修正しました(例: slack trigger <無効なコマンド> または slack workspace <無効なコマンド>)。
  • slack authslack collaborators コマンドに追加の引数が渡されない場合、slack auth listslack collaborators list がデフォルトで実行されるようになりました。

v1.11.0 (2022 年 9 月 8 日)

破壊的変更

  • Slack CLI で作成されたすべてのアプリはデフォルトで OrG 全体へのインストール に対応するようになりました。 OrG 配下のワークスペースにインストールされたすべてのアプリは再度インストールする必要があります。

  • FunctionHandler 型はエクスポートされなくなりました。カスタムファンクションを構築するには、代わりに SlackFunctionHandler を使ってください。または、このリリースから公開された新しい SlackFunction ヘルパーを使用してください。

  • DefineType() はプロパティとして callback_id を受け付けなくなりました。callback_id は非推奨となり、代わりに name を推奨するようになりました。

  • options.client_secret_env_key プロパティは DefineOAuth2Provider() から削除され、代わりに add-secret という CLI コマンドを推奨するようになりました。 client_secret_env_key を利用されている場合、それを削除し、代わりに値を指定するために add-secret を使用することができます。

  • 以下の組み込みファンクションmessage パラメーターに Block Kit の値を使用することができなくなりました。

    • SendDm
    • SendMessage
    • SendEphemeralMessage textrich_text はサポートされています。
  • 以下のフィールドは block_actions/view_submission/view_closed のインタラクティビティイベントペイロードから削除されました。

    • body.user.username
    • body.trigger_id
    • body.token
    • body.is_enterprise_install
    • body.app_unfurl
    • body.workflow_step
    • body.trigger_info
  • これまで body.trigger_id を利用するインタラクティビティハンドラーを運用していた場合、今後は代わりに body.interactivity.interactivity_pointer を使うようにしてください。

  • string 型の uriurl に変更されました。 format: "uri"OpenForm 入力フィールドカスタムファンクション のトップレベル文字列パラメーターとして使用している場合は、 format.url に更新してください。

他の変更

  • reverse-string アプリのテンプレートは削除されました。
  • 以下の新しいアプリテンプレートは CLI で利用可能です。
    • Hello World - 挨拶文を送るシンプルなワークフロー
    • Scaffolded project - アプリを構築するための基盤
    • Blank project - 空白なテンプレート
  • ファンクションやメタデータに破壊的変更を行った際に、CLI が警告を表示されるようになりました。
  • slack run コマンドから利用規約の確認が削除されています。アプリのインストールに管理者の承認が必要のないワークスペースでは、slack run コマンドを実行すると、管理者が利用規約に同意しなくても、ローカルの開発サーバーを起動することができます。
  • 以下の組み込みファンクションに新しい interactive_blocks フィールドを追加しました。
    • SendDm
    • SendMessage
    • SendEphemeralMessage
  • 外部認証をサポートするようになりました。
  • slack run コマンドのファイルシステムの変更を監視する方法を改善しました。
  • トリガーにワークフローの定義をサポートするようになり、タイプアヘッドが改善されました。

v1.10.0 (2022 年 8 月 25 日)

破壊的変更

  • 今後は manifest.ts で利用する各組み込みファンクションが必要とするスコープを指定する必要があります。より詳細な情報はこちらをお読みください。

  • 次世代プラットフォームでは、ファンクションを実行するために自動生成されたショートカットは利用できなくなります。その代わり、今後はファンクションを実行するためにワークフロートリガーを利用してください。ファンクションをワークフローに追加し、そのワークフローにトリガーを割り当てればファンクションを実行できるようになります。

破壊的でない変更

  • Deno Slack SDK は新しい ViewsRouter APIview_submissionview_closed イベントをサポートするようになりました。これにより、アプリでのモーダルの見た目や処理の流れをカスタマイズできるようになりました。
  • BlockActionRouter API を使うことで、あなたのアプリはボタン、複数選択リスト、テキスト入力、日付選択、時刻選択などのインタラクティブなブロックを含む、より優れた Block Kit メッセージを作ることができます。
  • トリガーのアクセスコントロールを追加しました。新しいコマンドの slack trigger access を使うことでワークスペース内でトリガーを実行できるユーザーを管理することができます。
  • 新しい組み込み型の Schema.slack.types.rich_textSchema.slack.types.date を追加しました。
  • 各組み込み型のドキュメントに可能な値の例を追加しました。最新の情報はこちらを参照してください。
  • マニフェストの定義に新しい任意プロパティーの displayNamelongDescriptionfunctionsworkflowsoutgoingDomainseventstypesdatastoresfeatures を追加しました。
  • クイックスタートガイドにトリガーの作成方法とそれをワークフローに設定する手順を追加しました。

バグ修正

  • 異なる API ホストに対して複数のアカウントが存在する場合にもトークンローテーションは正常に動作するようになりました。

v1.9.0 (2022 年 8 月 11 日)

破壊的変更

グローバルショートカットに代わり、リンクトリガーはファンクションを起動するためのツールになります。つまり、 Slack の次世代プラットフォームではグローバルショートカットを作成することができなくなります。ファンクションを使用するにはワークフローに追加し、トリガーを設定する必要があります。

リンクトリガーを使うことで、あなたのアプリはさらなるインタラクティブ性とより多くのユーザー入力を追加できるようになります(これのために新しい組み込みファンクションの OpenForm を試してみてください)。それとともに、ワークフローを活用すれば、ワークスペース全体をよりシームレスにタスクの自動化することができます。ワークフローを開始するには、トリガーを設定する必要があります。以前のバージョンのアプリをワークフローとトリガーを活用する最新バージョンに移行する方法については、ワークフローとトリガーへの移行ガイドを参照してください。

変更された機能

  1. 次世代 Slack プラットフォームではファンクション、ワークフロー、トリガーを組み合わせることでアプリを構築します。 ファンクションに加え、ワークフローとトリガーをアプリを作るための部品として導入します。
  2. ワークフロー を追加しました!ワークフローを利用しワークスペース内のタスクを自動化しましょう。
  3. トリガーを追加しました!トリガーを使ってワークスペース内にワークフローを実行しましょう。
  4. 唯一のインタラクティブなトリガーであるリンクトリガーを追加しました。
  5. クイックスタートガイドを更新し、新しいアプリの構成要素であるワークフローとトリガーを追加しました。
  6. 組み込みのファンクションの変更:
    • ユーザーからの入力を収集する新しい組み込みファンクションの OpenForm を追加しました。
    • 組み込みのファンクションの SendDmSendEphemeralMessagets パラメーターを message_ts に変更しました。
    • SendMessage に新しい出力パラメーターの message_link を追加しました。入力パラメーターの meta_datametadata に変更しました。出力パラメーターの tsmessage_ts に変更しました。
    • RemoveUserFromUsergroup の入力パラメーターを user_ids から user_id に変更しました。
    • InviteUserToChannel の出力パラメーター user_id を追加しました。
    • CreateChannel の入力パラメーターの is_private は任意にしました。
  7. 組み込み型 の変更:
  8. 新しいチュートリアル: 次世代プラットフォームでのサードパーティ API の呼び出し方法

変更されていない機能

v1.8.1 (2022 年 7 月 26 日)

  • バージョンの命名規則を改善しました。

v1.8.0 (2022 年 7 月 26 日)

  • CLI コマンドtriggerscollaborators を複数形から単数形に変更し、triggercollaborator となりました。
  • CLI コマンドslack var を非推奨にしました。環境変数の追加・表示・削除をする際は slack env のサブコマンド addlistremove を使ってください。
  • CLI コマンドページを分かりやすくしました。各コマンドの完全な詳細情報を表示するには、ターミナル上で各コマンドを --help フラグをつけて実行してください。

v1.7.0 (2022 年 7 月 14 日)

  • データストアのスキーマ検証を改善しました。

v1.6.0 (2022 年 7 月 14 日)

  • integernumberusergrouptimestampblocksObject 型のサポートを追加しました(詳しくはこちら)。
  • App Home の設定プロパティの read_only_message_tabmessages_tab_enabled のサポートを追加しました。 アプリのマニフェストファイルfeatures プロパティによってメッセージタブを非表示にすることができるようになりました。
  • 新しい name プロパティを追加しました。また、 DefineType を定義するときの callback_id プロパティを非推奨にしました。より詳細な情報は新しいコードサンプルをご覧ください!

v1.5.0 (2022 年 6 月 30 日)

  • slack run コマンドのデフォルトの挙動が、ローカル実行が終了しても dev アプリを削除せずにワークスペース内に残すように変更されました。ローカル起動の終了後に dev アプリを削除したい場合は --cleanup フラグを指定してください。
  • upgrade コマンドを追加しました。 CLI と SDK を同時に更新するには slack upgrade コマンドを使ってください。
  • より強固なエラーハンドリングやエラー解決策の提示のためのサポート機能の追加を継続的に行っています。
  • ユーザのホームディレクトリで CLI コマンドを実行したときに .slack ディレクトリが削除されてしまう問題を修正しました。

v1.4.0 (2022 年 6 月 16 日)

  • ファンクションの配布(distribution)後に必要な対応について内容を更新しました。distribute コマンドを実行した後、他のユーザがファンクションにアクセスできるようにするには、アプリを再度デプロイする必要があります。より詳細な情報はこちらをお読みください。
  • slack activity コマンドに出力をフィルターするためのフラグ(指定は任意)として --component-id--source--trace-id を新たに追加しました。 詳しくはこちらをお読みください。
  • slack run 実行時に一部のユーザーに影響が発生していた cache_error というエラーの不具合を修正しました。
  • トークンが無効化された時やトークンローテーションによって期限切れになったときの開発者体験を改善しました。より詳細なエラーメッセージを表示するようにし、さらに既存の認可に関する問題を解消し、エラーが発生することなく slack login コマンドを再実行できるようになりました。

v1.3.0 (2022 年 6 月 2 日)

  • ファンクションの配布に関するコントロールを追加しました。 新しい distribute コマンドを利用することで "Slack's managed infrastructure" ファンクションへのアクセス許可設定を変更することができます。--grant でアクセスを許可し、 --revoke で取り消します。詳しくはこちらを参照してください。

v1.2.0 (2022 年 5 月 24 日)

  • slack run コマンドに --no-cleanup フラグを追加しました。このフラグを指定すると、ローカル起動が終了しても dev アプリは削除されずにワークスペース内に残ります。
  • アプリマニフェストの検証時に破壊的な変更を検知した場合、警告を表示するようになりました。
  • Linux 環境での自動更新に関する問題を修正しました。
  • デフォルトのアプリテンプレートを Deno 1.22 で動作するよう更新しました。
  • アプリのオーナー権限をワークスペースをまたいで移行する場合に関する免責事項を追加しました。

v1.0.1 (2022 年 5 月 5 日)

  • client.apps.datastore.* の呼び出しで Datastore のジェネリック型を渡すことができるようになりました。 より詳細な情報は Datastores の使い方 のドキュメントを参照してください。
  • 直接 Slack API を呼び出すことができるようになりました。今後は client.apiCall('chat.postMessage', {...}) の代わりに client.chat.postMessage({...}) と記述できます。詳細は Slack API 呼び出し のドキュメントを参照してください。
  • クイックスタート用のインストールスクリプト は Deno のアップグレードを適切に対応するようになりました。
  • CLI で発生したパニックイベントがログに出力されるようになりました。
  • 開発者がローカルでの実行を終了したときのログ出力を改善しました。
  • activity --tail コマンドが正常に動作しなかった問題を修正しました。
  • トークンローテーションを改善しました。

v1.0.0 (2022 年 4 月 19 日)

2022 年 4 月 19 日以前に次世代プラットフォームのアプリを開発されましたか?
2022 年 4 月 19 日以前に次世代プラットフォームのアプリを開発された場合は、CLI は、ワークスペースから再度認可を受ける必要があります。これを実行するには slack auth logout コマンドでログアウトしてから slack auth login コマンドで再度の認可を行なってください。

新機能

  1. 以前のプロジェクトでは、ワークフロー・トリガー・ファンクションが含まれていましたが、このバージョンからファンクションのみを中心とした構成となりました。
  2. ファンクションの仕組みは全く新しい形に再構築されました。"Run on Slack" と呼ばれる、Slack のインフラにデプロイ可能でモジュール化されたファンクションを作ることができます。
    • ファンクションは、マニフェスト(アプリの設定ファイル)で定義され、ソースファイルで実装されます。
    • DefineFunctionid はファンクションの定義へ移動し、今後はそれを callback_id と呼びます。
    • 開発者用ショートカット (Developer Shortcut) と呼ばれる、ファンクションの移行をより容易にするために新たに追加された自動生成のショートカットを使って、ファンクションをテストすることができます。
    • 将来的には、開発したファンクションをワークフロービルダーのステップとして利用できるようになる予定です。
    • 将来的には、既存の Bolt アプリに "Remote" なファンクションを追加できる様になります。
  3. アプリの機能を提供するために、アプリ側でワークフローやトリガーを定義する必要はなくなりました。
  4. Tables は、より強力でレジリエントな Datastores という新しいキーバリューストアに変更されます。
  5. Project.tsmanifest.ts になりました。 アプリはプロジェクトのマニフェストで設定されます。
  6. Deno Slack SDK を動作させるためには Deno 1.20.0 以降のバージョンを利用する必要があります。
  7. マニフェストは、 JavaScript、 TypeScript のソースファイル、または JSON 形式の設定ファイルで記述することができます。
  8. ファンクションの実行時のロジックは JavaScript または TypeScript のソースファイルのものが実行されます。
  9. 新しい Deno Slack SDK は functionstypesdatastores に対応しています。
  10. DefineTypeid は型定義に移行し、今後は callback_id と呼びます。
  11. サポートされるスキーマの種別は channelsuserbooleanstring のみになりました。また userchannelstring (列挙型) の配列もサポートしています。
  12. このバージョンからは、ファンクションに client という変数を提供しません。別途公開されている API ライブラリを import し、token を提供するヘルパーを使ってインスタンス化してください。
  13. TypeScript の型情報は FunctionHandler を通じて利用できます。
  14. Audit Logs のログは CLI SDK 側ではなく、プラットフォームの API 側で記録されるようになりました。
  15. Deno Slack SDK がオープンソース化されました!
  16. slack create コマンドは、新しい Deno Slack SDK を使った Reverse String (文字列の反転) アプリを生成します。
  17. slack activity コマンドが出力するデプロイメントに関するログの内容が刷新されました。
  18. slack run コマンドは、ローカル開発のサーバを停止すると dev アプリを削除するようになりました。
  19. slack doctor コマンドは、さらに詳細な情報を含む形で刷新されました。
  20. slack list コマンドは、コラボレーターを表示する代わりに認可されたアカウントの一覧を表示するようになりました。
  21. .slack/cli.json はプロジェクトから削除されました。
  22. slack.json がプロジェクトのルートディレクトリの必須ファイルになりました。
  23. slack.json は SDK の更新をよりスムーズにするための新しいフォーマットに変更されました。
  24. slack tables コマンドは削除されました( slack datastore を参照してください)。
  25. CLI ではトリガーの生成・更新・削除を行うことができなくなりました。

変更されていない機能

以下の機能については変更はありません。

  1. slack login によるワークスペースへのログイン
  2. slack create によるアプリの作成
  3. slack run によるローカル開発
  4. slack deploy によるアプリのデプロイ
  5. slack activity --tail を使ったデプロイされたアプリのデバッグ
  6. slack collaborators によるコラボレーターの管理
  7. DefineFunctionDefineType の利用

Tables とそのデータに関して

私たちは作成されたテーブルとそれにアクセスするための API のルート (apps.tables.*) を2 週間維持します。もし取得しておきたいデータがあれば、この期間のうちに API を使って取得してください。(新しいバージョンの CLI/SDK は Tables API をサポートしないため、API を直接利用いただく必要があります)。データを移行する作業を容易にするためにこちらのスクリプトを使ってください。