License
Gerencie licenciamento em todo o seu workspace: sincronize arquivos LICENSE e cabeçalhos de código-fonte para o seu próprio código (license.source), e verifique se cada dependência está em conformidade com uma lista de licenças permitidas (license.dependencies).
Executar o Gerador
Seção intitulada “Executar o Gerador”pnpm nx g @aws/nx-plugin:licenseyarn nx g @aws/nx-plugin:licensenpx nx g @aws/nx-plugin:licensebunx nx g @aws/nx-plugin:licenseVocê também pode realizar uma execução simulada para ver quais arquivos seriam alterados
pnpm nx g @aws/nx-plugin:license --dry-runyarn nx g @aws/nx-plugin:license --dry-runnpx nx g @aws/nx-plugin:license --dry-runbunx nx g @aws/nx-plugin:license --dry-run- Instale o Nx Console VSCode Plugin se ainda não o fez
- Abra o console Nx no VSCode
- Clique em
Generate (UI)na seção "Common Nx Commands" - Procure por
@aws/nx-plugin - license - Preencha os parâmetros obrigatórios
- Clique em
Generate
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
| license | Apache-2.0 | MIT | ASL | Apache-2.0 | Identificador SPDX da licença escolhida |
| copyrightHolder | string | Amazon.com, Inc. or its affiliates | O detentor dos direitos autorais, incluído no arquivo LICENSE e nos cabeçalhos dos arquivos de código-fonte por padrão. |
| dependencyCheck | boolean | true | Configurar um target de verificação de licença que falha quando as dependências declaram licenças fora da lista de permissões configurada. |
| preferInstallDependencies | boolean | true | Se deve preferir instalar dependências após a execução do gerador. Defina como false para adiar a instalação ao executar múltiplos geradores em lote (uma instalação ainda é executada se necessário para que geradores subsequentes possam calcular o grafo de projetos Nx); instale uma vez no final. |
Saída do Gerador
Seção intitulada “Saída do Gerador”O gerador criará ou atualizará os seguintes arquivos:
- nx.json O target lint é configurado para executar o gerador de sincronização de licença e depende do target license-check
- aws-nx-plugin.config.mts Configuração para sincronização de fonte de licença (
license.source) e verificação de dependências (license.dependencies)
Cabeçalhos e Arquivos de Licença
Seção intitulada “Cabeçalhos e Arquivos de Licença”O gerador registra um sync generator para executar como parte dos seus targets lint, o que garante que seus arquivos de origem contenham os cabeçalhos de licença corretos, seus projetos contenham arquivos LICENSE, e os metadados de licenciamento sejam definidos em package.json e pyproject.toml.
Fluxo de Trabalho
Seção intitulada “Fluxo de Trabalho”Sempre que você compilar seus projetos (e um target lint for executado), o gerador de sincronização de licença garantirá que o licenciamento em seu projeto corresponda à sua configuração. Se detectar que algo está fora de sincronia, você receberá uma mensagem como:
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 changesSelecione Yes para sincronizar as alterações.
Comportamento de Sincronização
Seção intitulada “Comportamento de Sincronização”O gerador de sincronização de licença executa três tarefas principais:
1. Sincronizar Cabeçalhos de Licença de Arquivos de Origem
Seção intitulada “1. Sincronizar Cabeçalhos de Licença de Arquivos de Origem”Quando o gerador de sincronização é executado, ele garantirá que todos os arquivos de código-fonte em seu workspace (com base em sua configuração) contenham o cabeçalho de licença apropriado. O cabeçalho é escrito como o primeiro comentário de bloco ou série consecutiva de comentários de linha no arquivo (além do shebang/hashbang, se presente em um arquivo).
2. Sincronizar Arquivos LICENSE
Seção intitulada “2. Sincronizar Arquivos LICENSE”Quando o gerador de sincronização é executado, ele garantirá que o arquivo LICENSE raiz corresponda à sua licença configurada, bem como garantirá que todos os subprojetos em seu workspace também contenham o arquivo LICENSE correto.
3. Sincronizar informações de licenciamento em arquivos de projeto
Seção intitulada “3. Sincronizar informações de licenciamento em arquivos de projeto”Quando o gerador de sincronização é executado, ele garantirá que os campos license em arquivos package.json e pyproject.toml sejam definidos para sua licença configurada.
Configuração de Cabeçalho e Arquivo
Seção intitulada “Configuração de Cabeçalho e Arquivo”A configuração é definida no arquivo aws-nx-plugin.config.mts na raiz do seu workspace.
SPDX e Detentor de Direitos Autorais
Seção intitulada “SPDX e Detentor de Direitos Autorais”Sua licença escolhida pode ser atualizada a qualquer momento através da propriedade de configuração spdx:
export default { license: { source: { spdx: 'MIT', }, },} satisfies AwsNxPluginConfig;Quando o gerador de sincronização é executado, todos os arquivos LICENSE, package.json e pyproject.toml serão atualizados para refletir a licença configurada.
Você pode configurar adicionalmente o detentor de direitos autorais e o ano de direitos autorais, que são incluídos em alguns arquivos LICENSE:
export default { license: { source: { spdx: 'MIT', copyrightHolder: 'Amazon.com, Inc. or its affiliates', copyrightYear: 2025, }, },} satisfies AwsNxPluginConfig;Conteúdo do Cabeçalho de Licença
Seção intitulada “Conteúdo do Cabeçalho de Licença”O conteúdo do cabeçalho de licença pode ser configurado de duas maneiras:
- Usando conteúdo inline:
export default { license: { source: { header: { content: { lines: [ 'Copyright: My Company, Incorporated.', 'Licensed under the MIT License', 'All rights reserved', ]; } // ... format configuration } } }} satisfies AwsNxPluginConfig;- Carregando de um arquivo:
export default { license: { source: { header: { content: { filePath: 'license-header.txt'; // relative to workspace root } // ... format configuration } } }} satisfies AwsNxPluginConfig;Formato do Cabeçalho
Seção intitulada “Formato do Cabeçalho”Você pode especificar como os cabeçalhos de licença devem ser formatados para diferentes tipos de arquivo usando padrões glob. A configuração de formato suporta comentários de linha, comentários de bloco ou uma combinação de ambos:
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;A configuração de formato suporta:
blockStart: Texto escrito antes do conteúdo da licença (por exemplo, para iniciar um comentário de bloco)lineStart: Texto anexado ao início de cada linha do conteúdo da licençalineEnd: Texto anexado ao final de cada linha do conteúdo da licençablockEnd: Texto escrito após o conteúdo da licença (por exemplo, para encerrar um comentário de bloco)
Sintaxe de Comentário Personalizada
Seção intitulada “Sintaxe de Comentário Personalizada”Para tipos de arquivo que não são nativamente suportados, você pode especificar sintaxe de comentário personalizada para informar ao gerador de sincronização como identificar cabeçalhos de licença existentes nesses tipos de arquivo.
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;Excluindo Arquivos da Sincronização de Cabeçalho
Seção intitulada “Excluindo Arquivos da Sincronização de Cabeçalho”Por padrão, em um repositório git, todos os arquivos .gitignore são respeitados para garantir que apenas arquivos gerenciados pelo controle de versão sejam sincronizados. Em repositórios não-git, todos os arquivos são considerados, a menos que explicitamente excluídos na configuração.
Você pode excluir arquivos adicionais da sincronização de cabeçalho de licença usando padrões glob:
export default { license: { source: { header: { content: { lines: ['My license header'], }, format: { '**/*.ts': { lineStart: '// ', }, }, exclude: ['**/generated/**', '**/dist/**', 'some-specific-file.ts'], }, }, },} satisfies AwsNxPluginConfig;Excluindo Projetos da Sincronização de Arquivo
Seção intitulada “Excluindo Projetos da Sincronização de Arquivo”Todos os arquivos LICENSE, arquivos package.json e arquivos pyproject.toml são sincronizados com a licença configurada por padrão.
Você pode excluir projetos ou arquivos específicos da sincronização usando padrões 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;Desabilitando a Sincronização de Licença
Seção intitulada “Desabilitando a Sincronização de Licença”A sincronização de fonte de licença é habilitada pela presença da chave license.source em sua configuração. Para desabilitá-la:
- Remova a seção
license.sourceda sua configuração emaws-nx-plugin.config.mts(você pode manterlicense.dependenciesse ainda quiser verificação de licença de dependência) - Se você também quiser remover completamente o gerador de sincronização, remova o gerador
@aws/nx-plugin:license#syncdetargetDefaults.lint.syncGenerators
Para reabilitar a sincronização de licença, simplesmente execute o gerador license novamente.
Verificações de Licença de Dependência
Seção intitulada “Verificações de Licença de Dependência”O gerador license também configura um target license-check que falha quando uma das dependências do seu projeto (ou qualquer dependência transitiva) declara uma licença que não está na sua lista de permitidas.
Como é executado
Seção intitulada “Como é executado”O gerador escreve um target license-check no seu project.json raiz:
{ "targets": { "license-check": { "executor": "@aws/nx-plugin:license-check", "cache": true, "inputs": [ "{workspaceRoot}/pnpm-lock.yaml", "{workspaceRoot}/aws-nx-plugin.config.mts" ], "options": {} } }}Os inputs são computados para o seu workspace: apenas lockfiles que estão realmente presentes são incluídos, juntamente com aws-nx-plugin.config.mts, mais um glob {workspaceRoot}/**/uv.lock quando a verificação de dependência Python está habilitada (ou seja, um coletor Python está configurado).
Você pode executar a verificação diretamente:
pnpm nx license-checkyarn nx license-checknpx nx license-checkbunx nx license-checkOs resultados são armazenados em cache em relação aos seus lockfiles e aws-nx-plugin.config.mts — re-execuções são instantâneas quando nada mudou.
Coletores determinam o que é escaneado. O npmCollector usa license-checker-rseidelsohn, e o pythonCollector usa pip-licenses. Se nenhuma dependência instalada for encontrada, a verificação passa sem nada para inspecionar.
Executando como parte de lint/build
Seção intitulada “Executando como parte de lint/build”A verificação de licença de dependência é executada automaticamente sempre que você executa lint ou build em qualquer projeto em seu workspace. O gerador license conecta o target lint de cada projeto para depender do target license-check raiz, e os geradores de projeto (ts#* e py#*) fazem o mesmo quando são executados — então a verificação é conectada independentemente da ordem em que os geradores são executados.
Isso significa que você não precisa executar a verificação explicitamente, embora ainda possa fazê-lo com o target license-check:
pnpm nx license-checkyarn nx license-checknpx nx license-checkbunx nx license-checkA conexão é um dependsOn entre projetos no target lint de cada projeto que aponta para o target license-check raiz. Para pular a verificação durante um lint ou build, defina a variável de ambiente 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 lintConfiguração
Seção intitulada “Configuração”Por padrão, a verificação usa um conjunto integrado de licenças permissivas comuns (MIT, Apache-2.0, BSD, ISC, etc.) exportado como DEFAULT_LICENSE_ALLOWLIST. Você pode estender ou substituir isso em sua configuração:
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 |
Personalizando a lista de permitidas
Seção intitulada “Personalizando a lista de permitidas”Para restringir a lista de permitidas, substitua DEFAULT_LICENSE_ALLOWLIST pelo seu próprio array. Para estendê-la, espalhe o padrão e adicione entradas. As entradas são correspondidas por id SPDX, nome completo da licença ou qualquer um dos aliases listados (sem distinção entre maiúsculas e minúsculas).
Exceções por pacote
Seção intitulada “Exceções por pacote”Use exceptions para pacotes que falham na verificação — seja porque sua licença não está na lista de permitidas, ou porque eles são enviados sem metadados de licença detectáveis. O campo reason é obrigatório para que os revisores possam ver por que a exceção foi concedida.
exceptions: [ { package: 'union', version: '0.5.0', reason: 'Package ships verbatim MIT text without declaring license', },];Geradores que introduzem dependências com metadados problemáticos (por exemplo, o gerador de servidor MCP) adicionam automaticamente as exceções necessárias à sua configuração quando são executados.
Coletores
Seção intitulada “Coletores”Coletores descobrem dependências e extraem metadados de licença. Os coletores integrados são npmCollector() (escaneia node_modules) e pythonCollector() (escaneia ambientes virtuais Python). O gerador de licença configura npmCollector() por padrão e adiciona pythonCollector() quando projetos Python estão presentes.
Para implementar um coletor personalizado, conforme a interface 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' }, ]; },});O hook onDependency
Seção intitulada “O hook onDependency”license.dependencies aceita um callback opcional onDependency que é invocado uma vez para cada dependência descoberta, independentemente de passar ou falhar na verificação. Ele recebe { package, spdx }, onde package é o nome do pacote e spdx é a expressão de licença SPDX resolvida. O spdx de uma exceção tem precedência sobre a licença bruta declarada, e spdx pode ser uma string vazia se nenhuma licença foi declarada.
Esta é uma maneira útil de imprimir todas as licenças em seu projeto. Execute o target license-check para ver a saída:
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;Desabilitando Verificações de Dependência
Seção intitulada “Desabilitando Verificações de Dependência”A verificação de licença de dependência é habilitada pela presença da chave license.dependencies em sua configuração.
Para desabilitar as verificações para uma única execução, defina a variável de ambiente 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 lintPara desabilitar permanentemente, remova a chave license.dependencies da sua configuração em aws-nx-plugin.config.mts. Você também pode executar novamente o gerador license com --dependencyCheck=false para criar o scaffold sem ele.