From 23a0f6324cb5ce44a9217580c1a52d4f6229f213 Mon Sep 17 00:00:00 2001 From: GatewayJ <835269233@qq.com> Date: Fri, 21 Aug 2026 15:34:25 +0800 Subject: [PATCH] fix(iam): preserve MinIO permanent credentials in migration (#6328) * fix(iam): preserve MinIO permanent credentials in migration * test(iam): cover MinIO credential migration end to end --- crates/ecstore/src/bucket/migration.rs | 61 +++++++ crates/iam/tests/ecstore_test_compat/mod.rs | 4 +- crates/iam/tests/minio_iam_migration_test.rs | 182 +++++++++++++++++++ 3 files changed, 245 insertions(+), 2 deletions(-) create mode 100644 crates/iam/tests/minio_iam_migration_test.rs diff --git a/crates/ecstore/src/bucket/migration.rs b/crates/ecstore/src/bucket/migration.rs index ae775a014..b5f587221 100644 --- a/crates/ecstore/src/bucket/migration.rs +++ b/crates/ecstore/src/bucket/migration.rs @@ -41,6 +41,7 @@ const IAM_FORMAT_FILE_PATH: &str = "config/iam/format.json"; const IAM_USERS_PREFIX: &str = "config/iam/users/"; const IAM_SERVICE_ACCOUNTS_PREFIX: &str = "config/iam/service-accounts/"; const IAM_STS_PREFIX: &str = "config/iam/sts/"; +const MINIO_GO_ZERO_TIME: OffsetDateTime = time::macros::datetime!(0001-01-01 00:00 UTC); const IAM_GROUPS_PREFIX: &str = "config/iam/groups/"; const IAM_POLICIES_PREFIX: &str = "config/iam/policies/"; const IAM_POLICY_DB_PREFIX: &str = "config/iam/policydb/"; @@ -120,6 +121,15 @@ fn normalize_iam_config_blob(path: &str, data: &[u8]) -> std::result::Result