2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Checkpoint API について

2
Last updated at Posted at 2025-12-16

この記事は、 HashiCorp Japan Advent Calendar 2025 の 14 日目の記事です!

はじめに

みなさん、「HashiCorp プロダクトの今の最新バージョンってなんだったっけ...?」となったことはないですか?

HashiCorp のプロダクトは基本的に Go 言語で記述され、シングルバイナリとして配布されています。
そのため、各プロダクトの Install ページ、または HashiCorp のリポジトリサイト から、プラットフォームを選ばず比較的簡単にプロダクトの利用を開始していただくことができます。

例えば、Terraform の場合だと以下のような選択肢があります。

配布されているバイナリに差分はないため、どの選択肢を取っていただいても問題はないのですが、都度最新バージョンのリンクを辿りブラウザからダウンロードして、解凍して...、というのが(簡単とはいえ)面倒だと感じたことがある方もいるのではないでしょうか。
(リポジトリサイトの方が alpha, beta などの Release Candidate/アーリーリリースを含み、また、関連ツールなども網羅されているため、ダウンロード可能な対象は多いです)

Checkpoint API

API ファーストを一つの重要な根幹思想として掲げる HashiCorp では、プロダクトの最新のバージョンを確認することができる Checkpoint API と呼ばれる Web API を公開しています。
(API ファーストについては、全ての HashiCorp プロダクトの開発/設計思想である Tao of HashiCorp の中にも Communicating Sequential Processes として説明がされています)

とてもシンプルに利用できる API のため、例えば Terraform の最新バージョンを確認する際には以下のような形で利用することができます。

% curl -s -X GET https://checkpoint-api.hashicorp.com/v1/check/terraform |jq .
{
  "product": "terraform",
  "current_version": "1.14.2",
  "current_release": 1765457324,
  "current_download_url": "https://releases.hashicorp.com/terraform/1.14.2",
  "current_changelog_url": "https://github.com/hashicorp/terraform/blob/v1.14/CHANGELOG.md",
  "project_website": "https://www.terraform.io",
  "alerts": []
}

レスポンスボディからもわかるように、本記事執筆時点(2025/12/14)での最新バージョンは 1.14.2 ということがわかります。

そして、これは上記の Install ページの latest に一致していることも確認できるかと思います。

Screenshot 2025-12-17 at 6.28.32.png

そのシンプルさから API リファレンスなどは特に存在していませんが、
https://checkpoint-api.hashicorp.com/v1/check/${product}
を叩いてもらうのみで上記の結果を得ることができます。

活用例

上記の Checkpoint API からの出力を如何ように利用するも皆様の自由、ではあるのですが、一例としてここでは、この Checkpoint API からのレスポンスを利用して、HashiCorp プロダクトのインストールを CLI ベースで進めて行ってみましょう。

Install ページのダウンロードリンクをご覧いただくとわかるかと思いますが、HashiCorp の install ページは基本的に以下の形式でリリースリポジトリへの参照となっています。

https://releases.hashicorp.com/${product}/${version}/${product}_${version}_${osname}_${cpu_arch}.zip

これを利用すると、例えば macOS(arm64)環境へ Terraform バイナリをダウンロードする場合には、以下のようにコマンドを組み立てることができます。

VERSION=$(curl -s -X GET https://checkpoint-api.hashicorp.com/v1/check/terraform |jq -r .current_version) \
curl -s -OL "https://releases.hashicorp.com/terraform/${VERSION}/terraform_${VERSION}_$(uname | tr '[:upper:]' '[:lower:]')_$(arch).zip"

実際にダウンロードできたファイルを確認するとチェックサムも正しく、中身にバイナリが含まれていることが確認できるかと思います。

% curl -s -X GET https://releases.hashicorp.com/terraform/${VERSION}/terraform_${VERSION}_SHA256SUMS |grep darwin_arm64 |sha256sum -c -
terraform_1.14.2_darwin_arm64.zip: OK

% unzip -l terraform_1.14.2_darwin_arm64.zip 
Archive:  terraform_1.14.2_darwin_arm64.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
     4922  12-11-2025 21:06   LICENSE.txt
 95628496  12-11-2025 21:06   terraform
---------                     -------
 95633418                     2 files

ダウンロードした zip ファイルの解凍や、解凍後に zip ファイルのクリーンナップを行うなどの後続の処理を自動化してツール化しておくことで、インストールステップをより減らせるような予感がしますね。

今回はコマンドラインでの簡易的な利用方法について紹介しましたが、お好みのプログラミング言語でこれらを実装してスニペット化しておくのも良さそうです。

また、この Checkpoint API を利用したツールとして、HashiCorp では hc-install というものも公開されていますので、こちらも合わせて確認してみてください。

最後に

今回は HashiCorp プロダクトの紹介ではなく、Checkpoint API を利用した Tips の紹介でした。
シンプルだが応用の効く API かと思いますので、ご利用のシーンに合わせてぜひ活用してみてください!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?