OSS ライセンス一覧・NOTICE 作成(OSS License Report)

package-lock.json、CycloneDX・SPDX の SBOM、または「名前,版,ライセンス」の CSV を貼ると、ライセンスごとの件数と目安の分類を集計し、GPL・AGPL 系やライセンスの無いパッケージなどの要確認の一覧を出します。THIRD-PARTY-NOTICES の下書きも作れますが、ライセンスの全文は入れません。分類は目安で、法的助言ではありません。

端末内で処理・アップロードなしスマホ対応オフライン対応

ファイルや入力内容はお使いの端末(ブラウザ)の中だけで処理され、サーバーへは送信されません。

ライセンスの一覧は端末の中だけで作ります。サーバーへ送らず、レジストリからの取得もしません(通信しません)。分類は目安で、法的助言ではありません。

ファイルをドロップ

または

テキストファイル 1 つ(5 MB まで)。内容は送信されません。貼り付け(Ctrl+V)にも対応
lock ファイル・SBOM・CSV を貼り付けるか、ファイルをドロップすると、集計と要確認の一覧が出ます。

使い方

  1. package-lock.json

    lock・SBOM・CSV を貼る

  2. ライセンス別の件数分類は目安

    集計と要確認

  3. THIRD-PARTY-NOTICES全文は含めない

    NOTICE の下書き

lock や SBOM を貼り、ライセンスを集計して NOTICE の下書きを作る流れ
  1. package-lock.json(lockfileVersion 2・3)、SBOM(CycloneDX・SPDX の JSON か SPDX の tag-value)、または「名前,版,ライセンス」の CSV を貼り付けます。ファイルをドロップしても、「ファイルを選択」でも可能です。「サンプルで試す」でも動作を確認できます。

  2. 「集計」で、ライセンスごとの件数と目安の分類(寛容・弱いコピーレフト・強いコピーレフト・不明)を見ます。

  3. 「要確認」で、ライセンスが無いもの、UNLICENSED・SEE LICENSE IN・NOASSERTION、GPL・AGPL 系、一覧にない識別子を確かめます。

  4. 「NOTICE 下書き」でテキストか Markdown を選び、コピーまたはダウンロードします。ライセンスの全文は含まれないので、各パッケージの LICENSE を一緒に同梱してください。

できること

SPDX 式を読む

MIT OR Apache-2.0 のような OR、AND、WITH(例外)、括弧を読みます。OR は選べる中で緩い方、AND は厳しい方を目安の分類とします。

入力の形式を見分ける

package-lock.json(packages の license 欄。文字列・{type}・配列のどれも)、CycloneDX・SPDX の SBOM、「名前,版,ライセンス」の CSV を、貼られた中身から判別します。

要確認の理由を付ける

ライセンスの無い・UNLICENSED・SEE LICENSE IN・NOASSERTION・読めない式・GPL・AGPL 系・一覧にない識別子の理由を、行ごとに添えます。

全文を入れない NOTICE の下書き

パッケージごとに「名前 版」をライセンスの下に並べます。ライセンスの全文は入れず、同梱を促す注記を付けます。

こんなときに

  • 配布する製品に、使っているオープンソースのライセンス一覧を付けたい
  • package-lock.json のどのパッケージが GPL・AGPL 系か、目で探さずに確かめたい
  • 社内の監査や取引先への説明のために、ライセンスごとの件数を出したい
  • SBOM を受け取り、ライセンスの表記が NOASSERTION や空になっていないかを見たい

対応状況

機能対応補足
package-lock.json(lockfileVersion 2・3)からの一覧対応—
CycloneDX・SPDX(JSON・tag-value)の SBOM からの一覧対応—
「名前,版,ライセンス」の CSV からの一覧対応—
SPDX 式(AND・OR・WITH・括弧)の解析と目安の分類一部対応分類はよく使う約 40 件の識別子だけです。ほかは「不明」になります。
レジストリからのライセンス取得非対応通信しません。貼られた内容に書かれたライセンスだけを使います。
LICENSE ファイル本文の判定非対応ライセンス文の内容は読みません。
ライセンスの全文を含む NOTICE非対応全文は含めません。各パッケージの LICENSE を同梱してください。
法的な適合の判定非対応分類は目安で、法的助言ではありません。

制限・注意事項

  • 入力は 5 MB まで、1 件のリストは 20,000 件まで読みます。超えた場合は読まずに通知します。
  • 分類は、よく使う約 40 件の SPDX 識別子に基づく目安です。版の違いや例外の扱いは判定しません。
  • lockfileVersion 1 の package-lock.json は非対応です(packages の欄がないため)。
  • NOTICE の下書きは、作成者の著作権表示や許諾の文言を含めません。各パッケージの LICENSE を確認してください。

プライバシーと安全性

貼り付けた内容は端末の中だけで読みます。サーバーへ送信・保存されることはなく、ブラウザにも保存しません。使用状況の記録にも内容やファイル名は含めません。

よくある質問

NOTICE ファイルには何を書けばよいですか?
ライセンスごとに、パッケージ名と版、各パッケージの著作権表示とライセンス条件を書き、LICENSE の全文を同梱します。このツールは一覧の下書きまでで、全文は作りません。
GPL や AGPL の系統が入っていたら、使えませんか?
このツールは判断しません。強いコピーレフトの系統として要確認に出すだけです。配布の形態によって条件が変わるので、法務の確認を受けてください。
MIT OR GPL-2.0-only のような式は、どう分類しますか?
OR は、選べる中で緩い方を目安にします。この例では MIT を選べるので寛容として数えます。実際にどちらを選ぶかは、利用する側が決めることです。
SBOM のライセンスが NOASSERTION のときは?
NOASSERTION は、作成者がライセンスを確認していないという意味です。要確認の一覧に出し、その部品のライセンスは元のパッケージで確かめてください。SBOM の中身は、SBOM ビューア(sbom_studio)でも見られます。
package-lock.json を貼ると、通信が起きますか?
起きません。ライセンスの欄に書かれた内容だけを使い、レジストリや npm には問い合わせません。

lockfile 比較・依存関係ツリー

2 つの lockfile を比べて、どのパッケージが追加・削除・更新されたかを表示します。あるパッケージがなぜ入っているか(入ってくる経路)と、同じパッケージの複数バージョンも分かります。ファイルはブラウザの外へ出ません。

アップロードなし

CSV Studio(CSV ビューア・編集・結合・分割)

Excel では重い・文字化けする CSV を、ブラウザで開いてすぐに表示・検索・編集できます。結合や分割、Shift_JIS・UTF-8(BOM 付き)・Excel・JSON での保存まで 1 画面で完結します。

アップロードなし

Markdown エディター・プレビュー(Markdown Studio)

左に書くと右にすぐ反映される Markdown エディターです。表の縦線をそろえる整形、目次の自動作成、HTML 出力に対応し、スクリプトは常に無害化、外部画像はオンにしたときだけ読み込みます。

アップロードなし

SBOM ビューア・比較(SBOM Studio)

CycloneDX や SPDX の SBOM(JSON・tag-value)を貼ると、部品の名前・版・purl・ライセンス・supplier・hash を表にし、依存関係を木で表示します。purl やライセンスの無い部品、同じ部品の別の版、NOASSERTION を指摘し、旧と新の SBOM の追加・削除・版・ライセンスの変化も比べられます。脆弱性データベースは引かず、SBOM に書かれた脆弱性の一覧だけを出します。

アップロードなし

Docker Compose Studio

docker run のコマンドを compose.yaml に、compose.yaml を docker run に変換します。compose.yaml は構文・Compose Specification・よくある誤りを調べ、セキュリティ上の確認点も一覧にします。コンテナの起動やイメージの取得はせず、入力は端末の外へ送りません。

アップロードなし

Dockerfile Studio

Dockerfile を貼り付けると、構文・ステージ・よくある誤りを調べ、秘密らしい値や curl | sh などの確認したい点を一覧にします。整形と、Node.js・Python・Go・静的サイト・Java の雛形の生成もできます。ビルドはせず、入力は端末の外へ送りません。

アップロードなし

最終更新: