{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreiavy7swoh4mc3oy3a7u4q3dl66ui4dv2zixivknhbvwlmmgl5rtzy",
"uri": "at://did:plc:g4wcucb6ko2frmko2x3lvgyi/app.bsky.feed.post/3mjwl3fc3awz2"
},
"path": "/2026/04/20/secretlint-v12/",
"publishedAt": "2026-04-20T13:27:30.465Z",
"site": "https://efcl.info",
"tags": [
"Secretlint",
"Release v12.0.0 · secretlint/secretlint",
"Groq",
"Hugging Face",
"Notion",
"GitLab",
"Grafana",
"HashiCorp Vault",
"Vercel",
"Databricks",
"Docker",
"Figma",
"GitHubのSecret scanning partner",
"Replace node-forge with native PKCS#12 MAC verification by azu · Pull Request #1497",
"v7.0.0でESMへ移行済み",
"require(esm)",
"SecureClipboard",
"SecureClipboard: クリップボードに入った機密情報を自動でマスクするmacOSアプリ | Web Scratch",
"secretlintの単一バイナリ版",
"Issues · secretlint/secretlint",
"@secretlint"
],
"textContent": "ソースコードや設定ファイルに含まれるAPIトークンやパスワードなどの機密情報を見つけるSecretlintのv12.0.0をリリースしました。\n\n * Release v12.0.0 · secretlint/secretlint\n\n\n\nこのバージョンでは、次のように追加で検知できるようになったサービスが10個あります。\n\n * Groq、Hugging Face、Notion、GitLab、Grafana、HashiCorp Vault、Vercel、Databricks、Docker、Figma\n\n\n\nあわせて、`@secretlint/secretlint-rule-preset-recommend`のパッケージサイズを約80%削減しています。\n\n## 新しく追加された検出ルール\n\n`@secretlint/secretlint-rule-preset-recommend`に、次の10個のサービスのAPIトークンなどを検出するルールが追加されました。\n\n * Groq - `gsk_`から始まるAPIキー\n * Hugging Face - `hf_`から始まるUser Access Token\n * Notion - `secret_`/`ntn_`から始まるIntegration Token\n * GitLab - Personal Access Token、Pipeline Trigger Token、Runner Registration Tokenなど\n * Grafana - Service Account TokenやCloud Access Policy Token\n * HashiCorp Vault - `hvs.`/`hvb.`から始まるトークン\n * Vercel - Access Token\n * Databricks - `dapi`から始まるPersonal Access Token\n * Docker - `dckr_pat_`から始まるPersonal Access TokenとDocker Hub認証情報\n * Figma - `figd_`/`figu_`/`figoa_`などで始まるトークン\n\n\n\n`@secretlint/secretlint-rule-preset-recommend`を使っている場合は、v12.0.0にアップデートすると自動的にこれらのルールも有効になります。\n\n今回追加したトークンは、GitHubのSecret scanning partnerのリストを参照することで、確度の高いパターンを持つトークンに絞り込んでまとめて実装しました。 誤検知が少ないトークンフォーマットを持つサービスを優先したため、検出精度を保ったままカバー範囲を広げられています。\n\n## Presetのパッケージサイズを約80%削減\n\n`@secretlint/secretlint-rule-preset-recommend`のパッケージサイズを、v11と比べて約82%削減しました。\n\nPreset | v11 | v12 | 削減率\n---|---|---|---\n`@secretlint/secretlint-rule-preset-recommend` | 1,036KB | 187KB | -82%\n`@secretlint/secretlint-rule-canary` | 1,060KB | 211KB | -80%\n\n10個のルールが増えたにもかかわらず、全体としては約82%縮小しています。\n\n主な要因は、GCPのService Account p12ファイル検出ルール(`@secretlint/secretlint-rule-gcp`)で使っていた`node-forge`依存の置き換えです。 Web CryptoベースのPKCS#12 MAC検証実装に差し替えました。 p12ファイルの判定に必要なのはMACの検証だけなので、パース・復号処理を含む`node-forge`全体を抱える必要がなくなりました。\n\n * Replace node-forge with native PKCS#12 MAC verification by azu · Pull Request #1497\n\n\n\n## Breaking Change: Node.js 22+のサポート\n\nv12.0.0では、Node.js 20のサポートを終了し、Node.js 22以上が必要になりました。 Node.js 20は2026-04-30でActive LTSが終了するため、少し前倒しでサポートを切っています。\n\n## Breaking Change: CommonJSビルドの削除\n\nv12.0.0では、各パッケージのCommonJSビルドと、CJS/ESMのdual packageサポートを削除しました。 ESMのみの配布になります。\n\nSecretlint自体はv7.0.0でESMへ移行済みでしたが、互換性のためCJS向けのビルドも残していました。 Node.js 22+でESMの利用が一般化したため、dual packageの保守コストを削減するためにCJSビルドを削除しています。\n\nSecretlintをCLIとして利用している場合、特に影響はありません。 Node.js 22+ではrequire(esm)がサポートされています。 そのため、`@secretlint/node`や`@secretlint/core`などを`require()`しているコードもそのまま動作します。\n\n## 使っているプロジェクト: SecureClipboard\n\nSecretlintを組み込んだプロジェクトの例として、先日公開したSecureClipboardを紹介します。\n\n * SecureClipboard: クリップボードに入った機密情報を自動でマスクするmacOSアプリ | Web Scratch\n\n\n\nSecureClipboardはクリップボードを監視するmacOSアプリです。 コピーされたテキストや画像に機密情報が含まれていた場合、自動でマスクします。 内部ではsecretlintの単一バイナリ版をsubprocessとして呼び出してスキャンしています。\n\nv12.0.0で追加されたGroqやHugging Face、Notion、Vercel、Docker、Figmaなどのトークンも、SecureClipboard側で追加対応なしに検出できます。 このように、secretlintをライブラリ/バイナリとして組み込む使い方でも、presetをアップデートするだけで検出対象を拡張できます。\n\n## まとめ\n\nSecretlint v12.0.0では、10個のサービスに対応する新しい検出ルールを`@secretlint/secretlint-rule-preset-recommend`に追加しました。 同時にpresetのサイズを約80%削減しています。 CJSビルドの削除というBreaking Changeがあるので、ライブラリとして利用している場合はESMへの移行が必要です。\n\nフィードバックがあればGitHubのIssueでお知らせください。\n\n * Release v12.0.0 · secretlint/secretlint\n * Issues · secretlint/secretlint\n\n",
"title": "Secretlint v12.0.0リリース: Groq、Hugging Face、Notion、GitLab、Grafana、HashiCorp Vault、Vercel、Databricks、Docker、Figmaの検出に対応",
"updatedAt": "2026-04-20T01:00:00.000Z"
}