diff --git a/rust/volume_server/DEV_PLAN.md b/rust/volume_server/DEV_PLAN.md index 3d0ad7237..b464e6c2c 100644 --- a/rust/volume_server/DEV_PLAN.md +++ b/rust/volume_server/DEV_PLAN.md @@ -27,6 +27,7 @@ Implement a native Rust volume server that replicates Go volume-server behavior - absolute-form HTTP request-target normalization before native route matching - Native Rust HTTP data-path prevalidation now includes: - early malformed vid/fid rejection (`400`) for GET/HEAD/POST/PUT fid-route shapes before delegation + - slash-form fid-route parsing for `/{vid}/{fid}` and `/{vid}/{fid}/{filename}` with reserved-path exclusions (`/status`, `/healthz`, `/ui/index.html`, `/stats/*`, static assets) - write-path error prevalidation for fid routes: - malformed multipart form-data requests without a boundary => `400` - requests containing `Content-MD5` header => `400` mismatch parity branch @@ -232,3 +233,13 @@ Implement a native Rust volume server that replicates Go volume-server behavior - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/http/...` - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/grpc/...` - Commits: `94cefd6f4` + +- Date: 2026-02-16 +- Change: Broadened native fid-route parser to cover slash-form URLs: + - `/{vid}/{fid}` and `/{vid}/{fid}/{filename}` now flow through native malformed vid/fid validation + - added explicit non-fid exclusions for control/stats/static paths to preserve route parity +- Validation: + - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/http -run '^TestAdminStatusAndHealthz$|^TestReadPathShapesAndIfModifiedSince$|^TestMalformedVidFidPathReturnsBadRequest$'` + - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/http/...` + - `env VOLUME_SERVER_IMPL=rust VOLUME_SERVER_RUST_MODE=native go test -count=1 ./test/volume_server/grpc/...` +- Commits: `e66983e9b` diff --git a/test/volume_server/DEV_PLAN.md b/test/volume_server/DEV_PLAN.md index 14d9868d8..c634bb7d2 100644 --- a/test/volume_server/DEV_PLAN.md +++ b/test/volume_server/DEV_PLAN.md @@ -1325,3 +1325,10 @@ Update this section during implementation: - Profiles covered: P1 default and P1 with explicit file-size limit profile, plus full existing HTTP/gRPC native-mode matrix revalidation. - Gaps introduced/remaining: positive write/read/delete data handlers and all gRPC handler bodies are still delegated; native implementation continues incrementally. - Commit: `94cefd6f4` + +- Date: 2026-02-16 +- Change: Broadened Rust-native malformed-fid handling to slash-form read/write URL shapes with reserved-route exclusions. +- APIs covered: `/{vid}/{fid}` and `/{vid}/{fid}/{filename}` malformed cases now hit native `400` validation path, while `/status`, `/healthz`, `/ui/index.html`, `/stats/*`, and static asset routes remain excluded from fid parsing. +- Profiles covered: full existing HTTP/gRPC native-mode matrix, plus targeted admin/read-path malformed-slash validation run. +- Gaps introduced/remaining: successful data-path read/write/delete handlers and all gRPC method bodies remain delegated and are still the primary native implementation gap. +- Commit: `e66983e9b`