Data Validation
Before data is merged, LicenseLynx validates both the OSS license files and the organization-specific license files.
Core Checks
These checks apply to every license file:
- Filename must match
canonical.id. - Aliases must be unique globally.
canonical.srcmust be valid.- If
canonical.srcisspdx,canonical.idmust exist in the SPDX license or exception lists. aliasesmust only use these keys:spdx,scancodeLicensedb,pypi,osi,custom.canonical.id, aliases, andcanonical.srcmust not exceed 100 characters.canonical.idmust not contain# $ % = [ ] ? < > : / \ | *or spaces.canonical.idmust not be empty.aliasesmust not be empty.- Alias lists must not be empty, except for
custom. canonical.srcmust not be empty.- The
rejectedfield must exist. - An entry must not appear in both
aliasesandrejected. - Alias versions must match the canonical version where version matching applies.
isMajorVersionOnlymust match the canonical versioning pattern.
Organization Checks
These checks apply to data under data/orgs/:
- Organization folder names must be unique.
- Organization folder names must not use reserved names like
stableMaporriskyMap. - Every file inside an organization folder must use that organization name as
canonical.src. - No canonical identifier or alias may overlap between OSS data and organization data.
Why This Exists
These checks catch structural problems early. They do not guarantee semantic correctness, which is why rejected entries and risky mappings still exist.