pub struct AddServiceParams<'a> {Show 17 fields
pub service_name: &'a str,
pub exposure: &'a Exposure,
pub auth: AuthChoice,
pub enable_smtp: bool,
pub enable_backup: bool,
pub env_overrides: &'a BTreeMap<String, String>,
pub enabled_groups: &'a BTreeSet<String>,
pub selected_choices: &'a BTreeMap<String, String>,
pub registry_name: &'a str,
pub repo_dir: &'a Path,
pub pre_built_ctx: Option<BTreeMap<String, String>>,
pub port_in_use: &'a dyn Fn(u16) -> bool,
pub acme_mode: Option<&'a AcmeMode>,
pub mode: PlanMode,
pub port_overrides: &'a BTreeMap<String, u16>,
pub existing_env_file: Option<String>,
pub allow_unset_required: bool,
}Expand description
Inputs to add_service. One typed request instead of a positional
argument list, so call sites (CLI today, other frontends later) name
what they’re asking for and the retry path can’t drift out of sync
with the original call.
Fields§
§service_name: &'a str§exposure: &'a Exposure§auth: AuthChoice§enable_smtp: bool§enable_backup: bool§env_overrides: &'a BTreeMap<String, String>§enabled_groups: &'a BTreeSet<String>§selected_choices: &'a BTreeMap<String, String>[[choice]] selections (choice name -> option name). Choices absent
from the map fall back to their declared default at render time.
registry_name: &'a str§repo_dir: &'a Path§pre_built_ctx: Option<BTreeMap<String, String>>When provided, its secrets and auth credentials are reused instead of generating fresh ones. Pass the context from the interactive prompt phase so the values the user saw match what gets written.
port_in_use: &'a dyn Fn(u16) -> bool§acme_mode: Option<&'a AcmeMode>§mode: PlanMode§port_overrides: &'a BTreeMap<String, u16>Pin specific port assignments by name (e.g. {"http": 10005})
instead of running the allocator. Used by upgrade so a re-render
preserves the install’s existing host ports — port_in_use would
say they’re taken (the running service holds them) and the
allocator would skip to the next free one.
existing_env_file: Option<String>Raw contents of the service’s existing on-disk .env, when present.
The rendered env merges into it (preserving operator keys, comments,
and rotated secrets) instead of overwriting — see generate::generate_env.
None for a fresh install with no file yet. The frontend reads the
file so planning stays free of system probes.
allow_unset_required: boolSkip-setup: install even when a Required group/choice member has no
value, rendering it empty for the operator to fill in later, rather
than erroring. false is the strict default.