Skip to main content

Crate lonca_daemon

Crate lonca_daemon 

Source
Expand description

The Lonca daemon: the Gatekeeper every write goes through.

Re-exports§

pub use home::Home;
pub use service::Clock;
pub use service::Service;
pub use service::Settings;
pub use service::system_clock;

Modules§

client
Client for the daemon socket.
gitcmd
How the daemon runs git, the one program it starts for network transport (fetch, push) and for a few plumbing reads.
home
The daemon’s home directory.
hooked
What the daemon heard from a session’s hooks, to prove they run (#190).
hooks
Harness integration: turning hook events into observations and verdicts, and inspecting how well a harness is locked down.
limits
What keeps one client from tying the daemon up. All of it sits in front of the single writer and none of it reaches decide(): a request refused here was never logged, so a replay does not see it.
protocol
Wire protocol: one JSON object per line over a Unix socket. The shapes a client needs are in lonca-client; here is what only the daemon’s policy knows.
proxy
The Lonca network proxy (observation level H2).
repo
One repository: its store, its sequencer and its policy.
security
Security events outside the operation log (issue #56).
server
Unix socket server: one thread per connection, one JSON line per request. How many, for how long and how long a line: crate::limits.
service
Request handling: authentication, the single writer, side effects and the merge queue.
sys
Every call into libc the daemon makes, apart from peer_other.rs (macOS sandbox questions) and the client’s own (lonca_client::sys, re-exported here). Unsafe code is refused in the rest of the workspace ([workspace.lints]); each block here says why it is sound.
trust
Who a client expects on the other end of the daemon socket (design §3.3, measure 2). The daemon checks its peer’s uid; this is the other half, so that a process answering on the socket path gets neither a session token nor the last word on what a hook allows.

Structs§

Client