Skip to main content

Crate ignition_core

Crate ignition_core 

Source
Expand description

Core library for ign — the Ignition 8.3+ gateway CLI.

This crate holds everything the binary (and, from Phase 6, the TUI) shares: config/profile management, the gateway HTTP client, actions, the typed error taxonomy, and output models.

Invariants (ARCHITECTURE.md layering, made structural in Phase 1):

  • Core compiles without clap and without ratatui.
  • Core never prints to stdout — it returns models; the binary renders.
  • Actions are plain functions over injected client::GatewayApi-style seams, so the CLI and the TUI call the same code.

Module map: error (the LOCKED exit-code taxonomy + failure envelope), output (the LOCKED success envelope), config (discovery, profiles, secrets, rigs), client (the client::GatewayApi seam + GatewayInfo), session (the session::Session execution seam — the ONE resolution choreography every auth/gateway client flows through), poll (the shared wait/retry engine), rig (the compose shell-out engine — runner seam, discovery, pre-flight), actions (the shared verb layer), webdev (the embedded route bundle ign webdev deploy zips — pure data, no I/O), and module (the pinned third-party .modl artifact registry, fetch, and cache-verify seam — Phase 15), and deploy (offline render of declared gateway trees — Phase 21).

Modules§

actions
Actions — the shared verb layer (ARCHITECTURE.md layering invariant: CLI handlers and, from Phase 6, the TUI both call these).
client
The gateway HTTP seam: a coarse GatewayApi trait so actions never touch reqwest types, plus the production ReqwestGatewayApi.
config
Config discovery, load/save, selection, and the env overlay (research Pattern 2).
deploy
Offline render of declared gateway trees (Phase 21).
e2e
The embedded Playwright scaffold ign e2e init writes (QUICK-tg4).
error
Typed error taxonomy — THE exit-code contract for ign.
module
Pinned third-party .modl module artifacts (Phase 15) — the registry seam (ModuleSpec, spec_for) and the on-disk cache (cache_root, module_cache_dir, cached_entry) that fetch verifies into.
output
Success envelope rendering — the LOCKED Phase-1 output shape.
poll
The ONE wait/retry engine (02-04) — shared by the log tail here and by 02-05’s wait / restart --wait. Deliberately ~40 lines + tests instead of a retry framework (STACK.md rejected reqwest-middleware; 02-RESEARCH §Wait-loop pattern).
rig
Rig discovery + pre-flight (04-01, RIG-01): the RigPlan model, the LOCKED 5-level discovery that always ends in one resolve-then-act config run, and the port-collision pre-flight.
session
The execution session — the ONE seam every auth/gateway-client resolution flows through (CORE-09).
webdev
Embedded WebDev route bundle — the CLI’s own gateway-side surface.