ライセンス
ワークスペース全体のライセンスを管理:自分のコード用にLICENSEファイルとソースコードヘッダーを同期(license.source)し、すべての依存関係がライセンス許可リストに準拠していることを確認(license.dependencies)します。
ジェネレータの実行
Section titled “ジェネレータの実行”- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - license - 必須パラメータを入力
- クリック
Generate
pnpm nx g @aws/nx-plugin:licenseyarn nx g @aws/nx-plugin:licensenpx nx g @aws/nx-plugin:licensebunx nx g @aws/nx-plugin:license| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
| license | Apache-2.0 | MIT | ASL | Apache-2.0 | 選択したライセンスのSPDXライセンス識別子 |
| copyrightHolder | string | Amazon.com, Inc. or its affiliates | 著作権者。デフォルトでLICENSEファイルとソースファイルのヘッダーに含まれます。 |
| dependencyCheck | boolean | true | 設定された許可リストの外側のライセンスを宣言する依存関係が存在する場合に失敗するlicense-checkターゲットを設定します。 |
| preferInstallDependencies | boolean | true | ジェネレーター実行後に依存関係のインストールを優先するかどうか。複数のジェネレーターをバッチ処理する際にインストールを延期する場合はfalseに設定します(後続のジェネレーターがNxプロジェクトグラフを計算できるよう、必要に応じてインストールは実行されます)。最後に一度だけインストールします。 |
ジェネレータの出力
Section titled “ジェネレータの出力”ジェネレータは以下のファイルを作成または更新します:
- nx.json lintターゲットがライセンス同期ジェネレータを実行し、license-checkターゲットに依存するよう設定
- aws-nx-plugin.config.mts ライセンスソース同期(
license.source)と依存関係チェック(license.dependencies)の設定ファイル
ライセンスヘッダーとファイル
Section titled “ライセンスヘッダーとファイル”このジェネレータは同期ジェネレータを登録し、lintターゲットの一部として実行されます。これにより、ソースファイルに正しいライセンスヘッダーが含まれること、プロジェクトにLICENSEファイルが存在すること、package.jsonとpyproject.tomlにライセンスメタデータが設定されることが保証されます。
ワークフロー
Section titled “ワークフロー”プロジェクトをビルドする度に(lintターゲットが実行されると)、ライセンス同期ジェネレータが設定に基づいてプロジェクトのライセンス整合性を確認します。同期が必要な変更を検出すると、以下のようなメッセージが表示されます:
NX ワークスペースが同期されていません
[@aws/nx-plugin:license#sync]: プロジェクトLICENSEファイルが同期されていません:- LICENSE- packages/<my-project>LICENSE
プロジェクトpackage.jsonファイルが同期されていません:- package.json
プロジェクトpyproject.tomlファイルが同期されていません:- pyproject.toml- packages/<my-python-project>/pyproject.toml
以下のソースファイルのライセンスヘッダーが同期されていません:- packages/<my-project>/src/index.ts- packages/<my-python-project>/main.py
CI環境ではエラーが発生します。
? 同期が必要な変更を適用してワークスペースを最新状態にしますか?はい、変更を同期してタスクを実行いいえ、同期せずにタスクを実行はいを選択して変更を同期します。
ライセンス同期ジェネレータは3つの主要タスクを実行します:
1. ソースファイルのライセンスヘッダー同期
Section titled “1. ソースファイルのライセンスヘッダー同期”同期ジェネレータは、設定に基づきワークスペース内の全ソースコードファイルに適切なライセンスヘッダーが含まれることを保証します。ヘッダーはファイルの先頭ブロックコメントまたは連続した行コメントとして書き込まれます(shebang/hashbangが存在する場合はその後に配置)。
2. LICENSEファイルの同期
Section titled “2. LICENSEファイルの同期”同期ジェネレータは、ルートのLICENSEファイルが設定ライセンスに準拠していること、および全サブプロジェクトに正しいLICENSEファイルが存在することを保証します。
3. プロジェクトファイルのライセンス情報同期
Section titled “3. プロジェクトファイルのライセンス情報同期”同期ジェネレータは、package.jsonとpyproject.tomlファイルのlicenseフィールドが設定ライセンスに設定されていることを保証します。
ヘッダーとファイルの設定
Section titled “ヘッダーとファイルの設定”設定はワークスペースルートのaws-nx-plugin.config.mtsファイルで定義します。
SPDXと著作権者
Section titled “SPDXと著作権者”ライセンスはspdx設定プロパティで随時更新可能です:
export default { license: { source: { spdx: 'MIT', }, },} satisfies AwsNxPluginConfig;同期ジェネレータ実行時、全LICENSEファイルとpackage.json/pyproject.tomlファイルが設定ライセンスに更新されます。
著作権者と著作年を追加設定可能です(一部LICENSEファイルに記載):
export default { license: { source: { spdx: 'MIT', copyrightHolder: 'Amazon.com, Inc. or its affiliates', copyrightYear: 2025, }, },} satisfies AwsNxPluginConfig;ライセンスヘッダーの内容
Section titled “ライセンスヘッダーの内容”ライセンスヘッダーの内容は2通りの方法で設定可能です:
- インラインコンテンツ:
export default { license: { source: { header: { content: { lines: [ 'Copyright: My Company, Incorporated.', 'Licensed under the MIT License', 'All rights reserved', ]; } // ... フォーマット設定 } } }} satisfies AwsNxPluginConfig;- ファイルからの読み込み:
export default { license: { source: { header: { content: { filePath: 'license-header.txt'; // ワークスペースルートからの相対パス } // ... フォーマット設定 } } }} satisfies AwsNxPluginConfig;ヘッダーのフォーマット
Section titled “ヘッダーのフォーマット”ファイルタイプ別にライセンスヘッダーのフォーマットをglobパターンで指定可能です。行コメント、ブロックコメント、またはその組み合わせを設定できます:
export default { license: { source: { header: { content: { lines: ['Copyright notice here'], }, format: { // 行コメント '**/*.ts': { lineStart: '// ', }, // ブロックコメント '**/*.css': { blockStart: '/*', blockEnd: '*/', }, // 行プレフィックス付きブロックコメント '**/*.java': { blockStart: '/*', lineStart: ' * ', blockEnd: ' */', }, // ヘッダー/フッター付き行コメント '**/*.py': { blockStart: '# ------------', lineStart: '# ', blockEnd: '# ------------', }, }, }, }, },} satisfies AwsNxPluginConfig;フォーマット設定でサポートするプロパティ:
blockStart: ライセンスコンテンツ前に記述するテキスト(例:ブロックコメント開始)lineStart: ライセンス各行の先頭に付加するテキストlineEnd: ライセンス各行の末尾に付加するテキストblockEnd: ライセンスコンテンツ後に記述するテキスト(例:ブロックコメント終了)
カスタムコメント構文
Section titled “カスタムコメント構文”ネイティブサポートされないファイルタイプの場合、カスタムコメント構文を指定して既存ライセンスヘッダーを識別可能です:
export default { license: { source: { header: { content: { lines: ['My license header'], }, format: { '**/*.xyz': { lineStart: '## ', }, }, commentSyntax: { xyz: { line: '##', // 行コメント構文の定義 }, abc: { block: { // ブロックコメント構文の定義 start: '<!--', end: '-->', }, }, }, }, }, },} satisfies AwsNxPluginConfig;ヘッダー同期からのファイル除外
Section titled “ヘッダー同期からのファイル除外”デフォルトではgitリポジトリで.gitignoreファイルが適用され、バージョン管理下のファイルのみ同期対象となります。非git環境では明示的に除外しない限り全ファイルが対象です。
globパターンでライセンスヘッダー同期から除外するファイルを追加指定可能です:
export default { license: { source: { header: { content: { lines: ['My license header'], }, format: { '**/*.ts': { lineStart: '// ', }, }, exclude: ['**/generated/**', '**/dist/**', 'some-specific-file.ts'], }, }, },} satisfies AwsNxPluginConfig;ファイル同期からのプロジェクト除外
Section titled “ファイル同期からのプロジェクト除外”デフォルトで全LICENSE、package.json、pyproject.tomlファイルが同期対象です。
globパターンで特定プロジェクト/ファイルの同期を除外可能です:
export default { license: { source: { files: { exclude: [ // LICENSEファイル、package.json、pyproject.tomlの同期を除外 'packages/excluded-project', // LICENSEファイルの同期を除外(package.json/pyproject.tomlは同期) 'apps/internal/LICENSE', ]; } } }} satisfies AwsNxPluginConfig;ライセンス同期の無効化
Section titled “ライセンス同期の無効化”ライセンスソース同期は、設定にlicense.sourceキーが存在することで有効になります。無効化する手順:
aws-nx-plugin.config.mtsからlicense.sourceセクションを削除(依存関係ライセンスチェックを継続したい場合はlicense.dependenciesは残せます)- 同期ジェネレータを完全に削除したい場合は、
targetDefaults.lint.syncGeneratorsから@aws/nx-plugin:license#syncジェネレータを削除
再度有効化するにはlicenseジェネレータを再実行します。
依存関係のライセンスチェック
Section titled “依存関係のライセンスチェック”licenseジェネレータは、プロジェクトの依存関係(または推移的依存関係)が許可リストにないライセンスを宣言している場合に失敗するlicense-checkターゲットも設定します。
ジェネレータはルートのproject.jsonにlicense-checkターゲットを書き込みます:
{ "targets": { "license-check": { "executor": "@aws/nx-plugin:license-check", "cache": true, "inputs": [ "{workspaceRoot}/pnpm-lock.yaml", "{workspaceRoot}/aws-nx-plugin.config.mts" ], "options": {} } }}inputsはワークスペースに合わせて計算されます:実際に存在するロックファイルのみが含まれ、aws-nx-plugin.config.mtsと、Python依存関係チェックが有効な場合(つまりPythonコレクターが設定されている場合)は{workspaceRoot}/**/uv.lockグロブが追加されます。
チェックを直接実行できます:
pnpm nx license-checkyarn nx license-checknpx nx license-checkbunx nx license-check結果はロックファイルとaws-nx-plugin.config.mtsに対してキャッシュされます — 変更がない場合、再実行は即座に完了します。
コレクターがスキャン対象を決定します。npmCollectorはlicense-checker-rseidelsohnを使用し、pythonCollectorはpip-licensesを使用します。インストールされた依存関係が見つからない場合、チェックは検査対象なしで成功します。
lint/buildの一部として実行
Section titled “lint/buildの一部として実行”依存関係ライセンスチェックは、ワークスペース内の任意のプロジェクトをlintまたはbuildする際に自動的に実行されます。licenseジェネレータは各プロジェクトのlintターゲットがルートのlicense-checkターゲットに依存するよう配線し、プロジェクトジェネレータ(ts#*とpy#*)も実行時に同様の配線を行います — そのため、ジェネレータの実行順序に関係なくチェックが配線されます。
つまり、チェックを明示的に実行する必要はありませんが、license-checkターゲットで実行することもできます:
pnpm nx license-checkyarn nx license-checknpx nx license-checkbunx nx license-check配線は各プロジェクトのlintターゲット上のクロスプロジェクトdependsOnで、ルートのlicense-checkターゲットを指します。lintまたはbuild中にチェックをスキップするには、LICENSE_DEPENDENCY_CHECK=skip環境変数を設定します:
pnpm LICENSE_DEPENDENCY_CHECK=skip lintyarn LICENSE_DEPENDENCY_CHECK=skip lintnpm run LICENSE_DEPENDENCY_CHECK=skip lintbun LICENSE_DEPENDENCY_CHECK=skip lintデフォルトでは、チェックは一般的な寛容なライセンス(MIT、Apache-2.0、BSD、ISCなど)の組み込みセットを使用します。これはDEFAULT_LICENSE_ALLOWLISTとしてエクスポートされています。設定で拡張または上書きできます:
import { AwsNxPluginConfig } from '@aws/nx-plugin';import { DEFAULT_LICENSE_ALLOWLIST } from '@aws/nx-plugin/sdk/license';
export default { license: { // ... dependencies: { allow: [...DEFAULT_LICENSE_ALLOWLIST, { spdxId: 'LGPL-2.1-or-later', fullName: 'GNU Lesser General Public License v2.1 or later', aliases: [] }], exceptions: [ { package: 'some-package', reason: 'Audited manually — ships MIT text without SPDX field' }, ], }, },} satisfies AwsNxPluginConfig;Default License Allowlist
| SPDX ID | Full Name |
|---|---|
0BSD | BSD Zero Clause License |
AFL-2.1 | Academic Free License v2.1 |
AFL-3.0 | Academic Free License v3.0 |
AMD-newlib | AMD newlib License |
AML | Apple MIT License |
AML-glslang | AML glslang variant License |
ANTLR-PD | ANTLR Software Rights Notice |
ANTLR-PD-fallback | ANTLR Software Rights Notice with license fallback |
APAFML | Adobe Postscript AFM License |
AdaCore-doc | AdaCore Doc License |
Adobe-Display-PostScript | Adobe Display PostScript License |
Adobe-Glyph | Adobe Glyph List License |
Adobe-Utopia | Adobe Utopia Font License |
Apache-1.1 | Apache License 1.1 |
Apache-2.0 | Apache License 2.0 |
Apache-2.0 WITH LLVM-exception | Apache License 2.0 with LLVM Exception |
Artistic-1.0 | Artistic License 1.0 |
Artistic-1.0-Perl | Artistic License 1.0(Perl) |
Artistic-2.0 | Artistic License 2.0 |
Artistic-dist | Artistic License 1.0 (dist) |
BSD-1-Clause | BSD 1-Clause License |
BSD-2-Clause | BSD 2-clause "Simplified" License |
BSD-2-Clause-Darwin | BSD 2-Clause - Ian Darwin variant |
BSD-2-Clause-FreeBSD | BSD 2-clause FreeBSD License |
BSD-2-Clause-NetBSD | BSD 2-clause NetBSD License |
BSD-2-Clause-Views | BSD 2-Clause with views sentence |
BSD-2-Clause-first-lines | BSD 2-Clause - first lines requirement |
BSD-2-Clause-pkgconf-disclaimer | BSD 2-Clause pkgconf disclaimer variant |
BSD-3-Clause | BSD 3-clause "New" or "Revised" License |
BSD-3-Clause-Attribution | BSD with attribution |
BSD-3-Clause-HP | Hewlett-Packard BSD variant license |
BSD-3-Clause-LBNL | Lawrence Berkeley National Labs BSD variant license |
BSD-3-Clause-Modification | BSD 3-Clause Modification |
BSD-3-Clause-Open-MPI | BSD 3-Clause Open MPI variant |
BSD-3-Clause-Sun | BSD 3-Clause Sun Microsystems |
BSD-3-Clause-acpica | BSD 3-Clause acpica variant |
BSD-3-Clause-flex | BSD 3-Clause Flex variant |
BSD-4.3RENO | BSD 4.3 RENO License |
BSD-Source-Code | BSD Source Code Attribution |
BSD-Source-beginning-file | BSD Source Code Attribution - beginning of file variant |
BSL-1.0 | Boost Software License 1.0 |
Baekmuk | Baekmuk License |
Beerware | Beerware License |
Bitstream-Charter | Bitstream Charter Font License |
Bitstream-Vera | Bitstream Vera Font License |
BlueOak-1.0.0 | Blue Oak Model License 1.0.0 |
Boehm-GC | Boehm-Demers-Weiser GC License |
Boehm-GC-without-fee | Boehm-Demers-Weiser GC License (without fee) |
Brian-Gladman-2-Clause | Brian Gladman 2-Clause License |
Brian-Gladman-3-Clause | Brian Gladman 3-Clause License |
CC-BY-2.0 | Creative Commons Attribution 2.0 |
CC-BY-2.5 | Creative Commons Attribution 2.5 |
CC-BY-2.5-AU | Creative Commons Attribution 2.5 Australia |
CC-BY-3.0 | Creative Commons Attribution 3.0 |
CC-BY-3.0-AU | Creative Commons Attribution 3.0 Australia |
CC-BY-3.0-IGO | Creative Commons Attribution 3.0 IGO |
CC-BY-3.0-US | Creative Commons Attribution 3.0 United States |
CC-BY-4.0 | Creative Commons Attribution 4.0 |
CC-PDDC | Creative Commons Public Domain Dedication and Certification |
CC0-1.0 | Creative Commons Zero v1.0 Universal |
CDDL-1.0 | Common Development and Distribution License 1.0 |
CDDL-1.1 | Common Development and Distribution License 1.1 |
CFITSIO | CFITSIO License |
CMU-Mach-nodoc | CMU Mach - no notices-in-documentation variant |
CNRI-Jython | CNRI Jython License |
CNRI-Python | CNRI Python License |
CPOL-1.02 | Code Project Open License 1.02 |
Clips | Clips License |
Cornell-Lossless-JPEG | Cornell Lossless JPEG License |
Cronyx | Cronyx License |
CryptoSwift | CryptoSwift License |
DEC-3-Clause | DEC 3-Clause License |
DocBook-DTD | DocBook DTD License |
DocBook-Schema | DocBook Schema License |
DocBook-Stylesheet | DocBook Stylesheet License |
DocBook-XML | DocBook XML License |
EFL-2.0 | Eiffel Forum License v2.0 |
EPL-1.0 | Eclipse Public License 1.0 |
EPL-2.0 | Eclipse Public License 2.0 |
Entessa | Entessa Public License v1.0 |
FBM | Fuzzy Bitmap License |
FSFAP | FSF All Permissive License |
FSFAP-no-warranty-disclaimer | FSF All Permissive License (without Warranty) |
FSFULLR | FSF Unlimited License (with License Retention) |
FSFULLRSD | FSF Unlimited License (with License Retention and Short Disclaimer) |
FSFULLRWD | FSF Unlimited License (With License Retention and Warranty Disclaimer) |
FTL | Freetype Project License |
Fair | Fair License |
Ferguson-Twofish | Ferguson Twofish License |
FreeBSD-DOC | FreeBSD Documentation License |
Furuseth | Furuseth License |
GD | GD License |
Graphics-Gems | Graphics Gems License |
Gutmann | Gutmann License |
HDF5 | HDF5 License |
HIDAPI | HIDAPI License |
HP-1986 | Hewlett-Packard 1986 License |
HP-1989 | Hewlett-Packard 1989 License |
HPND | Historical Permission Notice and Disclaimer |
HPND-DEC | Historical Permission Notice and Disclaimer - DEC variant |
HPND-Fenneberg-Livingston | Historical Permission Notice and Disclaimer - Fenneberg-Livingston variant |
HPND-INRIA-IMAG | Historical Permission Notice and Disclaimer - INRIA-IMAG variant |
HPND-Intel | Historical Permission Notice and Disclaimer - Intel variant |
HPND-Kevlin-Henney | Historical Permission Notice and Disclaimer - Kevlin Henney variant |
HPND-MIT-disclaimer | Historical Permission Notice and Disclaimer with MIT disclaimer |
HPND-Markus-Kuhn | Historical Permission Notice and Disclaimer - Markus Kuhn variant |
HPND-Netrek | Historical Permission Notice and Disclaimer - Netrek variant |
HPND-Pbmplus | Historical Permission Notice and Disclaimer - Pbmplus variant |
HPND-UC | Historical Permission Notice and Disclaimer - University of California variant |
HPND-doc | Historical Permission Notice and Disclaimer - documentation variant |
HPND-doc-sell | Historical Permission Notice and Disclaimer - documentation sell variant |
HPND-merchantability-variant | Historical Permission Notice and Disclaimer - merchantability variant |
HPND-sell-MIT-disclaimer-xserver | Historical Permission Notice and Disclaimer - sell xserver variant with MIT disclaimer |
HPND-sell-regexpr | Historical Permission Notice and Disclaimer - sell regexpr variant |
HPND-sell-variant | Historical Permission Notice and Disclaimer - sell variant |
HPND-sell-variant-MIT-disclaimer | HPND sell variant with MIT disclaimer |
HPND-sell-variant-MIT-disclaimer-rev | HPND sell variant with MIT disclaimer - reverse |
HTMLTIDY | HTML Tidy License |
ICU | ICU License |
IJG | Independent JPEG Group License |
IJG-short | Independent JPEG Group License - short |
ISC | ISC License |
ISC-Veillard | ISC Veillard variant |
ImageMagick | ImageMagick License |
Inner-Net-2.0 | Inner Net License v2.0 |
JPNIC | Japan Network Information Center License |
JSON | JSON License |
Jam | Jam License |
Kastrup | Kastrup License |
Knuth-CTAN | Knuth CTAN License |
LOOP | Common Lisp LOOP License |
LZMA-SDK-9.11-to-9.20 | LZMA SDK License (versions 9.11 to 9.20) |
LZMA-SDK-9.22 | LZMA SDK License (versions 9.22 and beyond) |
Leptonica | Leptonica License |
Libpng | libpng License |
LicenseRef-NoVersion-Apache | Apache Software License |
LicenseRef-NoVersion-BSD | BSD License |
LicenseRef-Proprietary-NVIDIA-CUDA-Python-2021 | NVIDIA Software License for CUDA Python (2021) |
LicenseRef-Proprietary-NVIDIA-Math-Libraries-SDK-2022 | License Agreement for NVIDIA Math Libraries SDKs (2022) |
LicenseRef-Proprietary-NVIDIA-Nsight-Systems-2024 | Software License Agreement for NVIDIA Nsight Systems (2024) |
LicenseRef-Proprietary-NVIDIA-SDK-nvTIFF-2022 | License Agreement for NVIDIA SDKs with nvTIFF Supplement (2022) |
LicenseRef-Proprietary-NVIDIA-TensorRT-2021 | Software License Agreement for NVIDIA TensorRT (2021) |
LicenseRef-Proprietary-NVIDIA-Warp | Software License Agreement for NVIDIA Warp |
LicenseRef-com.oracle-BCL | Oracle Binary Code License |
LicenseRef-scancode-amazon-sl | Amazon Software License |
LicenseRef-scancode-apple-excl | Apple Java Extensions |
LicenseRef-scancode-indiana-extreme | Indiana University Extreme! Lab Software 1.1.1 |
LicenseRef-scancode-wordnet | WordNet 3.0 license |
Linux-OpenIB | Linux Kernel Variant of OpenIB.org license |
Linux-man-pages-1-para | Linux man-pages - 1 paragraph |
MIPS | MIPS License |
MIT | MIT License |
MIT-0 | MIT No Attribution License |
MIT-CMU | CMU License |
MIT-Click | MIT Click License |
MIT-Festival | MIT Festival Variant |
MIT-Khronos-old | MIT Khronos - old variant |
MIT-Modern-Variant | MIT License Modern Variant |
MIT-Wu | MIT Tom Wu Variant |
MIT-open-group | MIT Open Group variant |
MIT-testregex | MIT testregex Variant |
MITNFA | MIT +no-false-attribs license |
MMIXware | MMIXware License |
MPL-1.1 | Mozilla Public License 1.1 |
MPL-2.0 | Mozilla Public License 2.0 |
MPL-2.0-no-copyleft-exception | Mozilla Public License 2.0 (no copyleft exception) |
MS-PL | Microsoft Public License |
Mackerras-3-Clause | Mackerras 3-Clause License |
Mackerras-3-Clause-acknowledgment | Mackerras 3-Clause - acknowledgment variant |
Martin-Birgmeier | Martin Birgmeier License |
Minpack | Minpack License |
MirOS | MirOS Licence |
MulanPSL-2.0 | Mulan Permissive Software License, Version 2 |
NCBI-PD | NCBI Public Domain Notice |
NCL | NCL Source Code License |
NCSA | University of Illinois/NCSA Open Source License |
NICTA-1.0 | NICTA Public Software License, Version 1.0 |
NIST-PD | NIST Public Domain Notice |
NIST-Software | NIST Software License |
NLPL | No Limit Public License |
NTIA-PD | NTIA Public Domain Notice |
NTP | NTP License |
NTP-0 | NTP No Attribution |
Net-SNMP | Net-SNMP License |
OAR | OAR License |
OFFIS | OFFIS License |
OFL-1.0 | SIL Open Font License 1.0 |
OFL-1.0-RFN | SIL Open Font License 1.0 with Reserved Font Name |
OFL-1.0-no-RFN | SIL Open Font License 1.0 with no Reserved Font Name |
OFL-1.1 | SIL Open Font License 1.1 |
OFL-1.1-RFN | SIL Open Font License 1.1 with Reserved Font Name |
OFL-1.1-no-RFN | SIL Open Font License 1.1 with no Reserved Font Name |
OGC-1.0 | OGC Software License, Version 1.0 |
OLDAP-2.0 | Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B) |
OLDAP-2.0.1 | Open LDAP Public License v2.0.1 |
OLDAP-2.1 | Open LDAP Public License v2.1 |
OLDAP-2.2 | Open LDAP Public License v2.2 |
OLDAP-2.2.1 | Open LDAP Public License v2.2.1 |
OLDAP-2.2.2 | Open LDAP Public License 2.2.2 |
OLDAP-2.3 | Open LDAP Public License v2.3 |
OLDAP-2.4 | Open LDAP Public License v2.4 |
OLDAP-2.5 | Open LDAP Public License v2.5 |
OLDAP-2.6 | Open LDAP Public License v2.6 |
OLDAP-2.7 | Open LDAP Public License v2.7 |
OLDAP-2.8 | Open LDAP Public License v2.8 |
OpenSSL | OpenSSL License |
OpenSSL-standalone | OpenSSL License - standalone |
PADL | PADL License |
PDDL-1.0 | ODC Public Domain Dedication & License 1.0 |
PHP-3.0 | PHP License v3.0 |
PHP-3.01 | PHP LIcense v3.01 |
PSF-2.0 | Python Software Foundation License 2.0 |
Pixar | Pixar License |
PostgreSQL | PostgreSQL License |
Python-2.0 | Python License 2.0 |
Python-2.0.1 | Python License 2.0.1 |
Ruby | Ruby License |
Ruby-pty | Ruby pty extension license |
SAX-PD-2.0 | Sax Public Domain Notice 2.0 |
SGI-B-2.0 | SGI Free Software License B v2.0 |
SL | SL License |
SMLNJ | Standard ML of New Jersey License |
SMPPL | Secure Messaging Protocol Public License |
SSH-OpenSSH | SSH OpenSSH license |
SSH-short | SSH short notice |
SSLeay-standalone | SSLeay License - standalone |
Soundex | Soundex License |
Spencer-86 | Spencer License 86 |
Spencer-94 | Spencer License 94 |
Spencer-99 | Spencer License 99 |
StandardML-NJ | Standard ML of New Jersey License |
Sun-PPP | Sun PPP License |
Sun-PPP-2000 | Sun PPP License (2000) |
SunPro | SunPro License |
Symlinks | Symlinks License |
TCL | Tcl/Tk |
TCP-wrappers | TCP Wrappers License |
TPDL | Time::ParseDate License |
TPL-1.0 | THOR Public License 1.0 |
TTWL | Text-Tabs+Wrap License |
TTYP0 | TTYP0 License |
TU-Berlin-1.0 | Technische Universitaet Berlin License 1.0 |
TU-Berlin-2.0 | Technische Universitaet Berlin License 2.0 |
TermReadKey | TermReadKey License |
ThirdEye | ThirdEye License |
TrustedQSL | TrustedQSL License |
UCAR | UCAR License |
UMich-Merit | Michigan/Merit Networks License |
UPL-1.0 | Universal Permissive License v1.0 |
Ubuntu-font-1.0 | Ubuntu Font Licence v1.0 |
Unicode-3.0 | Unicode License v3 |
Unicode-DFS-2015 | Unicode License Agreement - Data Files and Software (2015) |
Unicode-DFS-2016 | Unicode License Agreement - Data Files and Software (2016) |
UnixCrypt | UnixCrypt License |
Unlicense | Unlicense |
Unlicense-libtelnet | Unlicense - libtelnet variant |
Unlicense-libwhirlpool | Unlicense - libwhirlpool variant |
Vim | Vim License |
W3C | W3C Software and Notice License |
W3C-19980720 | W3C Software Notice and License (1998-07-20) |
W3C-20150513 | W3C Software Notice and Document License (2015-05-13) |
WTFPL | Do What The F*ck You Want To Public License |
Widget-Workshop | Widget Workshop License |
X11 | X11 License |
X11-distribute-modifications-variant | X11 License Distribution Modification Variant |
X11-swapped | X11 swapped final paragraphs |
XFree86-1.1 | XFree86 License 1.1 |
Xdebug-1.03 | Xdebug License v 1.03 |
Xfig | Xfig License |
Xnet | X.Net License |
ZPL-2.1 | Zope Public License 2.1 |
Zed | Zed License |
Zeeff | Zeeff License |
Zlib | zlib License |
any-OSI-perl-modules | Any OSI License - Perl Modules |
bcrypt-Solar-Designer | bcrypt Solar Designer License |
blessing | SQLite Blessing |
bzip2-1.0.6 | bzip2 and libbzip2 License v1.0.6 |
check-cvs | check-cvs License |
checkmk | Checkmk License |
curl | curl License |
cve-tou | Common Vulnerability Enumeration ToU License |
dtoa | David M. Gay dtoa License |
fwlw | fwlw License |
generic-xts | Generic XTS License |
gtkbook | gtkbook License |
hdparm | hdparm License |
jove | Jove License |
libpng-1.6.35 | PNG Reference Library License v1 (for libpng 0.5 through 1.6.35) |
libpng-2.0 | PNG Reference Library version 2 |
libselinux-1.0 | libselinux public domain notice |
libtiff | libtiff License |
libutil-David-Nugent | libutil David Nugent License |
lsof | lsof License |
magaz | magaz License |
mailprio | mailprio License |
man2html | man2html License |
metamail | metamail License |
mpi-permissive | mpi Permissive License |
mplus | mplus Font License |
pkgconf | pkgconf License |
snprintf | snprintf License |
softSurfer | softSurfer License |
ssh-keyscan | ssh-keyscan License |
swrule | swrule License |
threeparttable | threeparttable License |
ulem | ulem License |
w3m | w3m License |
xkeyboard-config-Zinoviev | xkeyboard-config Zinoviev License |
xlock | xlock License |
xpp | XPP License |
zlib-acknowledgement | zlib/libpng License with Acknowledgement |
許可リストのカスタマイズ
Section titled “許可リストのカスタマイズ”許可リストを制限するには、DEFAULT_LICENSE_ALLOWLISTを独自の配列に置き換えます。拡張するには、デフォルトをスプレッドしてエントリを追加します。エントリはSPDX ID、完全なライセンス名、またはリストされたエイリアスのいずれかで照合されます(大文字小文字を区別しません)。
パッケージごとの例外
Section titled “パッケージごとの例外”チェックに失敗するパッケージにはexceptionsを使用します — ライセンスが許可リストにない場合、または検出可能なライセンスメタデータなしで提供される場合です。reasonフィールドは必須で、レビュアーが例外が付与された理由を確認できるようにします。
exceptions: [ { package: 'union', version: '0.5.0', reason: 'Package ships verbatim MIT text without declaring license', },];問題のあるメタデータを持つ依存関係を導入するジェネレータ(例:MCPサーバージェネレータ)は、実行時に必要な例外を自動的に設定に追加します。
コレクターは依存関係を検出し、ライセンスメタデータを抽出します。組み込みコレクターはnpmCollector()(node_modulesをスキャン)とpythonCollector()(Python仮想環境をスキャン)です。ライセンスジェネレータはデフォルトでnpmCollector()を設定し、Pythonプロジェクトが存在する場合はpythonCollector()を追加します。
カスタムコレクターを実装するには、LicenseCollectorインターフェースに準拠します:
import type { LicenseCollector } from '@aws/nx-plugin/sdk/license';
const myCollector = (): LicenseCollector => ({ name: 'my-ecosystem', traceCommand: 'my-tool why <package>', async collect({ workspaceRoot }) { return [ { name: 'some-dep', version: '1.0.0', rawLicense: 'MIT', ecosystem: 'my-ecosystem' }, ]; },});onDependencyフック
Section titled “onDependencyフック”license.dependenciesは、オプションのonDependencyコールバックを受け入れます。これは、チェックに合格するか失敗するかに関係なく、発見されたすべての依存関係に対して一度呼び出されます。{ package, spdx }を受け取り、packageはパッケージ名、spdxは解決されたSPDXライセンス式です。例外のspdxは生の宣言ライセンスよりも優先され、ライセンスが宣言されていない場合はspdxが空文字列になることがあります。
これは、プロジェクト全体のすべてのライセンスを出力する便利な方法です。license-checkターゲットを実行して出力を確認します:
import { AwsNxPluginConfig } from '@aws/nx-plugin';import { DEFAULT_LICENSE_ALLOWLIST } from '@aws/nx-plugin/sdk/license';
export default { license: { dependencies: { allow: DEFAULT_LICENSE_ALLOWLIST, onDependency: ({ package: pkg, spdx }) => { console.log(`${pkg} - ${spdx}`); }, }, },} satisfies AwsNxPluginConfig;依存関係チェックの無効化
Section titled “依存関係チェックの無効化”依存関係ライセンスチェックは、設定にlicense.dependenciesキーが存在することで有効になります。
単一実行でチェックを無効にするには、LICENSE_DEPENDENCY_CHECK=skip環境変数を設定します:
pnpm LICENSE_DEPENDENCY_CHECK=skip lintyarn LICENSE_DEPENDENCY_CHECK=skip lintnpm run LICENSE_DEPENDENCY_CHECK=skip lintbun LICENSE_DEPENDENCY_CHECK=skip lint恒久的に無効にするには、aws-nx-plugin.config.mtsの設定からlicense.dependenciesキーを削除します。また、--dependencyCheck=falseでlicenseジェネレータを再実行して、それなしでスキャフォールドすることもできます。