Skip to content

Commit a7f0903

Browse files
LeadGoEngineerPaperclip-Paperclip
andcommitted
chore(security): extend license allowlist with BSL-1.0, CC0-1.0, 0BSD
Adds three permissive SPDX identifiers to the allowlist in both `.github/workflows/security.yml` (the enforced gate) and `SECURITY.md` (the documented policy): - `0BSD` — Zero-Clause BSD. Rare but real. - `BSL-1.0` — Boost Software License (permissive, OSI-approved). Not the source-available Business Source License (BUSL/BSL on the denylist); SECURITY.md now spells the distinction out so future exception requests do not get triggered by the name collision. - `CC0-1.0` — public-domain dedication, common in small Go utilities. Switches the allowlist ordering to ASCII-sorted by SPDX id and pins that ordering with a comment in security.yml, so the workflow env and SECURITY.md stay in sync on future edits. Withings-export-cli carries the same workflow copy; a parallel PR mirrors the change there. crono- and liftoff-export-cli have not onboarded the workflow yet and are out of scope for this PR. Refs QUA-46. Co-Authored-By: Paperclip <noreply@paperclip.ing>
1 parent c926e66 commit a7f0903

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

.github/workflows/security.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,9 @@ jobs:
9494
contents: read
9595
env:
9696
# Policy: every direct + transitive Go dep must resolve to one of these SPDX ids.
97+
# Keep this list sorted by SPDX id; SECURITY.md "License allowlist" must match exactly.
9798
# See SECURITY.md "Supply-chain policy" for the rationale.
98-
ALLOWED_LICENSES: "Apache-2.0,MIT,BSD-2-Clause,BSD-3-Clause,MPL-2.0,ISC,Unlicense"
99+
ALLOWED_LICENSES: "0BSD,Apache-2.0,BSD-2-Clause,BSD-3-Clause,BSL-1.0,CC0-1.0,ISC,MIT,MPL-2.0,Unlicense"
99100
steps:
100101
- name: Checkout
101102
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1

SECURITY.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,23 @@ Every PR — in `common` and in every `*-export-cli` — is gated on a CI workfl
4646
- `osv-scanner` for transitive vulnerabilities across the OSV database.
4747
- A license-policy check that allowlists only permissive licenses.
4848

49-
**License allowlist** (SPDX identifiers):
49+
**License allowlist** (SPDX identifiers, sorted by SPDX id; must match `ALLOWED_LICENSES` in `.github/workflows/security.yml` exactly):
5050

51+
- `0BSD`
5152
- `Apache-2.0`
52-
- `MIT`
5353
- `BSD-2-Clause`
5454
- `BSD-3-Clause`
55-
- `MPL-2.0`
55+
- `BSL-1.0` (Boost Software License — permissive, OSI-approved; **not** the source-available Business Source License — see denylist entry for `BUSL-*`)
56+
- `CC0-1.0`
5657
- `ISC`
58+
- `MIT`
59+
- `MPL-2.0`
5760
- `Unlicense`
5861

5962
**License denylist** (blocking; not exhaustive):
6063

6164
- The GPL family — `GPL-*`, `LGPL-*`, `AGPL-*`.
62-
- `SSPL-*`, `BUSL-*` / `BSL-*`, and other "source-available" licenses.
65+
- `SSPL-*`, `BUSL-*` (Business Source License — sometimes informally written "BSL"; not to be confused with the permissive `BSL-1.0` Boost above), and other "source-available" licenses.
6366
- "Custom" or unidentified licenses where the SPDX identifier cannot be resolved.
6467

6568
A PR that introduces a denied license is blocked. To request an exception, open an issue against `quantcli/common` with the dependency name, version, license text, and the rationale. Exceptions are rare and case-by-case.

0 commit comments

Comments
 (0)