Skip to main content

qualia_client_core/identity_plane/
mod.rs

1//! Person ≠ machine ≠ OS-account identity plane.
2//!
3//! # Model
4//!
5//! | Principal | Meaning | Portable? |
6//! |-----------|---------|-----------|
7//! | **Person** | Natural-person principal who controls Webizen | Yes — import/export across machines |
8//! | **Device (apparatus)** | One install of Qualia on one machine | No — unique per install |
9//! | **OS account** | Windows/macOS/Linux login | Not used as identity |
10//!
11//! A person may run Qualia on several devices. Jobs may name a target
12//! `device_id`; work runs locally only when the target is this apparatus
13//! (or unspecified). Remote dispatch is fail-closed until a live transport
14//! is wired — fleet registration still records peer devices for placement.
15//!
16//! Secrets stay in app meta (`person_identity.json`, `node_identity.json`,
17//! `device_fleet.json`). Public snapshots never include private keys.
18
19mod device;
20mod fleet;
21mod person;
22
23pub use device::{DeviceCapabilities, DeviceRecord, DeviceRecordPublic};
24pub mod fleet_jobs;
25
26pub use fleet::{
27    ensure_local_apparatus, export_person_public, export_person_transfer_bundle,
28    get_identity_plane, import_person_transfer_bundle, list_devices, register_remote_device,
29    resolve_job_placement, set_local_control_base_url, sync_local_device_context,
30    IdentityPlaneSnapshot, JobPlacement,
31};
32pub use fleet_jobs::{
33    accept_fleet_job_envelope, deliver_or_queue_remote_job, list_remote_outbox, FleetJobEnvelope,
34    RemoteOutboxEntry,
35};
36pub use person::{PersonPrincipal, PersonPublic, PersonTransferBundle};