mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-27 08:38:58 +00:00
cf89291898
fix(notify): strip rustfs/minio internal metadata from event userMetadata (backlog#964) Notification event construction only stripped keys prefixed with `x-amz-meta-internal-`, which is not a prefix RustFS actually uses. Real internal metadata lives under `x-rustfs-internal-*` / `x-minio-internal-*` (xl.meta compat, incl. `x-minio-internal-server-side-encryption-*`) and server-side-encryption details under `x-rustfs-encryption-*` / `x-minio-encryption-*`. None of these were filtered, so they leaked into `s3.object.userMetadata` sent to downstream notification targets (webhook/MQ) — an information disclosure of SSE/replication/healing internal state. Filter via the shared classifiers `rustfs_utils::http::is_internal_key` and `is_encryption_metadata_key` (case-insensitive, covering both key flavors), while retaining the legacy `x-amz-meta-internal-*` strip for backward compat. Genuine user metadata (`x-amz-meta-*`, content-type, ...) is preserved unchanged. Adds a regression test asserting both internal prefixes, the SSE internal key, both encryption prefixes (incl. mixed-case) and the legacy prefix are stripped while user keys survive. Refs: https://github.com/rustfs/backlog/issues/964
RustFS Notify - Event Notification System
Real-time event notification and messaging system for RustFS distributed object storage
📖 Documentation
· 🐛 Bug Reports
· 💬 Discussions
📖 Overview
RustFS Notify provides real-time event notification and messaging capabilities for the RustFS distributed object storage system. For the complete RustFS experience, please visit the main RustFS repository.
✨ Features
- Real-time event streaming and notifications
- Multiple notification targets (HTTP, Kafka, Redis, Email)
- Event filtering and routing based on criteria
- Message queuing with guaranteed delivery
- Event replay and auditing capabilities
- High-throughput messaging with batching support
📚 Documentation
For comprehensive documentation, examples, and usage guides, please visit the main RustFS repository.
📄 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
