Skip to main content

Module server

Module server 

Source
Expand description

The central server (conclave serve): the axum WSS endpoint and control plane.

A single self-contained binary that owns: the axum WSS endpoint and control RPCs; the embedded store (see crate::store); in-memory presence with heartbeat reaping and the fan-out router; and admin authorization against the config users allowlist plus each channel’s created_by (DESIGN.md §7).

Durable state is config only — no message history. Presence, subscriptions, permission levels, and the admin allowlist are deliberately not in the DB (DESIGN.md §15).

The subsystem is split by responsibility: hub is the transport-agnostic core (store + in-memory presence, subscriptions, and the fan-out router); session is the per-connection handshake + frame loop; wss is the axum WebSocket adapter and the serve entrypoint. This module owns the AclError authorization boundary type and re-exports the public surface.

Structs§

ServerConfig
The operator-supplied serve configuration (DESIGN.md §7, §13).

Enums§

AclError
Errors at the access-control / authorization boundary (DESIGN.md §7, §16), matched on by the server and surfaced to the caller as a wire error frame.

Functions§

serve
Runs the central server until a shutdown signal (Ctrl-C) is received.

Type Aliases§

AdminAllowlist
The server-admin allowlist (DESIGN.md §7): each admin username mapped to the public key (base64) permitted to claim it, or None if unpinned. Pinning stops a fresh-deploy admin username from being squatted by the first client to register it (PRD-0007 T-002).