- Minimum required version of Go to 1.20
github.com/nspcc-dev/rfc6979
v0.2.0 => v0.2.1google.golang.org/grpc
v1.59.0 => v1.62.0google.golang.org/protobuf
v1.31.0 => v1.32.0
2.14.0 - 2022-10-17 - Anmado (안마도, 鞍馬島)
- Maintenance status and node state (#415)
NetmapSnapshot
RPC (#418)
- Marshal repeated
[]byte
fields correctly (#413) - Block until client connection is up (#419)
- Support new object session context format (#416)
- Mark all expiration methods as deprecated (#417)
- Minimal go version to 1.17 (#412)
neofs-crypto
tov0.4.0
(#412)google.golang.org/grpc
tov1.48.0
(#415)google.golang.org/protobuf
tov1.28.0
(#415)
2.13.1 - 2022-08-01
EACL_NOT_FOUND
status code support (#409)
2.13.0 - 2022-07-04 - Yeonpyeongdo (연평도, 延坪島)
NeoFS API v2.13 support
- WalletConnect signature scheme (#386)
object.StatusOutOfRange
enum value (#407)- Functionality to disable homomorphic hashing in container (#399)
status.SignatureVerificationFail
enum value (#405)
2.12.2 - 2022-06-03
util/protogen
tool to compile Protocol Buffers with stable marshaling
refs.ObjectIDNestedListMarshal
incorrect encoding (#401)- incorrect conversion of
oneof
field inGetRangeResponseBody.FromGRPCMessage
(#401)
- Setters don't check call on
nil
(#388) StableMarshal
methods don't returnerror
oneof
fields are now randomly initialized in test generators (#401)
2.12.1 - 2022-03-15
- Incompatible changes in signature scheme (#380)
- Public URI-parsing function
client.ParseURI()
(#383)
- Slices with pointers
[]*T
replaced with regular structure slices[]T
in v2 structures (#376)
2.12.0 - 2022-02-25 - Heuksando (흑산도, 黑山島)
NeoFS API v2.12 support
- Network magic field (
uint64
) tosession.RequestMetaHeader
(#367) - Constants for attributes related to object notifications (#372)
refs.SignatureScheme
enum and corresponding field tosession.Signature
message (#55)- New status codes in
container
,object
andsession
packages (#371) object.TypeLock
type enum value andobject.Lock
type of its content (#371)
- API of
signature
package (#55)
SessionToken
,SessionTokenBody
andSessionTokenContext
types fromsession
package
2.11.1 - 2021-12-28
- Timeout for single message transmission in
rpc/client
(#366)
2.11.0 - 2021-12-02 - Sinjido (신지도, 薪智島)
NeoFS API v2.11 support. High level packages are moved to neofs-sdk-go repository. Repository restructured as Go module version 2 and synced with neofs-api release version.
- Protobuf recompile script handles path with special symbols correctly (#354)
make dep
command (#364)
- Status codes in response messages (#350)
- Storage subnetwork types (#355, #356, #360, #362)
- neofs-api-go is now Go module version 2 (#201)
- All packages from
pkg
moved to neofs-sdk-go (#201)
1.30.0 - 2021-10-19 - Udo (우도, 牛島)
NeoFS API v2.10 support.
- Potential NPE in NEO3Wallet related functions (#340)
- Incorrect return of reputation intermediate announcement (#342)
- pkg/client callback to parse internal response information (#337)
- Service filter type in extended ACL from API v2.10 (#338)
- Enhanced network info structures from API v2.10 (#339)
- Well-known public-append basic ACL constant (#341)
- Native contract names support (#351)
- Updated grpc to v1.41.0 (#176)
1.29.0 - 2021-08-27 - Anmyeondo (안면도, 安眠島)
- Well-known BasicACL constants to fit the specification (#330, #334).
- Linter warnings (#335).
- Support for
COMMON_PREFIX
filter operation for object attributes (#331). - Missing well-known eACL filter setters (#333).
FilterObjectParent
well-known object related filter key (#333).
- Go version to
1.16
(#335). - Tests in CI to run on
1.16
and1.17
Go versions (#335).
1.28.3 - 2021-07-07
- Regression of the session token corruption fix from v1.28.2 (#326).
1.28.2 - 2021-07-06
- Data corruption of parameterized session token in
pkg/client.Client
(#323).
1.28.1 - 2021-07-01
- Incorrect unsupported version error in
Client.GetContainer
of containers of newer versions.
- No longer used
pkg.IsSupportedVersion
func. - No longer used
container.NewVerifiedFromV2
func.
1.28.0 - 2021-06-28 - Muuido (무의도, 舞衣島)
String
/FromString
methods to work with text format of enums frompkg
.Marshal(JSON)
/Unmarshal(JSON)
methods tocontainer.ContainerContext
type.- Ability to handle the
io.Reader
of the object payload inClient.GetObject
. NumberOfAddresses
/IterateAddresses
methods to node info types for support of multiple addresses.
- Added leading slash to format of gRPC method names.
- Neo Go library to v0.95.3.
1.27.1 - 2021-06-10
- SDK version was updated (actualized) to
2.7
.
pkg
wrappers'ToV2
methods returnnil
if called onnil
.pkg
wrappers'NewFromV2
functions constructsnil
if called withnil
argument.
- Getters and setters for lifetime fields of
pkg/session.Token
. MarshalHeaderJSON
method topkg/object.Object
.- Generators for types from
pkg
(for testing). - Descriptions of default fields for
pkg
wrappers and unit tests for its constructors. - Unit tests for
ToV2
methods andNewFromV2
functions.
1.27.0 - 2021-06-03 - Seongmodo (석모도, 席毛島)
- Message structures related to Container service sessions in
v2
andpkg
. session.Token
andSignature
topkg/container.Container
andpkg/acl/eacl.Table
.Conn
method of clients to get the underlying connection.WithTLSConfig
client option to specify TLS configuration.WithNetworkURIAddress
client option to specify URI of the remote server.- Generators of random container IDs, owner IDs and session tokens (for testing).
pkg/token.SessionToken
type topkg/session
package asToken
. Old type is deprecated.pkg/container.ID
type topkg/container/id
package. Old type is deprecated.
- NEO Go library to v0.95.1.
1.26.1 - 2021-05-19
- Updated neo-go to v0.95.0 release.
pkg/errors
dependency (stdlib errors used instead).
1.26.0 - 2021-05-07 - Daecheongdo (대청도, 大靑島)
- Implementation of
v2/reputation
package. - Implementation of reputation methods in
pkg/client
. - Float64 stable marshaling wrappers in
util/proto
.
1.25.0 - 2021-03-22 - Jebudo (제부도, 濟扶島)
Raw client and support of NeoFS API v2.5.0 "Jebudo" release.
- Raw client for peer to peer communication.
client.WithKey
option to sign messages with different keys within single client.Content-Type
well-known object attribute constant.
- Refactored
v2
sub-packages to support single raw client in all RPC methods. - Client constructor returns
Client
interface instead of structure.
1.24.0 - 2021-02-26 - Ganghwado (강화도, 江華島)
Support changes from NeoFS API v2.4.0 "Ganghwado" release.
netmap.NetworkInfo
definitions inv2
andpkg/netmap
.netmap.NetworkInfo
RPC support inpkg/client
.
- Updated in-line docs from NeoFS API "Ganghwado" release.
1.23.0 - 2021-02-11 - Seonyudo (선유도, 仙遊島)
Support changes from NeoFS API v2.3.0 "Seonyudo" release.
- Fulfill backup factor for default attribute in placement.
- Support of
Container.AnnounceUsedSpace
RPC from NeoFS API. - New
pkg/client.Client.AnnounceContainerUsedSpace
method. - Support of
STRING_NOT_EQUAL
andNOT_PRESENT
object search filters. - Implementation of
json.Marshaler
/json.Unmarshaler
onv2/object/SearchFilter
. - Implementation of
json.Marshaler
/json.Unmarshaler
onpkg/object/SearchFilters
. - Named constants of well-known node attributes in
pkg/netmap
.
pkg/netmap/PriceAttr
topkg/netmap/AttrPrice
.pkg/netmap/CapacityAttr
topkg/netmap/AttrCapacity
.
1.22.2 - 2021-01-27
- Fix size limit for grpc messages in object.Put operation.
- Fix
GetContainerNode()
function, so that it does not modify placement policy.
1.22.1 - 2021-01-15
Support changes from NeoFS API v2.2.1 release.
- Constant prefix of the reserved keys to X-headers (
__NEOFS__
). - Constant string key to netmap epoch X-header (
__NEOFS__NETMAP_EPOCH
). - Constant string key to netmap lookup depth X-header (
__NEOFS__NETMAP_LOOKUP_DEPTH
).
- Linter's configuration in
.golangci.yml
.
- Remarks of the updated linter.
1.22.0 - 2020-12-30 - Yeouido (여의도, 汝矣島)
Support changes from NeoFS API v2.2.0 "Yeouido" release.
- Payload hash field to
ShortHeader
message. - Payload homomorphic hash field to
ShortHeader
message. - Support of
StorageGroup
message. - Support of
DataAuditResult
message. - Stringer and string parser for
Checksum
type of client library. - Stringer and string parser for
Type
message. - Stringer and string parser for
Type
type of client library. AddTypeFilter
method onSearchFilters
type of client library that adds filter by object type.- Utility functions for working with
fixed64
protobuf type toproto
library. - Converters for
repeated
object ID messages inv2
library.
1.21.2 - 2020-12-24
Container.NonceUUID
getter of container nonce in UUID format.Container.SetNonceUUID
setter of container nonce in UUID format.NewVerifiedContainerFromV2
container constructor that preliminary checks if container message argument meets NeoFS API V2 specification.
Container.Nonce
/Container.SetNonce
marked as deprecated.Client.GetContainer
method returns an error if received container does not meet NeoFS API specification.
pkg.SDKVersion
to return version with minor1
.pkg.IsSupportedVersion
to consider2.1
as supported.
1.21.1 - 2020-12-18
Support neofs-api v2.1.1.
client.GetVerifiedContainerStructure
function to check that the container structure matches the requested identifier.
1.21.0 - 2020-12-11 - Modo (모도, 茅島)
SplitID
message support- Search filter by
SplitID
field SplitInfo
message support and related errorRaw
flag support inClient.GetObject(Header)
- Getters for parameter structures in
pkg/client
package Tombstone
message support- Tombstone address target parameter of
Client.DeleteObject
method client.DeleteObject
helpful function- Usage of default value for backup factor in placement builder
- Object search filter by
CHILDFREE
property
AddLeafFilter
toAddPhyFilter
- NPE in
eacl.NewTargetFromV2
function - Processing
REP X
policies in placement builder
1.20.3 - 2020-11-25
AddObjectIDFilter
method ofSearchFilters
typeWithDialTimeout
option of v2 and SDKClient
'sGetEACLWithSignature
method of SDKClient
type
- incorrect signature verification algorithm in
GetEACL
method of SDKClient
1.20.2 - 2020-11-17
- Readme badges
1.20.1 - 2020-11-17
- Signature check of head response in
pkg/client
(#202)
1.20.0 - 2020-11-16 - Jindo (진도, 珍島)
Major API refactoring and simplification. From now on this library will have
backward compatibility and support of major versions of NeoFS-API by having
version specific files in vN
dirs and version independent SDK
structures and client in pkg
. This version supports NeoFS-API v2.0.X
- cross-protocol
v2
message types - utility functions for message signing/verification
v2
/gRPC
back and forth conversions- primary SDK
- v0 and v1 NeoFS API is not supported anymore
1.3.0 - 2020-07-23
- Format of
refs.OwnerID
based on NEO3. - Binary format of extended ACL table.
acl
package structure.
1.2.0 - 2020-07-08
- Extended ACL types.
- Getters and setters of
EACLTable
and its internal messages. - Wrappers over
EACLTable
and its internal messages. - Getters, setters and marshaling methods of wrappers.
- Mechanism for signing requests on the principle of Matryoshka.
- NeoFS API v1.1.0 => 1.2.0
1.1.0 - 2020-06-18
container.SetExtendedACL
rpc.container.GetExtendedACL
rpc.- Bearer token to all request messages.
- X-headers to all request messages.
- Implementation and signatures of Sign/Verify request functions.
- NeoFS API v1.0.0 => 1.1.0
1.0.0 - 2020-05-26
- Bump major release
- NeoFS API v0.7.5 => v1.0.0
- github.com/golang/protobuf v1.4.0 => v1.4.2
- github.com/prometheus/client_golang v1.5.1 => v1.6.0
- github.com/spf13/viper v1.6.2 => v1.7.0
- google.golang.org/grpc v1.28.1 => v1.29.1
0.7.6 - 2020-05-19
session.PublicSessionToken
function for session public key bytes receiving.- The implementation of
service.DataWithSignKeyAccumulator
methods onobject.IntegrityHeader
.
- The implementation of
AddSignKey
method onservice.signedSessionToken
structure. session.PrivateTOken
interface methods group.
OwnerKey
fromservice.SessionToken
signed payload.
- Incorrect
object.HeadRequest.ReadSignedData
method implementation.
0.7.5 - 2020-05-16
- Owner key to the
SessionToken
signed payload.
OwnerKeyContainer
interface embedded toSessionTokenInfo
interface.
- NeoFS API v0.7.5
0.7.4 - 2020-05-12
- Stringify for
object.Object
.
- Mechanism for creating and verifying request message signatures.
- Implementation and interface of private token storage.
- File structure of packages.
- NeoFS API v0.7.4
0.7.1 - 2020-04-20
- Method to change current node state. (
state.ChangeState
)
- NeoFS API v0.7.1
0.7.0 - 2020-04-16
- NeoFS API v0.7.0
0.6.2 - 2020-04-16
- NeoFS API v0.6.1
- Protobuf v1.4.0
- Netmap v1.7.0
- Prometheus Client v1.5.1
- Testify v1.5.1
- gRPC v1.28.1
- formatting
- test coverage for Object.PutRequest.CID method
0.6.1 - 2020-04-10
- License changed to Apache 2.0
- NPE in PutRequest.CID()
0.6.0 - 2020-04-03
RequestType
for object service requestsType()
function inRequest
interface
- Synced proto files with
neofs-api v0.6.0
0.5.0 - 2020-03-31
- Rename repo to
neofs-api-go
- Used public proto files
0.4.2 - 2020-03-16
- NPE bug with CID method of object.PutRequest
0.4.1 - 2020-03-02
- Updated neofs-crypto library to v0.3.0
0.4.0 - 2020-02-18
- Meta header for all gRPC responses. It contains epoch stamp and version number.
- Endianness in accounting cheque. Now it uses little endian for cheaper decoding in neofs smart-contract.
0.3.2 - 2020-02-10
- gRPC method DumpVars to State service
- add method
EncodeVariables
to encode debug variables to JSON (slice of bytes) - increase test coverage for state package
- state proto file
- documentation for state service and messages
0.3.1 - 2020-02-07
- bug with
tz.Concat
- dependencies:
- github.com/nspcc-dev/tzhash
v1.3.0 => v1.4.0
- github.com/prometheus/client_golang
v1.4.0 => v1.4.1
- google.golang.org/grpc
v1.27.0 => v1.27.1
- github.com/nspcc-dev/tzhash
0.3.0 - 2020-02-05
- proto files
- dependencies
- github.com/golang/protobuf
v1.3.2 => v1.3.3
- github.com/pkg/errors
v0.8.1 => v0.9.1
- github.com/prometheus/client_golang
v1.2.1 => v1.4.0
- github.com/prometheus/client_model
v0.0.0-20190812154241-14fe0d1b01d4 => v0.2.0
- github.com/spf13/viper
v1.6.1 => v1.6.2
- google.golang.org/grpc
v1.24.0 => v1.27.0
- github.com/golang/protobuf
- make object.GetRange to be server-side streaming RPC
- GetRange response struct
- badges to readme
0.2.14 - 2020-02-04
- Readme
- Filename header
- Object.Search now uses streams
0.2.13 - 2020-02-03
- Code format
- Use separated proto repository
- Rename neofs-proto to neofs-api
0.2.12 - 2020-01-27
- Bug with ByteSize (0 bytes returns NaN)
0.2.11 - 2020-01-21
- Raw flag in object head and get queries with docs
0.2.10 - 2020-01-17
- Private token contructor now takes public keys as an argument
0.2.9 - 2020-01-17
- Docs for container ACL field
- Public key header in the object with docs
- Public key field in the session token with docs
- Routine to verify correct object checks if integrity header is last and may use public key header if verification header is not present
- Routine to verify correct session token checks if keys in the token associated with owner id
- Updated neofs-crypto to v0.2.3
- Timestamp in object tombstone header
0.2.8 - 2019-12-21
- Container access control type definitions
- Used sync.Pool for Sign/VerifyRequestHeader
- VerifiableRequest.Marshal method replace with MarshalTo and Size
0.2.7 - 2019-12-17
- Bug with DecodeMetrics (empty metrics returns)
0.2.6 - 2019-12-17
- Request to dump node config
0.2.5 - 2019-12-05
- proto.Message in Maintainable/Verifiable requests
0.2.4 - 2019-12-03
- StorageGroup library
- Storage group part of object library moved into separate package
- Updated proto documentation
0.2.3 - 2019-11-28
- service: SignRequest / VerifyRequest and accompanying code
- proto: Signature field from requests
- object: bytefmt package not used anymore
- service: rename EpochRequest to EpochHeader and merge with MetaHeader
- service: get status error even if it is wrapped
- service: RequestVerificationHeader's method to validate owner
- service: test coverage for CheckOwner
- service: test coverage for wrapped status errors
0.2.2 - 2019-11-22
- ProcessRequestTTL don't changes status errors from TTLCondition
0.2.1 - 2019-11-22
- Removed SendPutRequest
- MakePutRequestHeader sets only object and token
0.2.0 - 2019-11-21
- Container not found error
- GitHub Actions as CI and Codecov
- Auto-generated proto documentation
- RequestMetaHeader to all RPC requests
- RequestVerificationHeader to all RPC requests
- Moved TTL and Epoch fields to RequestMetaHeader
- Renamed Version in object.SearchRequest to QueryVersion
- Removed SetTTL, GetTTL, SetEpoch, GetEpoch from all RPC requests
Initial public release