[package]
edition = "2021"
rust-version = "1.88"
name = "cellos-supervisor"
version = "0.5.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "CellOS execution-cell runner — boots cells in Firecracker microVMs or gVisor, enforces narrow typed authority, emits signed CloudEvents."
homepage = "https://github.com/0ryant/CellOS"
documentation = "https://docs.rs/cellos-supervisor"
readme = "README.md"
keywords = [
"cellos",
"firecracker",
"gvisor",
"microvm",
"sandbox",
]
categories = [
"virtualization",
"emulators",
"os::linux-apis",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/0ryant/CellOS"
[features]
ebpf-aya = ["dep:aya"]
[lib]
name = "cellos_supervisor"
path = "src/lib.rs"
[[bin]]
name = "cellos-supervisor"
path = "src/main.rs"
[[test]]
name = "break_attempt_authority_token_replay"
path = "tests/break_attempt_authority_token_replay.rs"
[[test]]
name = "break_attempt_dns_dnssec_downgrade"
path = "tests/break_attempt_dns_dnssec_downgrade.rs"
[[test]]
name = "break_attempt_dns_rebinding"
path = "tests/break_attempt_dns_rebinding.rs"
[[test]]
name = "break_attempt_h2_continuation_flood"
path = "tests/break_attempt_h2_continuation_flood.rs"
[[test]]
name = "break_attempt_h2_multi_stream"
path = "tests/break_attempt_h2_multi_stream.rs"
[[test]]
name = "break_attempt_kernel_udp_443"
path = "tests/break_attempt_kernel_udp_443.rs"
[[test]]
name = "break_attempt_sni_mismatch_h2c"
path = "tests/break_attempt_sni_mismatch_h2c.rs"
[[test]]
name = "break_attempts_capability_drop"
path = "tests/break_attempts_capability_drop.rs"
[[test]]
name = "break_attempts_capability_drop_ptrace"
path = "tests/break_attempts_capability_drop_ptrace.rs"
[[test]]
name = "break_attempts_capability_grant"
path = "tests/break_attempts_capability_grant.rs"
[[test]]
name = "break_attempts_post_isolation_residue"
path = "tests/break_attempts_post_isolation_residue.rs"
[[test]]
name = "caller_identity_resolution"
path = "tests/caller_identity_resolution.rs"
[[test]]
name = "dataplane_dnssec_per_type_validation"
path = "tests/dataplane_dnssec_per_type_validation.rs"
[[test]]
name = "dataplane_dnssec_validation"
path = "tests/dataplane_dnssec_validation.rs"
[[test]]
name = "doctrine"
path = "tests/doctrine.rs"
[[test]]
name = "event_signing_posture_drift"
path = "tests/event_signing_posture_drift.rs"
[[test]]
name = "event_signing_strict_config"
path = "tests/event_signing_strict_config.rs"
[[test]]
name = "fc74_audit_retention_no_drop"
path = "tests/fc74_audit_retention_no_drop.rs"
[[test]]
name = "firecracker_e2e"
path = "tests/firecracker_e2e.rs"
[[test]]
name = "flow_accumulator_invariants"
path = "tests/flow_accumulator_invariants.rs"
[[test]]
name = "pid1_assertion"
path = "tests/pid1_assertion.rs"
[[test]]
name = "residue"
path = "tests/residue.rs"
[[test]]
name = "rrsig_metadata_extraction"
path = "tests/rrsig_metadata_extraction.rs"
[[test]]
name = "secret_delivery_default_broker"
path = "tests/secret_delivery_default_broker.rs"
[[test]]
name = "signing_config_zeroize"
path = "tests/signing_config_zeroize.rs"
[[test]]
name = "sink_composition_chain"
path = "tests/sink_composition_chain.rs"
[[test]]
name = "spec_input_tenant_template"
path = "tests/spec_input_tenant_template.rs"
[[test]]
name = "supervisor_argv0_prefix"
path = "tests/supervisor_argv0_prefix.rs"
[[test]]
name = "supervisor_authz"
path = "tests/supervisor_authz.rs"
[[test]]
name = "supervisor_command_failure"
path = "tests/supervisor_command_failure.rs"
[[test]]
name = "supervisor_continuous_resolver_refresh"
path = "tests/supervisor_continuous_resolver_refresh.rs"
[[test]]
name = "supervisor_derivation_scope_policy"
path = "tests/supervisor_derivation_scope_policy.rs"
[[test]]
name = "supervisor_dns_proxy"
path = "tests/supervisor_dns_proxy.rs"
[[test]]
name = "supervisor_dns_proxy_doh"
path = "tests/supervisor_dns_proxy_doh.rs"
[[test]]
name = "supervisor_dns_proxy_doq"
path = "tests/supervisor_dns_proxy_doq.rs"
[[test]]
name = "supervisor_dns_proxy_dot"
path = "tests/supervisor_dns_proxy_dot.rs"
[[test]]
name = "supervisor_dns_proxy_e2e"
path = "tests/supervisor_dns_proxy_e2e.rs"
[[test]]
name = "supervisor_dns_proxy_per_query_events"
path = "tests/supervisor_dns_proxy_per_query_events.rs"
[[test]]
name = "supervisor_dns_proxy_tcp"
path = "tests/supervisor_dns_proxy_tcp.rs"
[[test]]
name = "supervisor_dnssec_validation"
path = "tests/supervisor_dnssec_validation.rs"
[[test]]
name = "supervisor_doq_block"
path = "tests/supervisor_doq_block.rs"
[[test]]
name = "supervisor_ebpf_integration"
path = "tests/supervisor_ebpf_integration.rs"
[[test]]
name = "supervisor_ebpf_per_flow_realtime"
path = "tests/supervisor_ebpf_per_flow_realtime.rs"
[[test]]
name = "supervisor_export_artifact"
path = "tests/supervisor_export_artifact.rs"
[[test]]
name = "supervisor_export_requires_sink"
path = "tests/supervisor_export_requires_sink.rs"
[[test]]
name = "supervisor_export_retry"
path = "tests/supervisor_export_retry.rs"
[[test]]
name = "supervisor_file_broker"
path = "tests/supervisor_file_broker.rs"
[[test]]
name = "supervisor_firecracker_config"
path = "tests/supervisor_firecracker_config.rs"
[[test]]
name = "supervisor_github_oidc_s3_smoke"
path = "tests/supervisor_github_oidc_s3_smoke.rs"
[[test]]
name = "supervisor_gvisor_backend_selection"
path = "tests/supervisor_gvisor_backend_selection.rs"
[[test]]
name = "supervisor_i4_hardened_default"
path = "tests/supervisor_i4_hardened_default.rs"
[[test]]
name = "supervisor_l7_gate"
path = "tests/supervisor_l7_gate.rs"
[[test]]
name = "supervisor_linux_cgroup_cpu_max"
path = "tests/supervisor_linux_cgroup_cpu_max.rs"
[[test]]
name = "supervisor_linux_cross_run_ns"
path = "tests/supervisor_linux_cross_run_ns.rs"
[[test]]
name = "supervisor_linux_network_policy"
path = "tests/supervisor_linux_network_policy.rs"
[[test]]
name = "supervisor_linux_private_workspace"
path = "tests/supervisor_linux_private_workspace.rs"
[[test]]
name = "supervisor_linux_seccomp"
path = "tests/supervisor_linux_seccomp.rs"
[[test]]
name = "supervisor_linux_unshare"
path = "tests/supervisor_linux_unshare.rs"
[[test]]
name = "supervisor_multi_target_export"
path = "tests/supervisor_multi_target_export.rs"
[[test]]
name = "supervisor_no_ambient_env"
path = "tests/supervisor_no_ambient_env.rs"
[[test]]
name = "supervisor_per_flow_enforcement"
path = "tests/supervisor_per_flow_enforcement.rs"
[[test]]
name = "supervisor_per_flow_realtime"
path = "tests/supervisor_per_flow_realtime.rs"
[[test]]
name = "supervisor_policy_admission"
path = "tests/supervisor_policy_admission.rs"
[[test]]
name = "supervisor_policy_pack_symlink"
path = "tests/supervisor_policy_pack_symlink.rs"
[[test]]
name = "supervisor_redact_events"
path = "tests/supervisor_redact_events.rs"
[[test]]
name = "supervisor_require_authority_derivation"
path = "tests/supervisor_require_authority_derivation.rs"
[[test]]
name = "supervisor_require_http_export"
path = "tests/supervisor_require_http_export.rs"
[[test]]
name = "supervisor_require_jetstream"
path = "tests/supervisor_require_jetstream.rs"
[[test]]
name = "supervisor_require_s3_export"
path = "tests/supervisor_require_s3_export.rs"
[[test]]
name = "supervisor_resolver_refresh"
path = "tests/supervisor_resolver_refresh.rs"
[[test]]
name = "supervisor_run_timeout"
path = "tests/supervisor_run_timeout.rs"
[[test]]
name = "supervisor_run_true"
path = "tests/supervisor_run_true.rs"
[[test]]
name = "supervisor_runtime_secret_broker"
path = "tests/supervisor_runtime_secret_broker.rs"
[[test]]
name = "supervisor_secret_injection"
path = "tests/supervisor_secret_injection.rs"
[[test]]
name = "supervisor_sequential_export_runs"
path = "tests/supervisor_sequential_export_runs.rs"
[[test]]
name = "supervisor_signed_fixture_e2e"
path = "tests/supervisor_signed_fixture_e2e.rs"
[[test]]
name = "supervisor_sni_proxy_e2e"
path = "tests/supervisor_sni_proxy_e2e.rs"
[[test]]
name = "supervisor_spec_stdin"
path = "tests/supervisor_spec_stdin.rs"
[[test]]
name = "supervisor_spec_symlink"
path = "tests/supervisor_spec_symlink.rs"
[[test]]
name = "supervisor_target_scoped_s3_export"
path = "tests/supervisor_target_scoped_s3_export.rs"
[[test]]
name = "supervisor_trust_keyset_verify"
path = "tests/supervisor_trust_keyset_verify.rs"
[[test]]
name = "supervisor_trust_plane_events"
path = "tests/supervisor_trust_plane_events.rs"
[[test]]
name = "supervisor_ttl_watchdog"
path = "tests/supervisor_ttl_watchdog.rs"
[[test]]
name = "supervisor_validate_mode"
path = "tests/supervisor_validate_mode.rs"
[[test]]
name = "supervisor_warm_pool_startup"
path = "tests/supervisor_warm_pool_startup.rs"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.22"
[dependencies.cellos-broker-env]
version = "0.5.1"
[dependencies.cellos-broker-file]
version = "0.5.1"
[dependencies.cellos-broker-oidc]
version = "0.5.1"
[dependencies.cellos-broker-vault]
version = "0.5.1"
[dependencies.cellos-core]
version = "0.7.2"
features = ["tracing-layer"]
[dependencies.cellos-export-http]
version = "0.5.1"
[dependencies.cellos-export-local]
version = "0.5.1"
[dependencies.cellos-export-s3]
version = "0.5.1"
[dependencies.cellos-host-cellos]
version = "0.5.1"
[dependencies.cellos-host-firecracker]
version = "0.5.1"
[dependencies.cellos-host-stub]
version = "0.5.1"
[dependencies.cellos-host-telemetry]
version = "0.5.1"
[dependencies.cellos-sink-dlq]
version = "0.5.1"
[dependencies.cellos-sink-jetstream]
version = "0.5.1"
[dependencies.cellos-sink-jsonl]
version = "0.5.1"
[dependencies.cellos-sink-redact]
version = "0.5.1"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.ed25519-dalek]
version = "2"
features = ["zeroize"]
[dependencies.hickory-proto]
version = "0.26.1"
features = ["dnssec-ring"]
default-features = false
[dependencies.hickory-resolver]
version = "0.26.1"
features = [
"tokio",
"system-config",
"dnssec-ring",
]
default-features = false
[dependencies.ipnet]
version = "2"
[dependencies.quinn]
version = "0.11"
features = [
"rustls",
"runtime-tokio",
"ring",
]
default-features = false
[dependencies.reqwest]
version = "0.12"
features = [
"rustls-tls",
"stream",
"json",
"rustls-tls",
"http2",
]
default-features = false
[dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
"tls12",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.11"
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"sync",
"rt-multi-thread",
"macros",
"sync",
"process",
"time",
"net",
"io-util",
]
[dependencies.tokio-rustls]
version = "0.26"
features = ["ring"]
default-features = false
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"fmt",
]
[dependencies.uuid]
version = "1"
features = [
"v4",
"serde",
]
[dependencies.webpki-roots]
version = "1"
[dependencies.zeroize]
version = "1.8"
features = [
"std",
"alloc",
"derive",
]
[dev-dependencies.base64]
version = "0.22"
[dev-dependencies.cellos-sink-dlq]
version = "0.5.1"
[dev-dependencies.ed25519-dalek]
version = "2"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.rcgen]
version = "0.14"
[dev-dependencies.rustls-pemfile]
version = "2"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[target.'cfg(target_os = "linux")'.dependencies.aya]
version = "0.13"
features = ["async_tokio"]
optional = true
[target.'cfg(target_os = "linux")'.dependencies.cellos-host-gvisor]
version = "0.5.1"
[target."cfg(unix)".dependencies.libc]
version = "0.2"
[lints.clippy]
doc_lazy_continuation = "allow"
doc_overindented_list_items = "allow"