From ef6c42245810fef1df2cb069aea605ead41c535a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iwo=20Strzebo=C5=84ski?= Date: Sat, 3 Oct 2026 10:09:59 +0000 Subject: [PATCH] Declare proprietary licensing and enforce permissive-only dependencies Continuum is intended to be sold, so every dependency has to permit distribution in closed-source commercial software. Nothing recorded that before: our own crates and npm packages carried no licence field at all, which made `cargo deny` report them as `unlicensed` errors and left the actual policy nowhere. Crates now declare `LicenseRef-Proprietary` with `publish = false`. That string is deliberately not a real SPDX identifier, so it must never appear in a `deny.toml` allow list - a third-party crate claiming it would be a genuine finding. npm packages use `"license": "UNLICENSED"`, the equivalent convention there. `deny.toml` holds the permissive-only allow list. The policy itself, the audit, and the three categories cargo-deny cannot see (external binaries, ML model weights, self-hosted servers) are documented in continuum-common's docs/LICENSES.md. --- deny.toml | 36 ++++++++++++++++++++++++++++++++++ package.json | 1 + packages/rust-types/Cargo.toml | 4 ++++ packages/ts-types/package.json | 1 + 4 files changed, 42 insertions(+) create mode 100644 deny.toml diff --git a/deny.toml b/deny.toml new file mode 100644 index 0000000..44db90c --- /dev/null +++ b/deny.toml @@ -0,0 +1,36 @@ +# Licence policy for a closed-source commercial product. +# See docs/LICENSES.md in continuum-common for the rationale and the +# non-cargo dependencies (external binaries, ML models) this file cannot see. +# +# Run: cargo deny check licenses + +[licenses] +# Permissive only. Anything copyleft reaching a shipped binary would make +# the product undistributable without releasing our source. +allow = [ + "MIT", + "Apache-2.0", + "Apache-2.0 WITH LLVM-exception", + "BSD-2-Clause", + "BSD-3-Clause", + "ISC", + "Zlib", + "Unicode-3.0", + "Unlicense", + "MPL-2.0", + "CC0-1.0", + "BlueOak-1.0.0", +] +confidence-threshold = 0.9 + +# Our own crates declare `LicenseRef-Proprietary`, which is deliberately not +# an SPDX identifier and must never appear in the allow list above - a +# third-party crate claiming it would be a real finding. They are recognised +# as first-party by `publish = false` in their manifests. +private = { ignore = true } + +[bans] +deny = [] + +[advisories] +yanked = "deny" diff --git a/package.json b/package.json index b8a4ad3..3b914ba 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "name": "continuum-schemas", + "license": "UNLICENSED", "version": "0.1.0", "private": true, "workspaces": [ diff --git a/packages/rust-types/Cargo.toml b/packages/rust-types/Cargo.toml index 0bb4ca1..cf5e940 100644 --- a/packages/rust-types/Cargo.toml +++ b/packages/rust-types/Cargo.toml @@ -2,6 +2,10 @@ name = "continuum-rust-types" version = "0.1.0" edition = "2021" +# Proprietary: deliberately not an SPDX id, so cargo-deny treats it as +# first-party. See docs/LICENSES.md in continuum-common. +license = "LicenseRef-Proprietary" +publish = false [lib] name = "continuum_types" diff --git a/packages/ts-types/package.json b/packages/ts-types/package.json index 9375436..19ea45a 100644 --- a/packages/ts-types/package.json +++ b/packages/ts-types/package.json @@ -1,5 +1,6 @@ { "name": "@continuum/ts-types", + "license": "UNLICENSED", "version": "0.1.0", "private": true, "type": "module",