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
//! [`CapabilityScope`] — what a granted capability is actually allowed to reach.
use ;
use crateEgressIdentity;
/// Per-capability-kind scope, carried on a [`crate::CapabilityGrant`].
///
/// Each variant's allowlist is the deny-by-default boundary a real
/// `ComponentValidator` implementor enforces (ADR-001): a capability call
/// naming a target outside its own allowlist is rejected, checked again on
/// every call, not just once at grant-registration time.
///
/// `["*"]` is a real, explicit opt-in to "unrestricted" for `Http`/`Grpc`/
/// `Complete`/`Mcp` only. **`Database`/`Secrets` never accept a wildcard,
/// under any circumstance** — every entry in `allowed_queries`/
/// `allowed_secrets` must individually name one specific, deployer-
/// pre-registered query or secret. This is a permanent security boundary
/// of the design (no raw-SQL capability is ever offered to a guest, and no
/// blanket secret-store access), not a v1 limitation a future grant format
/// might relax.