Zhengchao An
7499dd085d
refactor: collapse app notify thin compat boundaries ( #3768 )
...
* refactor: collapse app notify thin compat boundaries
* refactor: route app runtime consumers through context (#3769 )
2026-06-23 08:13:58 +08:00
Zhengchao An
198fd4f150
refactor(runtime): route RustFS runtime consumers through storage owner ( #3756 )
2026-06-23 05:17:56 +08:00
Zhengchao An
db7ff8f513
refactor: expose external ECStore owner symbols ( #3748 )
2026-06-22 21:42:54 +08:00
Zhengchao An
418b5d04f9
refactor: route external ECStore imports through owners ( #3747 )
2026-06-22 20:57:10 +08:00
Zhengchao An
88a87b3e8f
refactor: centralize external ECStore facade aliases ( #3746 )
2026-06-22 20:37:13 +08:00
Zhengchao An
539c68778d
refactor: remove standalone compat bridge modules ( #3740 )
2026-06-22 17:35:58 +08:00
houseme
7bfa80cb0b
fix(notify): normalize event time precision ( #3725 )
2026-06-22 13:53:56 +08:00
安正超
de158743c3
refactor: split compat facade imports ( #3716 )
2026-06-22 09:53:22 +08:00
安正超
d39815470e
refactor: prune consumer storage compat paths ( #3704 )
2026-06-22 02:31:30 +08:00
安正超
30b46640b4
refactor: prune edge compat aliases ( #3692 )
2026-06-21 17:41:07 +08:00
安正超
0985225448
refactor: consolidate ecstore public facade ( #3678 )
...
* refactor: expand ecstore compatibility facade
* test: enforce ecstore api facade imports
* refactor: hide legacy ecstore layout modules
* refactor: hide ecstore facade root modules
2026-06-21 09:09:11 +08:00
安正超
08b8f58e64
refactor: prune notify ecstore object alias ( #3620 )
2026-06-19 20:11:56 +08:00
安正超
54ffbedbc8
refactor: remove ecstore operation compat facades ( #3608 )
2026-06-19 17:01:12 +08:00
安正超
b1c6578df1
refactor: narrow test harness compatibility surfaces ( #3592 )
2026-06-19 07:10:52 +08:00
安正超
a860f2b40c
refactor: narrow storage compatibility surfaces ( #3585 )
...
* refactor: narrow storage compatibility surfaces
* refactor: narrow observability compatibility surfaces
2026-06-19 00:56:14 +08:00
安正超
205f964dc5
refactor: tighten storage compat store_api aliases ( #3582 )
...
* refactor: collapse storage compat store_api modules
* chore: guard storage compat store_api aliases
2026-06-18 22:50:02 +08:00
安正超
c28fee0013
refactor: continue storage api contract cleanup ( #3580 )
...
* refactor: move delete object contracts to storage api
* refactor: narrow store api compatibility exports
* refactor: route table catalog test through storage compat
2026-06-18 22:42:02 +08:00
安正超
7b0cb9e725
refactor: prune storage compatibility re-export allowances ( #3579 )
...
* refactor: prune storage compatibility re-export allowances
* fix: reject whitespace-padded dot path segments
2026-06-18 21:14:24 +08:00
安正超
08371a6e09
refactor: narrow storage compatibility exports ( #3576 )
2026-06-18 18:31:14 +08:00
安正超
c098184c49
refactor: clean runtime and test storage boundaries ( #3573 )
...
* refactor: clean runtime observability select boundaries
* refactor: clean test harness fuzz storage boundaries
2026-06-18 18:09:25 +08:00
安正超
0e7e2660bb
refactor: clean remaining storage DTO imports ( #3568 )
2026-06-18 14:44:46 +08:00
安正超
acdf439371
refactor: clean external DTO consumers ( #3566 )
...
* refactor: clean external DTO consumers
* fix: handle empty erasure shard recovery
2026-06-18 14:22:44 +08:00
安正超
84f7027e90
refactor: add object store resolver for standalone crates ( #3437 )
2026-06-14 18:02:39 +08:00
houseme
e8012bd1ba
refactor(logging): normalize admin telemetry and error messages ( #3430 )
2026-06-14 13:27:10 +08:00
houseme
82af181dcf
refactor(logging): unify governance runtime events ( #3367 )
2026-06-11 22:26:02 +08:00
houseme
0a987d870b
refactor(logging): reduce runtime noise ( #3363 )
2026-06-11 19:49:01 +08:00
安正超
ca58d7f0ec
refactor(config): migrate server config consumers ( #3353 )
2026-06-11 17:04:50 +08:00
安正超
a63aaf933d
fix(notify): normalize lock ordering to prevent deadlock ( #3199 )
...
* fix(notify): normalize lock ordering to prevent deadlock
replace_targets() and shutdown() acquired target_list before replay_workers,
opposite to runtime_view.rs order. This is an ABBA deadlock pattern.
- Swap to replay_workers -> target_list order (canonical)
- Add lock order comments
- 82 notify tests pass
* docs(notify): update runtime facade lock order
* docs(notify): clarify runtime facade lock order
---------
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-03 15:37:59 +00:00
安正超
1838922f07
fix(security): add deny_unknown_fields to deserialization structs ( #3198 )
...
* fix(security): add deny_unknown_fields to deserialization structs
Prevent silent acceptance of malformed or adversarial payloads.
- policy: Policy, BucketPolicy, Statement, BPStatement, PrincipalObject
- notify: S3KeyFilter custom deserializer rejects unknown child elements
- update: VersionInfo (remote HTTP response)
26 policy + 82 notify tests pass.
* fix(update): keep version response forward compatible
---------
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-03 15:33:28 +00:00
安正超
b5e565c0ce
chore(agents): add Rust code quality rules and skill ( #3144 )
...
* docs: update security advisory lessons
* chore(agents): add Rust code quality rules and skill
Add rules derived from full-project code review (48 findings across
7 dimensions) to prevent recurring issues in agent-generated code.
AGENTS.md changes:
- crates/AGENTS.md: error type design, concurrency, recursion safety,
type casting, test quality rules
- root AGENTS.md: serde safety, naming conventions
- crates/ecstore/AGENTS.md: allocation discipline, lock ordering,
recursion safety, dead code policy
- crates/notify/AGENTS.md: lock ordering for runtime_view/facade
Skill changes:
- code-change-verification: add Rust-specific checks (unwrap, as cast,
clone, lock order, recursion, error types, test assertions)
- security-advisory-lessons: add serde deserialization safety pattern
- NEW rust-code-quality: automated scan + manual review checklist
2026-05-31 22:19:36 +08:00
houseme
73bde843d6
refactor(s3): consolidate semantic boundaries and remove s3-common ( #3012 )
...
* refactor(common): introduce rustfs-data-usage core crate
* refactor(concurrency): migrate workers crate into concurrency
* refactor(crypto): migrate appauth token APIs into crypto
* fix docs urls
* remove unused crate
* refactor(data-usage): switch consumers to rustfs-data-usage
* chore(fmt): apply cargo fmt and lockfile sync
* refactor(common): remove data_usage compatibility re-export
* refactor(capacity): move capacity_scope to object-capacity
* refactor(io-metrics): relocate internode metrics from common
* refactor(common): decouple scanner report from madmin
* chore(fmt): normalize import ordering after pre-commit
* refactor(s3): split s3 types and ops crates
* refactor(s3): centralize event version and safe parsing
* refactor(s3): add op-event compatibility guardrails
* refactor(s3): add runtime op-event mismatch observability
* refactor(s3): extract delete event mapping helper
* refactor(s3): extract put event mapping helper
* refactor(s3): consolidate remaining event semantic helpers
* refactor(s3): add op-event coverage checks and observability alerts
* refactor(s3-ops): consolidate op-event semantic mapping
* refactor(scanner): remove last_minute wrapper module
* refactor(scanner): consolidate duplicated data usage models
2026-05-19 12:50:25 +00:00
houseme
c4248078d6
chore: update dependencies ( #2890 )
...
* chore: update dependencies
* build(deps): bump the dependencies group with 5 updates
* build(deps): bump the dependencies group with 6 updates (#2908 )
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: houseme <housemecn@gmail.com >
* fix(ecstore): narrow Windows URL drive path rewrite
* chore(deps): bump starshard to 1.2.0
* revert(ecstore): restore endpoint Windows path behavior
* up
* up
* up
* perf(notify): use cached snapshot mode for scans
* fix
* chore(deps): bump workspace dependency versions
* chore(deps): refresh pinned dependency references
* chore(ci): align profiling and decommission tooling updates
- enable tokio_unstable cfg in performance profiling build flags\n- bump Rust base image from 1.93 to 1.95 in source and decommission Dockerfiles\n- remove obsolete compose version key from docker-compose-simple.yml\n- add standard Apache-2.0 license header to docker-compose.decommission.yml
* chore(deps): bump the dependencies group across 1 directory with 7 updates (#2994 )
Bumps the dependencies group with 7 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [sysinfo](https://github.com/GuillaumeGomez/sysinfo ) | `0.39.1` | `0.39.2` |
| [dial9-tokio-telemetry](https://github.com/dial9-rs/dial9-tokio-telemetry ) | `0.3.9` | `0.3.10` |
| [opentelemetry](https://github.com/open-telemetry/opentelemetry-rust ) | `0.31.0` | `0.32.0` |
| [opentelemetry-otlp](https://github.com/open-telemetry/opentelemetry-rust ) | `0.31.1` | `0.32.0` |
| [opentelemetry_sdk](https://github.com/open-telemetry/opentelemetry-rust ) | `0.31.0` | `0.32.0` |
| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-rust ) | `0.31.0` | `0.32.0` |
| [opentelemetry-stdout](https://github.com/open-telemetry/opentelemetry-rust ) | `0.31.0` | `0.32.0` |
Updates `sysinfo` from 0.39.1 to 0.39.2
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/main/CHANGELOG.md )
- [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.39.1...v0.39.2 )
Updates `dial9-tokio-telemetry` from 0.3.9 to 0.3.10
- [Release notes](https://github.com/dial9-rs/dial9-tokio-telemetry/releases )
- [Changelog](https://github.com/dial9-rs/dial9/blob/main/CHANGELOG.md )
- [Commits](https://github.com/dial9-rs/dial9-tokio-telemetry/compare/dial9-tokio-telemetry-v0.3.9...dial9-tokio-telemetry-v0.3.10 )
Updates `opentelemetry` from 0.31.0 to 0.32.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-prometheus-0.31.0...opentelemetry-0.32.0 )
Updates `opentelemetry-otlp` from 0.31.1 to 0.32.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-otlp-0.31.1...opentelemetry-otlp-0.32.0 )
Updates `opentelemetry_sdk` from 0.31.0 to 0.32.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry_sdk-0.32.0 )
Updates `opentelemetry-semantic-conventions` from 0.31.0 to 0.32.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry-semantic-conventions-0.32.0 )
Updates `opentelemetry-stdout` from 0.31.0 to 0.32.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry-stdout-0.32.0 )
---
updated-dependencies:
- dependency-name: sysinfo
dependency-version: 0.39.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: dial9-tokio-telemetry
dependency-version: 0.3.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: opentelemetry
dependency-version: 0.32.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: opentelemetry-otlp
dependency-version: 0.32.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: opentelemetry_sdk
dependency-version: 0.32.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: opentelemetry-semantic-conventions
dependency-version: 0.32.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: opentelemetry-stdout
dependency-version: 0.32.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: houseme <housemecn@gmail.com >
* chore(deps): bump workspace dependency versions
* chore(deps): refresh lockfile windows crate graph
* chore(bench): align snapshot mode labels with coverage
* chore(bench): clarify tested snapshot modes
* fix(review): address PR2890 Copilot comments
---------
Signed-off-by: houseme <housemecn@gmail.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 04:58:42 +00:00
Henry Guo
17ae9f34c7
fix(notify): accept case-insensitive filter rule names ( #2990 )
2026-05-18 03:41:48 +00:00
houseme
6e12289339
fix(runtime): finalize issue 2941 profiling cleanup ( #2983 )
...
* perf(runtime): narrow profiling support and upgrade starshard
* style(notify): normalize starshard imports
* perf(ecstore): reduce list_path_raw coordination overhead
* docs(scripts): add issue 2941 perf capture workflow
* fix(runtime): finalize issue 2941 profiling cleanup
* build(deps): bump quick-xml to 0.40.0
* chore(scripts): untrack local perf capture guide
* fix(scripts): honor label in perf capture output
2026-05-16 11:09:04 +00:00
Henry Guo
11be278c40
test(notify): cover prefix suffix event dispatch ( #2960 )
2026-05-14 05:38:38 +00:00
houseme
81754d80b3
refactor(targets): unify queue/connectivity handling and coverage ( #2953 )
...
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
Co-authored-by: marshawcoco <marshawcoco@gmail.com >
2026-05-14 04:31:23 +00:00
Henry Guo
c1bcee327c
fix(notify): keep live listen events active when disabled ( #2952 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-13 17:10:14 +00:00
安正超
28c9358482
test(notify): cover encoded key target union ( #2934 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-12 15:20:06 +00:00
Henry Guo
07a01a1123
fix(notify): match filters against decoded event keys ( #2921 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-11 15:01:37 +00:00
JaySon
bafff6d207
feat(targets): add check_mysql_server_available probe function ( #2884 )
...
Signed-off-by: JaySon-Huang <tshent@qq.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-10 11:53:45 +00:00
houseme
53ec1b95d8
keep sftp e2e tests buildable ( #2897 )
2026-05-10 11:52:15 +00:00
houseme
81ad48dac2
feat(targets): add AMQP support for notify and audit ( #2879 )
...
Co-authored-by: Hyesook Yun <74169420+suk13574@users.noreply.github.com >
2026-05-09 01:56:26 +00:00
houseme
5431b9273d
feat(targets): complete redis mysql postgres target wiring ( #2842 )
...
Signed-off-by: jaehanbyun <awbrg789@naver.com >
Signed-off-by: houseme <housemecn@gmail.com >
Signed-off-by: Gunther Xing <jiengup@gmail.com >
Signed-off-by: JaySon-Huang <tshent@qq.com >
Co-authored-by: jaehanbyun <awbrg789@naver.com >
Co-authored-by: Gunther Xing <jiengup@gmail.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
Co-authored-by: cxymds <Cxymds@qq.com >
Co-authored-by: JaySon <tshent@qq.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2026-05-07 10:00:59 +00:00
houseme
e19b0dd997
fix(notify): improve webhook target diagnostics for env setup ( #2810 )
2026-05-06 00:28:46 +00:00
houseme
b96ccfd110
build(deps): bump the dependencies group with 7 updates ( #2676 )
2026-04-25 02:15:14 +00:00
houseme
368ef0f16c
refactor(targets): unify endpoint source/merge logic and bump rustfs-kafka-async to v1.2.0 ( #2654 )
...
Co-authored-by: Filipe Monteiro <a22407332@alunos.ulht.pt >
Co-authored-by: cxymds <Cxymds@qq.com >
Co-authored-by: weisd <im@weisd.in >
Co-authored-by: loverustfs <hello@rustfs.com >
2026-04-23 09:14:36 +00:00
houseme
3ac1d2ab0b
fix(security): redact target debug logs and remove eval-based bench hook ( #2637 )
2026-04-21 21:21:01 +00:00
houseme
3796b684f0
feat(targets): add NATS and Pulsar target support ( #2618 )
2026-04-21 00:28:19 +00:00
houseme
1cbf156559
refactor(obs): migrate metrics runtime/schema and tighten migration guards ( #2584 )
2026-04-18 07:51:15 +00:00
Tunglies
579b124726
lint: clippy rules or_fun_call ( #2561 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-04-16 02:48:39 +00:00