Report: License Report |
Generated: {{ generated_at }} |
Scope: {{ scope_label | default('All Projects') }} |
Components: {{ total_components | default(0) }}
Total Components
{{ total_components | default(0) }}
Unique Licenses
{{ total_licenses | default(0) }}
Strong Copyleft
0 %}style="color: #d32f2f;"{% endif %}>{{ category_summary.get('Strong Copyleft', 0) }}
Weak Copyleft
0 %}style="color: #f57c00;"{% endif %}>{{ category_summary.get('Weak Copyleft', 0) }}
Permissive
{{ category_summary.get('Permissive', 0) }}
No License
0 %}style="color: #f57c00;"{% endif %}>{{ no_license_count | default(0) }}
{% if risk_pie and risk_pie.labels | default([]) | length > 0 %}
License Risk Distribution
Components grouped by license risk category.
Risk Summary
Breakdown of license risk categories across all components.
| Category | Count | % |
{% for cat in ['Strong Copyleft', 'Weak Copyleft', 'Proprietary/Restricted', 'Unknown', 'Permissive'] %}
{% set count = category_summary.get(cat, 0) %}
{% if count > 0 %}
|
{{ cat }}
|
{{ count }} |
{{ ((count / total_components) * 100) | round(1) }}% |
{% endif %}
{% endfor %}
{% endif %}
{% if license_table and license_table | length > 0 %}
License Breakdown
| License |
Risk Category |
Components |
Projects |
{% for row in license_table %}
| {{ row.license_name if row.license_name else '(No License)' }} |
{{ row.risk_category }}
|
{{ row.component_count }} |
{{ row.projects }} |
{% endfor %}
{% endif %}
{% if detail_table and detail_table | length > 0 %}
Component Detail
One row per component. Use this to find every project and component carrying a given license. Full data is also written to License Report_Detail.csv and the Detail sheet of the XLSX file.
| License |
Risk Category |
Project |
Component |
Version |
{% for row in detail_table %}
| {{ row.License if row.License else '(No License)' }} |
{{ row['Risk Category'] }}
|
{{ row.Project }} |
{{ row.Component }} |
{{ row.Version }} |
{% endfor %}
{% endif %}
{% include '_action_buttons.html' %}