torrust_tracker_deployer_lib/application/command_handlers/mod.rs
1//! Application Command Handlers (Application Layer)
2//!
3//! This module contains high-level application command handlers that orchestrate complete
4//! deployment workflows. These command handlers represent the primary use cases of the system
5//! and coordinate between domain services and infrastructure adapters.
6//!
7//! Command handlers implement the Command Handler pattern and follow the three-level architecture:
8//! Command Handlers (Level 1) → Steps (Level 2) → Remote Actions (Level 3)
9//!
10//! ## Available Command Handlers
11//!
12//! - `configure` - Infrastructure configuration and software installation
13//! - `create` - Environment creation and initialization
14//! - `destroy` - Infrastructure destruction and teardown
15//! - `exists` - Check whether an environment exists (read-only)
16//! - `list` - List all environments in the workspace (read-only)
17//! - `provision` - Infrastructure provisioning using `OpenTofu`
18//! - `purge` - Remove all local environment data
19//! - `register` - Register existing instances as alternative to provisioning
20//! - `release` - Software release to target instances/// - `render` - Generate deployment artifacts without executing deployment//! - `run` - Stack execution on target instances
21//! - `show` - Display environment information and status (read-only)
22//! - `test` - Deployment testing and validation
23//! - `validate` - Validate environment configuration files (read-only)
24//!
25//! Each command handler encapsulates a complete business workflow, handling orchestration,
26//! error management, and coordination across multiple infrastructure services.
27
28pub mod common;
29pub mod configure;
30pub mod create;
31pub mod destroy;
32pub mod exists;
33pub mod list;
34pub mod provision;
35pub mod purge;
36pub mod register;
37pub mod release;
38pub mod render;
39pub mod run;
40pub mod show;
41pub mod test;
42pub mod validate;
43
44pub use configure::ConfigureCommandHandler;
45pub use create::CreateCommandHandler;
46pub use destroy::DestroyCommandHandler;
47pub use exists::ExistsCommandHandler;
48pub use list::ListCommandHandler;
49pub use provision::ProvisionCommandHandler;
50pub use purge::handler::PurgeCommandHandler;
51pub use register::RegisterCommandHandler;
52pub use release::ReleaseCommandHandler;
53pub use render::RenderCommandHandler;
54pub use run::RunCommandHandler;
55pub use show::ShowCommandHandler;
56pub use test::TestCommandHandler;
57pub use validate::ValidateCommandHandler;