pub trait SzConfigManager {
// Required methods
fn create_config(&self) -> SzResult<Box<dyn SzConfig>>;
fn create_config_from_id(
&self,
config_id: ConfigId,
) -> SzResult<Box<dyn SzConfig>>;
fn create_config_from_definition(
&self,
config_definition: &str,
) -> SzResult<Box<dyn SzConfig>>;
fn get_config_registry(&self) -> SzResult<JsonString>;
fn get_default_config_id(&self) -> SzResult<ConfigId>;
fn register_config(
&self,
config_definition: &str,
config_comment: Option<&str>,
) -> SzResult<ConfigId>;
fn replace_default_config_id(
&self,
current_default_config_id: ConfigId,
new_default_config_id: ConfigId,
) -> SzResult<()>;
fn set_default_config(
&self,
config_definition: &str,
config_comment: Option<&str>,
) -> SzResult<ConfigId>;
fn set_default_config_id(&self, config_id: ConfigId) -> SzResult<()>;
}Expand description
Configuration lifecycle management.
The SzConfigManager trait provides methods for managing configuration
versions, registration, and deployment. Use this to create, modify, and
activate configuration versions.
§Obtaining an Instance
use sz_rust_sdk::prelude::*;
let config_mgr = env.get_config_manager()?;Required Methods§
Sourcefn create_config(&self) -> SzResult<Box<dyn SzConfig>>
fn create_config(&self) -> SzResult<Box<dyn SzConfig>>
Creates a new configuration instance from the default template.
Returns a configuration object that can be modified (e.g., adding data sources) before being registered and activated.
§Returns
A new SzConfig instance based on the default configuration template.
§Examples
use sz_rust_sdk::prelude::*;
let config_mgr = env.get_config_manager()?;
let config = config_mgr.create_config()?;
let json = config.export()?;
assert!(!json.is_empty());Sourcefn create_config_from_id(
&self,
config_id: ConfigId,
) -> SzResult<Box<dyn SzConfig>>
fn create_config_from_id( &self, config_id: ConfigId, ) -> SzResult<Box<dyn SzConfig>>
Creates a configuration from an existing registered configuration.
Loads a previously registered configuration for viewing or modification.
§Arguments
config_id- ID of a registered configuration
§Returns
An SzConfig instance with the specified configuration loaded.
§Examples
use sz_rust_sdk::prelude::*;
let config_mgr = env.get_config_manager()?;
let config_id = config_mgr.get_default_config_id()?;
let config = config_mgr.create_config_from_id(config_id)?;
let json = config.export()?;
assert!(!json.is_empty());§Errors
SzError::NotFound- Configuration ID does not exist
Sourcefn create_config_from_definition(
&self,
config_definition: &str,
) -> SzResult<Box<dyn SzConfig>>
fn create_config_from_definition( &self, config_definition: &str, ) -> SzResult<Box<dyn SzConfig>>
Creates a configuration from a JSON definition string.
Parses a configuration JSON (e.g., from a file or SzConfig::export())
into a configuration object.
§Arguments
config_definition- JSON string containing the configuration
§Returns
An SzConfig instance with the parsed configuration.
§Examples
use sz_rust_sdk::prelude::*;
let config_mgr = env.get_config_manager()?;
let config = config_mgr.create_config()?;
let json = config.export()?;
let config2 = config_mgr.create_config_from_definition(&json)?;§Errors
SzError::BadInput- Invalid JSON or configuration format
Sourcefn get_config_registry(&self) -> SzResult<JsonString>
fn get_config_registry(&self) -> SzResult<JsonString>
Gets the configuration registry.
Returns information about all registered configuration versions.
§Returns
JSON string with array of configuration metadata including IDs, comments, and timestamps.
§Examples
use sz_rust_sdk::prelude::*;
let config_mgr = env.get_config_manager()?;
let registry = config_mgr.get_config_registry()?;
println!("Registered configs: {}", registry);Sourcefn get_default_config_id(&self) -> SzResult<ConfigId>
fn get_default_config_id(&self) -> SzResult<ConfigId>
Gets the currently active default configuration ID.
§Returns
The configuration ID that is currently active for entity resolution.
§Examples
use sz_rust_sdk::prelude::*;
let config_mgr = env.get_config_manager()?;
let config_id = config_mgr.get_default_config_id()?;
println!("Default config ID: {}", config_id);Sourcefn register_config(
&self,
config_definition: &str,
config_comment: Option<&str>,
) -> SzResult<ConfigId>
fn register_config( &self, config_definition: &str, config_comment: Option<&str>, ) -> SzResult<ConfigId>
Registers a new configuration version.
Saves a configuration to the repository, making it available for activation.
Does not activate the configuration - use set_default_config_id for that.
§Arguments
config_definition- JSON string fromSzConfig::export()config_comment- Optional description for this configuration version
§Returns
The assigned configuration ID for the newly registered configuration.
§Examples
use sz_rust_sdk::prelude::*;
let config_mgr = env.get_config_manager()?;
let config = config_mgr.create_config()?;
let config_json = config.export()?;
let config_id = config_mgr.register_config(&config_json, Some("Test config"))?;
println!("Registered config ID: {}", config_id);Sourcefn replace_default_config_id(
&self,
current_default_config_id: ConfigId,
new_default_config_id: ConfigId,
) -> SzResult<()>
fn replace_default_config_id( &self, current_default_config_id: ConfigId, new_default_config_id: ConfigId, ) -> SzResult<()>
Atomically replaces the default configuration ID.
Updates the active configuration only if the current default matches the expected value. This prevents race conditions when multiple processes may be updating the configuration.
§Arguments
current_default_config_id- Expected current default (for optimistic locking)new_default_config_id- New configuration to activate
§Examples
use sz_rust_sdk::prelude::*;
let config_mgr = env.get_config_manager()?;
let current_id = config_mgr.get_default_config_id()?;
let config = config_mgr.create_config()?;
let config_json = config.export()?;
let new_id = config_mgr.register_config(&config_json, Some("Replacement config"))?;
config_mgr.replace_default_config_id(current_id, new_id)?;§Errors
SzError::ReplaceConflict- Current default doesn’t match expected valueSzError::NotFound- New configuration ID does not exist
Sourcefn set_default_config(
&self,
config_definition: &str,
config_comment: Option<&str>,
) -> SzResult<ConfigId>
fn set_default_config( &self, config_definition: &str, config_comment: Option<&str>, ) -> SzResult<ConfigId>
Registers and activates a configuration in one operation.
Convenience method that combines register_config and set_default_config_id.
§Arguments
config_definition- JSON string fromSzConfig::export()config_comment- Optional description for this configuration version
§Returns
The assigned configuration ID.
§Examples
use sz_rust_sdk::prelude::*;
let config_mgr = env.get_config_manager()?;
let config = config_mgr.create_config()?;
let config_json = config.export()?;
let config_id = config_mgr.set_default_config(&config_json, Some("New default"))?;
println!("New default config ID: {}", config_id);Sourcefn set_default_config_id(&self, config_id: ConfigId) -> SzResult<()>
fn set_default_config_id(&self, config_id: ConfigId) -> SzResult<()>
Sets the active configuration by ID.
Activates a previously registered configuration. The engine will use this configuration for all subsequent operations.
§Arguments
config_id- ID of a registered configuration to activate
§Examples
use sz_rust_sdk::prelude::*;
let config_mgr = env.get_config_manager()?;
let config_id = config_mgr.get_default_config_id()?;
config_mgr.set_default_config_id(config_id)?;§Errors
SzError::NotFound- Configuration ID does not exist