安正超
08c586d843
security(admin): reject unknown JSON ingress fields ( #3376 )
2026-06-12 10:21:50 +08:00
Henry Guo
19ff378e9b
fix(scanner): preserve newer usage snapshots ( #3370 )
...
* fix(scanner): preserve newer usage snapshots
* fix(table-catalog): require namespace locking backend
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-12 07:06:08 +08:00
Henry Guo
51ef87ed19
fix(heal): recover renewed disk health checks ( #3366 )
...
* fix(heal): recover renewed disk health checks
* test(heal): cover replaced remote disk rebuild
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-12 07:05:52 +08:00
安正超
c3055f9335
security(kms): require explicit dev defaults opt-in ( #3369 )
...
* security(kms): require explicit dev defaults opt-in
* test(kms): satisfy clippy dev defaults checks
2026-06-12 07:05:20 +08:00
安正超
a85cc0354c
refactor(storage-api): remove namespace lock from StorageAPI ( #3365 )
...
* refactor(storage-api): remove namespace lock from StorageAPI
* test(scanner): wait for runtime budget cancellation
---------
Co-authored-by: loverustfs <hello@rustfs.com >
2026-06-11 22:42:12 +08:00
houseme
82af181dcf
refactor(logging): unify governance runtime events ( #3367 )
2026-06-11 22:26:02 +08:00
安正超
7146c893cb
refactor(storage-api): remove legacy bucket DTO re-export ( #3364 )
2026-06-11 21:24:56 +08:00
houseme
0a987d870b
refactor(logging): reduce runtime noise ( #3363 )
2026-06-11 19:49:01 +08:00
安正超
a0b6636b61
refactor(config): remove legacy accessor re-export ( #3362 )
2026-06-11 19:32:57 +08:00
Henry Guo
2e3c777307
fix(heal): skip transient usage cache heal errors ( #3359 )
2026-06-11 19:16:32 +08:00
安正超
b4524033e3
refactor(config): move global config accessors ( #3360 )
2026-06-11 19:16:02 +08:00
安正超
ed3851782c
refactor(config): remove legacy model re-export ( #3357 )
2026-06-11 18:09:01 +08:00
安正超
69549634ea
refactor(config): migrate scanner config consumer ( #3356 )
2026-06-11 17:30:26 +08:00
安正超
ca58d7f0ec
refactor(config): migrate server config consumers ( #3353 )
2026-06-11 17:04:50 +08:00
安正超
2205991180
refactor(config): extract server config model ( #3351 )
2026-06-11 16:11:17 +08:00
houseme
7d38b0cf90
refactor(obs): unify local and otlp log output ( #3352 )
...
wip(obs): start lg-002 output unification
2026-06-11 16:10:54 +08:00
houseme
8d337c4e87
feat(obs): add logging redaction guard rails ( #3349 )
...
* feat(obs): add logging redaction guard rails
* chore(docs): keep logging plans out of lg-001 pr
* test(obs): guard against unmasked access key logs
* test(obs): enforce masked access key log patterns
2026-06-11 15:24:32 +08:00
安正超
dd50359161
refactor(storage): narrow table catalog bounds ( #3350 )
2026-06-11 14:32:28 +08:00
安正超
d60deba9b6
fix(security): add IAM authorization to FTP read/metadata/cwd handlers (GHSA-3g29-xff2-92vp) ( #3347 )
...
fix(security): add IAM authorization to FTP read/metadata/cwd handlers
The FTP frontend's get() (RETR), metadata() (SIZE/MDTM), and cwd()
(CWD) handlers dispatched directly to the storage backend without
calling authorize_operation(). This allowed any authenticated FTP user,
including those with explicit Deny policies, to read arbitrary objects
and probe bucket existence regardless of IAM policy.
Add authorize_operation() calls matching the pattern used by the
write-path handlers (put, del, list, rmd) and the WebDAV driver:
- get(): S3Action::GetObject
- metadata() for files: S3Action::HeadObject
- metadata() for directories: S3Action::HeadBucket
- cwd(): S3Action::HeadBucket
Fixes: GHSA-3g29-xff2-92vp
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-11 05:48:53 +00:00
安正超
d4ee44f49f
refactor(scanner): narrow cache storage bounds ( #3348 )
2026-06-11 13:52:35 +08:00
安正超
2f7cc7cb9e
refactor(storage): narrow resync metadata bounds ( #3345 )
2026-06-11 04:41:15 +00:00
houseme
a49c6b4c2e
fix(logging): clarify recovery and metacache warn messages ( #3341 )
...
* fix(logging): clarify recovery and metacache warn messages
Clarify cached gRPC connection eviction messages so they describe automatic reconnection instead of implying a persistent cluster fault.
Retitle metacache resolution logs to remove the misleading decommission_pool prefix and demote routine reconciliation traces to debug while preserving actionable warning paths.
* fix(logging): avoid overpromising reconnect success
2026-06-11 04:19:22 +00:00
Henry Guo
7191a3abae
docs(scanner): document runtime scanner controls ( #3339 )
...
* docs(scanner): document runtime scanner controls
* docs(scanner): split English and Chinese README
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: majinghe <42570491+majinghe@users.noreply.github.com >
2026-06-11 12:04:34 +08:00
安正超
686068d8bd
refactor(storage): narrow metadata bounds ( #3343 )
2026-06-11 12:04:02 +08:00
安正超
6b86e3875c
refactor(storage): remove old admin surfaces ( #3340 )
2026-06-11 11:28:09 +08:00
安正超
87968275a7
refactor(storage): route maintenance inventory reads ( #3337 )
2026-06-11 10:32:48 +08:00
安正超
f325b9f714
refactor(ecstore): route admin read internals ( #3336 )
2026-06-11 08:43:42 +08:00
安正超
94c53af264
refactor(storage): use admin API for observability reads ( #3335 )
2026-06-11 08:13:15 +08:00
安正超
4b1714438e
feat(storage-api): bind ecstore admin contract ( #3331 )
2026-06-11 05:49:14 +08:00
Henry Guo
91f80a5585
feat(scanner): expose lifecycle transition status ( #3326 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-10 16:45:02 +00:00
安正超
d9ddd1bedc
feat(storage-api): add disk inventory contract ( #3330 )
2026-06-10 16:33:31 +00:00
houseme
b1339a98ed
fix(scanner): delay deep verify for fresh objects ( #3329 )
...
Gate scanner-triggered deep heal behind a short new-object cooldown and retry transient bitrot shard size mismatches during local verification.
Add targeted tests for cooldown mode selection and size-mismatch classification, and log when deep scans are downgraded or size-mismatch retries occur.
2026-06-10 15:50:44 +00:00
houseme
3fed21c68a
fix(startup): add disk init diagnostics ( #3324 )
...
* ci(build): remove macOS x86_64 target
* ci(build): reduce workflow timeout
* fix(startup): add disk init diagnostics
2026-06-10 14:24:12 +00:00
Henry Guo
66fd55a8e0
feat(scanner): expose pacing pressure status ( #3319 )
...
* feat(scanner): expose pacing pressure status
* fix(scanner): preserve merged pause pressure
* fix(scanner): default missing primary pressure
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-10 07:33:41 +00:00
安正超
bb5d9565a6
feat(storage-api): add bucket DTO contract ( #3314 )
...
* feat(storage-api): add bucket DTO contract
* ci(build): increase workflow timeout to 90 minutes
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-10 07:16:14 +00:00
Henry Guo
62e9c5b94f
feat(scanner): add adaptive pacing controls ( #3315 )
...
* feat(scanner): add adaptive pacing controls
* fix(scanner): bound pacing delay status precision
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-10 03:46:02 +00:00
Henry Guo
2eafd9c602
feat(table-catalog): add credential response boundary ( #3305 )
...
* feat(table-catalog): add credential response boundary
* fix(table-catalog): enforce scoped catalog resources
* fix(table-catalog): reduce admin auth scope arguments
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-10 01:15:51 +00:00
安正超
a73c90c811
security: redact IAM and target debug secrets ( #3306 )
2026-06-10 09:03:50 +08:00
安正超
3795d44b86
feat(storage-api): add error code contract ( #3313 )
2026-06-10 09:03:29 +08:00
安正超
45391ac776
feat(storage-api): add contract crate ( #3310 )
2026-06-09 20:06:15 +00:00
安正超
03eb10b07f
feat: add KMS config redaction safeguards ( #3303 )
2026-06-09 14:08:58 +00:00
Henry Guo
e79c793803
feat(heal): add scanner-aware bitrot controls ( #3297 )
...
* feat(heal): add scanner-aware bitrot controls
* fix(config): register heal defaults
* test(admin): avoid heal config queue conflict
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-09 13:43:18 +00:00
Henry Guo
0cdcd1eb7b
feat(table-catalog): internalize catalog backing paths ( #3295 )
...
* feat(table-catalog): internalize catalog backing paths
* fix(table-catalog): clean internal catalog on bucket delete
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-09 12:01:25 +00:00
cxymds
55590e38fb
fix(config): accept Kafka SASL keys in legacy admin ( #3300 )
2026-06-09 12:01:15 +00:00
安正超
4fec606dc4
feat: add KMS action taxonomy ( #3294 )
2026-06-09 05:06:15 +00:00
Henry Guo
ad9bf41fc8
feat(heal): expose scanner heal admission outcomes ( #3292 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: cxymds <Cxymds@qq.com >
2026-06-09 03:39:57 +00:00
houseme
aabda41ae5
build: upgrade Rust baseline to 1.96.0 ( #3291 )
...
* build: upgrade Rust baseline to 1.96.0
* ci: pin Rust workflows to 1.96.0
* remove
* ci: pin setup action to Rust 1.96.0
* build: pin toolchain to Rust 1.96.0
2026-06-08 20:32:37 +00:00
houseme
9354b939ca
refactor(zip): simplify archive extraction path ( #3290 )
...
* refactor(zip): simplify archive extraction path
* build(deps): align datafusion and http updates
* fix(test): restore pre-commit compatibility
2026-06-08 20:03:02 +00:00
Henry Guo
6413df4b7f
feat(replication): expose scanner repair outcomes ( #3278 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: cxymds <Cxymds@qq.com >
2026-06-08 14:24:27 +00:00
cxymds
452c003341
fix(scanner): ignore missing rebalance metadata ( #3282 )
...
* fix(ecstore): harden rebalance data movement
* fix(ecstore): preserve failed rebalance status
* fix(ecstore): avoid rebalance walkdir total timeout
* fix(ecstore): retry rebalance listing timeouts
* fix(ecstore): restrict data movement resume target
* refactor(ecstore): simplify multipart movement target
* fix(ecstore): restore resume target checks
* perf(ecstore): speed up rebalance bucket merges
* fix: keep rebalance listing alive on transient failures
* fix(scanner): ignore missing rebalance metadata
---------
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-08 14:24:16 +00:00