Skip to main content

ignition_core/
lib.rs

1//! Core library for `ign` — the Ignition 8.3+ gateway CLI.
2//!
3//! This crate holds everything the binary (and, from Phase 6, the TUI) shares:
4//! config/profile management, the gateway HTTP client, actions, the typed
5//! error taxonomy, and output models.
6//!
7//! Invariants (ARCHITECTURE.md layering, made structural in Phase 1):
8//! - Core compiles without clap and without ratatui.
9//! - Core never prints to stdout — it returns models; the binary renders.
10//! - Actions are plain functions over injected [`client::GatewayApi`]-style
11//!   seams, so the CLI and the TUI call the same code.
12//!
13//! Module map: `error` (the LOCKED exit-code taxonomy + failure envelope),
14//! `output` (the LOCKED success envelope), `config` (discovery, profiles,
15//! secrets, rigs), `client` (the [`client::GatewayApi`] seam + GatewayInfo),
16//! `session` (the [`session::Session`] execution seam — the ONE resolution
17//! choreography every auth/gateway client flows through), `poll` (the
18//! shared wait/retry engine), `rig` (the compose shell-out
19//! engine — runner seam, discovery, pre-flight), `actions` (the shared
20//! verb layer), `webdev` (the embedded route bundle `ign webdev deploy`
21//! zips — pure data, no I/O), and `module` (the pinned third-party
22//! `.modl` artifact registry, fetch, and cache-verify seam — Phase 15), and
23//! `deploy` (offline render of declared gateway trees — Phase 21).
24
25pub mod actions;
26pub mod client;
27pub mod config;
28pub mod deploy;
29pub mod e2e;
30pub mod error;
31pub mod module;
32pub mod output;
33pub mod poll;
34pub mod rig;
35pub mod session;
36pub mod webdev;