Files
seaweedfs/test/vectors/README.md
T
Chris LuandDevin d0441bbdbb s3vectors: validate index ARNs and expand live integration coverage (#12222)
* test: align vector bucket policy coverage with vector actions

* s3vectors: validate ARN service and resource shape before resolving indexes

* test: exercise signed vector bucket policies and catalog lifecycle

* ci: require the expanded vector integration matrix and all gateway tests

* test: reject index ARNs in bucket-level API requests

* s3vectors: scope ARN resolution to the gateway namespace

* s3vectors: reject name fields that conflict with resolved ARNs

bucketARNs and resolveIndexARNs already reject an indexArn that names a
different bucket than vectorBucketArn, but a vectorBucketName or
indexName disagreeing with the ARNs was silently dropped. Validate the
plain names against the resolved ARN values the same way.

* test: cover conflicting vector names and ARNs in live requests

---------

Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-29 17:57:11 -07:00

26 lines
1.3 KiB
Markdown

# S3 Vectors integration tests
Run `python3 -m pip install -r requirements.txt`, then `make test`.
The suite starts a master, volume, filer, authenticated S3/Lance gateway, and
vector engine on temporary ports. The same 17 API tests run with both Go and
Rust volume servers. Coverage includes bucket/index lifecycle, bucket policies,
signed policy grants and denies, encryption settings, empty results, ARN validation,
metadata, filters, cosine distance, atomic upserts,
catalog/vector pagination, index deletion and recreation, segmented listing,
authentication, and writer loss.
Server logs and data stay in pytest's temporary directory for diagnosis. Every
child process stops on exit. To select a volume server, set
`VOLUME_SERVER_IMPL=go` or `rust`.
In an enterprise checkout containing `rust/sw-vector-distributed`, the build and
default matrix also include distributed queries with two search workers. Those
queries must still succeed after the writer stops. `VECTOR_QUERY_MODE=single`
or `distributed` selects one query mode.
To use prebuilt binaries, set `WEED_BINARY`, `VECTOR_BINARY`,
`RUST_VOLUME_SERVER_BINARY`, and (for distributed queries) `VECTOR_WORKER_BINARY`,
then run `./run_test.sh`. `PYTHON` selects the Python interpreter. The Makefile
accepts `CARGO_PROFILE=dev` for faster local builds.