Skip to content

License Policies

License Policies define which licenses are acceptable for use in your organization. They enable automated compliance checking by specifying approval levels for each license.

What is a License Policy?

A License Policy is a set of rules that assigns a compliance level to each license. When you apply a policy to an SBOM, components are automatically evaluated against those rules, and non-compliant licenses are flagged.

Compliance Levels

Each license in a policy can have one of four compliance levels:

LevelIconMeaningUse Case
Compliant✓ (Green)License is approved for useOpen licenses like MIT, Apache-2.0
Conditional⚠ (Orange)Approved under specific conditionsLicenses requiring attribution or copyleft
Non-Compliant✗ (Red)License violates policyGPL in proprietary software, restrictive licenses
Unknown? (Gray)Compliance not yet determinedNew or unreviewed licenses

Viewing License Policies

To access License Policies:

  1. Navigate to Licenses in the main menu
  2. Click Policies in the breadcrumb navigation

Policies List

The Policies view shows all available policies:

  • Select a policy from the dropdown to view its licenses
  • Each policy displays all licenses with their compliance status
  • Color-coded icons indicate the compliance level

Creating a License Policy

To create a new policy:

  1. Click Create New Policy
  2. Provide:
    • Name - Internal identifier (e.g., "enterprise-2024")
    • Title - Display name (e.g., "Enterprise Compliance Policy")
  3. Select a template:
    • Blank - Empty policy, add licenses manually
    • Full Blank - Includes all licenses set to Unknown
    • Copy - Duplicate an existing policy
  4. If copying, select the source policy
  5. Click Create

Policy Templates

Blank Template

  • Starts with no licenses
  • Add only the licenses you need
  • Best for: Highly specific policies

Full Blank Template

  • Includes all 1700+ licenses
  • All set to "Unknown" compliance
  • Best for: Comprehensive policies where you'll review each license

Copy Template

  • Duplicates an existing policy
  • Modify from a known-good baseline
  • Best for: Creating variations of existing policies

Editing License Policies

Renaming a Policy

  1. Select the policy from the dropdown
  2. Click Edit Policy
  3. Update the name or title
  4. Click Save

Managing Licenses in a Policy

Adding a License

  1. Click Add License
  2. Select the license from the list
  3. Choose the compliance level:
    • Compliant
    • Conditional
    • Non-Compliant
    • Unknown
  4. Click Save

TIP

Only licenses not already in the policy will appear in the selection list.

Changing Compliance Level

To change a license's compliance status:

  1. Find the license in the policy table
  2. Click the compliance icons to toggle:
    • Click green (Compliant)
    • Click orange (Conditional)
    • Click red (Non-Compliant)
    • Click gray (Unknown)
  3. Changes are saved automatically

Removing a License

  1. Find the license in the policy table
  2. Click the trash icon
  3. Confirm removal

Setting the Default Policy

The default policy is automatically applied to new SBOMs:

  1. Select the policy you want as default
  2. Click Make Default
  3. The policy is now marked as the system default

Default Policy Indicator

The current default policy is highlighted in the policy selector.

Deleting a Policy

To remove a policy:

  1. Select the policy to delete
  2. Click Delete Policy
  3. Confirm deletion

Cannot Delete Active Policies

You cannot delete a policy that is currently assigned to one or more SBOMs. First change those SBOMs to use a different policy.

Using Policies in SBOMs

Applying a Policy to a SBOM

When creating a new SBOM:

  1. In the SBOM creation wizard, Step 1 - Details
  2. Select a license policy from the dropdown
  3. The default policy is pre-selected
  4. Complete the SBOM creation

Changing an SBOM's Policy

To change the policy on an existing SBOM:

  1. Open the SBOM
  2. Click the License Policy panel in the header
  3. Select a different policy
  4. Compliance status updates automatically

Impact of Policy Changes

When you change a policy:

  • Component compliance status is recalculated
  • Dashboard charts update to reflect new compliance
  • Non-compliant components are visually highlighted
  • KPI metrics are recomputed

Policy-Based Compliance Checking

How Compliance Works

  1. Each component has one or more assigned licenses
  2. The SBOM has an applied policy
  3. Each license is looked up in the policy
  4. The compliance level determines the component's status:
    • All licenses compliant → Component is compliant ✓
    • Any license non-compliant → Component is non-compliant ✗
    • Mix of compliant and conditional → Component is conditional ⚠
    • Any license unknown → Component is unknown ?

Visual Indicators

In the Components Table:

  • License badges are color-coded by compliance
  • Up to 4 licenses shown (with overflow indicator)
  • Rows with non-compliant licenses are highlighted

In the Dashboard:

  • "Components by Compliance" chart shows distribution
  • Color-coded by compliance level

In Exports:

  • Compliance status included in all export formats
  • Enables compliance reporting

Pre-Built Policy Examples

SBOM Manager includes reference policies:

GPL v3 Compliance

Designed for GPL-licensed projects:

  • GPL family licenses: Compliant
  • Permissive licenses (MIT, Apache): Compliant
  • Proprietary licenses: Non-Compliant

ASL 3rd Party Compliance

For Apache Software Foundation projects:

  • Apache licenses: Compliant
  • Permissive licenses: Compliant
  • Copyleft licenses: Conditional or Non-Compliant

All Licenses Compliance

Accept-all policy:

  • All licenses: Compliant
  • Use for: Initial scans, research, or non-production

Best Practices

Creating Effective Policies

  1. Start with a template - Copy an existing policy as a baseline
  2. Document your rules - Use clear naming for policies
  3. Review regularly - Update policies as organizational needs change
  4. Test before deploying - Apply to a test SBOM before production

Compliance Levels Guidelines

Use "Compliant" for:

  • Licenses approved without restrictions
  • Internal company licenses
  • Public domain and permissive licenses

Use "Conditional" for:

  • Licenses requiring specific conditions (e.g., attribution)
  • Weak copyleft when conditions are manageable
  • Licenses approved for certain use cases only

Use "Non-Compliant" for:

  • Licenses explicitly prohibited by your organization
  • Incompatible licenses (e.g., GPL in proprietary software)
  • Restrictive commercial licenses

Use "Unknown" for:

  • New or rare licenses requiring legal review
  • Licenses pending approval decision
  • Placeholder during policy development

Organizational Policies

For Open Source Projects

  • Allow permissive and compatible copyleft licenses
  • Reject incompatible licenses
  • Example: GPL project should reject Apache-2.0 if incompatible

For Commercial Products

  • Allow permissive licenses (MIT, Apache, BSD)
  • Conditionally allow weak copyleft (LGPL, MPL)
  • Reject strong copyleft (GPL, AGPL)
  • Reject unknown or custom licenses

For Internal Tools

  • More permissive stance
  • Focus on tracking rather than strict compliance
  • Educational approach to license awareness

Policy Maintenance

  1. Version your policies - Include dates or versions in names
  2. Track changes - Document why compliance levels changed
  3. Periodic review - Quarterly or annually review and update
  4. Stakeholder input - Involve legal, engineering, and compliance teams
  5. Communication - Notify teams when policies change

Integration with Workflows

SBOM Review Workflow

  1. Create SBOM with default policy applied
  2. Review Dashboard compliance chart
  3. Investigate non-compliant components
  4. Either:
    • Remove/replace the component
    • Seek exception and change compliance level
    • Update component license if incorrect
  5. Export for compliance record

Continuous Monitoring

  • Create new SBOM versions periodically
  • Compare compliance between versions (Delta Charts)
  • Track new non-compliant components
  • Automate alerts for policy violations

Tips

  • Multiple policies for different projects - Create separate policies for different product lines
  • Gradual refinement - Start permissive, tighten over time
  • Exception handling - Document exceptions in component comments
  • Export compliance reports - Regular XLSX exports for stakeholders