エムスリーテックブログ

エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

サプライチェーン攻撃に怯えたくないので、パッケージを「寝かせる」プロキシを自作した

こんにちは、セキュリティチームの坂梨です。 皆さん、ソフトウェアサプライチェーン攻撃対策はできていますか。

2025年の Shai-Hulud(大規模なnpmパッケージ侵害事件)以降、ソフトウェアサプライチェーン攻撃が話題に挙がる機会が増えました。特に今年3月末に発生した Trivy と axios の事件は大きく騒がれ、影響調査に追われた方も多いのではないでしょうか。 4月以降も lightning や TanStack などメジャーなライブラリが被害に遭っており、毎朝「さて今日は何が乗っ取られたのかな」とニュースを見る日々を過ごしています。

ライブラリが侵害されるたびに影響調査をするのは大変です。そこで、侵害されたライブラリをインストールするリスクを軽減するため、インストール時にクールダウンタイムを強制するプロキシ(公式レジストリの内容をフィルタして配信する社内用レジストリ)を作り、開発チーム内で運用を始めました。

クールダウンしているイメージ

続きを読む

デジスマチームに転職して1年、キャッチアップで意識したこと

【デジスマ ブログリレー 4日目】

こんにちは、デジスマチームの東です。

2025年5月にエムスリーへ転職し、医療DXサービス「デジスマ診療」を開発するデジスマチームに加わって1年が経ちました。この記事では転職後の1年間を振り返り、転職直後のキャッチアップで意識したことやデジスマチームについて紹介します。

続きを読む

いま一番好きなエディタ、Zed

【デジスマ ブログリレー 3日目】

デジスマチームの立花です。 突然ですが皆さんはどのエディタが好きでしょうか。 僕は Helix が好きでよく使っているのですが、 最近また好きなエディタが増えました。Zedです。

zed.dev

動作の軽快さに惹かれて使い始めたのですが、触っていくうちに「これは便利だな」と感じる機能がいくつもあったので、 本記事ではその中から特に日々の開発で役立っているものを紹介します。

続きを読む

apple/container で worktree 並行開発を快適にするツールを作ってみた

先月マルタ共和国へ旅行に行った時の風景です。本記事とは無関係です。

【デジスマ ブログリレー 2日目】

デジスマチームの田口です。

最近 apple/container という Apple 純正の Linux コンテナサポートツールが v1 として正式リリースされました。軽量 VM ベースということで興味があり、これを使って何か面白いものを作れないかと色々触っていました。

ちょうど普段 Claude Code を claude --worktree で複数ブランチ並行で動かしていて、ブランチごとのローカルサーバの取り回しが地味な課題として残っていたので、apple/container の特徴を活かして解決できないかと考えて作ったのが、worktree(ブランチ)ごとにブランチ名のドメインを持つローカルサーバー環境を生やすツール branchbox です。本記事ではこのツールを紹介します。

続きを読む

Istio VirtualServiceで Kotlin → Go への安全な引っ越し

週末に訪れた男木島灯台。今年1月に重要文化財に指定されました。本記事とは無関係です

はじめに

【デジスマ ブログリレー 1日目】

こんにちは、デジスマチームの 伴 です。

デジスマ診療は、患者さんの予約や問診、決済まで一連の機能をワンストップで提供することで患者さんだけでなく受付、医師もラクになる新しい医療体験を提供しています。
www.youtube.com

普段は主にインフラ周りを担当しており、Kubernetes のメンテナンスなどをしていますが、現在は API の Go 化も進めています。

本記事では、Kotlin (Spring Boot / JVM) から Go へのサーバー実装書き換えを安全に進めるために、私たちのチームで Istio の VirtualService をどのように活用しているかを紹介します。

続きを読む

医療保険を関数型ドメインモデリングしてみよう

【デジカルチーム ブログリレー 4 日目】

こんにちは、デジカルチームでソフトウェアエンジニアをしている穴繁です。 私は、医療ドメインへのディープダイブが時に求められるクラウド型電子カルテというプロダクトの開発に携わっています。

そのため、この複雑な医療ドメインをどうやったら美しく、安全にコードに落とし込めるのだろうかと悩む機会が多いです。 そんな中、関数型ドメインモデリング という書籍と出会い、これはいいアプローチかもしれないと感じました。

ということでこの記事では、比較的皆さんも馴染みがあるであろう「医療保険」を題材に、書籍の中でも特に型によるドメインモデリングに焦点を当ててそのメリットを簡単にお伝えできればと思います。 なお、採用言語としては関数型のアプローチが取り入れられているものであれば何でも良いのですが、書籍に倣って F# で挑戦してみようと思います。本番導入はされていないですし、自分自身書いたこともないのですが、AIの補助に頼りながらやっていきます。

続きを読む

PRごとに検証環境が立ち上がる仕組みをTerraform × GitHub Actionsで作った話

【デジカルチーム ブログリレー 3日目】

クラウド型電子カルテデジカルチームの黒木です。

最近、私たちのチームで 「Pull Requestごとに、そのコードがそのまま動く環境が自動で立ち上がる」仕組み──いわゆる PR環境(ephemeral environment / preview environment)を構築しました。

  • なぜ作ったのか
  • 設計の方針
  • 実装のポイント
    • 1:stateを「1 PR = 1 state」で完全分離する
    • 2:DBはPRごと、クラスタは共有
    • 3:ALB Listener Ruleの優先度をPR番号から決める
    • 4:デプロイワークフロー(ラベル起点)
    • 5:破棄ワークフロー(PR close + 毎朝の掃除)
  • まとめ
  • We are hiring!
続きを読む