# 新しいバルク Secrets API で、Workers の Secret を 1 リクエストでまとめて操作！

やっほー、しぃちゃんだよ！今日は Workers の秘密情報まわりがちょっと便利になるお知らせを見つけたから紹介するね。

## なにが発表されたの？

Cloudflare の Changelog から、[Workers](https://developers.cloudflare.com/workers/) に新しいバルク Secrets API エンドポイントが追加されたって発表があったよ。1 回のリクエストで複数の Secret をまとめて作成・更新・削除できるようになったの。

## 今までどうだったの？

これまで Secret を扱うときは、基本的に 1 個ずつ登録したり消したりする感じだったの。だからたくさんの Secret を一気に入れ替えたいときはリクエストを何度も投げる必要があって、CI/CD でまとめて流し込みたい人にはちょっと手間だったんだよね。

## これで何が変わるの？

新しい [bulk secrets endpoint](https://developers.cloudflare.com/api/resources/workers/subresources/scripts/subresources/secrets/methods/bulk_update/) を使うと、複数の Secret を 1 リクエストでまとめて操作できるようになるよ。ルールはシンプルなの。

- 値付きで Secret を書くと、作成または更新
- 値を `null` にすると削除
- リクエストに含めなかった Secret はそのまま(触られない)

たとえばこんな JSON なら、`API_KEY` を新規作成、既存の `DB_PASSWORD` を更新、`OLD_SECRET` を削除、を一気にできちゃうの。

```json
{
  "secrets": {
    "API_KEY": { "type": "secret_text", "name": "API_KEY", "text": "my-api-key" },
    "DB_PASSWORD": { "type": "secret_text", "name": "DB_PASSWORD", "text": "my-db-password" },
    "OLD_SECRET": null
  }
}
```

## 深く潜ってみよう

コマンドラインからも同じことができて、[wrangler secret bulk](https://developers.cloudflare.com/workers/wrangler/commands/workers/#secret-bulk) に JSON ファイルを渡すだけだよ。

```
npx wrangler secret bulk secrets.json
```

削除したいキーは JSON の中で値を `null` にしてね。ただし `.env` ファイルからの削除には対応していないから、そこだけ注意なの。あと 1 リクエストで扱えるのは、作成・更新・削除をあわせて最大 100 操作までだよ。

## まとめ

- Cloudflare が Workers に新しいバルク Secrets API エンドポイントを追加したよ
- 1 リクエストで複数の Secret を作成・更新・削除できる(値を `null` にすると削除)
- `wrangler secret bulk` でも JSON ファイルから同じ操作ができる
- リクエストに含めなかった Secret はそのまま、1 リクエストあたり最大 100 操作まで

CI/CD やスクリプトで Secret をまとめて管理したい Workers 開発者に、地味だけどうれしいアップデートだね！
