diff --git a/Cargo.toml b/Cargo.toml index fe98fb8..b549d4a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,10 @@ name = "continuum-ai-worker" version = "0.1.0" edition = "2021" description = "Continuum AI worker - consumes camera frame batches from Redis Streams and runs print-failure detection" -license = "UNLICENSED" +# 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 [[bin]] name = "continuum-ai-worker" diff --git a/deny.toml b/deny.toml new file mode 100644 index 0000000..5563b7b --- /dev/null +++ b/deny.toml @@ -0,0 +1,41 @@ +# 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" + +# NOT VISIBLE TO THIS FILE: the ONNX model weights loaded at runtime carry +# their own licence, independent of the `ort` crate (MIT). Ultralytics YOLO +# and Obico's print-failure models are AGPL-3.0 and cannot ship in a +# commercial product. See docs/LICENSES.md.