mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-27 16:48:58 +00:00
refactor: prune notify ecstore object alias (#3620)
This commit is contained in:
@@ -5,16 +5,16 @@ Status values: `[ ]` not started, `[~]` in progress, `[x]` complete, `[!]` block
|
||||
## Current Context
|
||||
|
||||
- Issue: [`rustfs/backlog#660`](https://github.com/rustfs/backlog/issues/660)
|
||||
- Branch: `overtrue/arch-ecstore-object-boundary-guards`
|
||||
- Baseline: latest `main` after `rustfs/rustfs#3616`
|
||||
(`8d91e2116f53fabc5f8a12a7cc48eb9d72cfcf10`).
|
||||
- Branch: `overtrue/arch-iam-object-boundary-prune`
|
||||
- Baseline: stacked after `rustfs/rustfs#3620`
|
||||
(`c7bee5de904c9a1ea70f73ad6621895a30b3c387`).
|
||||
- PR type for this branch: `consumer-migration`
|
||||
- Runtime behavior changes: none.
|
||||
- Rust code changes: none.
|
||||
- CI/script changes: snapshot the exact remaining external
|
||||
`rustfs_ecstore::object_api` compatibility aliases and reject new
|
||||
object-api names outside the approved boundary surface.
|
||||
- Docs changes: record the API-067 ECStore object API boundary guard slice.
|
||||
- Rust code changes: route IAM config/store object metadata and options aliases
|
||||
through `rustfs_storage_api::ObjectOperations` associated types.
|
||||
- CI/script changes: shrink the remaining external `rustfs_ecstore::object_api`
|
||||
compatibility alias snapshot by removing IAM object-info/options aliases.
|
||||
- Docs changes: record the API-069 IAM object boundary prune slice.
|
||||
|
||||
## Phase 0 Tasks
|
||||
|
||||
@@ -331,6 +331,35 @@ Status values: `[ ]` not started, `[~]` in progress, `[x]` complete, `[!]` block
|
||||
- Verification: bash syntax check, migration and layer guards, formatting,
|
||||
diff hygiene, full pre-commit, and three-expert review.
|
||||
|
||||
- [x] `API-068` Prune notify ECStore object-info compatibility alias.
|
||||
- Completed slice: remove notify's private `EcstoreObjectInfo` alias and
|
||||
ECStore-object conversion implementation, then map ECStore event objects to
|
||||
`NotifyObjectInfo` inside the RustFS event and operation notification
|
||||
bridges.
|
||||
- Acceptance: `crates/notify` no longer references
|
||||
`rustfs_ecstore::object_api::ObjectInfo`, the remaining object-api alias
|
||||
allowlist shrinks accordingly, and notify event payload fields keep the
|
||||
same serialized values.
|
||||
- Must preserve: live event dispatch behavior, event names, bucket/object
|
||||
fields, version IDs, metadata, restore-completed timestamps, storage class,
|
||||
transitioned tier, host/port parsing, and replication request filtering.
|
||||
- Verification: focused RustFS event conversion test, focused notify/RustFS
|
||||
compile checks, migration and layer guards, formatting, diff hygiene, full
|
||||
pre-commit, and three-expert review.
|
||||
|
||||
- [x] `API-069` Prune IAM direct ECStore object metadata/options aliases.
|
||||
- Completed slice: replace IAM config and store `ObjectInfo`/`ObjectOptions`
|
||||
compatibility aliases with `IamStore` `ObjectOperations` associated types.
|
||||
- Acceptance: IAM no longer names
|
||||
`rustfs_ecstore::object_api::{ObjectInfo,ObjectOptions}` directly, the
|
||||
remaining object-api alias allowlist shrinks by four entries, and IAM config
|
||||
read/write metadata and lazy-rewrite precondition behavior are unchanged.
|
||||
- Must preserve: IAM config encryption/decryption, lazy rewrite ETag matching,
|
||||
list walk item/error typing, metadata return shape, storage preconditions,
|
||||
system-path failure classification, and notification peer behavior.
|
||||
- Verification: focused IAM compile/tests, migration and layer guards,
|
||||
formatting, diff hygiene, full pre-commit, and three-expert review.
|
||||
|
||||
- [x] `TEST-PRTYPE-001` Check PR type enum consistency.
|
||||
- Acceptance: `./scripts/check_architecture_migration_rules.sh` parses the
|
||||
allowed PR types from [`crate-boundaries.md`](crate-boundaries.md) and fails
|
||||
|
||||
Reference in New Issue
Block a user