Commit Graph

12939 Commits

Author SHA1 Message Date
Chris Lu
61befd10fc ci(volume-server): include native rust mode in smoke matrix 2026-02-16 00:15:45 -08:00
Chris Lu
70ddbee370 feat(rust-volume-server): add native mode bootstrap entrypoint 2026-02-16 00:15:33 -08:00
Chris Lu
14c863dbff docs(volume-server): refocus plan on native rust parity 2026-02-16 00:09:31 -08:00
Chris Lu
6bb9d8bac2 docs(volume_server): log head readDeleted parity coverage 2026-02-15 23:51:50 -08:00
Chris Lu
cc80ad3643 test(volume_server/http): add head readDeleted parity coverage 2026-02-15 23:51:37 -08:00
Chris Lu
9009e38f7b docs(volume_server): log ping volume-server unreachable coverage 2026-02-15 23:50:08 -08:00
Chris Lu
b9fbb85af2 test(volume_server/grpc): add ping unreachable volume-server target case 2026-02-15 23:49:53 -08:00
Chris Lu
47d3001572 docs(volume_server): log csv query payload parity coverage 2026-02-15 23:48:35 -08:00
Chris Lu
a12dd5f8d3 test(volume_server/grpc): cover csv-query payload no-output parity 2026-02-15 23:48:22 -08:00
Chris Lu
8e614486a3 docs(volume_server): log tail-receiver interruption coverage 2026-02-15 23:47:06 -08:00
Chris Lu
a5864c3eb6 test(volume_server/grpc): cover tail-receiver source-unavailable branch 2026-02-15 23:46:55 -08:00
Chris Lu
6302809442 docs(volume_server): log tail sender cancellation coverage 2026-02-15 18:45:38 -08:00
Chris Lu
27a80f7607 test(volume_server/grpc): add tail-sender cancellation interruption coverage 2026-02-15 18:45:23 -08:00
Chris Lu
ec429e0361 docs(volume_server): log framework port-range hardening and rerun 2026-02-15 18:44:13 -08:00
Chris Lu
90e82b15ce test(volume_server/framework): allocate volume ports within safe grpc-offset range 2026-02-15 18:43:57 -08:00
Chris Lu
a3e1ee1653 docs(volume_server): log mkcol method parity coverage 2026-02-15 18:13:51 -08:00
Chris Lu
2ab30900d4 test(volume_server/http): add mkcol unsupported-method parity 2026-02-15 18:13:40 -08:00
Chris Lu
62ee14fa61 docs(volume_server): log read-all-needles multi-volume coverage 2026-02-15 17:58:44 -08:00
Chris Lu
ab95a6ef15 test(volume_server/grpc): cover read-all-needles multi-volume success 2026-02-15 17:58:34 -08:00
Chris Lu
24965fd489 docs(volume_server): log head conditional precedence coverage 2026-02-15 17:56:47 -08:00
Chris Lu
ed23e290fc test(volume_server/http): expand head conditional precedence coverage 2026-02-15 17:56:36 -08:00
Chris Lu
9b57fb6961 docs(volume_server): log ec batch delete success coverage 2026-02-15 17:55:43 -08:00
Chris Lu
1bb40b6bc5 test(volume_server/grpc): add ec batch delete success coverage 2026-02-15 17:55:29 -08:00
Chris Lu
34e342da63 docs(volume_server): log replicated write failure coverage 2026-02-15 17:45:36 -08:00
Chris Lu
4835d34438 test(volume_server/http): cover replicated write failure when replication unmet 2026-02-15 17:45:25 -08:00
Chris Lu
5814729def docs(volume_server): log ec-only read meta coverage 2026-02-15 14:49:31 -08:00
Chris Lu
37bf9b5ebf test(volume_server/grpc): cover ec-only read needle meta unsupported path 2026-02-15 14:49:18 -08:00
Chris Lu
19201df6d7 docs(volume_server): log oversized upload limit coverage 2026-02-15 14:47:18 -08:00
Chris Lu
4d61cbdeed test(volume_server/http): cover oversized upload file-size limit rejection 2026-02-15 14:47:09 -08:00
Chris Lu
3ce883624e docs(volume_server): log jwt ui access override coverage 2026-02-15 14:45:40 -08:00
Chris Lu
de974c05d5 test(volume_server/http): cover jwt ui access override behavior 2026-02-15 14:45:28 -08:00
Chris Lu
7768fda023 docs(volume_server): record proxy-mode validation and CI matrix 2026-02-15 14:29:28 -08:00
Chris Lu
548b3d9a38 ci(volume_server): run rust smoke tests in exec and proxy modes 2026-02-15 14:28:35 -08:00
Chris Lu
a7f50d23b5 feat(rust/volume_server): add proxy supervision mode for integration parity 2026-02-15 14:28:12 -08:00
Chris Lu
6ce4d7eded docs(volume_server): record rust-mode full-suite validation 2026-02-15 12:11:31 -08:00
Chris Lu
3bd20e6a10 chore(rust/volume_server): add Cargo.lock 2026-02-15 11:55:42 -08:00
Chris Lu
d402573ea8 docs(volume_server): document rust-mode harness and tracking 2026-02-15 11:55:33 -08:00
Chris Lu
63d08e8a91 ci(volume_server): add rust-mode integration smoke job 2026-02-15 11:55:28 -08:00
Chris Lu
880c2e1dab feat(rust/volume_server): add compatibility launcher and migration plan 2026-02-15 11:55:25 -08:00
Chris Lu
7beab85c21 test(volume_server/framework): support selectable volume server binary 2026-02-15 11:55:15 -08:00
Chris Lu
703d5e27b3 Fix S3 ListObjectsV2 recursion issue (#8347)
* Fix S3 ListObjectsV2 recursion issue (#8346)

Removed aggressive Limit=1 optimization in doListFilerEntries that caused missed directory entries when prefix ended with a delimiter. Added regression tests to verify deep directory traversal.

* Address PR comments: condense test comments
2026-02-15 10:52:10 -08:00
Chris Lu
e863767ac7 cleanup(iam): final removal of temporary debug logging from STS and S3 API 2026-02-14 22:15:06 -08:00
Chris Lu
e29a7f1741 cleanup(iam): remove temporary debug logging from STS and S3 API (redo) 2026-02-14 22:14:33 -08:00
Chris Lu
cf8e383e1e STS: Fallback to Caller Identity when RoleArn is missing in AssumeRole (#8345)
* s3api: make RoleArn optional in AssumeRole

* s3api: address PR feedback for optional RoleArn

* iam: add configurable default role for AssumeRole

* S3 STS: Use caller identity when RoleArn is missing

- Fallback to PrincipalArn/Context in AssumeRole if RoleArn is empty

- Handle User ARNs in prepareSTSCredentials

- Fix PrincipalArn generation for env var credentials

* Test: Add unit test for AssumeRole caller identity fallback

* fix(s3api): propagate admin permissions to assumed role session when using caller identity fallback

* STS: Fix is_admin propagation and optimize IAM policy evaluation for assumed roles

- Restore is_admin propagation via JWT req_ctx
- Optimize IsActionAllowed to skip role lookups for admin sessions
- Ensure session policies are still applied for downscoping
- Remove debug logging
- Fix syntax errors in cleanup

* fix(iam): resolve STS policy bypass for admin sessions

- Fixed IsActionAllowed in iam_manager.go to correctly identify and validate internal STS tokens, ensuring session policies are enforced.
- Refactored VerifyActionPermission in auth_credentials.go to properly handle session tokens and avoid legacy authorization short-circuits.
- Added debug logging for better tracing of policy evaluation and session validation.
2026-02-14 22:00:59 -08:00
Chris Lu
f49f6c6876 FUSE mount: fix failed git clone (#8344)
tests: reset MemoryStore to avoid test pollution; fix port reservation to prevent duplicate ports in mini

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-14 00:28:20 -08:00
Chris Lu
7799915e50 Fix IAM identity loss on S3 restart migration (#8343)
* Fix IAM reload after legacy config migration

Handle legacy identity.json metadata events by reloading from the credential manager instead of parsing event content, and watch the correct /etc/iam multi-file directories so identity changes are applied.

Add regression tests for legacy deletion and /etc/iam/identities change events.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix auth_credentials_subscribe_test helper to not pollute global memory store

The SaveConfiguration call was affecting other tests. Use local credential manager and ReplaceS3ApiConfiguration instead.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix IAM event watching: subscribe to IAM directories and improve directory matching

- Add /etc/iam and its subdirectories (identities, policies, service_accounts) to directoriesToWatch
- Fix directory matching to avoid false positives from sibling directories
  - Use exact match or prefix with trailing slash instead of plain HasPrefix
  - Prevents matching hypothetical /etc/iam/identities_backup directory

This ensures IAM config change events are actually delivered to the handler.

* fix tests

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-13 22:49:27 -08:00
Chris Lu
c090604143 Add UpdateAccessKey support to IAM API (#8342)
* Add UpdateAccessKey support to IAM API

* simplify
2026-02-13 21:11:07 -08:00
Chris Lu
f44e25b422 fix(iam): ensure access key status is persisted and defaulted to Active (#8341)
* Fix master leader election startup issue

Fixes #error-log-leader-not-selected-yet

* not useful test

* fix(iam): ensure access key status is persisted and defaulted to Active

* make pb

* update tests

* using constants
2026-02-13 20:28:41 -08:00
Lisandro Pin
fbe7dd32c2 Implement full scrubbing for regular volumes (#8254)
Implement full scrubbing for regular volumes.
2026-02-13 15:47:29 -08:00
Lisandro Pin
1ebc9dd530 Have local EC volume scrubbing check needle integrity whenever possible. (#8334)
If local EC scrubbing hits needles whose chunk location reside entirely
in local shards, we can fully reconstruct them, and check CRCs for
data integrity.
2026-02-13 15:43:17 -08:00