Skip to main content

syncable_cli/wizard/
mod.rs

1//! Interactive deployment wizard for configuring new services
2//!
3//! Provides a step-by-step TUI wizard for deploying services to the Syncable platform.
4
5mod cloud_provider_data;
6mod cluster_selection;
7mod config_form;
8mod dockerfile_selection;
9mod environment_creation;
10mod environment_selection;
11mod infrastructure_selection;
12mod orchestrator;
13mod provider_selection;
14pub mod recommendations;
15mod registry_provisioning;
16mod registry_selection;
17mod render;
18mod repository_selection;
19mod service_endpoints;
20mod target_selection;
21
22pub use cloud_provider_data::{
23    CloudRegion,
24    DynamicCloudRegion,
25    DynamicMachineType,
26    HetznerFetchResult,
27    MachineType,
28    check_hetzner_availability,
29    find_best_region,
30    find_cheapest_available,
31    get_default_machine_type,
32    get_default_region,
33    // Dynamic Hetzner availability functions for agent use
34    get_hetzner_regions_dynamic,
35    get_hetzner_server_types_dynamic,
36    get_machine_types_for_provider,
37    get_recommended_server_type,
38    get_regions_for_provider,
39};
40pub use cluster_selection::{ClusterSelectionResult, select_cluster};
41pub use config_form::{
42    ConfigFormResult, EnvFileEntry, collect_config, collect_env_vars, discover_env_files,
43    parse_env_file,
44};
45pub use dockerfile_selection::{DockerfileSelectionResult, select_dockerfile};
46pub use environment_creation::{EnvironmentCreationResult, create_environment_wizard};
47pub use environment_selection::{EnvironmentSelectionResult, select_environment};
48pub use infrastructure_selection::{
49    InfrastructureSelectionResult, select_infrastructure, select_infrastructure_sync,
50};
51pub use orchestrator::{WizardResult, run_wizard};
52pub use provider_selection::{
53    ProviderSelectionResult, get_provider_deployment_statuses, select_provider,
54};
55pub use recommendations::{
56    DeploymentRecommendation, MachineOption, ProviderOption, RecommendationAlternatives,
57    RecommendationInput, RegionOption, recommend_deployment,
58};
59pub use registry_provisioning::{RegistryProvisioningResult, provision_registry};
60pub use registry_selection::{RegistrySelectionResult, select_registry};
61pub use render::{count_badge, display_step_header, status_indicator, wizard_render_config};
62pub use repository_selection::{RepositorySelectionResult, select_repository};
63pub use service_endpoints::{
64    AvailableServiceEndpoint, EndpointSuggestion, MatchConfidence, NetworkEndpointInfo,
65    collect_network_endpoint_env_vars, collect_service_endpoint_env_vars,
66    extract_network_endpoints, filter_endpoints_for_provider, get_available_endpoints,
67    match_env_vars_to_services,
68};
69pub use target_selection::{TargetSelectionResult, select_target};