License
ワークスペース全体のライセンス管理:自分のコードのLICENSEファイルとソースコードヘッダーを同期し(license.source)、すべての依存関係がライセンス許可リストに準拠しているかをチェックします(license.dependencies)。
ジェネレーターの実行
Section titled “ジェネレーターの実行”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- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - license - 必須パラメータを入力
- クリック
Generate
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
| 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ターゲットの一部として実行されるsync generatorを登録し、ソースファイルに正しいライセンスヘッダーが含まれ、プロジェクトにLICENSEファイルが含まれ、package.jsonとpyproject.tomlにライセンスメタデータが設定されていることを保証します。
ワークフロー
Section titled “ワークフロー”プロジェクトをビルドするたび(lintターゲットが実行されるとき)、ライセンス同期ジェネレーターはプロジェクトのライセンスが設定と一致していることを確認します。何かが同期されていないことを検出すると、次のようなメッセージが表示されます:
NX The workspace is out of sync
[@aws/nx-plugin:license#sync]: Project LICENSE files are out of sync:- LICENSE- packages/<my-project>LICENSE
Project package.json files are out of sync:- package.json
Project pyproject.toml files are out of sync:- pyproject.toml- packages/<my-python-project>/pyproject.toml
License headers are out of sync in the following source files:- packages/<my-project>/src/index.ts- packages/<my-python-project>/main.py
This will result in an error in CI.
? Would you like to sync the identified changes to get your workspace up to date?Yes, sync the changes and run the tasksNo, run the tasks without syncing the changesYesを選択して変更を同期します。
ライセンス同期ジェネレーターは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', ]; } // ... format configuration } } }} satisfies AwsNxPluginConfig;- ファイルから読み込む:
export default { license: { source: { header: { content: { filePath: 'license-header.txt'; // relative to workspace root } // ... format configuration } } }} satisfies AwsNxPluginConfig;ヘッダーのフォーマット
Section titled “ヘッダーのフォーマット”globパターンを使用して、異なるファイルタイプに対してライセンスヘッダーをどのようにフォーマットするかを指定できます。フォーマット設定は、行コメント、ブロックコメント、またはその両方の組み合わせをサポートします:
export default { license: { source: { header: { content: { lines: ['Copyright notice here'], }, format: { // Line comments '**/*.ts': { lineStart: '// ', }, // Block comments '**/*.css': { blockStart: '/*', blockEnd: '*/', }, // Block comments with line prefixes '**/*.java': { blockStart: '/*', lineStart: ' * ', blockEnd: ' */', }, // Line comments with header/footer '**/*.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: '##', // Define line comment syntax }, abc: { block: { // Define block comment syntax 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: [ // do not sync LICENSE file, package.json or pyproject.toml 'packages/excluded-project', // do not sync LICENSE file, but sync package.json and/or 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 globが追加されます。
チェックを直接実行できます:
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;デフォルトライセンス許可リスト
| 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仮想環境をスキャン)です。licenseジェネレーターはデフォルトで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キーを削除します。また、licenseジェネレーターを--dependencyCheck=falseで再実行して、それなしでスキャフォールドすることもできます。