fix(iam)!: split self-service password permissions and update SDK stack - #175
Merged
Merged
Conversation
…dencies Use ChangeMyPassword for the authenticated user and keep CreateUser for other users. Coordinate silo-pkg b3760f56ec23, mcli fa22b40b4eb7, Console 1b95b6cec652 and upstream minio-go 78bfa91607c2. Add legacy-policy and SDK streaming regressions plus upgrade guidance. Signed-off-by: Feng Ruohang <rh@vonng.com>
This was referenced Sep 10, 2026
Signed-off-by: Feng Ruohang <rh@vonng.com>
Signed-off-by: Feng Ruohang <rh@vonng.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Separate self-service password changes from user administration in the existing AddUser endpoint: requests targeting the authenticated internal user check
admin:ChangeMyPasswordwith explicit-Deny semantics; creation or password resets for other users still requireadmin:CreateUser.Breaking authorization compatibility: the same saved policy can now authorize a previously denied password change. A
Deny admin:CreateUserno longer locks the caller's password; addadmin:ChangeMyPasswordto that same statement before upgrading to preserve the old combined restriction. Conversely, an existing ChangeMyPassword deny is now enforced. The updated built-inreadonlyalso drops its CreateUser deny, so it no longer overrides a separate user-administration grant. Saved overrides retain their original statements. Policies are not migrated automatically.This is a deliberate permission-design change, independent of the minio-go SDK update. The migration guide documents the before/after matrix, wildcard and built-in policies, capability reporting, mixed-version rollout and rollback limits. Keep both denies during the rollout or rollback window if the old combined restriction must hold; an old Server does not enforce a password-only deny for this endpoint. The release containing this change must explicitly disclose it as breaking.
Coordinate the package, client and embedded Console dependencies:
2d8fd3cbbf07, including upstream pkg Rename test-data to testdata, go will ignore it automatically minio/minio#262, consolereadonly from Make K,M to be uint8 and Technique becomes its own type minio/minio#233 and compatibility documentatione6a60edf09526a0b31b5ade2, with dedicated password button/session permissions, rebuilt embedded assets and the same merged package/client pins78bfa91607c2(v7.3.1-0.20260909183557-78bfa91607c2), including server: Implement support for 'crossdomain.xml' flash requirement minio/minio#2301Root, STS and service-account restrictions stay enforced.
Validation:
GOWORK=off go test ./... -timeout=15mand coordinated workspace testing for the implementation; the final dependency-selection follow-up changes module pins and documentation without changing dependency runtime sourceGOWORK=off go test ./cmd -run 'TestIAMInternalIDPServerSuite|TestAPIUpstreamSDKStreamingContentType' -timeout=10magainst the final source pinsgit diff --check; it changes no runtime code or dependency pinsThe existing package/Console release gates remain pending; this is a coordinated source update, not a release or deployment. Upstream minio-go minio#2274 remains open and is absent from the pin; keep it as a non-blocking follow-up after upstream merge.