Neo SPCC released coordinated updates to both NeoFS gateways in early July, covering the REST API interface and the S3-compatible protocol gateway. REST Gateway v0.18.0 landed on July 3 and S3 Gateway v0.45.0 on July 2, with both releases targeting performance improvements, API surface cleanup, and shared dependency upgrades.

The updates follow a similar pattern to the previous gateway pair released in April, when REST v0.17.0 and S3 v0.43.0 introduced session token v2 support. Both new releases depend on NeoFS SDK RC20 and NeoGo v0.120.0, aligning them with the recently covered NeoFS Node v0.54.0 and completing a stack-wide upgrade cycle.

REST Gateway v0.18.0

The REST Gateway release introduces support for non-ASCII object attributes through a new X-Attributes-Base64 header system. Because standard HTTP headers are restricted to printable ASCII, the gateway now accepts attribute metadata as a Base64-encoded JSON map, enabling object attributes in Cyrillic, Chinese, emoji, and other non-ASCII encodings. The legacy X-Attributes header remains available as a fallback when all attribute values are ASCII-safe.

GET operations received two performance improvements. The gateway now skips SHA256 checksum verification on downloaded objects, eliminating a full-payload hash computation on every request. Internal buffer handling was also refactored to reduce memory allocation overhead during object reads, with a new readCloseWriterTo interface enabling zero-copy data forwarding to HTTP response writers. These changes are particularly impactful for large object downloads.

A new X-Object-Type response header accompanies object GET and HEAD responses, allowing API consumers to distinguish between REGULAR, TOMBSTONE, LOCK, and LINK object types. The release also adds origin token support for the /v2/auth/session/complete endpoint, preserving delegation chains when a session token is derived from a parent token.

On the cleanup side, RANGEHASH operation support was removed, a prerequisite enabled by the NeoFS SDK RC20 upgrade. Authentication endpoints now accept both hex and Base64 encoding for key and signature fields, where previously only hex was accepted.

No configuration changes are required for users upgrading from v0.17.x, though applications reading the X-Attributes header for objects with non-ASCII metadata should migrate to X-Attributes-Base64.

S3 Gateway v0.45.0

The S3 Gateway release carries several breaking changes alongside new features and performance gains. Users upgrading from older versions should review the migration requirements before proceeding.

A new namespace configuration option enables namespace-bound gateway mode, where all requests are scoped to a specific namespace. This addresses user preferences for bucket subdomains and namespace scoping.

HEAD request handling was optimized by consolidating the internal resolution path from two SEARCH operations plus one HEAD to a single SEARCH plus one HEAD per request, reducing network round-trips to NeoFS storage nodes. Checksum verification was also disabled in the Get handler for performance, and EACL rules were simplified with GETRANGEHASH removed, reducing table size and eliminating duplicate entries. A memory issue in CompleteMultipartUpload was fixed, where all parts were previously read into gateway memory simultaneously during the completion operation.

The release removes several legacy mechanisms. Support for access boxes with session token v1 and bearer-based tokens has been dropped entirely, following the session token v2 introduction in v0.43.0. Backward-compatibility code for storing bucket settings, CORS, tags, and notification metadata as dedicated NeoFS objects was also removed. This storage scheme migrated to container attributes in v0.42.0. Object-level ACL support was dropped as well, citing known bugs, oversized EACL tables, and unresolved issues.

These removals carry practical upgrade requirements. Users with old bearer-token credentials must regenerate them using the authmate tool. Those who have not yet migrated bucket metadata from the legacy object-based storage format must first upgrade to v0.44.0, which handles the migration automatically, before proceeding to v0.45.0.

Both gateway releases can be found at the links below:
https://github.com/nspcc-dev/neofs-rest-gw/releases/tag/v0.18.0
https://github.com/nspcc-dev/neofs-s3-gw/releases/tag/v0.45.0