4.08
-
S3 API
- Fix CopyObject If-Match ETag mismatch by copying Md5 attribute by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8053
- Fix: Propagate OIDC claims for dynamic IAM policies by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8060
- Fix CORS headers not applied to non-existent bucket responses by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8070
- Fix: S3 CORS headers missing for non-existent buckets by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8078
- fix: propagate OIDC attributes to STS session token for IAM policies by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8079
- fix(s3api): missing
Vary: Originheader on non-CORS andOPTIONSrequests by @llc1123 in https://github.com/seaweedfs/seaweedfs/pull/8072 - Fix S3 conditional writes with versioning (Issue #8073) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8080
- Fix: Populate Claims from STS session RequestContext for policy variable substitution by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8082
- test: fix flaky S3 volume encryption test by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8083
- Fix S3 Gateway Read Failover #8076 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8087
- fix: S3 listing NextMarker missing intermediate directory component by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8089
- fix: IAM authentication with AWS Signature V4 and environment credentials by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8099
- Add AWS IAM integration tests and refactor admin authorization by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8098
- Refactor IAM Storage: Multi-File Backend & Unified Interface by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8102
- Fix IAM OIDC role mapping and OIDC claims in trust policy by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8104
- iam: support ForAnyValue and ForAllValues condition set operators by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8105
- IAM Policy Management via gRPC by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8109
- migrate IAM policies to multi-file storage by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8114
- Explicit IAM gRPC APIs for S3 Server by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8126
- s3api: fix volume assignment failure in copy operations by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8128
- Implement IAM propagation to S3 servers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8130
- feat: Add S3 Tables support for Iceberg tabular data by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8147
- s3api: ensure MD5 is calculated or reused during CopyObject by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8163
- iam: add ECDSA support for OIDC token validation by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8166
-
S3 Table Bucket (WIP)
- s3: change s3 tables to use RESTful API by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8169
- s3api: fix S3 Tables auth to allow auto-hashing of body by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8170
- s3api: allow empty region and account id in s3tables ARN by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8171
- Add s3tables shell and admin UI by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8172
- s3tables: add Iceberg file layout validation for table buckets by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8176
-
FUSE Mount
- Support for cacheMetaTtlSec option in fuse command by @KyoungYun-K in https://github.com/seaweedfs/seaweedfs/pull/8063
- mount: apply UID/GID mapping in lookupEntry for cache misses by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8144
- Enable weed fuse on FreeBSD by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8146
- mount: invalidate meta cache on follow retry by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8173
- mount: refresh and evict hot dir cache by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8174
-
Misc
- Update Wiki images by @yahooguntu in https://github.com/seaweedfs/seaweedfs/pull/8069
- fix #8081: build latest container is missing latest_large_disk by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8145
-
Admin UI
- Fix maintenance worker panic and add EC integration tests by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8068
- Refactor Admin UI to use unified IAM storage and add MultipleFileStore by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8101
- Refactor Admin UI: Support Unified Identity Storage by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8103
- Fix Javascript merge issue and UI worker detail display bug by @aimmac23 in https://github.com/seaweedfs/seaweedfs/pull/8135
- Fix jwt error in admin UI by @MorezMartin in https://github.com/seaweedfs/seaweedfs/pull/8140
-
Helm Chart
- Feature/volume ingress by @yalindogusahin in https://github.com/seaweedfs/seaweedfs/pull/8084
- Refactor Helm chart to use dynamic names for resources by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8142
- refactor(helm): Unified Naming Truncation and Bug Fixes by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8143
- Update Helm hook annotations for post-install and upgrade by @emanuele-leopardi in https://github.com/seaweedfs/seaweedfs/pull/8150
-
Volume Server
- Fix EC shard recovery with improved diagnostics by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8091
- Clarfiy errors upon needle CRC mismatches. by @proton-lisandro-pin in https://github.com/seaweedfs/seaweedfs/pull/8096
- fix: close volumes and EC shards in tests for Windows compatibility by @pingqiu in https://github.com/seaweedfs/seaweedfs/pull/8152
- fix: correct chunk size in encrypted uploads (fixes #8151) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8154
- Add volume server RPCs to read and update state flags. by @proton-lisandro-pin in https://github.com/seaweedfs/seaweedfs/pull/8186
- Block RPC write operations on volume servers when maintenance mode is enabled by @proton-lisandro-pin in https://github.com/seaweedfs/seaweedfs/pull/8115
- fix: skip exhausted blocks before creating an interval by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8180
- Implement RPC skeleton for regular/EC volumes scrubbing. by @proton-lisandro-pin in https://github.com/seaweedfs/seaweedfs/pull/8187
-
Master
- Fix imbalance detection disk type grouping and volume grow errors by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8097
- Return volume server state flags via
VolumeServerStatus()RPCs. by @proton-lisandro-pin in https://github.com/seaweedfs/seaweedfs/pull/8016 - Have masters update DataNode details based on state heartbeats from volume servers. by @proton-lisandro-pin in https://github.com/seaweedfs/seaweedfs/pull/8017
-
Shell
- feat(shell): add Object Lock management commands by @kvaps in https://github.com/seaweedfs/seaweedfs/pull/8141
- Fix inconsistent TTL reporting in volume.list #8158 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8164
- shell: allow spaces in arguments via quoting (#8157) by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8165
-
Remote Storage
- feat(gcs): add application default credentials fallback support by @petedodd-pd in https://github.com/seaweedfs/seaweedfs/pull/8161
-
Filer
- fix Filer startup failure due to JWT on / path #8149 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/8167
- @KyoungYun-K made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/8063
- @yahooguntu made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/8069
- @yalindogusahin made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/8084
- @emanuele-leopardi made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/8150
- @pingqiu made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/8152
- @petedodd-pd made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/8161
Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.07...4.08
v1.35.0
The search routes accept a new field named showPerformanceDetails. When set to ù true`, the search response contains a performance trace, allowing the user to better understand what takes time during a search query.
impacted routes:
POST /indexes/<index_uid>/searchGET /indexes/<index_uid>/searchPOST /multi-searchPOST /indexes/<index_uid>/similarGET /indexes/<index_uid>/similar
routes: POST /indexes/<index_uid>/search and GET /indexes/<index_uid>/search
new request parameters:
showPerformanceDetails:true/false(boolean)
example
new response field:
performanceDetails:{"<span>": "<human_duration>", .. }(map)
example
{
"hits": [
// hits ..
],
"query": "glass",
"processingTimeMs": 5,
"limit": 20,
"offset": 0,
"estimatedTotalHits": 1,
"requestUid": "<uuid>",
"performanceDetails": {
"wait for permit": "295.29µs",
"search > tokenize": "436.67µs",
"search > resolve universe": "649.00µs",
"search > keyword search": "515.71µs",
"search > format": "288.54µs",
"search": "3.56ms"
}
}
route: /multi-search
new request parameters:
queries.showPerformanceDetails:true/false(boolean)
example
"queries": [
{
"indexUid": "<index_uid>",
"q": "glass",
"showPerformanceDetails": true
}
]
new response field:
results.performanceDetails:{"<span>": "<human_duration>", .. }(map)
example
{
"results": [
{
"indexUid": "<index_uid>",
"hits": [
// hits ..
],
"query": "glass",
"processingTimeMs": 5,
"limit": 20,
"offset": 0,
"estimatedTotalHits": 1,
"requestUid": "<uuid>",
"performanceDetails": {
"wait for permit": "295.29µs",
"search > tokenize": "436.67µs",
"search > resolve universe": "649.00µs",
"search > keyword search": "515.71µs",
"search > format": "288.54µs",
"search": "3.56ms"
}
}
]
}
route: /multi-search
new request parameters:
federation.showPerformanceDetails:true/false(boolean)
example
{
"federation": { "showPerformanceDetails": true },
"queries": [
{
"indexUid": "<index_uid>",
"q": "glass"
}
]
}
new response field:
performanceDetails:{"<span>": "<human_duration>", .. }(map)
example
{
"hits": [
// hits ..
],
"query": "glass",
"processingTimeMs": 5,
"limit": 20,
"offset": 0,
"estimatedTotalHits": 1,
"requestUid": "<uuid>",
"performanceDetails": {
"wait for permit": "213.83µs",
"search > tokenize": "171.67µs",
"search > resolve universe": "257.63µs",
"search > keyword search": "577.71µs",
"search > format": "114.96µs",
"search > federation > wait for remote results": "62.71µs",
"search > federation > merge results": "120.04µs",
"search > federation > merge facets": "53.42µs",
"search > federation": "237.04µs",
"search": "289.08ms"
}
}
route: /indexes/<index_uid>/similar
new request parameters:
showPerformanceDetails:true/false(boolean)
example
{
"id": 143,
"embedder": "manual",
"showPerformanceDetails": true
}
new response field:
performanceDetails:{"<span>": "<human_duration>", .. }(map)
example
{
"hits": [
// hits ..
],
"id": "143",
"processingTimeMs": "[duration]",
"limit": 20,
"offset": 0,
"estimatedTotalHits": 4,
"performanceDetails": {
"search > format": "244.92µs",
"search": "1.25ms"
}
}
By @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/6132
- Add AI usage disclosure guidelines to CONTRIBUTING.md by @meili-bot in https://github.com/meilisearch/meilisearch/pull/6114
- fix: expose SettingsDelta and related types for external crate usage by @MkDev11 in https://github.com/meilisearch/meilisearch/pull/6119
- Return Pagination fields in /fields route by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/6126
- Stabilize the post-processing multithreading by @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/6130
- Bump mini-dashboard version to fix display of image in local UI interface by @Strift in https://github.com/meilisearch/meilisearch/pull/6129
- Fix mTLS compatibility with Go by @curquiza in https://github.com/meilisearch/meilisearch/pull/6133
- @MkDev11 made their first contribution in https://github.com/meilisearch/meilisearch/pull/6119
Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.34.3...v1.35.0
Pingora 0.7.0
0.7.0 - 2026-01-30
- Extensible SslDigest to save user-defined TLS context
- Add ConnectionFilter trait for early TCP connection filtering
- Add ConnectionFilter trait for early TCP connection filtering
- Introduce a virtual L4 stream abstraction
- Add support for verify_cert and verify_hostname using rustls
- Exposes the HttpProxy struct to allow external crates to customize the proxy logic.
- Exposes a new_mtls method for creating a HttpProxy with a client_cert_key to enable mtls peers.
- Add SSLKEYLOGFILE support to rustls connector
- Allow spawning background subrequests from main session
- Allow Extensions in cache LockCore and user tracing
- Add body-bytes tracking across H1/H2 and proxy metrics
- Allow setting max_weight on MissFinishType::Appended
- Allow adding SslDigestExtensions on downstream and upstream
- Add Custom session support for encapsulated HTTP
- Use write timeout consistently for h2 body writes
- Prevent downstream error prior to header from canceling cache fill
- Fix debug log and new tests
- Fix size calculation for buffer capacity
- Fix cache admission on header only misses
- Fix duplicate zero-size chunk on cache hit
- Fix chunked trailer end parsing
- Lock age timeouts cause lock reacquisition
- Fix transfer fd compile error for non linux os
- Removed atty
- Upgrade lru to >= 0.16.3 crate version because of RUSTSEC-2026-0002
- Add tracing to log reason for not caching an asset on cache put
- Evict when asset count exceeds optional watermark
- Remove trailing comma from Display for HttpPeer
- Make ProxyHTTP::upstream_response_body_filter return an optional duration for rate limiting
- Restore daemonize STDOUT/STDERR when error log file is not specified
- Log task info when upstream header failed to send
- Check cache enablement to determine cache fill
- Update meta when revalidating before lock release
- Add ForceFresh status to cache hit filter
- Pass stale status to cache lock
- Bump max multipart ranges to 200
- Downgrade Expires header warn to debug log
- CI and effective msrv bump to 1.83
- Add default noop custom param to client Session
- Use static str in ErrorSource or ErrorType as_str
- Use bstr for formatting byte strings
- Tweak the implementation of and documentation of
connection_filterfeature - Set h1.1 when proxying cacheable responses
- Add or remove accept-ranges on range header filter
- Update msrv in github ci, fixup .bleep
- Override request keepalive on process shutdown
- Add shutdown flag to proxy session
- Add ResponseHeader in pingora_http crate's prelude
- Add a configurable upgrade for pingora-ketama that reduces runtime cpu and memory
- Add to cache api spans
- Increase visibility of multirange items
- Use seek_multipart on body readers
- Log read error when reading trailers end
- Re-add the warning about cache-api volatility
- Default to close on downstream response before body finish
- Ensure idle_timeout is polled even if idle_timeout is unset so notify events are registered for h2 idle pool, filter out closed connections when retrieving from h2 in use pool.
- Add simple read test for invalid extra char in header end
- Allow customizing lock status on Custom NoCacheReasons
- Close h1 conn by default if req header unfinished
- Add configurable retries for upgrade sock connect/accept
- Deflake test by increasing write size
- Make the version restrictions on rmp and rmp-serde more strict to prevent forcing consumers to use 2024 edition
- Rewind preread bytes when parsing next H1 response
- Add epoch and epoch_override to CacheMeta
v3.3.6
- Fix servernames issue by @lalernehl in https://github.com/Netflix/zuul/pull/2065
- Bump release version by @lalernehl in https://github.com/Netflix/zuul/pull/2066
Full Changelog: https://github.com/Netflix/zuul/compare/v3.3.5...v3.3.6
v3.3.4
- Null check for serverNames by @lalernehl in https://github.com/Netflix/zuul/pull/2063
- Bump release version by @lalernehl in https://github.com/Netflix/zuul/pull/2064
Full Changelog: https://github.com/Netflix/zuul/compare/v3.3.3...v3.3.4
{ "q": "glass", "showPerformanceDetails": true }