mirror of
https://github.com/pgsty/minio.git
synced 2026-11-12 02:25:34 +03:00
docs: record unreleased repair and compatibility boundaries
Document archive authorization, explicit-version bulk-delete cost, migration progress, restore and copy repairs, and coordinated IAM and batch behavior without changing released history. Fixes #348 Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
+69
-2
@@ -2,6 +2,72 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
These changes follow Server 20261109 and have no assigned release version yet.
|
||||
Console and mcli policy-editing repairs require matching component releases;
|
||||
the current Server dependency pins still select Console v2.7.0 and mcli 20261109.
|
||||
See the [server compatibility notes](https://silo.pgsty.com/compatibility/server/)
|
||||
for the candidate behavior and upgrade boundaries.
|
||||
|
||||
- Replica writes and copies use the destination version's retention, legal
|
||||
hold and tags under its mutation lock. Cross-pool reconciliation preserves
|
||||
COMPLIANCE protection regardless of pool order, while authorized changes to
|
||||
GOVERNANCE retention and legal hold remain possible. Local lock revisions
|
||||
advance past stored revisions, and forced prefix deletion refuses an
|
||||
unavailable Object Lock configuration ([#336](https://github.com/pgsty/silo/issues/336)).
|
||||
- Tagging proxies authenticate and authorize every addressed destination,
|
||||
including its stored tags. Authenticated unsigned-trailer uploads enforce
|
||||
the request time window; anonymous uploads allowed by bucket policy remain
|
||||
supported ([#337](https://github.com/pgsty/silo/issues/337),
|
||||
[#338](https://github.com/pgsty/silo/issues/338)).
|
||||
- `GetObjectAttributes` evaluates both Attributes and GetObject permissions
|
||||
against the addressed version's stored tags, using version actions for an
|
||||
explicit version. ZIP GET, HEAD and member listings also authorize the ZIP
|
||||
object's stored tags; listing members requires both `s3:ListBucket` and
|
||||
`s3:GetObject`. These reads no longer write an archive index back to the
|
||||
object. Missing-object masking still uses `s3:ListBucket`, and authorized
|
||||
storage failures retain their server error ([#342](https://github.com/pgsty/silo/issues/342)).
|
||||
- Every explicit version removal in S3 `DeleteObjects`, including in buckets
|
||||
without Object Lock, now uses the sequential single-object path to check
|
||||
metadata, retention and replication under the mutation lock. Large version
|
||||
purges can take longer; entries without a version ID retain the bulk path.
|
||||
- Decommission rescans keys hidden below another key only while source
|
||||
versions are actually removed, resolving the 20261109 limitation recorded
|
||||
in [#293](https://github.com/pgsty/silo/issues/293). Decommission and rebalance
|
||||
clean up successfully migrated sibling versions after concurrent deletion
|
||||
of another version. Unreadable or conflicting metadata is not proof of
|
||||
absence; cancellation returns an error, and a scan without physical progress
|
||||
stops. Free-version tier ownership and the final physical-empty check remain
|
||||
protected ([#340](https://github.com/pgsty/silo/issues/340)). See the
|
||||
[decommission procedure](https://silo.pgsty.com/operations/deployments/baremetal-decommission-server-pool/).
|
||||
- Site-replication healing releases its state read lock before storage reads
|
||||
and replication hooks, avoiding a deadlock when a writer is waiting
|
||||
([#341](https://github.com/pgsty/silo/issues/341)). IAM import preserves
|
||||
disabled service accounts and groups, reports group failures, and excludes
|
||||
derived session-policy claims from exported and replicated credentials
|
||||
([#345](https://github.com/pgsty/silo/issues/345)).
|
||||
- Historical-version self-copy plans its destination pool and data rewrite
|
||||
before encryption or compression, so a source version in another pool can
|
||||
create a readable new version. In-place metadata updates locate the exact
|
||||
requested version ([#343](https://github.com/pgsty/silo/issues/343)). Restore
|
||||
expiry no longer turns a time-derived data-directory flag into a different
|
||||
version revision; mixed healed headers can reach quorum and expired local
|
||||
restore data can be cleaned up ([#344](https://github.com/pgsty/silo/issues/344)).
|
||||
- Batch KMS rotation decodes the configured encryption context on execution
|
||||
and after reload or retry, without adding validation-probe fields to object
|
||||
metadata ([#346](https://github.com/pgsty/silo/issues/346)). Batch variable
|
||||
preflight follows the pinned policy evaluator's literal and substitution
|
||||
rules, including BinaryEquals, while retaining refusal of unavailable
|
||||
request context. This does not add AWS special-variable escape semantics
|
||||
([#347](https://github.com/pgsty/silo/issues/347)).
|
||||
- Service-account create and edit normalize a missing policy Version to the
|
||||
default. Edit distinguishes an omitted or null policy (preserve) from an
|
||||
explicit empty document (return to inheritance). Matching Console changes
|
||||
preserve inherited policy on metadata edits; matching mcli changes accept
|
||||
explicit empty policies only on edit, keeping create and named-policy
|
||||
validation strict ([#339](https://github.com/pgsty/silo/issues/339),
|
||||
[Console #89](https://github.com/pgsty/silo-console/issues/89),
|
||||
[mcli #78](https://github.com/pgsty/mc/issues/78)).
|
||||
|
||||
- An edit of a service account or access key that names no policy keeps its
|
||||
inline policy. `mcli admin user svcacct disable`, `enable` and `edit` without
|
||||
`--policy`, the same `idp ldap accesskey` commands, and any other
|
||||
@@ -12,8 +78,9 @@
|
||||
only on request, by an empty policy document such as `{"Statement":[]}`
|
||||
(`mcli admin user svcacct edit --policy`); a client that left the policy out
|
||||
to remove it must send that document. A JSON `null` policy counts as none.
|
||||
In the Console, clearing the policy editor of an access key no longer removes
|
||||
the policy; enter `{}` to remove it. The fix does not bring back a policy
|
||||
In the matching Console, turn off **Restrict beyond user policy** or enter
|
||||
`{}` to remove an inline policy. Clearing the editor while restriction is
|
||||
enabled prevents saving. The fix does not bring back a policy
|
||||
that was removed, and a site of a replicated deployment that does not run the
|
||||
fix still removes the policy on such an edit that it takes itself or receives
|
||||
from another site that does not run it, so sites can differ. Upgrade every
|
||||
|
||||
Reference in New Issue
Block a user