A managed host runs idunn-host in the user session. It dials Idunn's hub over CultNet RUDP on the mesh, proves itself with a host actuator service identity, and executes the runner and workload ports for its host: fetch the exact frozen revision, build with the host's cargo under the binding's allowed programs, install the sealed release, start the workload as a child, report pid, creation time and executable digest, stop on request. It keeps no transaction state and decides nothing. On the Idunn side the engine chooses the runner and workload driver per plan from the binding's driver tag; the yggdrasil daemon is still the single deployment and continuity authority, and a binding of the old kind takes the same path it always did. Every request is signed by Idunn's identity and every report by the host's; both ends refuse the other's message unless signature, session nonce and sequence hold. The hub admits its own firewall allow the way the route driver does. idunn-provision learns to enroll and export the host actuator identity. The unit gains --host-actuator-bind on the mesh address. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
51 lines
1.3 KiB
TOML
51 lines
1.3 KiB
TOML
[package]
|
|
description = "GameCult deployment admission and daemon-survival authority"
|
|
name = "idunn"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
license = "MIT"
|
|
publish = false
|
|
|
|
[[bin]]
|
|
name = "idunn"
|
|
path = "src/main.rs"
|
|
|
|
[[bin]]
|
|
name = "idunn-provision"
|
|
path = "src/bin/idunn-provision.rs"
|
|
|
|
[[bin]]
|
|
name = "idunn-host"
|
|
path = "src/bin/idunn-host.rs"
|
|
|
|
[lib]
|
|
name = "idunn_daemon"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
anyhow = "1"
|
|
cultmesh-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultmesh-rs" }
|
|
cultcache-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultcache-rs" }
|
|
cultnet-rs = { git = "https://github.com/GameCult/CultLib.git", rev = "c13b6ba07e99f2535b455da74d07d88c308731f5", package = "cultnet-rs" }
|
|
rmp-serde = "1.3"
|
|
sha2 = "0.10"
|
|
chrono = "0.4"
|
|
serde = { version = "1", features = ["derive"] }
|
|
ed25519-dalek = "2.2"
|
|
toml = "0.8"
|
|
uuid = { version = "1", features = ["v4"] }
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|
|
|
|
[target.'cfg(unix)'.dependencies]
|
|
libc = "0.2"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-sys = { version = "0.59", features = [
|
|
"Win32_Foundation",
|
|
"Win32_Security",
|
|
"Win32_Security_Authorization",
|
|
"Win32_System_RemoteDesktop",
|
|
"Win32_System_Threading",
|
|
] }
|