1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
[]
# Check the full target graph (no target filtering).
= false
[]
= ["https://github.com/rustsec/advisory-db"]
# Fail the build on any active advisory or yanked dep. Use `ignore` to
# pin specific advisory IDs after a documented decision.
= "deny"
= [
# RUSTSEC-2023-0071 — rsa 0.9.x Marvin timing sidechannel (medium 5.9).
# Transitive via kunobi-auth (ssh-key, openidconnect) and surrealdb
# (jsonwebtoken). No fixed `rsa` release exists ("Solution: No fixed
# upgrade is available!"). Re-evaluate when rsa >= 0.10 ships a
# constant-time implementation. NOTE: only reachable through
# `kache-service`, so cargo-deny must be run per workspace member (a
# root-only invocation graphs the `kache` bin alone and misses it).
"RUSTSEC-2023-0071",
# RUSTSEC-2023-0089 — atomic-polyfill unmaintained (warning, not a CVE).
# Transitive via surrealdb -> geo -> rstar -> heapless 0.7. surrealdb is
# several hops from heapless 0.8 (which drops this dep). Low risk;
# re-evaluate on surrealdb major upgrades.
"RUSTSEC-2023-0089",
]
[]
# Multiple versions of the same crate inflate binary size and signal
# upgrade churn. Warn (not deny) — perfect uniqueness is impractical in a
# graph this size (aws-sdk + surrealdb + kube pull wide trees).
= "warn"
= "deny"
# kache-service's path dep (kache-core) and first-party git deps
# (kunobi-auth, kunobi-ha) carry no version req, which cargo-deny counts
# as a wildcard. Permit wildcards for path/git deps of unpublished crates
# only; registry wildcards stay denied.
= true
= []
= []
= []
[]
# Permissive licenses we're happy to ship under Apache-2.0.
= [
"Apache-2.0",
"Apache-2.0 WITH LLVM-exception",
"MIT",
"MIT-0",
"BSD-2-Clause",
"BSD-3-Clause",
"ISC",
"Zlib",
"Unicode-3.0",
"Unicode-DFS-2016",
"CC0-1.0",
"MPL-2.0",
"Unlicense",
# kache's larger tree pulls these permissive licenses that the kunobi
# repos' smaller graphs never reach:
"0BSD", # doctest-file, recvmsg (via interprocess)
"CDLA-Permissive-2.0", # webpki-root-certs (via reqwest -> rustls-platform-verifier)
"BSL-1.0", # xxhash-rust (via surrealkv) — Boost, OSI-permissive
]
= 0.93
# surrealdb (and its sub-crates) ship under BUSL-1.1 — the Business Source
# License, NOT an OSI-permissive license. It grants use and converts to
# Apache-2.0 after a change date, but restricts offering the DB as a
# competing hosted service. kache-service embeds surrealdb as its planner
# store (already a dependency long before this file), so accept BUSL-1.1
# scoped to exactly these crates rather than allowing it graph-wide.
= [
{ = "surrealdb", = ["BUSL-1.1"] },
{ = "surrealdb-collections", = ["BUSL-1.1"] },
{ = "surrealdb-core", = ["BUSL-1.1"] },
{ = "surrealdb-protocol", = ["BUSL-1.1"] },
{ = "surrealdb-strand", = ["BUSL-1.1"] },
{ = "surrealdb-types", = ["BUSL-1.1"] },
{ = "surrealdb-types-derive", = ["BUSL-1.1"] },
]
# surrealdb crates omit the `license` field in their manifest; cargo-deny
# reads their LICENSE file but scores it 0.87 (below the 0.93 threshold),
# so it reports them "unlicensed". Clarify the expression explicitly so
# the exceptions above apply. All six share one LICENSE file (same hash).
[[]]
= "surrealdb"
= "BUSL-1.1"
= [{ = "LICENSE", = 0xbb1191d7 }]
[[]]
= "surrealdb-collections"
= "BUSL-1.1"
= [{ = "LICENSE", = 0xbb1191d7 }]
[[]]
= "surrealdb-core"
= "BUSL-1.1"
= [{ = "LICENSE", = 0xbb1191d7 }]
[[]]
= "surrealdb-strand"
= "BUSL-1.1"
= [{ = "LICENSE", = 0xbb1191d7 }]
[[]]
= "surrealdb-types"
= "BUSL-1.1"
= [{ = "LICENSE", = 0xbb1191d7 }]
[[]]
= "surrealdb-types-derive"
= "BUSL-1.1"
= [{ = "LICENSE", = 0xbb1191d7 }]
[]
= "deny"
= "deny"
= ["https://github.com/rust-lang/crates.io-index"]
# First-party git dependencies (kache-service HA + auth building blocks).
= [
"https://github.com/kunobi-ninja/kunobi-auth.git",
"https://github.com/kunobi-ninja/kunobi-ha.git",
]