-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdeny.toml
More file actions
96 lines (86 loc) · 3.4 KB
/
deny.toml
File metadata and controls
96 lines (86 loc) · 3.4 KB
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
# deny.toml - cargo-deny configuration
# Docs: https://embarkstudios.github.io/cargo-deny/
#
# Run: cargo deny check advisories bans licenses sources
[graph]
# Exclude dev-only and build-only dependencies from most checks
# (they don't ship in the binary)
exclude-dev = true
# Exclude private workspace crates from checks (they are not published)
exclude = [
"assay-ebpf",
"assay-it",
"assay-xtask",
]
# =============================================================================
# [advisories] - RustSec advisory database checks
# =============================================================================
[advisories]
db-path = "~/.cargo/advisory-db"
db-urls = ["https://github.com/rustsec/advisory-db"]
# Ignore specific advisories (add RUSTSEC-YYYY-NNNN here if needed)
# Only list advisories that currently match a crate in the tree; remove when dep is upgraded or removed.
ignore = [
# rsa: transitive via jsonwebtoken (assay-mcp-server). No safe upgrade; timing sidechannel.
# JWT verification is server-side; accept risk for MCP auth until jsonwebtoken/rsa offer a fix.
"RUSTSEC-2023-0071",
# rand 0.8.5 is present broadly in the current workspace and transitively via jsonwebtoken/rsa.
# This advisory is conditional on a custom logger calling ThreadRng during reseed; the repo does
# not implement a custom logger path. Accept temporarily until the workspace and transitive stack
# can move to rand >=0.9.3 / >=0.10.1 in a dedicated dependency update.
"RUSTSEC-2026-0097",
]
# =============================================================================
# [bans] - Crate bans and duplicate detection
# =============================================================================
[bans]
multiple-versions = "warn"
wildcards = "warn" # Git deps often lack version constraints
highlight = "all"
# Deny specific crates (security/policy reasons)
deny = [
# Example: { name = "openssl", wrappers = ["openssl-sys"] }
]
# Skip duplicate version warnings for specific crates
skip = [
# Transitive duplicates from ecosystem transitions (revisit periodically)
{ crate = "getrandom@0.2" }, # rand 0.8 ecosystem
]
# Allow wildcards for these git dependencies (pinned by tag)
allow-wildcard-paths = true
# =============================================================================
# [licenses] - License compliance
# =============================================================================
[licenses]
# Confidence threshold for license detection
confidence-threshold = 0.93
# Allow these licenses
allow = [
"MIT",
"MIT-0",
"Apache-2.0",
"Apache-2.0 WITH LLVM-exception",
"BSD-2-Clause",
"BSD-3-Clause",
"BSD-1-Clause",
"0BSD",
"ISC",
"Zlib",
"Unlicense",
"Unicode-3.0",
"MPL-2.0",
"BSL-1.0",
"CDLA-Permissive-2.0",
"OpenSSL",
]
# Private/workspace crates that don't need a license field (not published)
private = { ignore = true }
# =============================================================================
# [sources] - Supply chain: allowed registries and git sources
# =============================================================================
[sources]
unknown-registry = "deny"
unknown-git = "warn" # Git deps need review but don't block CI
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
# Explicitly allow git dependencies (aya-rs for eBPF, pinned by tag)
allow-git = ["https://github.com/aya-rs/aya"]