v0.3.2-pre.004-fix.001

This commit is contained in:
2026-08-29 19:04:58 +02:00
parent 0a4cddafc4
commit de3cec6a23
3 changed files with 21 additions and 32 deletions

View File

@@ -173,7 +173,9 @@ fn resolve_store_profile(profile: &crate::ResolvedConfigProfile, environment: &c
let source = match source {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => {
return std::result::Result::Err(effective_error(profile, "effective Store Config cannot be decoded into the runtime adapter contract").with_source(error));
return std::result::Result::Err(
effective_error(profile, "effective Store Config cannot be decoded into the runtime adapter contract").with_source(error),
);
},
};
if source.format_version != 1 {
@@ -233,10 +235,7 @@ fn resolve_store_profile(profile: &crate::ResolvedConfigProfile, environment: &c
});
}
fn validate_connection_uri_provenance(
effective: &crate::ResolvedConfigJson,
profile: &crate::ResolvedConfigProfile,
) -> ksp_core_lib::Result<()> {
fn validate_connection_uri_provenance(effective: &crate::ResolvedConfigJson, profile: &crate::ResolvedConfigProfile) -> ksp_core_lib::Result<()> {
let provenance = match effective.provenance_at("/postgres/connection_uri") {
std::option::Option::Some(value) => value,
std::option::Option::None => return std::result::Result::Err(effective_error(profile, "Store PostgreSQL connection URI provenance is unavailable")),

View File

@@ -158,16 +158,24 @@ fn committed_engine() -> ksp_core_lib::Result<crate::ConfigDocumentEngine> {
fn fixture_engine_with_document(root: &std::path::Path, document: &serde_json::Value) -> ksp_core_lib::Result<crate::ConfigDocumentEngine> {
let config_root = root.join("config");
if let std::result::Result::Err(error) = std::fs::create_dir_all(config_root.as_path()) {
return std::result::Result::Err(ksp_core_lib::Error::new(crate::ERROR_CODE_JSON_FILE_READ_FAILED, "test Config root cannot be created").with_source(error));
return std::result::Result::Err(
ksp_core_lib::Error::new(crate::ERROR_CODE_JSON_FILE_READ_FAILED, "test Config root cannot be created").with_source(error),
);
}
let bytes = serde_json::to_vec_pretty(document);
let bytes = match bytes {
std::result::Result::Ok(value) => value,
std::result::Result::Err(error) => return std::result::Result::Err(ksp_core_lib::Error::new(crate::ERROR_CODE_JSON_SYNTAX_INVALID, "test Store Config cannot be encoded").with_source(error)),
std::result::Result::Err(error) => {
return std::result::Result::Err(
ksp_core_lib::Error::new(crate::ERROR_CODE_JSON_SYNTAX_INVALID, "test Store Config cannot be encoded").with_source(error),
);
},
};
let path = config_root.join(crate::DEFAULT_STD_STORE_FILENAME);
if let std::result::Result::Err(error) = std::fs::write(path.as_path(), bytes) {
return std::result::Result::Err(ksp_core_lib::Error::new(crate::ERROR_CODE_JSON_FILE_READ_FAILED, "test Store Config cannot be written").with_source(error));
return std::result::Result::Err(
ksp_core_lib::Error::new(crate::ERROR_CODE_JSON_FILE_READ_FAILED, "test Store Config cannot be written").with_source(error),
);
}
let bootstrap = crate::ConfigBootstrapOptions::from_paths(config_root, workspace_root().join("config/schemas"));
let bootstrap = match bootstrap {

View File

@@ -117,12 +117,7 @@ impl PostgresPoolSettings {
.with_context("maximum", MAX_CONNECTIONS.to_string()),
);
}
let connect_validation = validate_duration(
"postgres.pool.connect_timeout",
self.connect_timeout,
MIN_CONNECT_TIMEOUT_MS,
MAX_CONNECT_TIMEOUT_MS,
);
let connect_validation = validate_duration("postgres.pool.connect_timeout", self.connect_timeout, MIN_CONNECT_TIMEOUT_MS, MAX_CONNECT_TIMEOUT_MS);
if let std::result::Result::Err(error) = connect_validation {
return std::result::Result::Err(error);
}
@@ -130,21 +125,12 @@ impl PostgresPoolSettings {
if let std::result::Result::Err(error) = wait_validation {
return std::result::Result::Err(error);
}
let create_validation = validate_duration(
"postgres.pool.create_timeout",
self.create_timeout,
MIN_POOL_CREATE_TIMEOUT_MS,
MAX_POOL_CREATE_TIMEOUT_MS,
);
let create_validation = validate_duration("postgres.pool.create_timeout", self.create_timeout, MIN_POOL_CREATE_TIMEOUT_MS, MAX_POOL_CREATE_TIMEOUT_MS);
if let std::result::Result::Err(error) = create_validation {
return std::result::Result::Err(error);
}
let recycle_validation = validate_duration(
"postgres.pool.recycle_timeout",
self.recycle_timeout,
MIN_POOL_RECYCLE_TIMEOUT_MS,
MAX_POOL_RECYCLE_TIMEOUT_MS,
);
let recycle_validation =
validate_duration("postgres.pool.recycle_timeout", self.recycle_timeout, MIN_POOL_RECYCLE_TIMEOUT_MS, MAX_POOL_RECYCLE_TIMEOUT_MS);
if let std::result::Result::Err(error) = recycle_validation {
return std::result::Result::Err(error);
}
@@ -199,12 +185,8 @@ impl PostgresBootstrapSettings {
/// Validates bootstrap and migration deadlines without contacting PostgreSQL.
pub fn validate(&self) -> ksp_store_api::Result<()> {
let migration_validation = validate_duration(
"postgres.bootstrap.migration_timeout",
self.migration_timeout,
MIN_MIGRATION_TIMEOUT_MS,
MAX_MIGRATION_TIMEOUT_MS,
);
let migration_validation =
validate_duration("postgres.bootstrap.migration_timeout", self.migration_timeout, MIN_MIGRATION_TIMEOUT_MS, MAX_MIGRATION_TIMEOUT_MS);
if let std::result::Result::Err(error) = migration_validation {
return std::result::Result::Err(error);
}