Skip to main content

soma_infra/
lib.rs

1//! Product-neutral infrastructure read and verified mutation engines.
2//!
3//! `soma-infra` defines typed host, Docker, Compose, filesystem, process, log,
4//! and ZFS contracts above `soma-fleet`, plus bounded mutation coordinators that
5//! preserve send state and verify postconditions. Product configuration,
6//! authorization, and CLI/MCP/REST presentation remain outside.
7
8#![forbid(unsafe_code)]
9#![warn(missing_docs)]
10
11mod build_context;
12mod compose;
13mod compose_build;
14mod compose_build_engine;
15mod compose_down;
16mod compose_down_engine;
17mod compose_mutation;
18mod compose_parse;
19mod compose_pull;
20mod compose_pull_engine;
21mod compose_recreate;
22mod compose_recreate_engine;
23mod container_exec;
24mod container_mutation;
25mod container_mutation_engine;
26mod container_recreate;
27mod container_recreate_engine;
28mod docker;
29mod docker_cleanup;
30mod docker_cleanup_engine;
31mod docker_provider;
32mod docker_telemetry;
33#[cfg(feature = "bollard-driver")]
34mod docker_telemetry_map;
35mod error;
36mod file_transfer;
37mod file_transfer_engine;
38mod filesystem;
39mod filesystem_query;
40mod host;
41mod host_exec;
42mod host_exec_argv;
43mod host_exec_many;
44mod host_exec_policy;
45mod host_system;
46#[cfg(feature = "process-driver")]
47mod host_system_parse;
48mod image_build;
49mod image_build_engine;
50mod image_pull;
51mod image_pull_engine;
52mod logs;
53mod mutation;
54mod process;
55mod progress_sink;
56mod zfs;
57
58#[cfg(feature = "bollard-driver")]
59mod bollard_cleanup;
60#[cfg(feature = "bollard-driver")]
61mod bollard_driver;
62#[cfg(feature = "bollard-driver")]
63mod bollard_exec;
64#[cfg(feature = "bollard-driver")]
65mod bollard_image_pull;
66#[cfg(feature = "bollard-driver")]
67mod bollard_mutation;
68#[cfg(feature = "remote-bollard")]
69mod bollard_provider;
70#[cfg(feature = "bollard-driver")]
71mod bollard_recreate;
72#[cfg(feature = "bollard-driver")]
73mod bollard_telemetry;
74#[cfg(feature = "bollard-driver")]
75mod docker_map;
76#[cfg(all(feature = "linux-filesystem", target_os = "linux"))]
77mod linux_filesystem;
78#[cfg(feature = "process-driver")]
79mod process_build_context;
80#[cfg(feature = "process-driver")]
81mod process_compose;
82#[cfg(feature = "process-driver")]
83mod process_compose_build;
84#[cfg(feature = "process-driver")]
85mod process_compose_down;
86#[cfg(feature = "process-driver")]
87mod process_compose_mutation;
88#[cfg(feature = "process-driver")]
89mod process_compose_pull;
90#[cfg(feature = "process-driver")]
91mod process_compose_recreate;
92#[cfg(feature = "process-driver")]
93mod process_file_transfer;
94#[cfg(feature = "process-driver")]
95mod process_filesystem;
96#[cfg(feature = "process-driver")]
97mod process_host_exec;
98#[cfg(feature = "process-driver")]
99mod process_host_system;
100#[cfg(feature = "process-driver")]
101mod process_image_build;
102#[cfg(feature = "process-driver")]
103mod process_logs;
104#[cfg(feature = "process-driver")]
105mod process_process;
106#[cfg(feature = "process-driver")]
107mod process_zfs;
108
109#[cfg(feature = "bollard-driver")]
110pub use bollard_driver::BollardReadClient;
111#[cfg(feature = "remote-bollard")]
112pub use bollard_provider::BollardClientProvider;
113pub use build_context::{BuildContextFingerprint, BuildContextInspector, BuildContextPolicy};
114pub use compose::{
115    ComposeConfig, ComposeInspector, ComposeLogRequest, ComposeLogs, ComposeProject,
116    ComposeProjectRef, ComposeServiceConfig, ComposeServiceStatus, ComposeStatus,
117};
118pub use compose_build::{
119    ComposeBuildArtifact, ComposeBuildMutator, ComposeBuildOutcome, ComposeBuildReceipt,
120    ComposeBuildRequest, ComposeBuiltImage, resolve_compose_build_context,
121};
122pub use compose_build_engine::{ComposeBuildEngine, ComposeBuildServices};
123pub use compose_down::{
124    ComposeDownClient, ComposeDownMutator, ComposeDownOutcome, ComposeDownReceipt,
125    ComposeDownRequest,
126};
127pub use compose_down_engine::ComposeDownEngine;
128pub use compose_mutation::{
129    ComposeMutationAction, ComposeMutationClient, ComposeMutationEngine, ComposeMutationOutcome,
130    ComposeMutationReceipt, ComposeMutationRequest, ComposeMutator,
131};
132pub use compose_pull::{
133    ComposePullClient, ComposePullMutator, ComposePullOutcome, ComposePullReceipt,
134    ComposePullRequest, ComposePulledImage,
135};
136pub use compose_pull_engine::ComposePullEngine;
137pub use compose_recreate::{
138    ComposeRecreateClient, ComposeRecreateFingerprint, ComposeRecreateMutator,
139    ComposeRecreateOutcome, ComposeRecreateReceipt, ComposeRecreateRequest,
140    compose_recreate_fingerprint,
141};
142pub use compose_recreate_engine::ComposeRecreateEngine;
143pub use container_exec::{
144    ContainerExecClientProvider, ContainerExecMutator, ContainerExecReceipt, ContainerExecRequest,
145};
146pub use container_mutation::{
147    ContainerLifecycleAction, ContainerLifecycleMutator, ContainerLifecycleOutcome,
148    ContainerLifecycleRequest, ContainerMutationReceipt, DockerMutationClient,
149    DockerMutationClientProvider, MutationVerificationPolicy,
150};
151pub use container_mutation_engine::ContainerLifecycleEngine;
152pub use container_recreate::{
153    ContainerRecreateClient, ContainerRecreateClientProvider, ContainerRecreateFingerprint,
154    ContainerRecreateInspector, ContainerRecreateMutator, ContainerRecreateOutcome,
155    ContainerRecreateReceipt, ContainerRecreateRequest, ContainerRecreateStage,
156};
157pub use container_recreate_engine::ContainerRecreateEngine;
158pub use docker::{
159    ContainerInspect, ContainerListOptions, ContainerProcessTable, ContainerReader, ContainerState,
160    ContainerSummary, DockerSystemInfo, DockerSystemReader, ImageListOptions, ImageReader,
161    ImageSummary, NetworkReader, NetworkSummary, VolumeReader, VolumeSummary,
162};
163pub use docker_cleanup::{
164    DockerCleanupClient, DockerCleanupClientProvider, DockerCleanupMutator, DockerPruneFingerprint,
165    DockerPruneOutcome, DockerPruneReceipt, DockerPruneRequest, DockerPruneScopeReceipt,
166    DockerPruneTarget, ImageRemovalFingerprint, ImageRemovalOutcome, ImageRemovalReceipt,
167    ImageRemovalRequest,
168};
169pub use docker_cleanup_engine::DockerCleanupEngine;
170pub use docker_provider::{DockerClientProvider, DockerReadClient};
171pub use docker_telemetry::{
172    ContainerLogOptions, ContainerLogs, ContainerStatsSnapshot, DockerDiskUsage, DockerLogStream,
173    DockerTelemetryReader, DockerUsageCategory,
174};
175pub use error::{InfraError, InfraResult};
176pub use file_transfer::{
177    FileTransferFingerprint, FileTransferInspector, FileTransferPathRole, FileTransferPolicy,
178    MAX_FILE_TRANSFER_BYTES, TransferFileIdentity, VerifiedFileTransferClient,
179    VerifiedFileTransferOutcome, VerifiedFileTransferRequest,
180};
181pub use file_transfer_engine::FileTransferEngine;
182pub use filesystem::{
183    FileHash, FileKind, FileMetadata, FilePreview, FileReadPolicy, FilesystemInspector,
184};
185pub use filesystem_query::{
186    FileFindRequest, FileSearch, FileTail, FileTailRequest, FilesystemQueryInspector, PathRead,
187    PathReadRequest,
188};
189pub use host::{
190    HostIdentity, HostInspectRequest, HostInspection, HostInspector, HostLoadAverage, HostMemory,
191    LinuxCommandHostInspector,
192};
193pub use host_exec::{HostExecCommand, HostExecMutator, HostExecReceipt, HostExecRequest};
194pub use host_exec_many::{
195    HostExecManyEngine, HostExecManyOutcome, HostExecTargetResult, HostExecTargetStatus,
196};
197pub use host_exec_policy::HostExecPolicy;
198pub use host_system::{
199    DoctorCheck, DoctorReport, FilesystemUsage, HostSystemInspector, MountInfo, NetworkAddress,
200    NetworkInterface, PortInfo, PortListRequest, PortProtocol, ServiceListRequest, ServiceStatus,
201};
202pub use image_build::{ImageBuildMutator, ImageBuildOutcome, ImageBuildReceipt, ImageBuildRequest};
203pub use image_build_engine::{ImageBuildEngine, ImageBuildServices};
204pub use image_pull::{
205    DockerArtifactClient, DockerArtifactClientProvider, ImageIdentity, ImagePullMutator,
206    ImagePullOutcome, ImagePullProgressFrame, ImagePullReceipt, ImagePullRequest,
207    canonical_image_reference,
208};
209pub use image_pull_engine::ImagePullEngine;
210#[cfg(all(feature = "linux-filesystem", target_os = "linux"))]
211pub use linux_filesystem::LinuxFilesystemInspector;
212pub use logs::{
213    JournalFilters, JournalPriority, LogPermissionDiagnostic, LogRead, LogReadRequest, LogReader,
214    LogSource,
215};
216pub use mutation::{MutationFailure, MutationResult, MutationVerification};
217pub use process::{ProcessInspector, ProcessListRequest, ProcessRow, ProcessSnapshot, ProcessSort};
218#[cfg(feature = "process-driver")]
219pub use process_build_context::CommandBuildContextInspector;
220#[cfg(feature = "process-driver")]
221pub use process_compose::CommandComposeInspector;
222#[cfg(feature = "process-driver")]
223pub use process_compose_build::CommandComposeBuildMutator;
224#[cfg(feature = "process-driver")]
225pub use process_file_transfer::CommandFileTransfer;
226#[cfg(feature = "process-driver")]
227pub use process_filesystem::CommandFilesystemQueryInspector;
228#[cfg(feature = "process-driver")]
229pub use process_host_exec::CommandHostExec;
230#[cfg(feature = "process-driver")]
231pub use process_host_system::CommandHostSystemInspector;
232#[cfg(feature = "process-driver")]
233pub use process_image_build::CommandImageBuildMutator;
234#[cfg(feature = "process-driver")]
235pub use process_logs::CommandLogReader;
236#[cfg(feature = "process-driver")]
237pub use process_process::CommandProcessInspector;
238#[cfg(feature = "process-driver")]
239pub use process_zfs::CommandZfsInspector;
240pub use progress_sink::MutationProgressReporter;
241pub use zfs::{
242    ZfsDatasetRequest, ZfsDatasetType, ZfsInspector, ZfsPoolRequest, ZfsSnapshotRequest, ZfsTable,
243};