{
  "$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"
}