1pub use collect::required_capabilities;
2pub use deny::apply_deny_adapter;
3mod collect;
4mod deny;
5
6pub enum InheritConfiguration {
14 All,
16 None,
18 Some(Vec<String>),
21}
22
23const CAPABILITY_SETS: &[(&str, &[&str])] = &[
24 ("ai_models", AI_MODELS),
25 ("allowed_outbound_hosts", ALLOWED_OUTBOUND_HOSTS),
26 ("environment", ENVIRONMENT),
27 ("files", FILES),
28 ("key_value_stores", KEY_VALUE_STORES),
29 ("sqlite_databases", SQLITE_DATABASES),
30 ("variables", VARIABLES),
31];
32
33const AI_MODELS: &[&str] = &["fermyon:spin/llm", "fermyon:spin/llm@2.0.0"];
34
35const ALLOWED_OUTBOUND_HOSTS: &[&str] = &[
36 "fermyon:spin/http",
37 "fermyon:spin/mysql",
38 "fermyon:spin/postgres",
39 "fermyon:spin/redis",
40 "fermyon:spin/mqtt@2.0.0",
41 "fermyon:spin/mysql@2.0.0",
42 "fermyon:spin/postgres@2.0.0",
43 "fermyon:spin/redis@2.0.0",
44 "spin:mqtt/mqtt@3.0.0",
45 "spin:mysql/mysql@3.0.0",
46 "spin:postgres/postgres@3.0.0",
47 "spin:postgres/postgres@4.2.0",
48 "spin:redis/redis@3.0.0",
49 "wasi:http/client@0.3.0",
50 "wasi:http/client@0.3.0-rc-2026-03-15",
51 "wasi:http/outgoing-handler@0.2.6",
52 "wasi:sockets/ip-name-lookup@0.2.6",
53 "wasi:sockets/ip-name-lookup@0.3.0",
54 "wasi:sockets/ip-name-lookup@0.3.0-rc-2026-03-15",
55 "wasi:sockets/tcp-create-socket@0.2.6",
56 "wasi:sockets/tcp@0.2.6",
57 "wasi:sockets/udp-create-socket@0.2.6",
58 "wasi:sockets/udp@0.2.6",
59];
60
61const ENVIRONMENT: &[&str] = &[
62 "wasi:cli/environment@0.2.6",
63 "wasi:cli/environment@0.3.0",
64 "wasi:cli/environment@0.3.0-rc-2026-03-15",
65];
66
67const FILES: &[&str] = &[
68 "wasi:filesystem/preopens@0.2.6",
69 "wasi:filesystem/preopens@0.3.0",
70 "wasi:filesystem/preopens@0.3.0-rc-2026-03-15",
71];
72
73const KEY_VALUE_STORES: &[&str] = &[
74 "fermyon:spin/key-value",
75 "fermyon:spin/key-value@2.0.0",
76 "spin:key-value/key-value@3.0.0",
77 "wasi:keyvalue/store@0.2.0-draft2",
78 "wasi:keyvalue/atomics@0.2.0-draft2",
79 "wasi:keyvalue/batch@0.2.0-draft2",
80];
81
82const SQLITE_DATABASES: &[&str] = &[
83 "fermyon:spin/sqlite",
84 "fermyon:spin/sqlite@2.0.0",
85 "spin:sqlite/sqlite@3.1.0",
86];
87
88const VARIABLES: &[&str] = &[
89 "fermyon:spin/config",
90 "fermyon:spin/variables@2.0.0",
91 "spin:variables/variables@3.0.0",
92 "wasi:config/store@0.2.0-draft-2024-09-27",
93];