- Minimum required version of Go to 1.20
github.com/nspcc-dev/rfc6979v0.2.0 => v0.2.1google.golang.org/grpcv1.59.0 => v1.62.0google.golang.org/protobufv1.31.0 => v1.32.0
2.14.0 - 2022-10-17 - Anmado (안마도, 鞍馬島)
- Maintenance status and node state (#415)
NetmapSnapshotRPC (#418)
- Marshal repeated
[]bytefields 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-cryptotov0.4.0(#412)google.golang.org/grpctov1.48.0(#415)google.golang.org/protobuftov1.28.0(#415)
2.13.1 - 2022-08-01
EACL_NOT_FOUNDstatus code support (#409)
2.13.0 - 2022-07-04 - Yeonpyeongdo (연평도, 延坪島)
NeoFS API v2.13 support
- WalletConnect signature scheme (#386)
object.StatusOutOfRangeenum value (#407)- Functionality to disable homomorphic hashing in container (#399)
status.SignatureVerificationFailenum value (#405)
2.12.2 - 2022-06-03
util/protogentool to compile Protocol Buffers with stable marshaling
refs.ObjectIDNestedListMarshalincorrect encoding (#401)- incorrect conversion of
oneoffield inGetRangeResponseBody.FromGRPCMessage(#401)
- Setters don't check call on
nil(#388) StableMarshalmethods don't returnerroroneoffields 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
[]*Treplaced with regular structure slices[]Tin 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.SignatureSchemeenum and corresponding field tosession.Signaturemessage (#55)- New status codes in
container,objectandsessionpackages (#371) object.TypeLocktype enum value andobject.Locktype of its content (#371)
- API of
signaturepackage (#55)
SessionToken,SessionTokenBodyandSessionTokenContexttypes fromsessionpackage
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 depcommand (#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
pkgmoved 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_PREFIXfilter operation for object attributes (#331). - Missing well-known eACL filter setters (#333).
FilterObjectParentwell-known object related filter key (#333).
- Go version to
1.16(#335). - Tests in CI to run on
1.16and1.17Go 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.GetContainerof containers of newer versions.
- No longer used
pkg.IsSupportedVersionfunc. - No longer used
container.NewVerifiedFromV2func.
1.28.0 - 2021-06-28 - Muuido (무의도, 舞衣島)
String/FromStringmethods to work with text format of enums frompkg.Marshal(JSON)/Unmarshal(JSON)methods tocontainer.ContainerContexttype.- Ability to handle the
io.Readerof the object payload inClient.GetObject. NumberOfAddresses/IterateAddressesmethods 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.
pkgwrappers'ToV2methods returnnilif called onnil.pkgwrappers'NewFromV2functions constructsnilif called withnilargument.
- Getters and setters for lifetime fields of
pkg/session.Token. MarshalHeaderJSONmethod topkg/object.Object.- Generators for types from
pkg(for testing). - Descriptions of default fields for
pkgwrappers and unit tests for its constructors. - Unit tests for
ToV2methods andNewFromV2functions.
1.27.0 - 2021-06-03 - Seongmodo (석모도, 席毛島)
- Message structures related to Container service sessions in
v2andpkg. session.TokenandSignaturetopkg/container.Containerandpkg/acl/eacl.Table.Connmethod of clients to get the underlying connection.WithTLSConfigclient option to specify TLS configuration.WithNetworkURIAddressclient option to specify URI of the remote server.- Generators of random container IDs, owner IDs and session tokens (for testing).
pkg/token.SessionTokentype topkg/sessionpackage asToken. Old type is deprecated.pkg/container.IDtype topkg/container/idpackage. 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/errorsdependency (stdlib errors used instead).
1.26.0 - 2021-05-07 - Daecheongdo (대청도, 大靑島)
- Implementation of
v2/reputationpackage. - 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.WithKeyoption to sign messages with different keys within single client.Content-Typewell-known object attribute constant.
- Refactored
v2sub-packages to support single raw client in all RPC methods. - Client constructor returns
Clientinterface instead of structure.
1.24.0 - 2021-02-26 - Ganghwado (강화도, 江華島)
Support changes from NeoFS API v2.4.0 "Ganghwado" release.
netmap.NetworkInfodefinitions inv2andpkg/netmap.netmap.NetworkInfoRPC 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.AnnounceUsedSpaceRPC from NeoFS API. - New
pkg/client.Client.AnnounceContainerUsedSpacemethod. - Support of
STRING_NOT_EQUALandNOT_PRESENTobject search filters. - Implementation of
json.Marshaler/json.Unmarshaleronv2/object/SearchFilter. - Implementation of
json.Marshaler/json.Unmarshaleronpkg/object/SearchFilters. - Named constants of well-known node attributes in
pkg/netmap.
pkg/netmap/PriceAttrtopkg/netmap/AttrPrice.pkg/netmap/CapacityAttrtopkg/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
ShortHeadermessage. - Payload homomorphic hash field to
ShortHeadermessage. - Support of
StorageGroupmessage. - Support of
DataAuditResultmessage. - Stringer and string parser for
Checksumtype of client library. - Stringer and string parser for
Typemessage. - Stringer and string parser for
Typetype of client library. AddTypeFiltermethod onSearchFilterstype of client library that adds filter by object type.- Utility functions for working with
fixed64protobuf type toprotolibrary. - Converters for
repeatedobject ID messages inv2library.
1.21.2 - 2020-12-24
Container.NonceUUIDgetter of container nonce in UUID format.Container.SetNonceUUIDsetter of container nonce in UUID format.NewVerifiedContainerFromV2container constructor that preliminary checks if container message argument meets NeoFS API V2 specification.
Container.Nonce/Container.SetNoncemarked as deprecated.Client.GetContainermethod returns an error if received container does not meet NeoFS API specification.
pkg.SDKVersionto return version with minor1.pkg.IsSupportedVersionto consider2.1as supported.
1.21.1 - 2020-12-18
Support neofs-api v2.1.1.
client.GetVerifiedContainerStructurefunction to check that the container structure matches the requested identifier.
1.21.0 - 2020-12-11 - Modo (모도, 茅島)
SplitIDmessage support- Search filter by
SplitIDfield SplitInfomessage support and related errorRawflag support inClient.GetObject(Header)- Getters for parameter structures in
pkg/clientpackage Tombstonemessage support- Tombstone address target parameter of
Client.DeleteObjectmethod client.DeleteObjecthelpful function- Usage of default value for backup factor in placement builder
- Object search filter by
CHILDFREEproperty
AddLeafFiltertoAddPhyFilter
- NPE in
eacl.NewTargetFromV2function - Processing
REP Xpolicies in placement builder
1.20.3 - 2020-11-25
AddObjectIDFiltermethod ofSearchFilterstypeWithDialTimeoutoption of v2 and SDKClient'sGetEACLWithSignaturemethod of SDKClienttype
- incorrect signature verification algorithm in
GetEACLmethod 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
v2message types - utility functions for message signing/verification
v2/gRPCback and forth conversions- primary SDK
- v0 and v1 NeoFS API is not supported anymore
1.3.0 - 2020-07-23
- Format of
refs.OwnerIDbased on NEO3. - Binary format of extended ACL table.
aclpackage structure.
1.2.0 - 2020-07-08
- Extended ACL types.
- Getters and setters of
EACLTableand its internal messages. - Wrappers over
EACLTableand 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.SetExtendedACLrpc.container.GetExtendedACLrpc.- 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.PublicSessionTokenfunction for session public key bytes receiving.- The implementation of
service.DataWithSignKeyAccumulatormethods onobject.IntegrityHeader.
- The implementation of
AddSignKeymethod onservice.signedSessionTokenstructure. session.PrivateTOkeninterface methods group.
OwnerKeyfromservice.SessionTokensigned payload.
- Incorrect
object.HeadRequest.ReadSignedDatamethod implementation.
0.7.5 - 2020-05-16
- Owner key to the
SessionTokensigned payload.
OwnerKeyContainerinterface embedded toSessionTokenInfointerface.
- 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
RequestTypefor object service requestsType()function inRequestinterface
- 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
EncodeVariablesto 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