<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://shisho.dev/docs/ja/r</id>
    <title>Takumi byGMO Blog</title>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://shisho.dev/docs/ja/r"/>
    <subtitle>Takumi byGMO Blog</subtitle>
    <icon>https://shisho.dev/docs/ja/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[Takumi Guard が RubyGems に対応]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-guard-rubygems</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rubygems"/>
        <updated>2026-04-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Takumi Guard が Ruby プロジェクトの保護に対応。悪性な gem のブロック、インストール追跡、感染可能性の通知を提供します。]]></summary>
        <content type="html"><![CDATA[<p>Takumi Guard が npm・PyPI に加えて <strong>RubyGems</strong> に対応しました。</p>
<p><strong>Bundler</strong> を使用する Ruby プロジェクトで、Takumi Guard 経由でインストールをルーティングすることで、CI や開発環境に届く前に悪性パッケージをブロックできるようになりました。</p>
<p><img decoding="async" loading="lazy" alt="Takumi Guard が RubyGems に対応" src="https://shisho.dev/docs/ja/assets/images/eyecatch-c40527222e4bb99036ce5b7553eca5f5.png" width="2400" height="1260" class="img_c462"></p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="overview">概要<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rubygems#overview" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>Takumi Guard は、パッケージマネージャーと上流レジストリの間に位置するセキュリティプロキシです。すべてのインストールリクエストを GMO Flatt Security の脅威データベースと照合し、悪性パッケージをブロックします。</p>
<p>今回のリリースにより、npm・Python ユーザーが利用していた保護機能が Ruby エコシステムでも利用可能になりました。</p>
<ul>
<li><strong><a href="https://shisho.dev/docs/ja/t/guard/features/package-blocking">パッケージブロック</a></strong>: 悪性な gem をコード実行前にブロック</li>
<li><strong><a href="https://shisho.dev/docs/ja/t/guard/features/installation-logs">ダウンロード追跡</a></strong>: 認証済みユーザーのインストール履歴を記録</li>
<li><strong><a href="https://shisho.dev/docs/ja/t/guard/features/breach-notifications">感染可能性の通知</a></strong>: ダウンロードした Gem が後から悪性であると判明した場合に通知</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="getting-started">利用開始方法<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rubygems#getting-started" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>以下のいずれも、アカウント登録不要で匿名のまま利用できます。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="bundler">Bundler<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rubygems#bundler" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>Takumi Guard 経由で <code>bundle install</code> をルーティングする設定です。設定行を 1 つ追加するだけで、すべてのインストールリクエストがプロキシを通過するようになります。</p>
<div class="language-bash codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-bash codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token plain">bundle config </span><span class="token builtin class-name">set</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">--global</span><span class="token plain"> mirror.https://rubygems.org https://rubygems.flatt.tech/</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p><code>Gemfile</code> の変更は不要で、透過的にプロキシを通じてすべてのインストールリクエストが処理されます。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="github-actions">GitHub Actions<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rubygems#github-actions" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>ワークフローに 1 行追加するだけで導入できます。</p>
<div class="language-yaml codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-yaml codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">steps</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">uses</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> actions/checkout@v4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">uses</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> flatt</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">security/setup</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">takumi</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">guard</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">rubygems@v1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">run</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> bundle install</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>認証や感染可能性の通知を含む詳細なセットアップ手順は <a href="https://shisho.dev/docs/ja/t/guard/quickstart/rubygems">RubyGems クイックスタートガイド</a> をご覧ください。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="verify">検証方法<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rubygems#verify" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>セットアップが完了したら、検証用・無害なブロック済み gem <code>hola-takumi</code> のバージョン <code>0.1.0</code> をインストールしてみてください。</p>
<div class="language-bash codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-bash codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">cd</span><span class="token plain"> </span><span class="token variable" style="color:#36acaa">$(</span><span class="token variable" style="color:#36acaa">mktemp </span><span class="token variable parameter variable" style="color:#36acaa">-d</span><span class="token variable" style="color:#36acaa">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">&amp;&amp;</span><span class="token plain"> </span><span class="token builtin class-name">printf</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'source "https://rubygems.org"\ngem "hola-takumi", "0.1.0"\n'</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">&gt;</span><span class="token plain"> Gemfile </span><span class="token operator" style="color:#393A34">&amp;&amp;</span><span class="token plain"> bundle </span><span class="token function" style="color:#d73a49">install</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>Takumi Guard が正しく動作していれば、Bundler は以下のエラーでインストールに失敗します。</p>
<div class="codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-text codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token plain">Fetching gem metadata from https://rubygems.flatt.tech/.</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">Could not find gem 'hola-takumi (= 0.1.0)' in rubygems repository</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">https://rubygems.org/ or installed locally.</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<div class="theme-admonition theme-admonition-note admonition_jlL_ alert alert--secondary"><div class="admonitionHeading_yyDB"><span class="admonitionIcon_tfPy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_hYxl"><p>過去に <code>hola-takumi 0.1.0</code> をローカルに install したことがある場合は、事前に <code>gem uninstall hola-takumi --all --force</code> で削除してから実行してください。Bundler がローカルの gem を流用してしまい、ブロックが確認できない場合があります。</p></div></div>
<p>詳しい手順は <a href="https://shisho.dev/docs/ja/t/guard/quickstart/rubygems#verify-setup">RubyGems クイックスタートの「セットアップの確認」</a> を参照してください。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="email-registration">メール登録してより便利に（無料）<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rubygems#email-registration" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>メールアドレスを登録すると、ダウンロードした Gem が後から悪性であると判明した場合に通知が届きます。無料で利用できます。</p>
<div class="theme-admonition theme-admonition-info admonition_jlL_ alert alert--info"><div class="admonitionHeading_yyDB"><span class="admonitionIcon_tfPy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_hYxl"><p>既に npm や PyPI で Takumi Guard を利用していて、組織ユーザートークンやメール認証トークンをお持ちの場合は、再取得の必要はありません。そのまま RubyGems の設定でも利用できます。</p></div></div>
<p><strong>ステップ 1:</strong> メールアドレスを登録する</p>
<div class="language-bash codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-bash codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-X</span><span class="token plain"> POST https://rubygems.flatt.tech/api/v1/tokens </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token parameter variable" style="color:#36acaa">-H</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Content-Type: application/json"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token parameter variable" style="color:#36acaa">-d</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'{"email": "you@example.com", "language": "ja"}'</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p><strong>ステップ 2:</strong> ウェルカムメールから API キーを取得する。API キーはメール本文に直接記載されています。リンクをクリックする手順は不要です。</p>
<p><strong>ステップ 3:</strong> トークンでパッケージマネージャーを設定する（ステップ 2 で取得したトークンを使用）</p>
<div class="language-bash codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-bash codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token plain">bundle config </span><span class="token builtin class-name">set</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">--global</span><span class="token plain"> mirror.https://rubygems.org https://token:tg_anon_xxxxxx@rubygems.flatt.tech/</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>以降のインストールが追跡され、ダウンロードしたパッケージに問題が見つかった場合に通知が届きます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="organization-setup">組織単位での管理も可能<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rubygems#organization-setup" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>チームで Takumi Guard を運用するなら、<a href="https://shisho.dev/docs/ja/t/guard/features/admin-deployment">管理ツールによる一括セットアップ</a>、<a href="https://shisho.dev/docs/ja/t/guard/features/installation-logs">インストールログの検索</a>、<a href="https://shisho.dev/docs/ja/t/guard/features/token-management">組織ユーザートークンの一元管理</a>、<a href="https://shisho.dev/docs/ja/t/guard/features/breach-notifications">感染可能性の Webhook 通知</a> など、組織単位での運用を効率化する機能がまとめて利用できます。Takumi サブスクリプション（Guard 有効化）で始められます。</p>
<ol>
<li><a href="https://cloud.shisho.dev/hello/takumi" target="_blank" rel="noopener noreferrer">https://cloud.shisho.dev/hello/takumi</a> にアクセスし、サインインする</li>
<li>組織を登録し、Takumi サブスクリプションを契約する</li>
<li>画面左のサイドバーから <strong>Guard</strong> &gt; <strong>設定</strong> にアクセスする</li>
<li>「有効化する」ボタンをクリックして Guard を有効化する</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Guard 設定画面" src="https://shisho.dev/docs/ja/assets/images/ui-guard-settings-6b26b5c78a1bd5b0b3ed5c3e029208e6.png" width="1001" height="373" class="img_c462"></p>
<p>有効化が完了したら、<a href="https://shisho.dev/docs/ja/t/guard/features/admin-deployment">管理ツールによる一括セットアップ</a>ガイドに従ってセットアップを進めてください。</p>
<p>なお、<strong>GitHub Actions の <a href="https://shisho.dev/docs/ja/t/guard/quickstart/rubygems#setup-ci-org">Bot トークン</a> 利用だけなら決済は不要</strong>です。組織登録時に決済画面が表示されてもそのままスキップして、Guard ページから GitHub 組織を登録するだけで Bot ID を取得できます。</p>]]></content>
        <author>
            <name>Deividas Turskis</name>
            <uri>https://github.com/ren-</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi 脆弱性検証機能が任意の脆弱性レポートに対応]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-vulnverification-standalone</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-vulnverification-standalone"/>
        <updated>2026-04-22T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Takumi の診断結果に限らず、バグバウンティや外部レポートで報告された脆弱性も検証できるようになりました。]]></summary>
        <content type="html"><![CDATA[<p>脆弱性検証機能が、Takumi の診断結果以外の脆弱性にも対応しました。
バグバウンティや第三者によるレポートなど、さまざまな脆弱性報告の再現検証を Takumi で実行できます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="機能概要">機能概要<a href="https://shisho.dev/docs/ja/r/202604-takumi-vulnverification-standalone#%E6%A9%9F%E8%83%BD%E6%A6%82%E8%A6%81" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>これまで脆弱性検証機能は、Takumi のブラックボックス診断で検出された脆弱性のみを対象としていました。
本アップデートにより、Takumi による診断結果に紐づかない脆弱性についても、手動で検証タスクを作成して再現検証を実行できるようになりました。</p>
<p>これにより、以下のようなユースケースに対応できます。</p>
<ul>
<li>バグバウンティプログラムで報告された脆弱性の妥当性確認</li>
<li>第三者の脆弱性診断レポートに含まれる指摘事項の検証</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="提供範囲">提供範囲<a href="https://shisho.dev/docs/ja/r/202604-takumi-vulnverification-standalone#%E6%8F%90%E4%BE%9B%E7%AF%84%E5%9B%B2" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>本機能は、すべての Takumi byGMO ユーザにご利用いただけます。</p>
<p>使い方の詳細は <a href="https://shisho.dev/docs/ja/t/features/vulnverification/" target="_blank" rel="noopener noreferrer">脆弱性検証</a> のドキュメントをご覧ください。</p>]]></content>
        <author>
            <name>Tsubasa Umeuchi</name>
            <uri>https://github.com/Szarny</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi Guard が組織単位での感染可能性の通知に対応]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-guard-breach-notifications</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-guard-breach-notifications"/>
        <updated>2026-04-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Takumi Guard の感染可能性の通知機能が、組織単位で利用可能になりました。宛先には Webhook エンドポイントとメールアドレスが選べます。]]></summary>
        <content type="html"><![CDATA[<p>Takumi Guard が組織単位の感染可能性の通知に対応しました。組織ユーザートークンやGitHub Actions OIDC 認証を用いるクライアントがダウンロードしたパッケージが、後に悪性と判明した際の通知を、組織で選んだ Webhook エンドポイントまたはメールアドレスに届けられます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="概要">概要<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-breach-notifications#%E6%A6%82%E8%A6%81" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>今回のアップデートにより、組織ごとに以下の通知先を設定できます。</p>
<ul>
<li>Webhook エンドポイント: 組織に登録済みの Webhook から選択します。</li>
<li>メールアドレス: 組織のメール許可リストで確認済みのアドレスから選択します。</li>
</ul>
<p>どちらか一方、両方、またはいずれも使用しない、のいずれの設定も可能です。設定した通知先には同じ通知ペイロードが送信されるため、Webhook 経由で Slack や PagerDuty に転送したり、共有メールアドレスでインシデント対応フローに載せたりと、既存の運用に合わせて組み込めます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="利用方法">利用方法<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-breach-notifications#%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>Shisho Cloud/Takumi 管理コンソールで「Guard &gt; 設定」を開き、感染可能性の通知 セクションから設定してください。</p>
<ul>
<li>Webhook をドロップダウンから選択します。一覧が空の場合は、先に Webhook 設定ページから登録してください。</li>
<li>確認済みのメールアドレスをドロップダウンから選択します。一覧が空の場合は、先にメール許可リストへアドレスを追加し、確認を完了してください。</li>
<li>保存すると、以降のダウンロードに対して設定が反映されます。</li>
</ul>
<p>通知が送信される条件や配信の仕組みについては、<a href="https://shisho.dev/docs/ja/t/guard/features/breach-notifications">感染可能性の通知のユーザーガイド</a>を参照してください。</p>
<div class="theme-admonition theme-admonition-info admonition_jlL_ alert alert--info"><div class="admonitionHeading_yyDB"><span class="admonitionIcon_tfPy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_hYxl"><p>この機能を利用するには、Guard を有効化した Takumi サブスクリプションが必要です。また、設定画面にアクセスするには Takumi 管理者またはオーナーのロールが必要です。</p></div></div>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="補足">補足<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-breach-notifications#%E8%A3%9C%E8%B6%B3" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<ul>
<li>通知先の保存以降に発生したダウンロードのみが対象です。通知先を変更しても、過去のダウンロードに対して改めて通知が送信されることはありません。</li>
<li>メール認証トークンに対する従来の通知は、これまで通り、登録したメールアドレス宛に行われます。なおメール認証トークンをShisho Cloud 組織に紐づけることはできません。</li>
</ul>]]></content>
        <author>
            <name>Cheng-Jui Chen</name>
            <uri>https://github.com/isaswa</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi Guard: 組織ユーザートークンをコンソールから発行可能に]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-guard-org-user-token</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-guard-org-user-token"/>
        <updated>2026-04-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Takumi / Shisho Cloud コンソールから、組織ユーザートークン（tg_org_）を数クリックで発行できるようになりました。]]></summary>
        <content type="html"><![CDATA[<p>Takumi / Shisho Cloud コンソールの Takumi Guard トークン画面から、<strong>組織ユーザートークン</strong>（<code>tg_org_</code>）を直接発行できるようになりました。これまでの Guard API 経由での発行に加え、数クリックで新しいトークンを発行できます。</p>
<p><img decoding="async" loading="lazy" alt="トークン発行フォーム" src="https://shisho.dev/docs/ja/assets/images/ui-token-issue-2-08db007b43baf9978c91be1e11e15e99.png" width="645" height="716" class="img_c462"></p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="概要">概要<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-org-user-token#%E6%A6%82%E8%A6%81" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>コンソールからの発行は、日常的な運用のなかで必要に応じて個別にトークンを発行したいケースに適しています。たとえば、新しくチームに加わったメンバーが初日から利用を開始する場合や、短期の業務委託メンバー向けに発行する際に活用できます。</p>
<p>発行直後には、新しいトークンとあわせて npm・PyPI 向けのセットアップコマンドが表示されるため、受け取った側もすぐに利用を開始できます。</p>
<p>Guard API 経由の発行フローはこれまで通り利用でき、構成管理ツールや MDM を使った大規模配布には引き続き最適な選択肢です。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="利用方法">利用方法<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-org-user-token#%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<div class="theme-admonition theme-admonition-info admonition_jlL_ alert alert--info"><div class="admonitionHeading_yyDB"><span class="admonitionIcon_tfPy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>有料機能</div><div class="admonitionContent_hYxl"><p>組織ユーザートークンを利用するには、Guard を有効化した Takumi サブスクリプションが必要です。詳しくは<a href="https://shisho.dev/docs/ja/t/guard/billing">料金と請求</a>を参照してください。</p></div></div>
<ol>
<li>Takumi / Shisho Cloud コンソールで <strong>Guard</strong> &gt; <strong>トークン</strong> に移動してください。</li>
<li><strong>トークン発行</strong> をクリックしてください。</li>
<li><strong>ユーザー識別子</strong> を入力して <strong>発行</strong> をクリックしてください。</li>
</ol>
<p>トークンのシークレットは発行時に <strong>一度だけ</strong> 表示されます。必ず発行直後にコピーして、安全な場所に保管してください。</p>
<p>ユーザー識別子の命名例や失効方法など、詳細は<a href="https://shisho.dev/docs/ja/t/guard/features/token-management#user-tokens">トークンの管理</a>を参照してください。</p>]]></content>
        <author>
            <name>Yoshiaki Matsutomo</name>
            <uri>https://github.com/y-matsutomo</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi 診断レポートの PDF エクスポートが可能に]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-assessment-pdf-report</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-assessment-pdf-report"/>
        <updated>2026-04-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Takumi 診断レポートを表紙付きの PDF としてダウンロードできるようになりました。]]></summary>
        <content type="html"><![CDATA[<p>ホワイトボックス診断・ブラックボックス診断のレポートを PDF としてエクスポートできるようになりました。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="概要">概要<a href="https://shisho.dev/docs/ja/r/202604-takumi-assessment-pdf-report#%E6%A6%82%E8%A6%81" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>診断レポートを、フォーマットされた表紙付きの PDF ファイルとしてダウンロードできます。オフラインでの共有や、診断記録のアーカイブに活用できます。</p>
<p><img decoding="async" loading="lazy" alt="表紙" src="https://shisho.dev/docs/ja/assets/images/cover-a42fb8f6ce37f05b9125e0966315e755.png" width="1266" height="1782" class="img_c462"></p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="利用開始方法">利用開始方法<a href="https://shisho.dev/docs/ja/r/202604-takumi-assessment-pdf-report#%E5%88%A9%E7%94%A8%E9%96%8B%E5%A7%8B%E6%96%B9%E6%B3%95" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>完了済みの診断レポートページで <strong>「PDFレポートを発行」</strong> ボタンをクリックし、表紙の言語を選択します。PDF の生成が完了すると、メールでダウンロードリンクが送付されます。</p>
<p>詳しくは<a href="https://shisho.dev/docs/ja/t/features/blackbox-assessment#pdf-report">ブラックボックス診断のドキュメント</a>または<a href="https://shisho.dev/docs/ja/t/features/whitebox-assessment#pdf-report">ホワイトボックス診断のドキュメント</a>をご覧ください。</p>]]></content>
        <author>
            <name>Tsubasa Umeuchi</name>
            <uri>https://github.com/Szarny</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi ブラックボックス診断で脆弱性検証機能を提供開始]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-vulnverification</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-vulnverification"/>
        <updated>2026-04-14T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Takumi の診断のレポートから、検出された脆弱性が修正されているかを検証できます。]]></summary>
        <content type="html"><![CDATA[<p>Takumi ブラックボックス診断に 脆弱性検証 機能を追加しました。
本機能では、過去の診断で検出された脆弱性が正しく修正されているか、検証することができます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="機能概要">機能概要<a href="https://shisho.dev/docs/ja/r/202604-takumi-vulnverification#%E6%A9%9F%E8%83%BD%E6%A6%82%E8%A6%81" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>脆弱性検証機能は、特定の脆弱性に対して以前と同じ攻撃シナリオを再実行します。
修正をデプロイした後に本機能を実行することで、対策が有効に機能しているかを検証することができます。</p>
<p>アプリケーション診断報告書の「脆弱性を検証する」ボタンから、対象の脆弱性を選択して実行します。</p>
<p><img decoding="async" loading="lazy" alt="使い方" src="https://shisho.dev/docs/ja/assets/images/howto-90e4b3a840495d5b7974d39ca7261b59.png" width="2992" height="1286" class="img_c462"></p>
<p>検証結果は 「脆弱性なし」 または 「脆弱性あり」 の判定として、理由とともに表示されます。</p>
<p><img decoding="async" loading="lazy" alt="結果" src="https://shisho.dev/docs/ja/assets/images/result-51b2d3e0c87785ebf47336dc739b83ea.png" width="1370" height="1344" class="img_c462"></p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="前提条件">前提条件<a href="https://shisho.dev/docs/ja/r/202604-takumi-vulnverification#%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>1件以上の脆弱性が検出された、完了済みのブラックボックス診断結果が必要です。GitHub連携等の追加設定なしで利用可能です。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="提供範囲">提供範囲<a href="https://shisho.dev/docs/ja/r/202604-takumi-vulnverification#%E6%8F%90%E4%BE%9B%E7%AF%84%E5%9B%B2" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>本機能は、ブラックボックス診断をご利用のすべての Takumi byGMO ユーザにご利用いただけます。</p>
<p>詳しくは <a href="https://shisho.dev/docs/ja/t/features/vulnverification/" target="_blank" rel="noopener noreferrer">脆弱性検証</a> のドキュメントをご覧ください。</p>]]></content>
        <author>
            <name>Mokusou</name>
            <uri>https://github.com/0xMokusou</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi Guard の複数端末一括導入が容易に]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment"/>
        <updated>2026-04-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[管理ツールを使って、開発者の操作なしに Takumi Guard を組織の全端末にセットアップできるようになりました。]]></summary>
        <content type="html"><![CDATA[<p>Takumi Guard に<strong>管理ツールによる一括セットアップ機能</strong>が追加されました。既存の管理ツールを使って、開発者の操作なしに組織全体の端末に Guard を展開できます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="概要">概要<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment#%E6%A6%82%E8%A6%81" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>大規模なチームでは、個々の開発者マシンに Takumi Guard をセットアップするのに時間がかかります。一括セットアップ機能は、npm・pip・uv・Poetry に対して Guard レジストリプロキシを設定するスクリプトを提供し、トークンの発行とクレデンシャルの設定を自動的に処理します。</p>
<p>セットアップスクリプトによって発行されたトークンは、Takumi / Shisho Cloud コンソールの <strong>Guard</strong> &gt; <strong>トークン</strong> で一覧・管理できます。</p>
<p><img decoding="async" loading="lazy" alt="トークン管理画面" src="https://shisho.dev/docs/ja/assets/images/ui-tokens-d2453b9128938e1954a7ce7dcc1e6395.png" width="1094" height="564" class="img_c462"></p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="利用方法">利用方法<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment#%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>以下の図は、一括セットアップの全体構成を示しています。</p>
<!-- -->
<p>手順は以下の通りです。</p>
<ol>
<li>Takumi / Shisho Cloud コンソール（<strong>設定</strong> &gt; <strong>ボット</strong>）で Bot を作成し、「Takumi Guard トークン発行者」ロールを付与する</li>
<li>Bot の API キーを生成する</li>
<li><strong>Guard</strong> &gt; <strong>設定</strong> からセットアップスクリプトをダウンロードする</li>
<li>お使いの管理ツール（Jamf、Intune、Ansible など）でラッパースクリプトを作成し、対象端末に配信する</li>
</ol>
<p>詳しい手順は<a href="https://shisho.dev/docs/ja/t/guard/features/admin-deployment">管理ツールによる一括セットアップ</a>ガイドを参照してください。</p>
<div class="theme-admonition theme-admonition-info admonition_jlL_ alert alert--info"><div class="admonitionHeading_yyDB"><span class="admonitionIcon_tfPy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>有料機能</div><div class="admonitionContent_hYxl"><p>この機能を利用するには、Guard を有効化した Takumi サブスクリプションが必要です。詳しくは<a href="https://shisho.dev/docs/ja/t/guard/billing">料金と請求</a>を参照してください。</p></div></div>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="主な特徴">主な特徴<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment#%E4%B8%BB%E3%81%AA%E7%89%B9%E5%BE%B4" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="マルチエコシステム対応">マルチエコシステム対応<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment#%E3%83%9E%E3%83%AB%E3%83%81%E3%82%A8%E3%82%B3%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E5%AF%BE%E5%BF%9C" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>npm・pip・uv・Poetry を 1 回のスクリプト実行でまとめて設定できます。開発者がどのパッケージマネージャーを使っていても、個別に手順を用意する必要はありません。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="冪等な実行">冪等な実行<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment#%E5%86%AA%E7%AD%89%E3%81%AA%E5%AE%9F%E8%A1%8C" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>同じスクリプトを複数回実行しても安全です。初回実行時にトークンを発行し、設定ファイルを更新しますが、再実行時には既存のトークンを検出して再利用し、設定済みのツールはスキップします。管理ツールから定期的に配信しても問題ありません。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="段階的なスコープ追加">段階的なスコープ追加<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment#%E6%AE%B5%E9%9A%8E%E7%9A%84%E3%81%AA%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97%E8%BF%BD%E5%8A%A0" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>最初は npm のみを対象にセットアップし、後から PyPI を追加するといった段階的な導入が可能です。追加時にも既存の設定は維持されます。</p>
<div class="language-sh codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-sh codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># 初回：npm のみセットアップ</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">TG_BOT_API_KEY</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"..."</span><span class="token plain"> ./setup.sh BOT_ID USER_ID </span><span class="token function" style="color:#d73a49">npm</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># 後日：PyPI を追加（npm の設定はそのまま維持）</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">TG_BOT_API_KEY</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"..."</span><span class="token plain"> ./setup.sh BOT_ID USER_ID pypi</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="バックアップ作成">バックアップ作成<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment#%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E4%BD%9C%E6%88%90" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>設定ファイルを変更する前に、タイムスタンプ付きの永続バックアップを自動的に作成します（例：<code>~/.npmrc-backup-20260408-162351</code>）。万が一 Guard の設定を元に戻したい場合は、バックアップファイルをコピーするだけで復旧できます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="留意事項">留意事項<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment#%E7%95%99%E6%84%8F%E4%BA%8B%E9%A0%85" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>メール認証トークン（<code>tg_anon_…</code>）で既に Guard を利用しているユーザーを、組織ユーザートークン（<code>tg_org_…</code>）にまとめることはできません。メール認証トークンと組織ユーザートークンは独立した認証方式であり、既存のメール認証トークンは引き続きそのまま利用できますが、一括セットアップで発行される組織ユーザートークンとは別のものです。</p>
<p>組織全体で統一した管理を行いたい場合は、一括セットアップで新たに組織ユーザートークンを配信し、開発者に既存のメール認証トークンの設定を削除してもらうことを推奨します。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="組織での利用を始める">組織での利用を始める<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-admin-deployment#%E7%B5%84%E7%B9%94%E3%81%A7%E3%81%AE%E5%88%A9%E7%94%A8%E3%82%92%E5%A7%8B%E3%82%81%E3%82%8B" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>Takumi Guard の組織向け機能（一括セットアップ、インストールログの検索など）を利用するには、Takumi サブスクリプションの契約と Guard の有効化が必要です。</p>
<ol>
<li><a href="https://cloud.shisho.dev/hello/takumi" target="_blank" rel="noopener noreferrer">https://cloud.shisho.dev/hello/takumi</a> にアクセスし、サインインする</li>
<li>組織を登録し、Takumi サブスクリプションを契約する</li>
<li>画面左のサイドバーから <strong>Guard</strong> &gt; <strong>設定</strong> にアクセスする</li>
<li>「有効化する」ボタンをクリックして Guard を有効化する</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Guard 設定画面" src="https://shisho.dev/docs/ja/assets/images/ui-guard-settings-6b26b5c78a1bd5b0b3ed5c3e029208e6.png" width="1001" height="373" class="img_c462"></p>
<p>有効化が完了したら、<a href="https://shisho.dev/docs/ja/t/guard/features/admin-deployment">管理ツールによる一括セットアップ</a>ガイドに従ってセットアップを進めてください。</p>]]></content>
        <author>
            <name>Yoshiaki Matsutomo</name>
            <uri>https://github.com/y-matsutomo</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi Guard 経由のインストールログが検索可能に]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-guard-installation-logs</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-guard-installation-logs"/>
        <updated>2026-04-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[組織の CI/CD パイプラインや開発者マシンで行われたパッケージインストールを検索・監査できるようになりました。]]></summary>
        <content type="html"><![CDATA[<p>Takumi Guard に<strong>パッケージインストールログの検索機能</strong>が追加されました。Guard レジストリプロキシを経由する npm および PyPI のパッケージダウンロードをすべて追跡できます。</p>
<p><img decoding="async" loading="lazy" alt="インストールログ検索画面" src="https://shisho.dev/docs/ja/assets/images/ui-logs-b5a451a6ec55a527506f972b5d077446.png" width="1109" height="555" class="img_c462"></p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="概要">概要<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-installation-logs#%E6%A6%82%E8%A6%81" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>パッケージインストールログは、組織全体のパッケージダウンロードの検索可能な監査証跡を提供します。各ログエントリには、タイムスタンプ、パッケージ名とバージョン、エコシステム（npm / PyPI）、ダウンロードを開始した主体（プリンシパル）、許可またはブロックされたかのステータスが記録されます。</p>
<p>悪意あるパッケージが報告された際に、どのパイプラインがいつインストールしたかを迅速に特定できます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="利用方法">利用方法<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-installation-logs#%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>Takumi / Shisho Cloud コンソールの <strong>Guard</strong> &gt; <strong>ログ</strong> から利用できます。</p>
<div class="theme-admonition theme-admonition-info admonition_jlL_ alert alert--info"><div class="admonitionHeading_yyDB"><span class="admonitionIcon_tfPy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>有料機能</div><div class="admonitionContent_hYxl"><p>この機能を利用するには、Guard を有効化した Takumi サブスクリプションが必要です。詳しくは<a href="https://shisho.dev/docs/ja/t/guard/billing">料金と請求</a>を参照してください。</p></div></div>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="主な機能">主な機能<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-installation-logs#%E4%B8%BB%E3%81%AA%E6%A9%9F%E8%83%BD" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="パッケージ名による検索">パッケージ名による検索<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-installation-logs#%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E5%90%8D%E3%81%AB%E3%82%88%E3%82%8B%E6%A4%9C%E7%B4%A2" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>パッケージ名を入力して、組織全体でそのパッケージがいつ・誰によってインストールされたかを検索できます。バージョンを指定しての絞り込みにも対応しています。特定のパッケージに脆弱性が報告された際などに、影響範囲の特定に活用できます。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="エコシステムの切り替え">エコシステムの切り替え<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-installation-logs#%E3%82%A8%E3%82%B3%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>npm と PyPI を切り替えて検索できます。組織で利用しているパッケージマネージャーに応じて、対象のエコシステムを選択してください。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="日付範囲の指定">日付範囲の指定<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-installation-logs#%E6%97%A5%E4%BB%98%E7%AF%84%E5%9B%B2%E3%81%AE%E6%8C%87%E5%AE%9A" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>24 時間・7 日間・14 日間のプリセット、またはカスタム範囲で検索期間を絞り込めます。現時点では検索可能な範囲は過去 <strong>14 日間</strong>までですが、今後可能な限り拡張していく予定です。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="プリンシパルとステータスの確認">プリンシパルとステータスの確認<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-installation-logs#%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B7%E3%83%91%E3%83%AB%E3%81%A8%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%81%AE%E7%A2%BA%E8%AA%8D" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>各ログエントリには、ダウンロードを開始した主体（組織ユーザートークンの識別子、匿名トークンなど）と、ブロックリストによってダウンロードが許可されたか・ブロックされたかのステータスが表示されます。ブロックされたダウンロードも記録されるため、ブロックリストが実際に機能していることを確認できます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="今後の展望">今後の展望<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-installation-logs#%E4%BB%8A%E5%BE%8C%E3%81%AE%E5%B1%95%E6%9C%9B" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>検索条件をより柔軟にし、さまざまな観点からログを絞り込めるよう改善を進めていきます。</p>
<p>また、SIEM をはじめとする法人向けセキュリティソリューションを利用されているお客様向けに、ログ全量をリアルタイムにストリーム配信する仕組みも検討しています。ご要望やユースケースがありましたら、アカウントマネージャーまでお知らせください。</p>]]></content>
        <author>
            <name>Deividas Turskis</name>
            <uri>https://github.com/ren-</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi Guard を Yarn v1 で利用する際の挙動の改善]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-guard-yarn-v1-lockfile</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-guard-yarn-v1-lockfile"/>
        <updated>2026-04-09T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Takumi Guard の意図せぬ迂回回避のため、Yarn v1 ユーザーのみを対象にレジストリの挙動を改善しました]]></summary>
        <content type="html"><![CDATA[<p>Yarn クライアント利用時に、Takumi Guard を迂回した通信が発生しにくいよう、Yarn クライアントに対する挙動を改善しました。この変更は透過的ですが、Yarn v1 ユーザー・新規パッケージの追加シナリオで<strong>のみ</strong>、ロックファイル（<code>yarn.lock</code>）にTakumi Guard のレジストリ URL が記録されるようになります。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="変更内容">変更内容<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-yarn-v1-lockfile#%E5%A4%89%E6%9B%B4%E5%86%85%E5%AE%B9" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>Yarn クライアントのみを対象に、ロックファイル内に対するメタデータ書き換えの挙動を変更しました。具体的には、メタデータ配信時に、tarball dist URLs を Takumi Guard レジストリの URL に書き換えるように変更されました。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="変更背景">変更背景<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-yarn-v1-lockfile#%E5%A4%89%E6%9B%B4%E8%83%8C%E6%99%AF" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>Yarn v1 は tarball dist URLs を lockfile 内に含める挙動を取り、Yarn v2+ クライアントは、レジストリから得られるパッケージメタデータファイル内の tarball dist URLs とレジストリURLに乖離がある場合に lockfile 内に <code>__archiveUrl</code> フィールドを追加します。この挙動により、yarn 実行時にロックファイルのみが参照されるシナリオで、yarn クライアントが Takumi Guard を迂回する挙動をとる場合がございます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="変更の影響範囲">変更の影響範囲<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-yarn-v1-lockfile#%E5%A4%89%E6%9B%B4%E3%81%AE%E5%BD%B1%E9%9F%BF%E7%AF%84%E5%9B%B2" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="npmpnpmbun-等�への影響">npm・pnpm・Bun 等への影響<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-yarn-v1-lockfile#npmpnpmbun-%E7%AD%89%E3%81%B8%E3%81%AE%E5%BD%B1%E9%9F%BF" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>影響はありません。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="yarn-v1-への影響-新規パッケージの追加更新時に有">Yarn v1 への影響: 新規パッケージの追加・更新時に有<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-yarn-v1-lockfile#yarn-v1-%E3%81%B8%E3%81%AE%E5%BD%B1%E9%9F%BF-%E6%96%B0%E8%A6%8F%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E8%BF%BD%E5%8A%A0%E6%9B%B4%E6%96%B0%E6%99%82%E3%81%AB%E6%9C%89" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p><code>yarn.lock</code> のエントリに、従来のアップストリームレジストリ URL ではなく Takumi Guard のレジストリ URL が記録されるようになります。 これは他パッケージマネージャの利用時には起こらない挙動ですが、Yarn v1 においてのみ発生します。これはロックファイル経由の依存解決シナリオで、安定してブロック対象パッケージのインストールを防止するために必要な変更でございますので、ご理解いただけますと幸いです。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="yarn-v2v4berryへの影響-無">Yarn v2–v4（Berry）への影響: 無<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-yarn-v1-lockfile#yarn-v2v4berry%E3%81%B8%E3%81%AE%E5%BD%B1%E9%9F%BF-%E7%84%A1" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>既存の <code>yarn.lock</code> 内の <code>__archiveUrl</code> フィールドが、次回のパッケージ更新時に削除されるようになります。この点以外には、既知の影響はありません。</p>]]></content>
        <author>
            <name>Deividas Turskis</name>
            <uri>https://github.com/ren-</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi ブラックボックス診断のクロール結果が手動編集可能に]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-blackbox-edit-crawl-results</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-blackbox-edit-crawl-results"/>
        <updated>2026-04-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[クロールで検出された機能・エンドポイントを手動で編集できる機能を追加しました。]]></summary>
        <content type="html"><![CDATA[<p>ブラックボックス診断の「一部だけ診断」モードにおいて、クロール完了後に機能やエンドポイントを手動で編集できるようになりました。クロールで検出されなかった機能・エンドポイントを補完したり、不要なものを削除したりすることで、より精度の高い診断を実施できます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="概要">概要<a href="https://shisho.dev/docs/ja/r/202604-takumi-blackbox-edit-crawl-results#%E6%A6%82%E8%A6%81" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>「一部だけ診断」モードでは、まず対象アプリケーションをクロールして機能を洗い出し、その後に診断する機能・観点を選択して診断を実行します。</p>
<p>自動クロールは、複雑なステップが必要なエンドポイント等を見落とすことがあります。今回追加した手動編集機能を使うと、クロール完了後にその結果を調整したうえで診断に進めます。これにより、自動クロールでは到達できなかった機能・エンドポイントも診断対象に含めることができます。</p>
<p>編集ページでは、以下の操作が可能です。</p>
<ul>
<li><strong>既存機能へのエンドポイント追加</strong>: クロール済みの機能に、不足しているエンドポイントを追加します</li>
<li><strong>既存機能からのエンドポイント削除</strong>: クロールで検出されたが診断対象として不要なエンドポイントを除外します</li>
<li><strong>新規機能の追加</strong>: クロールで検出されなかった機能を、エンドポイントとあわせて追加します</li>
</ul>
<p><img decoding="async" loading="lazy" alt="編集ページ" src="https://shisho.dev/docs/ja/assets/images/image-11990d80b10e2a9a34e59bf2639193e9.png" width="3146" height="1542" class="img_c462"></p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="利用開始方法">利用開始方法<a href="https://shisho.dev/docs/ja/r/202604-takumi-blackbox-edit-crawl-results#%E5%88%A9%E7%94%A8%E9%96%8B%E5%A7%8B%E6%96%B9%E6%B3%95" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>本機能は Takumi によるブラックボックス診断機能にてご利用いただけます。</p>
<p>詳しくは<a href="https://shisho.dev/docs/ja/t/features/blackbox-assessment#%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E7%B5%90%E6%9E%9C%E3%81%AE%E6%89%8B%E5%8B%95%E7%B7%A8%E9%9B%86">ブラックボックス診断のドキュメント</a>をご覧ください。</p>]]></content>
        <author>
            <name>Tsubasa Umeuchi</name>
            <uri>https://github.com/Szarny</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi Guard の GitHub Actions 向けレートリミットを約 6 倍に引き上げ]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-guard-rate-limit</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rate-limit"/>
        <updated>2026-04-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[GitHub Actions/Bot トークンのレートリミットを約 10,000 回/分から約 60,000 回/分に引き上げました。]]></summary>
        <content type="html"><![CDATA[<p>Takumi Guard の認証済み GitHub Actions/Bot トークン（Tier C）のレートリミットを約 <strong>6 倍</strong>に引き上げ、トークンあたり最大 <strong>約 60,000 回/分</strong> のリクエストに対応できるようになりました。npm・PyPI の両レジストリに適用されます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="背景">背景<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rate-limit#%E8%83%8C%E6%99%AF" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>ソフトウェアサプライチェーンへの脅威は深刻さを増しています。<a href="https://diary.shift-js.info/litellm-compromise/" target="_blank" rel="noopener noreferrer">LiteLLM の侵害事案</a>（外部リンク）や <a href="https://blog.flatt.tech/entry/axios_compromise" target="_blank" rel="noopener noreferrer">axios の侵害事案</a>（弊社によるまとめ）に見られるように、広く利用されているパッケージであっても攻撃の対象となりえます。こうした状況を受け、Takumi Guard へのニーズは増加しており、可能な限りの貢献を果たすべく、大規模環境への対応を強化しています。</p>
<p>多数の GitHub Actions ジョブが単一トークンを共有する大規模環境では、ピーク時に従来の 10,000 回/分のレートリミットに到達し、<code>429 Too Many Requests</code> エラーが発生するケースがありました。最大規模の CI パイプラインでも Takumi Guard を摩擦なく利用できるよう、今回レートリミットを引き上げました。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="変更内容">変更内容<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rate-limit#%E5%A4%89%E6%9B%B4%E5%86%85%E5%AE%B9" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>GitHub Actions/Bot トークンのレートリミットウィンドウを 60 秒から 10 秒に短縮し、ウィンドウあたりのリクエスト数（10,000 回）は維持しました。これにより、実効スループットが約 60,000 回/分に向上しています。</p>
<table><thead><tr><th>利用方法</th><th>変更前</th><th>変更後</th></tr></thead><tbody><tr><td>Bot トークン</td><td>トークンあたり 10,000 回/分</td><td><strong>トークンあたり 10,000 回/10秒</strong></td></tr><tr><td>メール認証トークン</td><td>トークンあたり 10,000 回/分</td><td>トークンあたり 10,000 回/分</td></tr><tr><td>匿名利用</td><td>IP あたり 2,000 回/分</td><td>IP あたり 2,000 回/分</td></tr></tbody></table>
<p>ご利用者様側での対応は不要です。変更は自動的に適用されています。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="組織での利用を始める">組織での利用を始める<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rate-limit#%E7%B5%84%E7%B9%94%E3%81%A7%E3%81%AE%E5%88%A9%E7%94%A8%E3%82%92%E5%A7%8B%E3%82%81%E3%82%8B" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>Bot トークンを利用して GitHub 組織単位で Takumi Guard を導入するには、以下の手順で設定してください。</p>
<ol>
<li><a href="https://cloud.shisho.dev/hello/takumi" target="_blank" rel="noopener noreferrer">https://cloud.shisho.dev/hello/takumi</a> にアクセスし、サインインする</li>
<li>組織を登録する。決済画面が表示されますが、本機能の利用に<strong>決済は不要</strong>です</li>
<li>画面左のサイドバーから <strong>Guard</strong> ページにアクセスする</li>
<li>保護対象の GitHub 組織名を入力する — 組織に紐づく <strong>Bot ID</strong> が発行されます</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Guard の設定画面 — GitHub 組織の登録と Bot ID の発行" src="https://shisho.dev/docs/ja/assets/images/guard-1-b56d20b780e550dc10970c67386c1ec0.png" width="916" height="393" class="img_c462"></p>
<ol start="5">
<li>GitHub Actions ワークフローにセットアップステップを追加します。具体的には、以下の 3 点を変更してください。<!-- -->
<ul>
<li><code>permissions</code> に <code>id-token: write</code> を追加する（OIDC に必要）</li>
<li><code>contents: read</code> など、ワークフローに必要な他の権限を追加する</li>
<li><code>flatt-security/setup-takumi-guard-npm@v1</code> アクションを Bot ID 付きで追加する</li>
</ul>
</li>
</ol>
<p><img decoding="async" loading="lazy" alt="Guard の設定画面 — GitHub Actions ワークフローへのステップ追加" src="https://shisho.dev/docs/ja/assets/images/guard-2-03faa980297f7f1cfff9649ff35e4679.png" width="915" height="470" class="img_c462"></p>
<p>設定が完了すると、GitHub Actions ワークフローからのパッケージリクエストが Bot トークンで認証され、引き上げ後のレートリミットが適用されます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="詳細">詳細<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-rate-limit#%E8%A9%B3%E7%B4%B0" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>レートリミットの全体については<a href="https://shisho.dev/docs/ja/t/guard/limitation#rate-limit">制限事項・注意事項</a>をご覧ください。</p>]]></content>
        <author>
            <name>Takashi Yoneuchi</name>
            <uri>https://github.com/lmt-swallow</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi Guard の初期 API キー配信方式の変更]]></title>
        <id>https://shisho.dev/docs/ja/r/202604-takumi-guard-token-delivery</id>
        <link href="https://shisho.dev/docs/ja/r/202604-takumi-guard-token-delivery"/>
        <updated>2026-04-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[セットアップが簡易になり、かつ一部環境でのセットアップのブロッカーも解消されました]]></summary>
        <content type="html"><![CDATA[<p>Takumi Guard の通知先メールアドレスの登録において、API キーが<strong>セットアップメールに直接記載</strong>されるようになり、確認リンクのクリックが不要になりました。セットアップがシンプルになると同時に、セキュリティツールによる招待リンクの消費も解消されました。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="変更内容">変更内容<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-token-delivery#%E5%A4%89%E6%9B%B4%E5%86%85%E5%AE%B9" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>従来は、メール内の確認リンクをクリックして API キーを確認する流れでした。この方式はやや煩雑であり、かつ何らかの仕組み（セキュリティツール等）が事前に内容を確認する場合に、一部環境でセットアップがブロックされるケースもありました。</p>
<p>新しいフローでは、リスク評価の上、確認リンクを廃止しました。</p>
<ul>
<li><strong>変更前:</strong> 登録 → メール内のリンクをクリック → キーを表示 → 手動でコマンドを置き換え、設定</li>
<li><strong>変更後:</strong> 登録 → メール内のセットアップコマンドをコピー＆ペーストで完了</li>
</ul>
<p>メールには API キーの更新コマンドも含まれているため、セットアップ直後に API キーを新しいものに置き換えることもできます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="補足セキュリティに関して">補足：セキュリティに関して<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-token-delivery#%E8%A3%9C%E8%B6%B3%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%81%AB%E9%96%A2%E3%81%97%E3%81%A6" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>メールに API キーが記載される方式の場合、メールサービス内に API キーが残置されます。
一方、以下の通り、本 API キーは漏洩時も大きなリスクを伴いません。</p>
<ul>
<li><strong>APIキーを介して取得できる情報は、APIキーの最終利用日時のみです。</strong> 今後の機能追加に際しても、この挙動は維持されます。パッケージのダウンロード履歴や、ユーザーのアカウント情報などは取得できません。</li>
<li><strong>無効なAPIキーでも、パッケージのブロックは動作します。</strong> 仮にAPIキーが漏洩・無効化されても、<code>npm install</code> や <code>pip install</code> は標準レート制限で動作し続けます。認証済ユーザーへのレートリミット（10,000 リクエスト/分）は適用されなくなります。</li>
</ul>
<p>かつ、APIキーはいつでも CLI でローテーション可能であるため、残置が好ましくない場合はローテーションいただくこともできます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="補足api-キーを紛失した場合">補足：API キーを紛失した場合<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-token-delivery#%E8%A3%9C%E8%B6%B3api-%E3%82%AD%E3%83%BC%E3%82%92%E7%B4%9B%E5%A4%B1%E3%81%97%E3%81%9F%E5%A0%B4%E5%90%88" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>以前の API キーが見つからなくても、サポートへの問い合わせは不要です。</p>
<p>同じメールアドレスで再登録すると、<strong>リセットコード</strong>が届きます。このコードで新しいキーを生成できます。メールにはそのままコピー＆ペーストできるコマンドが記載されているため、複雑な手続きは不要です。コードの有効期限が切れた場合は、再度登録するだけで新しいコードを受け取れます。</p>
<p>詳細は<a href="https://shisho.dev/docs/ja/t/guard/features/token-management">トークン管理</a>をご覧ください。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="その他">その他<a href="https://shisho.dev/docs/ja/r/202604-takumi-guard-token-delivery#%E3%81%9D%E3%81%AE%E4%BB%96" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<ul>
<li>既存ユーザーの API キーはそのまま利用可能です。本変更に伴う対応は不要です。</li>
<li>古い確認リンクにアクセスすると、再登録の手順を案内するページが表示されます。</li>
<li>本変更は、npm・PyPI の両エコシステムに対応しています。</li>
</ul>
<p>セットアップ手順については <a href="https://shisho.dev/docs/ja/t/guard">Takumi Guard</a> をご参照ください。</p>]]></content>
        <author>
            <name>Deividas Turskis</name>
            <uri>https://github.com/ren-</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi によるすべての診断をクレジット上限指定型に統一]]></title>
        <id>https://shisho.dev/docs/ja/r/202603-takumi-assessment-all-rf</id>
        <link href="https://shisho.dev/docs/ja/r/202603-takumi-assessment-all-rf"/>
        <updated>2026-03-31T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[すべてのブラックボックス診断・ホワイトボックス診断がクレジット上限を指定して実行する形式に統一されました]]></summary>
        <content type="html"><![CDATA[<p>Takumi による診断機能（ブラックボックス診断・ホワイトボックス診断）において、クレジット上限の指定が必須となりました。</p>
<p>これにより、<strong>どの診断タイプ・どの診断モードであっても、消費クレジット量を事前にコントロールできるようになり、意図しない大量のクレジット消費を防ぐ</strong>ことができます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="変更内容">変更内容<a href="https://shisho.dev/docs/ja/r/202603-takumi-assessment-all-rf#%E5%A4%89%E6%9B%B4%E5%86%85%E5%AE%B9" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>すべてのブラックボックス診断・ホワイトボックス診断において、診断の各フェーズ（機能列挙・スキャン）ごとにクレジット上限の指定が必須となりました。</p>
<p>これにより、クレジット上限が未設定のまま大規模な診断を実行し、意図しない大量のクレジット消費が発生する事象を防止できます。なお、実際の消費量が指定したクレジット上限を超過した場合でも、超過分のクレジットは請求されません。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="段階的な診断の実施">段階的な診断の実施<a href="https://shisho.dev/docs/ja/r/202603-takumi-assessment-all-rf#%E6%AE%B5%E9%9A%8E%E7%9A%84%E3%81%AA%E8%A8%BA%E6%96%AD%E3%81%AE%E5%AE%9F%E6%96%BD" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>クレジット上限の仕組みにより、すべての診断で段階的なアプローチが可能です。</p>
<ul>
<li><strong>初回はクレジット上限を小さく設定</strong>して、診断の傾向や検出される脆弱性の種類を確認する</li>
<li><strong>中間レポートを確認</strong>した上で、追加スキャンの必要性を判断する</li>
<li><strong>必要に応じてクレジット上限と優先度を調整</strong>しながら、追加スキャンを実施する</li>
</ul>
<p>これにより、一度に大量のクレジットを消費することなく、診断結果を見ながら段階的に診断範囲を広げていくことができます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="既存の診断への影響">既存の診断への影響<a href="https://shisho.dev/docs/ja/r/202603-takumi-assessment-all-rf#%E6%97%A2%E5%AD%98%E3%81%AE%E8%A8%BA%E6%96%AD%E3%81%B8%E3%81%AE%E5%BD%B1%E9%9F%BF" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>実行中および完了済みの診断には影響ありません。今後新しく作成する診断から本変更が適用されます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="ユーザーガイド">ユーザーガイド<a href="https://shisho.dev/docs/ja/r/202603-takumi-assessment-all-rf#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>診断の開始方法については、以下のドキュメントを参照してください。</p>
<ul>
<li><a href="https://shisho.dev/docs/ja/t/features/whitebox-assessment">ホワイトボックス診断（都度）</a></li>
<li><a href="https://shisho.dev/docs/ja/t/features/blackbox-assessment">ブラックボックス診断</a></li>
</ul>]]></content>
        <author>
            <name>Tsubasa Umeuchi</name>
            <uri>https://github.com/Szarny</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[リスクフォーカス型ブラックボックス診断が Takumi API で利用可能に]]></title>
        <id>https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-risk-focus</id>
        <link href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-risk-focus"/>
        <updated>2026-03-30T01:00:00.000Z</updated>
        <summary type="html"><![CDATA[クレジット上限の範囲内で優先度の高い箇所から段階的に診断を進め、途中から再開もできるリスクフォーカス型診断が、Takumi API のブラックボックス診断でも利用可能になりました]]></summary>
        <content type="html"><![CDATA[<p>Web コンソールで提供してきた<a href="https://shisho.dev/docs/ja/r/202602-takumi-risk-focus">リスクフォーカス診断</a>が、<a href="https://shisho.dev/docs/ja/t/api">Takumi API</a> のブラックボックス診断でも利用可能になりました。</p>
<p>リスクフォーカス型診断は、<strong>指定したクレジットの範囲内で、優先度の高い機能・観点から診断</strong>を進めるものです。優先度は明示的に指定することも、Takumi に優先度づけを任せることもできます。クレジット上限に達すると、Takumi はそこまでの診断結果（レポート等）を出力して中断します。中断した診断に対して、クレジットを追加して続きから診断を再開することも可能です。</p>
<p>クレジット消費を予測可能にしたい場合や、予算内で重要な箇所を優先的に診断したい場合などに活用いただけます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="活用例">活用例<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-risk-focus#%E6%B4%BB%E7%94%A8%E4%BE%8B" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="auto-prioritization">指定したクレジットの範囲内で診断する<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-risk-focus#auto-prioritization" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>診断する機能・観点の優先度づけを Takumi に任せ、指定したクレジットの範囲内で診断を実行するには、<code>crawl_credit_limit</code> および <code>scan_credit_limit</code> を指定してワークフローを呼び出します。クロールとスキャンそれぞれに対してクレジット上限を設定でき、片方だけの設定も可能です。以下の例では、クロール時のクレジット上限を 20、スキャン時のクレジット上限を 50 に設定しています（このとき、最大でも 70 クレジットの消費となります）。</p>
<div class="language-typescript codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-typescript codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> workflow_run_id </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_API</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/v1/o/</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_ORG</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/workflows/blackbox-assessment/dispatch</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    headers</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    body</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      input</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        language</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"japanese"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        target_urls</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"https://app.example/"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        crawl_credit_limit</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">20</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// クロールに使うクレジットの上限 (任意)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        scan_credit_limit</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">50</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// スキャンに使うクレジットの上限 (任意)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>クロールに使うクレジットの上限 <code>crawl_credit_limit</code> を指定した場合、クロール中にクレジット上限に達するとそこでクロールを終了し、そこまでに発見された機能に対してスキャンを実行します。</p>
<p>クロールの終了後、発見されたそれぞれの機能と観点の組み合わせに対して、Takumi がリスク分析に基づいて優先度を自動的に決定し、優先度の高いものから順にスキャンを実行します。スキャン中にクレジット上限 <code>scan_credit_limit</code> に達すると、そこまでの診断結果を出力して診断が終了します。</p>
<p>診断が終了すると、診断レポートや検出された脆弱性一覧に加え、「どの機能・観点は診断完了したのか」を示す <code>scan_progress</code> というアーティファクトが出力されます。</p>
<div class="language-js codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-js codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">// 診断完了した機能・観点の組み合わせ</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token string-property property" style="color:#36acaa">"completed"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token string-property property" style="color:#36acaa">"feature_name"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"認証"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string-property property" style="color:#36acaa">"perspective"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Injection"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token string-property property" style="color:#36acaa">"feature_name"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"ユーザー設定"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string-property property" style="color:#36acaa">"perspective"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Authorization"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token comment" style="color:#999988;font-style:italic">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token comment" style="color:#999988;font-style:italic">// 診断の必要がないと判定されたためスキップされた組み合わせ</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token string-property property" style="color:#36acaa">"skipped"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token string-property property" style="color:#36acaa">"feature_name"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Apex"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string-property property" style="color:#36acaa">"perspective"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"CSRF"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token comment" style="color:#999988;font-style:italic">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>より多くの機能・観点を診断したい場合は、<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-risk-focus#continue-assessment">クレジットを追加して診断を続行する</a>を参照してください。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="custom-prioritization">機能・観点の優先度を指定して、クレジット上限の範囲内で診断する<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-risk-focus#custom-prioritization" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直�接リンク">​</a></h3>
<p>診断する機能・観点の優先度を明示的に指定することも可能です。ビジネスインパクトの大きさや前回診断からのアップデートの有無などに基づき、自由に優先度を調整できます。具体的には、<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-scoped-assessment">「一部だけ診断」「再診断」</a>で用いる <code>pairs</code> パラメータに <code>priority</code> フィールドを指定します。</p>
<div class="language-typescript codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-typescript codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> workflow_run_id </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_API</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/v1/o/</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_ORG</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/workflows/blackbox-assessment/dispatch</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    headers</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    body</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      input</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        language</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"japanese"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        target_urls</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"https://app.example/"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        scan_credit_limit</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">50</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// スキャンに使うクレジットの上限 (任意)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// クロールワークフローで発見された機能一覧を利用するよう指定</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        resume</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          kind</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"assess_crawled_features"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          assess_crawled_features</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            workflow_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"blackbox-crawl"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"TWR..."</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// クロールワークフローの実行 ID</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        pairs</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token comment" style="color:#999988;font-style:italic">// feature_name には、クロールワークフローの `features` アーティファクトに記載された機能名を指定</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> feature_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"認証"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> perspective</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Injection"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> priority</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"high"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            feature_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"ユーザー設定"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            perspective</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Authorization"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            priority</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"medium"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> feature_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"商品カタログ"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> perspective</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"XSS"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> priority</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"low"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token comment" style="color:#999988;font-style:italic">// 優先度を指定しない場合は、Takumi がリスク分析に基づいて自動的に優先度を判断</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> feature_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"決済"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> perspective</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"BusinessLogic"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>診断中にクレジット上限に達して終了した場合に、どの機能・観点の組み合わせが診断完了したのかを確認する方法は、<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-risk-focus#auto-prioritization">「指定したクレジットの範囲内で診断する」</a>の記載と同様です。</p>
<div class="theme-admonition theme-admonition-info admonition_jlL_ alert alert--info"><div class="admonitionHeading_yyDB"><span class="admonitionIcon_tfPy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_hYxl"><p>機能・観点の優先度を指定する場合は、事前に診断対象の機能を洗い出す必要があります。既に完了したクロールワークフローまたは診断ワークフローの <code>features</code> アーティファクトに記載された機能名を <code>pairs</code> に指定し、その <code>workflow_run_id</code> を <code>resume.assess_crawled_features</code> に指定してください。</p></div></div>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="continue-assessment">クレジットを追加して診断を続行する<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-risk-focus#continue-assessment" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>クレジット上限に達して終了した診断や、一部の機能・観点だけを <code>pairs</code> に指定して実行した診断など、未診断の機能・観点がある診断に対して、クレジットを追加して続きから診断を再開できます。再開された診断では、前回の診断結果が引き継がれ、未診断の機能・観点のうち優先度の高いものから順に診断が進みます。</p>
<div class="language-typescript codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-typescript codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> next_workflow_run_id </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_API</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/v1/o/</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_ORG</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/workflows/blackbox-assessment/dispatch</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    headers</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    body</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      input</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        language</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"japanese"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        target_urls</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"https://app.example/"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        scan_credit_limit</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">50</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// 追加スキャンに使うクレジットの上限 (任意)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        resume</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          kind</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"continue_assessment"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          continue_assessment</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            workflow_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"blackbox-assessment"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> workflow_run_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// 再開したい診断のワークフロー実行 ID</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// 診断する機能・観点の絞り込み・優先度の調整 (任意)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        pairs</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token comment" style="color:#999988;font-style:italic">// feature_name には、再開元の診断ワークフローの `features` アーティファクトに記載された機能名を指定</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> feature_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"認証"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> perspective</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Injection"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> priority</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"high"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token comment" style="color:#999988;font-style:italic">// ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>診断を続行する際には、<code>pairs</code> パラメータを指定して診断対象を絞り込んだり、優先度を調整したりすることもできます。省略した場合は、未診断の機能・観点全てに対し Takumi がリスク分析に基づいて自動的に優先度を判断して診断を進めます。</p>
<p>このサイクル（診断 → 結果確認 → 再開）を繰り返すことで、結果を見ながら段階的に診断範囲を広げていくことも可能です。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="制限事項">制限事項<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-risk-focus#%E5%88%B6%E9%99%90%E4%BA%8B%E9%A0%85" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>本機能は <strong>Takumi API 経由で実行した診断に対してのみ</strong>利用可能です。Web コンソールから実行した診断を API から続行したり、その逆を行うことはできません。詳細は API ユーザーガイドの「<a href="https://shisho.dev/docs/ja/t/api#relationship-with-existing-features">Web コンソールの「診断」との関係</a>」をご覧ください。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="利用開始方法">利用開始方法<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-risk-focus#%E5%88%A9%E7%94%A8%E9%96%8B%E5%A7%8B%E6%96%B9%E6%B3%95" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>詳細は <a href="https://shisho.dev/docs/ja/t/api">API ドキュメント</a>をご覧ください。</p>]]></content>
        <author>
            <name>pizzacat83</name>
            <uri>https://github.com/pizzacat83</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi API のクロールワークフローでクレジット上限の指定・追加クロールが可能に]]></title>
        <id>https://shisho.dev/docs/ja/r/202603-takumi-api-crawl-credit-limit</id>
        <link href="https://shisho.dev/docs/ja/r/202603-takumi-api-crawl-credit-limit"/>
        <updated>2026-03-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Takumi API 経由でクロールワークフローを実行する際に、クレジット上限を指定できるようになりました。終了したクロールに対して、クレジットを追加してクロールを再開することも可能です。]]></summary>
        <content type="html"><![CDATA[<p>Takumi API 経由で実行したクロール（<code>blackbox-crawl</code> ワークフロー）において、<strong>クレジット上限を指定</strong>して実行できるようになりました。また、終了したクロールに対してクレジットを追加してクロールを続行できるようになりました。Web コンソールの<a href="https://shisho.dev/docs/ja/t/features/blackbox-assessment/#%E8%BF%BD%E5%8A%A0%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB">追加クロール機能</a>と同様に、Takumi API 経由のクロールでも、クレジット消費量を制御しながらクロールを進めていただけます。</p>
<!-- -->
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="クレジット上限を指定してクロールする">クレジット上限を指定してクロールする<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-crawl-credit-limit#%E3%82%AF%E3%83%AC%E3%82%B8%E3%83%83%E3%83%88%E4%B8%8A%E9%99%90%E3%82%92%E6%8C%87%E5%AE%9A%E3%81%97%E3%81%A6%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>クロールワークフローを実行する際、<code>input.credit_limit</code> パラメータを用いてクロール時のクレジット消費の上限を指定できます。指定した場合、クレジット上限に達するとそこでクロールが終了し、そこまでに検出された機能一覧を出力します。</p>
<div class="language-typescript codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-typescript codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> workflow_run_id </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_API</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/v1/o/</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_ORG</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/workflows/blackbox-crawl/dispatch</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    headers</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    body</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      input</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        language</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"japanese"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        target_urls</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"https://app.example/"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// クレジット上限</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        credit_limit</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">20</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="クレジットを追加して続きからクロールを再開する">クレジットを追加して続きからクロールを再開する<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-crawl-credit-limit#%E3%82%AF%E3%83%AC%E3%82%B8%E3%83%83%E3%83%88%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%E7%B6%9A%E3%81%8D%E3%81%8B%E3%82%89%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E3%82%92%E5%86%8D%E9%96%8B%E3%81%99%E3%82%8B" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>より幅広くクロールしたい場合や、特定の機能をより深くクロールしたい場合に、終了したクロールに対して追加クロールを実行できます。追加クロールでは、発見済みの機能・エンドポイント一覧が引き継がれ、新たに発見された機能・エンドポイントが追加されます。追加クロール実行時に、クロールする対象を絞り込むための指示を与えることもできます。</p>
<div class="language-typescript codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-typescript codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> crawl_workflow_run_id2 </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_API</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/v1/o/</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_ORG</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/workflows/blackbox-crawl/dispatch</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    headers</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    body</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      input</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        language</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"japanese"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        target_urls</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"https://app.example/"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// 前回クロールの結果を引き継いで追加クロールする</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        resume</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          workflow_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"blackbox-crawl"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> crawl_workflow_run_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// 前回クロールの workflow_run_id を指定</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// クレジット上限 (任意)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        credit_limit</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">20</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// 追加の指示 (任意)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        additional_instructions</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token string" style="color:#e3116c">"/page/abc でアクセスできるページにおいてやり取りされる API (/api/v1/users/...) を重点的にクロールしてください"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      notification</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> webhook_endpoint_ids</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token constant" style="color:#36acaa">WEBHOOK_ID</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="利用開始方法">利用開始方法<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-crawl-credit-limit#%E5%88%A9%E7%94%A8%E9%96%8B%E5%A7%8B%E6%96%B9%E6%B3%95" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>詳細は <a href="https://shisho.dev/docs/ja/t/api">API ドキュメント</a>をご覧ください。</p>]]></content>
        <author>
            <name>pizzacat83</name>
            <uri>https://github.com/pizzacat83</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[ブラックボックス診断の「一部だけ診断」「再診断」が Takumi API で利用可能に]]></title>
        <id>https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-scoped-assessment</id>
        <link href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-scoped-assessment"/>
        <updated>2026-03-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[機能や観点を絞り込んだブラックボックス診断を、Takumi API から実行できるようになりました]]></summary>
        <content type="html"><![CDATA[<p>Takumi のブラックボックス診断における「一部だけ診断」「再診断」はこれまで Web コンソールからのみ利用可能でしたが、<a href="https://shisho.dev/docs/ja/t/api">Takumi API</a> 経由でもこれらの診断を実行できるようになりました。</p>
<ul>
<li><strong>一部だけ診断</strong>: まず対象アプリケーションの機能をクロールし、Takumi が停止します。その後、診断したい機能や観点を選択して診断を実行します</li>
<li><strong>再診断</strong>: 過去の診断結果で脆弱性が指摘された箇所を指定して診断を実行します</li>
</ul>
<p>これらをサポートするため、ブラックボックス診断 API に対し以下の拡充を行いました。</p>
<ul>
<li>クロールワークフロー <code>blackbox-crawl</code> を追加<br>
<!-- -->対象アプリケーションをクロールし、洗い出した機能を出力するワークフローです。診断は行いません。</li>
<li>診断ワークフロー <code>blackbox-assessment</code> において、診断観点・機能を指定するオプションを追加<br>
<!-- -->過去のワークフロー (クロール・診断) で洗い出した機能の中から、診断対象とする機能や観点を選択できます。</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="一部だけ診断">一部だけ診断<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-scoped-assessment#%E4%B8%80%E9%83%A8%E3%81%A0%E3%81%91%E8%A8%BA%E6%96%AD" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>以下の流れで、機能・観点を絞り込んだ「一部だけ診断」を実現できます。</p>
<ol>
<li>クロールワークフローを実行し、対象アプリケーションの機能を洗い出す</li>
<li>クロール結果をもとに診断対象とする機能・観点を選択し、診断ワークフローを実行する</li>
</ol>
<p>重要度の高い箇所に絞って診断したい場合や、最近アップデートした機能だけを診断したい場合などに活用いただけます。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="クロールワークフローを実行">クロールワークフローを実行<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-scoped-assessment#%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%82%92%E5%AE%9F%E8%A1%8C" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>クロールワークフローは以下のように呼び出せます。</p>
<div class="language-typescript codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-typescript codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> crawl_workflow_run_id </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_API</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/v1/o/</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_ORG</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/workflows/blackbox-crawl/dispatch</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    headers</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    body</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      input</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        language</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"japanese"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        target_urls</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"https://app.example/"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      notification</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> webhook_endpoint_ids</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token constant" style="color:#36acaa">WEBHOOK_ID</span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="機能観点を選択して診断ワークフローを実行">機能・観点を選択して診断ワークフローを実行<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-scoped-assessment#%E6%A9%9F%E8%83%BD%E8%A6%B3%E7%82%B9%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%A6%E8%A8%BA%E6%96%AD%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%82%92%E5%AE%9F%E8%A1%8C" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>クロールワークフローが完了したら、洗い出された機能一覧を確認します。クロールで発見された機能一覧は <code>features</code> という名前のアーティファクトとして出力されます。</p>
<div class="language-typescript codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-typescript codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> featuresData </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_API</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/v1/o/</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_ORG</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/workflows/blackbox-crawl/get-artifact-download-url</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    headers</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    body</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> crawl_workflow_run_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      artifact_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"features"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> url </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">url</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">for</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> feature </span><span class="token keyword" style="color:#00009f">of</span><span class="token plain"> featuresData</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">features</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token builtin">console</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">log</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"feature name:"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> feature</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">name</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// =&gt; "認証", "ユーザー設定", "商品カタログ", ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token builtin">console</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">log</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"feature description:"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> feature</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">description</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>ここから診断したい機能名 (<code>feature.name</code>) と観点を選択し、クロールワークフローの ID を指定して、診断ワークフローを呼び出します。</p>
<div class="language-typescript codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-typescript codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> assessment_workflow_run_id </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_API</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/v1/o/</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_ORG</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/workflows/blackbox-assessment/dispatch</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    headers</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    body</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      input</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        language</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"japanese"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        target_urls</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"https://app.example/"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// クロールワークフローで発見された機能一覧を再利用するよう指定</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        resume</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          kind</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"assess_crawled_features"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          assess_crawled_features</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            workflow_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"blackbox-crawl"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> crawl_workflow_run_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// 診断対象とする機能・観点を指定</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        pairs</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> feature_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"認証"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> perspective</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Injection"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> feature_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"ユーザー設定"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> perspective</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Authorization"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> feature_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"商品カタログ"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> perspective</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"XSS"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="再診断">再診断<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-scoped-assessment#%E5%86%8D%E8%A8%BA%E6%96%AD" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>ブラックボックス診断の結果には、検出された脆弱性ごとに「どの機能のどの観点で見つかったか」という情報が含まれています。</p>
<p>脆弱性を修正した後に再診断したい際には、これらの情報を利用して、当該脆弱性が指摘された機能・観点だけを対象に診断を実行できます。例えば、認証機能におけるインジェクションの脆弱性を修正した後に、そこだけを再診断できます。</p>
<p>たとえば、認証機能で Injection の脆弱性が報告された場合、修正後にその組み合わせだけを再診断する、といった使い方が可能です。</p>
<p>まず、すでに完了した診断で検出された脆弱性を確認するには、<code>findings</code> という名前のアーティファクトをダウンロードします。</p>
<div class="language-typescript codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-typescript codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> findingsData </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_API</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/v1/o/</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_ORG</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/workflows/blackbox-assessment/get-artifact-download-url</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    headers</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    body</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> assessment_workflow_run_id</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      artifact_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"findings"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> url </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">url</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">for</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> finding </span><span class="token keyword" style="color:#00009f">of</span><span class="token plain"> findingsData</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">findings</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token builtin">console</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">log</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"title:"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> finding</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">title</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token builtin">console</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">log</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"feature:"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> finding</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">feature_name</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// =&gt; "認証", "ユーザー設定", ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token builtin">console</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">log</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"perspective:"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> finding</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">perspective</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// =&gt; "Injection", "Authorization", ...</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token builtin">console</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">log</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">"markdown description:"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> finding</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">description</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>脆弱性を修正した後に再診断するには、この <code>findings</code> アーティファクトに記載されていた機能名 (<code>finding.feature_name</code>) と観点 (<code>finding.perspective</code>) を指定して再診断を実行します。前回診断に用いられた機能一覧情報を引き継ぐため、診断ワークフローの ID の指定も必要です。</p>
<div class="language-typescript codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-typescript codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> assessment_workflow_run_id </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token keyword" style="color:#00009f">await</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">fetch</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_API</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/v1/o/</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation constant" style="color:#36acaa">TAKUMI_ORG</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string string" style="color:#e3116c">/workflows/blackbox-assessment/dispatch</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    method</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"POST"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    headers</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    body</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token constant" style="color:#36acaa">JSON</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">stringify</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      input</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        language</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"japanese"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        target_urls</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token string" style="color:#e3116c">"https://app.example/"</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// 前回の診断ワークフローで利用していた機能一覧を再利用するよう指定</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        resume</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          kind</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"assess_crawled_features"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          assess_crawled_features</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            workflow_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"blackbox-assessment"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            workflow_run_id</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"TWR..."</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// 前回診断の workflow_run_id を指定</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token comment" style="color:#999988;font-style:italic">// 再診断したい機能・観点を指定</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        pairs</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> feature_name</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"認証"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> perspective</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Injection"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">then</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">r</span><span class="token punctuation" style="color:#393A34">)</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=&gt;</span><span class="token plain"> r</span><span class="token punctuation" style="color:#393A34">.</span><span class="token function" style="color:#d73a49">json</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="制限事項">制限事項<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-scoped-assessment#%E5%88%B6%E9%99%90%E4%BA%8B%E9%A0%85" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>「一部だけ診断」と「再診断」は、<strong>Takumi API 経由で実行したクロール・診断に対してのみ</strong>利用可能です。Web コンソールから実行したクロール・診断の結果は、API 経由では利用できません。これは、Takumi API と Web コンソールの「診断」機能のデータが独立に管理されているためです。詳細は API ユーザーガイドの「<a href="https://shisho.dev/docs/ja/t/api#relationship-with-existing-features">Web コンソールの「診断」との関係</a>」をご覧ください。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="利用開始方法">利用開始方法<a href="https://shisho.dev/docs/ja/r/202603-takumi-api-blackbox-scoped-assessment#%E5%88%A9%E7%94%A8%E9%96%8B%E5%A7%8B%E6%96%B9%E6%B3%95" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>詳細は <a href="https://shisho.dev/docs/ja/t/api">API ドキュメント</a>をご覧ください。</p>]]></content>
        <author>
            <name>pizzacat83</name>
            <uri>https://github.com/pizzacat83</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi によるリスクフォーカス診断がホワイトボックス診断に対応]]></title>
        <id>https://shisho.dev/docs/ja/r/202603-takumi-risk-focus-for-wb</id>
        <link href="https://shisho.dev/docs/ja/r/202603-takumi-risk-focus-for-wb"/>
        <updated>2026-03-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[ホワイトボックス診断でも、クレジット上限を指定したリスクフォーカス診断が利用できるようになりました]]></summary>
        <content type="html"><![CDATA[<p>Takumi によるホワイトボックス診断について、機能列挙後、クレジット上限と各機能・観点の診断優先度を設定することで、リスクフォーカス診断が実行できるようになりました</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="クレジット上限と各機能観点の診断優先度の設定">クレジット上限と各機能・観点の診断優先度の設定<a href="https://shisho.dev/docs/ja/r/202603-takumi-risk-focus-for-wb#%E3%82%AF%E3%83%AC%E3%82%B8%E3%83%83%E3%83%88%E4%B8%8A%E9%99%90%E3%81%A8%E5%90%84%E6%A9%9F%E8%83%BD%E8%A6%B3%E7%82%B9%E3%81%AE%E8%A8%BA%E6%96%AD%E5%84%AA%E5%85%88%E5%BA%A6%E3%81%AE%E8%A8%AD%E5%AE%9A" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>本リリース以降、新規に「ソースコード」を対象にした診断を開始すると、まず対象機能の列挙のみが行われます。</p>
<p>上記の処理が完了すると、診断が「機能列挙済」の状態に遷移します。その診断のページを開くと、リスクフォーカス診断のための設定画面が表示されます。</p>
<p><img decoding="async" loading="lazy" alt="設定画面" src="https://shisho.dev/docs/ja/assets/images/ui-pending-1-ce4ab1e982404b969e775340cfbdee2b.png" width="3138" height="1330" class="img_c462"></p>
<p>この画面から、診断のクレジット上限、および、各機能・観点の組み合わせに対する診断優先度を設定できます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="追加スキャン">追加スキャン<a href="https://shisho.dev/docs/ja/r/202603-takumi-risk-focus-for-wb#%E8%BF%BD%E5%8A%A0%E3%82%B9%E3%82%AD%E3%83%A3%E3%83%B3" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>初回の診断が完了後、診断が「診断再開待ち」の状態になります。その診断のページを開くと、これまでの診断結果のレポートを確認したり、クレジット上限や優先度の設定を変更して追加スキャンを実行したりすることができます。</p>
<p><img decoding="async" loading="lazy" alt="診断再開待ちの画面" src="https://shisho.dev/docs/ja/assets/images/ui-pending-2-30de0425998c4352e09f84fc4b0f9a37.png" width="3150" height="1786" class="img_c462"></p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="ユーザーガイド">ユーザーガイド<a href="https://shisho.dev/docs/ja/r/202603-takumi-risk-focus-for-wb#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p><a href="https://shisho.dev/docs/ja/t/features/whitebox-assessment">ホワイトボックス診断（都度）</a> を参照してください。</p>]]></content>
        <author>
            <name>Tsubasa Umeuchi</name>
            <uri>https://github.com/Szarny</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[PyPI 向け Takumi Guard に3日間の検疫期間を導入しました]]></title>
        <id>https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi-quarantine</id>
        <link href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi-quarantine"/>
        <updated>2026-03-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[新しく公開された PyPI パッケージは72時間の検疫期間を経てから利用可能になります。]]></summary>
        <content type="html"><![CDATA[<p>PyPI 向け Takumi Guard に、新しく公開されたパッケージに対する <strong>3日間の検疫期間</strong> を導入しました。</p>
<p>PyPI に新しいバージョンが公開されると、72時間の検疫期間を経てから Takumi Guard 経由で利用可能になります。この待機期間により、悪意あるパッケージがプロジェクトにインストールされる前にセキュリティ分析で検知できるようになります。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="背景">背景<a href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi-quarantine#%E8%83%8C%E6%99%AF" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>PyPI を標的としたサプライチェーン攻撃は増加の一途をたどっています。攻撃者は悪意あるパッケージを公開し、自動化されたツールによって数分以内にプロジェクトに取り込まれることを狙います。</p>
<p>悪意あるパッケージの大半は、公開から数日以内に検知・削除されます。短い待機期間を設けることで、攻撃に晒される期間を大幅に短縮できます。</p>
<p>このアプローチは <strong>依存関係クールダウン</strong> と呼ばれ、JavaScript エコシステム（npm、pnpm、yarn、Bun）では広く採用されています。Takumi Guard は同等の保護を Python にもたらし、すべてのパッケージマネージャで透過的に動作します。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="仕組み">仕組み<a href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi-quarantine#%E4%BB%95%E7%B5%84%E3%81%BF" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>開発者から見ると、<code>pip install</code> は従来どおり動作します。検疫期間を通過した最新バージョンがインストールされます。</p>
<div class="codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-text codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token plain"># 例: パッケージに 1.0.0（5日前）と 1.1.0（1日前）のバージョンがある場合</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">$ pip install --index-url https://pypi.flatt.tech/simple/ example-package</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># pip は 1.0.0 をインストール（検疫通過済み）</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 1.1.0 はまだ利用できない（公開から72時間未満）</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>72時間が経過すると、バージョン 1.1.0 は自動的に利用可能になります。追加の操作は不要です。</p>
<table><thead><tr><th>ケース</th><th>動作</th></tr></thead><tbody><tr><td>古いバージョンと新しいバージョンが存在</td><td>新しいバージョン（72時間未満）は非表示。pip は利用可能な最新バージョンをインストール</td></tr><tr><td>すべてのバージョンが72時間未満</td><td>パッケージは一時的に利用不可</td></tr><tr><td>古いバージョンのみ存在</td><td>変更なし。すべてのバージョンが利用可能</td></tr></tbody></table>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="設定不要">設定不要<a href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi-quarantine#%E8%A8%AD%E5%AE%9A%E4%B8%8D%E8%A6%81" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>すでに PyPI 向け Takumi Guard（<code>https://pypi.flatt.tech/simple/</code>）をご利用の場合、検疫は自動的に適用されます。設定の変更は必要ありません。</p>
<div class="language-bash codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-bash codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:#36acaa">PIP_INDEX_URL</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">https://pypi.flatt.tech/simple/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">pip </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> requests  </span><span class="token comment" style="color:#999988;font-style:italic"># 従来どおり動作します</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>pip、uv、poetry など、PEP 503 互換のすべてのパッケージマネージャで動作します。ツールごとの設定は不要です。</p>]]></content>
        <author>
            <name>Deividas Turskis</name>
            <uri>https://github.com/ren-</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi ブラックボックス診断の実行形式をリスクフォーカス型に統一しました]]></title>
        <id>https://shisho.dev/docs/ja/r/202603-takumi-bb-rf-only</id>
        <link href="https://shisho.dev/docs/ja/r/202603-takumi-bb-rf-only"/>
        <updated>2026-03-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[すべてのブラックボックス診断がクレジット上限を指定して実行する形式に統一されました]]></summary>
        <content type="html"><![CDATA[<p>Takumi によるブラックボックス診断を実行する際、クレジット上限の指定が必須となりました。これまで診断のメニューのひとつとして提供していた「リスクフォーカス診断」の仕組みがブラックボックス診断の標準動作となります。</p>
<p>本変更により、<strong>すべてのブラックボックス診断で消費クレジット量を事前にコントロールできるようになるため、想定外のクレジット消費を防ぐ</strong>ことができます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="変更内容">変更内容<a href="https://shisho.dev/docs/ja/r/202603-takumi-bb-rf-only#%E5%A4%89%E6%9B%B4%E5%86%85%E5%AE%B9" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>これまでのブラックボックス診断では、診断開始時に「通常の診断」と「リスクフォーカス診断」を選択する必要がありました。今回の変更により、すべてのブラックボックス診断でクレジット上限の指定が必須となるとともに、リスクフォーカス診断が標準の診断方式として統合されました。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="クレジット上限の指定">クレジット上限の指定<a href="https://shisho.dev/docs/ja/r/202603-takumi-bb-rf-only#%E3%82%AF%E3%83%AC%E3%82%B8%E3%83%83%E3%83%88%E4%B8%8A%E9%99%90%E3%81%AE%E6%8C%87%E5%AE%9A" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>診断開始時に、その診断ジョブにおけるクレジット上限を設定します。Takumi は指定されたクレジットの範囲内でジョブを実行し、上限に達した時点で当該ジョブが停止します。上限を超過した分のクレジットは請求されません。</p>
<ul>
<li>「全体を診断」モードではクロールとスキャンの両方の上限を診断開始時に指定します</li>
<li>「一部だけ診断」モードではクロールの上限を指定した後、診断実行時にスキャンの上限を指定します。</li>
</ul>
<p><img decoding="async" loading="lazy" alt="クレジット上限の指定" src="https://shisho.dev/docs/ja/assets/images/image-484ec4139fe1e509f2cec1d22a6e9d68.png" width="3064" height="970" class="img_c462"></p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="リスクフォーカス診断の特徴">リスクフォーカス診断の特徴<a href="https://shisho.dev/docs/ja/r/202603-takumi-bb-rf-only#%E3%83%AA%E3%82%B9%E3%82%AF%E3%83%95%E3%82%A9%E3%83%BC%E3%82%AB%E3%82%B9%E8%A8%BA%E6%96%AD%E3%81%AE%E7%89%B9%E5%BE%B4" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>リスクフォーカス診断は、クレジット上限と優先度の仕組みにより、リスクの高い箇所から効率的に診断を進める方式です。主な特徴は以下の通りです。</p>
<ul>
<li><strong>優先度に基づく段階的な診断</strong>: 機能と観点の組み合わせごとに優先度を設定し、リスクの高い箇所から段階的に診断を進められます</li>
<li><strong>優先度の自動設定</strong>: Takumi がリスク分析に基づいて診断の優先度を自動的に決定します。明示的に指定することも可能です。</li>
<li><strong>中間結果の確認と追加スキャン</strong>: クレジット上限に達して診断が停止した後、中間レポートを確認しながら追加スキャンの実行や診断の完了を選択できます</li>
</ul>
<p><img decoding="async" loading="lazy" alt="リスクフォーカス診断の設定" src="https://shisho.dev/docs/ja/assets/images/auto-00222eb56dd175f3102d8976c342b27e.png" width="3116" height="1100" class="img_c462"></p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="既存の診断への影響">既存の診断への影響<a href="https://shisho.dev/docs/ja/r/202603-takumi-bb-rf-only#%E6%97%A2%E5%AD%98%E3%81%AE%E8%A8%BA%E6%96%AD%E3%81%B8%E3%81%AE%E5%BD%B1%E9%9F%BF" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>実行中および完了済みの診断には影響ありません。今後新しく作成する診断から本変更が適用されます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="ユーザーガイド">ユーザーガイド<a href="https://shisho.dev/docs/ja/r/202603-takumi-bb-rf-only#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p><a href="https://shisho.dev/docs/ja/t/features/blackbox-assessment">ブラックボックス診断</a> を参照してください。</p>]]></content>
        <author>
            <name>Tsubasa Umeuchi</name>
            <uri>https://github.com/Szarny</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Takumi Guard が PyPI に対応]]></title>
        <id>https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi</id>
        <link href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi"/>
        <updated>2026-03-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Takumi Guard が Python プロジェクトの保護に対応。悪性 PyPI パッケージのブロック、インストール追跡、感染可能性の通知を提供します。]]></summary>
        <content type="html"><![CDATA[<p>Takumi Guard が npm に加えて <strong>PyPI</strong> に対応しました。</p>
<p><strong>pip</strong>、<strong>uv</strong>、<strong>poetry</strong> を使用する Python プロジェクトで、Takumi Guard 経由でインストールをルーティングすることで、CI や開発環境に届く前に悪性パッケージをブロックできるようになりました。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="概要">概要<a href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi#%E6%A6%82%E8%A6%81" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<p>Takumi Guard は、パッケージマネージャーと上流レジストリの間に位置するセキュリティプロキシです。すべてのインストールリクエストをリアルタイムの脅威データベースと照合し、悪性パッケージをブロックします。</p>
<p>今回のリリースにより、npm ユーザーが利用していた保護機能が Python エコシステムでも利用可能になりました。</p>
<ul>
<li><strong>パッケージブロック</strong>: 悪性 PyPI パッケージをコード実行前にブロック</li>
<li><strong>ダウンロード追跡</strong>: 認証済みユーザーのインストール履歴を記録</li>
<li><strong><a href="https://shisho.dev/docs/ja/t/guard/features/breach-notifications">感染可能性の通知</a></strong>: ダウンロードしたパッケージに後からセキュリティアドバイザリが公開された場合に通知</li>
<li><strong><a href="https://shisho.dev/docs/ja/t/guard/features/package-blocking">バージョン単位のブロック</a></strong>: 侵害されたバージョンのみをブロックし、安全なバージョンは通過</li>
</ul>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="利用開始方法">利用開始方法<a href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi#%E5%88%A9%E7%94%A8%E9%96%8B%E5%A7%8B%E6%96%B9%E6%B3%95" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="pip--uv">pip / uv<a href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi#pip--uv" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>シェルプロファイル（<code>.bashrc</code>、<code>.zshrc</code> など）に以下を追加してください。</p>
<div class="language-bash codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-bash codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic"># pip</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:#36acaa">PIP_INDEX_URL</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">https://pypi.flatt.tech/simple/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># uv（PIP_INDEX_URL を参照しないため、専用の変数が必要）</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:#36acaa">UV_INDEX_URL</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">https://pypi.flatt.tech/simple/</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>または <code>pip.conf</code>（Linux/macOS では <code>~/.config/pip/pip.conf</code>、Windows では <code>%APPDATA%\pip\pip.ini</code>）に設定してください。</p>
<div class="language-ini codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-ini codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token plain">[global]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">index-url = https://pypi.flatt.tech/simple/</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>一度だけ試す場合は、<code>--index-url</code> を直接指定することもできます。</p>
<div class="language-bash codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-bash codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token plain">pip </span><span class="token function" style="color:#d73a49">install</span><span class="token plain"> --index-url https://pypi.flatt.tech/simple/ </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">package</span><span class="token operator" style="color:#393A34">&gt;</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="poetry">poetry<a href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi#poetry" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>Takumi Guard をプライマリソースとして追加します。</p>
<div class="language-bash codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-bash codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token plain">poetry </span><span class="token builtin class-name">source</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">add</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">--priority</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">primary takumi-guard https://pypi.flatt.tech/simple/</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="github-actions">GitHub Actions<a href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi#github-actions" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>ワークフローに 1 行追加するだけで導入できます。</p>
<div class="language-yaml codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-yaml codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">steps</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">uses</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> actions/checkout@v4</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">uses</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> flatt</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">security/setup</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">takumi</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">guard</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">pypi@v1</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token key atrule" style="color:#00a4db">run</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> pip install </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">r requirements.txt</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>認証や感染可能性の通知を含む詳細なセットアップ手順は <a href="https://shisho.dev/docs/ja/t/guard/quickstart/pypi">PyPI クイックスタートガイド</a> をご覧ください。</p>
<h3 class="anchor anchorWithStickyNavbar_fsw0" id="メール登録感染可能性の通知">メール登録（感染可能性の通知）<a href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi#%E3%83%A1%E3%83%BC%E3%83%AB%E7%99%BB%E9%8C%B2%E6%84%9F%E6%9F%93%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%AE%E9%80%9A%E7%9F%A5" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h3>
<p>メールアドレスを登録すると、ダウンロードしたパッケージに後からセキュリティアドバイザリが公開された場合に通知が届きます。アカウント不要、無料で利用できます。</p>
<p><strong>ステップ 1:</strong> メールアドレスを登録する</p>
<div class="language-bash codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-bash codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">curl</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-X</span><span class="token plain"> POST https://pypi.flatt.tech/api/v1/tokens </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token parameter variable" style="color:#36acaa">-H</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"Content-Type: application/json"</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token parameter variable" style="color:#36acaa">-d</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'{"email": "you@example.com", "language": "ja"}'</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p><strong>ステップ 2:</strong> 確認メール内のリンクをクリックしてください。API キーとセットアップ手順が表示されるページに遷移します。</p>
<p><strong>ステップ 3:</strong> トークンでパッケージマネージャーを設定する</p>
<div class="language-bash codeBlockContainer_nc8C theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_jKNI"><pre tabindex="0" class="prism-code language-bash codeBlock_g1Nz thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_Ieti"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:#36acaa">PIP_INDEX_URL</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">https://token:tg_anon_xxxxxx@pypi.flatt.tech/simple/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic"># uv を使用している場合は以下も追加:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:#36acaa">UV_INDEX_URL</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">https://token:tg_anon_xxxxxx@pypi.flatt.tech/simple/</span><br></span></code></pre><div class="buttonGroup_tokY"><button type="button" aria-label="クリップボードにコードをコピー" title="コピー" class="clean-btn"><span class="copyButtonIcons_bmVR" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_o23R"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_PnBV"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>以降のインストールが追跡され、ダウンロードしたパッケージに問題が見つかった場合に通知が届きます。</p>
<h2 class="anchor anchorWithStickyNavbar_fsw0" id="対応パッケージマネージャー">対応パッケージマネージャー<a href="https://shisho.dev/docs/ja/r/202603-takumi-guard-pypi#%E5%AF%BE%E5%BF%9C%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%83%9E%E3%83%8D%E3%83%BC%E3%82%B8%E3%83%A3%E3%83%BC" class="hash-link" aria-label="見出しへの直接リンク" title="見出しへの直接リンク">​</a></h2>
<table><thead><tr><th>パッケージマネージャー</th><th>対応状況</th></tr></thead><tbody><tr><td>pip</td><td>対応</td></tr><tr><td>uv</td><td>対応</td></tr><tr><td>poetry</td><td>対応</td></tr><tr><td>npm</td><td>対応（既存）</td></tr><tr><td>pnpm</td><td>対応（既存）</td></tr><tr><td>yarn</td><td>対応（既存）</td></tr></tbody></table>]]></content>
        <author>
            <name>Deividas Turskis</name>
            <uri>https://github.com/ren-</uri>
        </author>
        <category label="release-note" term="release-note"/>
    </entry>
</feed>