Orquesta Agentes IA que desarrollan por ti
Verificando...
73-license-compliance-check
Procedimiento: License Compliance Check
Dependencias
1 plugin(s)
Editor
Preview
Tareas
1
Info
Titulo
Verifica cumplimiento de licencias de dependencias. Detecta licencias problemáticas (GPL en proyectos propietarios), documenta atribuciones requeridas.
Descripcion
Contenido Markdown
8704 caracteres
Guardar
# Procedimiento: License Compliance Check ## Metadata - **ID**: PROC-73 - **Frecuencia**: Mensual o Pre-release - **Duraci├│n estimada**: 20-30 min - **Requiere**: Acceso al repositorio - **Dependencias**: Ninguna - **Bloquea**: Release (si hay licencias incompatibles) - **Agentes**: security-engineer --- ## Objetivo Verificar cumplimiento de licencias de dependencias: 1. Identificar licencias de todas las dependencias 2. Detectar licencias restrictivas o incompatibles 3. Documentar obligaciones de licencias 4. Evitar problemas legales --- ## Categor├¡as de Licencias | Categor├¡a | Licencias | Uso Permitido | Precauciones | |-----------|-----------|---------------|--------------| | Permisivas | MIT, BSD, Apache 2.0, ISC | Ô£à Comercial OK | Mantener atribuci├│n | | Copyleft D├®bil | LGPL, MPL | ÔÜá´©Å Con condiciones | No modificar sin liberar | | Copyleft Fuerte | GPL, AGPL | ÔØî Problem├ítico | Requiere liberar c├│digo | | Propietarias | Custom, Commercial | ÔÜá´©Å Verificar | Leer t├®rminos espec├¡ficos | | Sin Licencia | UNLICENSED | ÔØî No usar | Sin permisos legales | --- ## Licencias por Compatibilidad ### Ô£à Generalmente Seguras (Permisivas) - MIT - BSD-2-Clause, BSD-3-Clause - Apache-2.0 - ISC - CC0-1.0 (Public Domain) - Unlicense - WTFPL - 0BSD ### ÔÜá´©Å Requieren Atenci├│n - LGPL-2.1, LGPL-3.0 (OK si no modificas) - MPL-2.0 (OK con restricciones) - EPL-1.0, EPL-2.0 - CC-BY-4.0 ### ÔØî Potencialmente Problem├íticas - GPL-2.0, GPL-3.0 (c├│digo debe ser abierto) - AGPL-3.0 (incluso uso en servidor) - SSPL (Server Side Public License) - CC-BY-NC (No comercial) --- ## Checklist Ejecutable ### 1. Identificar Dependencias #### .NET ```bash # Listar dependencias dotnet list package # Con transitive dependencies dotnet list package --include-transitive # Exportar a JSON dotnet list package --format json > packages.json ``` #### Node.js ```bash # Listar dependencias npm ls --all # Solo producci├│n npm ls --prod # Exportar npm ls --json > packages.json ``` - [ ] Dependencias listadas: ___ ### 2. Extraer Licencias #### .NET ```bash # Usar herramienta dotnet-project-licenses dotnet tool install --global dotnet-project-licenses # Generar reporte dotnet-project-licenses -i . -o licenses.json --json # O usar NuGet License Analyzer ``` #### Node.js ```bash # Usar license-checker npx license-checker --json > licenses.json # Resumen por tipo npx license-checker --summary # Solo producci├│n npx license-checker --production --summary ``` - [ ] Licencias extra├¡das ### 3. Analizar Licencias ```bash # license-checker con filtro npx license-checker --production --onlyAllow "MIT;Apache-2.0;BSD-2-Clause;BSD-3-Clause;ISC;CC0-1.0" # Encontrar licencias problem├íticas npx license-checker --production --json | jq ' to_entries | map(select(.value.licenses | test("GPL|AGPL|SSPL|UNLICENSED"; "i"))) | .[] | {package: .key, license: .value.licenses}' ``` **Resumen de licencias:** | Licencia | Cantidad | Estado | |----------|----------|--------| | MIT | ___ | Ô£à | | Apache-2.0 | ___ | Ô£à | | BSD-3-Clause | ___ | Ô£à | | ISC | ___ | Ô£à | | LGPL-3.0 | ___ | ÔÜá´©Å | | GPL-3.0 | ___ | ÔØî | | Unknown | ___ | ÔÜá´©Å | - [ ] Licencias analizadas ### 4. Identificar Licencias Problem├íticas ```bash # Paquetes con licencias problem├íticas npx license-checker --production --json | jq ' to_entries | map(select( .value.licenses | test("GPL|AGPL|SSPL|CC-BY-NC|UNLICENSED|Unknown"; "i") )) | .[] | { package: .key, license: .value.licenses, repository: .value.repository }' ``` | Paquete | Licencia | Problema | Acci├│n | |---------|----------|----------|--------| | ___ | GPL-3.0 | Copyleft | Buscar alternativa | | ___ | UNLICENSED | Sin licencia | Contactar autor | | ___ | Unknown | No identificada | Verificar manualmente | - [ ] Problemas identificados ### 5. Buscar Alternativas Para paquetes problem├íticos: ```bash # Buscar alternativas en npm npm search "functionality" --long # Verificar licencia de alternativa npm view alternative-package license ``` | Original | Licencia | Alternativa | Licencia Alt | |----------|----------|-------------|--------------| | ___ | GPL | ___ | MIT | - [ ] Alternativas identificadas ### 6. Documentar Obligaciones ```markdown # Obligaciones de Licencias ## Apache-2.0 - Mantener avisos de copyright - Incluir copia de licencia - Documentar cambios realizados ## MIT - Mantener aviso de copyright y licencia ## BSD-3-Clause - No usar nombre del autor para promoci├│n - Mantener avisos de copyright ## LGPL-3.0 (si se usa) - Permitir reemplazo de la librer├¡a - Proporcionar c├│digo fuente si se modifica ``` - [ ] Obligaciones documentadas ### 7. Generar NOTICES.md ```bash # Generar archivo de atribuciones npx license-checker --production --csv > NOTICES.csv # O formato m├ís legible npx license-checker --production --out NOTICES.md --markdown ``` ```markdown # Third-Party Notices This software includes the following third-party components: ## package-name - License: MIT - Repository: https://github.com/... - Copyright (c) Year Author [Texto de licencia...] ``` - [ ] NOTICES.md generado ### 8. Configurar CI/CD ```yaml # .gitlab-ci.yml license-check: stage: security script: - npx license-checker --production --failOn "GPL;AGPL;SSPL" allow_failure: false ``` ```json // .licensechecker.json { "allowedLicenses": [ "MIT", "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "ISC", "CC0-1.0" ], "blockedLicenses": [ "GPL", "AGPL", "SSPL" ] } ``` - [ ] CI configurado --- ## Output Esperado ``` ====== PROC-73 COMPLETADO [TIMESTAMP] ====== Proyecto: [nombre] RESUMEN: - Dependencias totales: X - Licencias ├║nicas: Y DISTRIBUCI├ôN DE LICENCIAS: | Licencia | Cantidad | Estado | |----------|----------|--------| | MIT | 150 | Ô£à | | Apache-2.0 | 30 | Ô£à | | BSD-3-Clause | 20 | Ô£à | | ISC | 15 | Ô£à | | LGPL-3.0 | 2 | ÔÜá´©Å | | Unknown | 1 | ÔÜá´©Å | LICENCIAS PROBLEM├üTICAS: | Paquete | Licencia | Acci├│n | |---------|----------|--------| | old-lib | GPL-2.0 | Reemplazar por new-lib | | mystery-pkg | Unknown | Verificado: MIT | OBLIGACIONES: - Apache-2.0: NOTICES.md requerido Ô£à - MIT: Atribuci├│n en c├│digo Ô£à ARCHIVOS GENERADOS: - NOTICES.md Ô£à - licenses.json Ô£à ESTADO: Ô£à Compliant / ÔÜá´©Å Revisar / ÔØî No compliant ``` --- ## Criterios de ├ëxito - [ ] 0 licencias GPL/AGPL en producci├│n - [ ] 0 licencias Unknown sin verificar - [ ] NOTICES.md actualizado - [ ] CI configurado para bloquear licencias prohibidas --- ## Alertas y Escalaci├│n | Severidad | Condici├│n | Acci├│n | |-----------|-----------|--------| | CRITICAL | GPL/AGPL en dependencia directa | Buscar alternativa urgente | | WARNING | LGPL en uso | Documentar uso correcto | | WARNING | Licencia Unknown | Verificar manualmente | | INFO | Solo permisivas | Actualizar NOTICES.md | --- --- ## Output Estructurado (Nexus) Al finalizar, el agente DEBE generar un bloque JSON con el siguiente formato para que Nexus pueda procesarlo automaticamente: ```json { "result": "success", "summary": "Ejecucion de PROC-73 completada. [Descripcion breve de resultados]", "metrics": { "issues_found": 0, "issues_resolved": 0, "compliance_percent": 95, "custom": { "procedure_specific_metric": "value" } }, "backlog_items": [ { "title": "Titulo del item de seguimiento", "description": "Descripcion detallada si se requiere accion futura", "priority": "medium", "type": "improvement", "tags": ["proc-73"] } ], "next_steps": [ "Accion recomendada 1", "Accion recomendada 2" ], "warnings": [ "Advertencias encontradas durante la ejecucion" ] } ``` **Campos requeridos:** - `result`: `"success"` | `"partial"` | `"failed"` - `summary`: Resumen ejecutivo en 1-3 lineas **Metricas especificas de este procedure:** - licenses_checked, incompatible_licenses, compliance_percent **Criterios de resultado:** - `success`: Procedimiento completado sin errores criticos - `partial`: Completado con algunos problemas menores o items pendientes - `failed`: Error critico o no se pudo completar ## Historial de Ejecuciones | Fecha | Proyecto | Total Deps | Problem├íticas | Estado | |-------|----------|------------|---------------|--------| | | | | | |
H1
H2
H3
Bold
Italic
Code
Lista
Num
Task
Code Block
Link
Nexus Platform
Reconectando
Recuperando la conexion
Se ha interrumpido la conexion con el servidor. Estamos reconectando automaticamente.
Reconectando...
Manten esta pestana abierta, volvemos enseguida.
No hemos podido reconectar
El servidor puede estar reiniciandose o tu conexion a internet es inestable.
Reintentar
La sesion ha expirado
Recarga la pagina para iniciar una nueva sesion.
Recargar
Si no vuelve en 30 segundos, recarga la pagina.