Chatwork Creator's Note

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

ビジネスチャット「Chatwork」のエンジニアとデザイナーのブログです。

読者になる

Github ActionsによるScala製ライブラリの依存ライブラリ更新と定期リリースの自動化

どうも、かとじゅん(@j5ik2o)です。 Scala製ライブラリでの依存ライブラリ更新と定期リリースをGithub Actionsを使って自動化するようにしたので、以下にその方法をまとめます。 具体的な例を見たい場合は以下のリポジトリを参照してください。 github.com

Rustでのモデル駆動設計について

こんにちはかとじゅんです。 この記事は、ドメイン駆動設計 Advent Calendar 2020の23日目の記事です1。DDDというよりRustの記事になってしまった…。 Rustの勉強を始めたのは2017年あたりと古いのですがなかなか身が入らず、本腰入れたのは今年の11月ぐらい…

DynamoDB用クライアントの制限を考慮したAkka Streamsの実装を作る

どもー、かとじゅん(@j5ik2o)です。 Scala Advent Calendar 2020 - Qiitaの2日目の記事です。 今回の記事は掲題のとおり、DynamoDBのI/OをAkka Streamsで効率的に実装してみようというネタです。

ULID生成器をScalaで実装してみた

おはこんにちは、かとじゅん(@j5ik2o)です。 今回の記事は、IDフォーマットの一種であるULIDの実装についての記事です。 ULIDよーわからんという人は、以下の僕の記事を参照してみてください。 zenn.dev ID生成をどうするか議論によくなりますが、最近はソー…

リアクティブは難しいが役に立つ

お久しぶりです、かとじゅん(@j5ik2o)です。テックブログを書くのは何年ぶりか…。 サービスが停止したり応答性が低下すると、お叱りや逆に励ましをいただきますが、エンジニアとして設計レベルからそういった問題に対処するにはどうするか、日々精進している…

OAuth2 パブリッククライアント対応

かとじゅん(@j5ik2o)です。OAuth2を使った、チャットワークAPI開発者向けのリリース情報です。 以前にPKCE対応を告知させていただきましたが、iOS/Android/JavaScriptなどのパブリッククライアントが直接的にOAuth2クライアントになれませんでした。今回対応…

akka-httpでの総当たり攻撃(brute-force-attack)対策について

こんにちはかとじゅん(@j5ik2o)です。 akka-httpで特定の失敗条件を元に、特定のリクエストをブロックするための仕組みを、akka-guardとして実装したので、設計思想や使い方に関して簡単にお知らせします。今回、想定したシナリオは、認証の総当たり攻撃(bru…

OAuth2 PKCE対応について

かとじゅん(@j5ik2o)です。OAuth2を使った、チャットワークAPI開発者向けのリリース情報です。 今回は、RFC7636 PKCE(=Proof Key for Code Exchange by OAuth Public Clients)をリリースしました*1。 ただ、API ドキュメントの修正が間に合っていないので、…

JWT形式を採用したChatWorkのアクセストークンについて

JWTを使うことは難しい? こんにちは、かとじゅん(@j5ik2o)です。最近、JWTに関する以下のブログが話題です*1。 どうしてリスクアセスメントせずに JWT をセッションに使っちゃうわけ? - co3k.org このブログで言及されているのは、JWTをセッションの保存先…

OAuth2 offline_accessスコープ対応

こんにちは、かとじゅんです。 今回はOAuth2のスコープに offline_access という新しいスコープが追加されたので以下にお知らせします。ひとことで言うと、チャットワークと連携するBOTを作りやすくするスコープです!

コスパのよいScala開発マシンを求めて

ごきげんよう、かとじゅんです。 某社のiMac Pro 138台導入の件はブルジョア感がハンパないですね…。それとは少し違う方向性で、Scalaのビルド効率化をテーマとして、今回は最新のパーツで自作マシン(OSはUbuntu)を組んでみました。そのマシンとMacとでコス…

ドメインモデルの根拠とドメインモデル貧血症の対策について

ChatWork Advent Calendar 2017の10日目の記事です。 こんにちは。かとじゅん(@j5ik2o) です。 何を書こうかと悩んだのですが、社内で意見を聞いたところ、やはりDDD関連がよいとなりました。 Scalaコードでわかった気になるDDD この記事も、もう四年前です…