github.com/TrueCloudLab/frostfs-api-go/v2@v2.0.0-20230228134343-196241c4e79a/CHANGELOG.md (about)

     1  # Changelog
     2  
     3  ## [Unreleased]
     4  
     5  ### Added
     6  ### Fixed
     7  ### Changed
     8  ### Updated
     9  
    10  ## [2.14.0] - 2022-10-17 - Anmado (안마도, 鞍馬島)
    11  
    12  ### Added
    13  - Maintenance status and node state (#415)
    14  - `NetmapSnapshot` RPC (#418)
    15  
    16  ### Fixed
    17  - Marshal repeated `[]byte` fields correctly (#413)
    18  - Block until client connection is up (#419)
    19  
    20  ### Changed
    21  - Support new object session context format (#416)
    22  - Mark all expiration methods as deprecated (#417)
    23  
    24  ### Updated
    25  - Minimal go version to 1.17 (#412) 
    26  - `neofs-crypto` to `v0.4.0` (#412)
    27  - `google.golang.org/grpc` to `v1.48.0` (#415)
    28  - `google.golang.org/protobuf` to `v1.28.0` (#415)
    29  
    30  ## [2.13.1] - 2022-08-01
    31  
    32  ### Added
    33  - `EACL_NOT_FOUND` status code support (#409)
    34  
    35  ## [2.13.0] - 2022-07-04 - Yeonpyeongdo (연평도, 延坪島)
    36  
    37  NeoFS API v2.13 support
    38  
    39  ### Added
    40  - WalletConnect signature scheme (#386)
    41  - `object.StatusOutOfRange` enum value (#407)
    42  - Functionality to disable homomorphic hashing in container (#399)
    43  - `status.SignatureVerificationFail` enum value (#405)
    44  
    45  ## [2.12.2] - 2022-06-03
    46  
    47  ### Added
    48  - `util/protogen` tool to compile Protocol Buffers with stable marshaling
    49  
    50  ### Fixed
    51  - `refs.ObjectIDNestedListMarshal` incorrect encoding (#401)
    52  - incorrect conversion of `oneof` field in `GetRangeResponseBody.FromGRPCMessage` (#401)
    53  
    54  ### Changed
    55  - Setters don't check call on `nil` (#388)
    56  - `StableMarshal` methods don't return `error`
    57  - `oneof` fields are now randomly initialized in test generators (#401)
    58  
    59  ## [2.12.1] - 2022-03-15
    60  
    61  ### Fixed
    62  - Incompatible changes in signature scheme (#380)
    63   
    64  ### Added
    65  - Public URI-parsing function `client.ParseURI()` (#383)
    66  
    67  ### Changed
    68  - Slices with pointers `[]*T` replaced with regular structure slices `[]T` in
    69    v2 structures (#376)
    70  
    71  ## [2.12.0] - 2022-02-25 - Heuksando (흑산도, 黑山島)
    72  
    73  NeoFS API v2.12 support
    74  
    75  ### Added
    76  - Network magic field (`uint64`) to `session.RequestMetaHeader` (#367)
    77  - Constants for attributes related to object notifications (#372)
    78  - `refs.SignatureScheme` enum and corresponding field to `session.Signature` message (#55)
    79  - New status codes in `container`, `object` and `session` packages (#371)
    80  - `object.TypeLock` type enum value and `object.Lock` type of its content (#371)
    81  
    82  ### Changed
    83  - API of `signature` package (#55)
    84  
    85  ### Deprecated
    86  - `SessionToken`, `SessionTokenBody` and `SessionTokenContext` types from `session` package
    87  
    88  ## [2.11.1] - 2021-12-28
    89  
    90  ### Added
    91  - Timeout for single message transmission in `rpc/client` (#366)
    92  
    93  ## [2.11.0] - 2021-12-02 - Sinjido (신지도, 薪智島)
    94  
    95  NeoFS API v2.11 support. High level packages are moved to 
    96  [neofs-sdk-go](https://github.com/nspcc-dev/neofs-sdk-go) repository. 
    97  Repository restructured as Go module version 2 and synced with 
    98  [neofs-api](https://github.com/nspcc-dev/neofs-api) release version.
    99  
   100  ### Fixed
   101  - Protobuf recompile script handles path with special symbols correctly (#354)
   102  - `make dep` command (#364)
   103  
   104  ### Added
   105  - Status codes in response messages (#350)
   106  - Storage subnetwork types (#355, #356, #360, #362)
   107  
   108  ### Changed
   109  - neofs-api-go is now Go module version 2 (#201)
   110  
   111  ### Removed
   112  - All packages from `pkg` moved to 
   113    [neofs-sdk-go](https://github.com/nspcc-dev/neofs-sdk-go) (#201)
   114  
   115  ## [1.30.0] - 2021-10-19 - Udo (우도, 牛島)
   116  
   117  NeoFS API v2.10 support.
   118  
   119  ### Fixed
   120  
   121  - Potential NPE in NEO3Wallet related functions (#340)
   122  - Incorrect return of reputation intermediate announcement (#342)
   123  
   124  ### Added
   125  
   126  - pkg/client callback to parse internal response information (#337)
   127  - Service filter type in extended ACL from API v2.10 (#338)
   128  - Enhanced network info structures from API v2.10 (#339)
   129  - Well-known public-append basic ACL constant (#341) 
   130  - Native contract names support (#351)
   131  
   132  ### Changed
   133  
   134  - Updated grpc to v1.41.0 (#176)
   135  
   136  ## [1.29.0] - 2021-08-27 - Anmyeondo (안면도, 安眠島)
   137  
   138  ### Fixed
   139  
   140  - Well-known BasicACL constants to fit the specification (#330, #334).
   141  - Linter warnings (#335).
   142  
   143  ### Added
   144  
   145  - Support for `COMMON_PREFIX` filter operation for object attributes (#331).
   146  - Missing well-known eACL filter setters (#333).
   147  
   148  ### Removed
   149  
   150  - `FilterObjectParent` well-known object related filter key (#333).
   151  
   152  ### Updated
   153  
   154  - Go version to `1.16` (#335).
   155  - Tests in CI to run on `1.16` and `1.17` Go versions (#335).
   156  
   157  ## [1.28.3] - 2021-07-07
   158  
   159  ### Fixed
   160  
   161  - Regression of the session token corruption fix from v1.28.2 ([#326](https://github.com/nspcc-dev/neofs-api-go/issues/326)).
   162  
   163  ## [1.28.2] - 2021-07-06
   164  
   165  ### Fixed
   166  
   167  - Data corruption of parameterized session token in `pkg/client.Client` ([#323](https://github.com/nspcc-dev/neofs-api-go/issues/323)).
   168  
   169  ## [1.28.1] - 2021-07-01
   170  
   171  ### Fixed
   172  
   173  - Incorrect unsupported version error in `Client.GetContainer` of containers of newer versions.
   174  
   175  ### Removed
   176  
   177  - No longer used `pkg.IsSupportedVersion` func.
   178  - No longer used `container.NewVerifiedFromV2` func.
   179  
   180  ## [1.28.0] - 2021-06-28 - Muuido (무의도, 舞衣島)
   181  
   182  ### Added
   183  
   184  - `String` / `FromString` methods to work with text format of enums from `pkg`.
   185  - `Marshal(JSON)` / `Unmarshal(JSON)` methods to `container.ContainerContext` type.
   186  - Ability to handle the `io.Reader` of the object payload in `Client.GetObject`.
   187  - `NumberOfAddresses` / `IterateAddresses` methods to node info types for support of multiple addresses.
   188  
   189  ### Fixed
   190  
   191  - Added leading slash to format of gRPC method names.
   192  
   193  ### Updated
   194  
   195  - Neo Go library to v0.95.3.
   196  
   197  ## [1.27.1] - 2021-06-10
   198  
   199  ### Fixed
   200  
   201  - SDK version was updated (actualized) to `2.7`.
   202  
   203  ### Changed
   204  
   205  - `pkg` wrappers' `ToV2` methods return `nil` if called on `nil`.
   206  - `pkg` wrappers' `NewFromV2` functions constructs `nil` if called with `nil` argument.
   207  
   208  ### Added
   209  
   210  - Getters and setters for lifetime fields of `pkg/session.Token`.
   211  - `MarshalHeaderJSON` method to `pkg/object.Object`.
   212  - Generators for types from `pkg` (for testing).
   213  - Descriptions of default fields for `pkg` wrappers and unit tests for its constructors.
   214  - Unit tests for `ToV2` methods and `NewFromV2` functions.
   215  
   216  ## [1.27.0] - 2021-06-03 - Seongmodo (석모도, 席毛島)
   217  
   218  ### Added
   219  
   220  - Message structures related to Container service sessions in `v2` and `pkg`.
   221  - `session.Token` and `Signature` to `pkg/container.Container` and `pkg/acl/eacl.Table`.
   222  - `Conn` method of clients to get the underlying connection.
   223  - `WithTLSConfig` client option to specify TLS configuration.
   224  - `WithNetworkURIAddress` client option to specify URI of the remote server.
   225  - Generators of random container IDs, owner IDs and session tokens (for testing).
   226  
   227  ### Replaced
   228  
   229  - `pkg/token.SessionToken` type to `pkg/session` package as `Token`. Old type is deprecated.
   230  - `pkg/container.ID` type to `pkg/container/id` package. Old type is deprecated.
   231  
   232  ### Updated
   233  
   234  - NEO Go library to v0.95.1.
   235  
   236  ## [1.26.1] - 2021-05-19
   237  
   238  ### Changed
   239  
   240  - Updated neo-go to v0.95.0 release.
   241  
   242  ### Removed
   243  
   244  - `pkg/errors` dependency (stdlib errors used instead).
   245  
   246  ## [1.26.0] - 2021-05-07 - Daecheongdo (대청도, 大靑島)
   247  
   248  ### Added
   249  
   250  - Implementation of `v2/reputation` package.
   251  - Implementation of reputation methods in `pkg/client`.
   252  - Float64 stable marshaling wrappers in `util/proto`.
   253  
   254  ## [1.25.0] - 2021-03-22 - Jebudo (제부도, 濟扶島)
   255  
   256  Raw client and support of NeoFS API v2.5.0 "Jebudo" release.
   257  
   258  ### Added
   259  
   260  - Raw client for peer to peer communication.
   261  - `client.WithKey` option to sign messages with different keys within single 
   262    client.
   263  - `Content-Type` well-known object attribute constant.
   264  
   265  ### Changed
   266  
   267  - Refactored `v2` sub-packages to support single raw client in all RPC methods.
   268  - Client constructor returns `Client` interface instead of structure.
   269  
   270  ## [1.24.0] - 2021-02-26 - Ganghwado (강화도, 江華島)
   271  
   272  Support changes from NeoFS API v2.4.0 "Ganghwado" release.
   273  
   274  ### Added 
   275  
   276  - `netmap.NetworkInfo` definitions in `v2` and `pkg/netmap`.
   277  - `netmap.NetworkInfo` RPC support in `pkg/client`.
   278  
   279  ### Changed
   280  
   281  - Updated in-line docs from NeoFS API "Ganghwado" release.
   282  
   283  ## [1.23.0] - 2021-02-11 - Seonyudo (선유도, 仙遊島)
   284  
   285  Support changes from NeoFS API v2.3.0 "Seonyudo" release.
   286  
   287  ### Added
   288  
   289  - Fulfill backup factor for default attribute in placement.
   290  - Support of `Container.AnnounceUsedSpace` RPC from NeoFS API.
   291  - New `pkg/client.Client.AnnounceContainerUsedSpace` method.
   292  - Support of `STRING_NOT_EQUAL` and `NOT_PRESENT` object search filters.
   293  - Implementation of `json.Marshaler`/`json.Unmarshaler` on `v2/object/SearchFilter`.
   294  - Implementation of `json.Marshaler`/`json.Unmarshaler` on `pkg/object/SearchFilters`.
   295  - Named constants of well-known node attributes in `pkg/netmap`.
   296  
   297  ### Renamed
   298  
   299  - `pkg/netmap/PriceAttr` to `pkg/netmap/AttrPrice`.
   300  - `pkg/netmap/CapacityAttr` to `pkg/netmap/AttrCapacity`.
   301  
   302  ## [1.22.2] - 2021-01-27
   303  
   304  ### Fixed
   305  
   306  - Fix size limit for grpc messages in object.Put operation.
   307  - Fix `GetContainerNode()` function, so that it does not modify placement policy.
   308  
   309  ## [1.22.1] - 2021-01-15
   310  
   311  Support changes from NeoFS API v2.2.1 release.
   312  
   313  ### Added
   314  
   315  - Constant prefix of the reserved keys to X-headers (`__NEOFS__`).
   316  - Constant string key to netmap epoch X-header (`__NEOFS__NETMAP_EPOCH`).
   317  - Constant string key to netmap lookup depth X-header (`__NEOFS__NETMAP_LOOKUP_DEPTH`).
   318  
   319  ### Changed
   320  
   321  - Linter's configuration in `.golangci.yml`.
   322  
   323  ### Fixed
   324  
   325  - Remarks of the updated linter. 
   326  
   327  ## [1.22.0] - 2020-12-30 - Yeouido (여의도, 汝矣島)
   328  
   329  Support changes from NeoFS API v2.2.0 "Yeouido" release.
   330  
   331  ### Added
   332  
   333  - Payload hash field to `ShortHeader` message.
   334  - Payload homomorphic hash field to `ShortHeader` message.
   335  - Support of `StorageGroup` message.
   336  - Support of `DataAuditResult` message.
   337  - Stringer and string parser for `Checksum` type of client library.
   338  - Stringer and string parser for `Type` message. 
   339  - Stringer and string parser for `Type` type of client library.
   340  - `AddTypeFilter` method on `SearchFilters` type of client library
   341    that adds filter by object type.
   342  - Utility functions for working with `fixed64` protobuf type to `proto` library.
   343  - Converters for `repeated` object ID messages in `v2` library.
   344  
   345  ## [1.21.2] - 2020-12-24
   346  
   347  ### Added
   348  
   349  - `Container.NonceUUID` getter of container nonce in UUID format.
   350  - `Container.SetNonceUUID` setter of container nonce in UUID format.
   351  - `NewVerifiedContainerFromV2` container constructor that preliminary
   352    checks if container message argument meets NeoFS API V2 specification.
   353    
   354  ### Changed
   355  
   356  - `Container.Nonce`/`Container.SetNonce` marked as deprecated.
   357  - `Client.GetContainer` method returns an error if received
   358    container does not meet NeoFS API specification.
   359  
   360  ### Fixed
   361  
   362  - `pkg.SDKVersion` to return version with minor `1`.
   363  - `pkg.IsSupportedVersion` to consider `2.1` as supported.
   364  
   365  ## [1.21.1] - 2020-12-18
   366  
   367  Support neofs-api v2.1.1.
   368  
   369  ### Added
   370  
   371  - `client.GetVerifiedContainerStructure` function to check 
   372    that the container structure matches the requested identifier.
   373  
   374  ## [1.21.0] - 2020-12-11 - Modo (모도, 茅島)
   375  
   376  ### Added
   377  
   378  - `SplitID` message support
   379  - Search filter by `SplitID` field
   380  - `SplitInfo` message support and related error
   381  - `Raw` flag support in `Client.GetObject(Header)`
   382  - Getters for parameter structures in `pkg/client` package
   383  - `Tombstone` message support
   384  - Tombstone address target parameter of `Client.DeleteObject` method
   385  - `client.DeleteObject` helpful function
   386  - Usage of default value for backup factor in placement builder
   387  
   388  ### Removed
   389  
   390  - Object search filter by `CHILDFREE` property
   391  
   392  ### Renamed
   393  
   394  - `AddLeafFilter` to `AddPhyFilter` 
   395  
   396  ### Fixed
   397  
   398  - NPE in `eacl.NewTargetFromV2` function
   399  - Processing `REP X` policies in placement builder
   400  
   401  
   402  ## [1.20.3] - 2020-11-25
   403  
   404  ### Added
   405  
   406  - `AddObjectIDFilter` method of `SearchFilters` type
   407  - `WithDialTimeout` option of v2 and SDK `Client`'s
   408  - `GetEACLWithSignature` method of SDK `Client` type
   409  
   410  ### Fixed
   411  
   412  - incorrect signature verification algorithm in `GetEACL` method of SDK `Client`
   413  
   414  ## [1.20.2] - 2020-11-17
   415  
   416  ### Fixed
   417  
   418  - Readme badges
   419  
   420  ## [1.20.1] - 2020-11-17
   421  
   422  ### Fixed
   423  
   424  - Signature check of head response in `pkg/client` (#202)
   425  
   426  ## [1.20.0] - 2020-11-16 - Jindo (진도, 珍島)
   427  
   428  Major API refactoring and simplification. From now on this library will have 
   429  backward compatibility and support of major versions of NeoFS-API by having 
   430  **version specific** files in `vN` dirs and **version independent** SDK 
   431  structures and client in `pkg`. This version supports NeoFS-API v2.0.X
   432  
   433  
   434  ### Added
   435  - cross-protocol ```v2``` message types
   436  - utility functions for message signing/verification
   437  - ```v2```/ ```gRPC``` back and forth conversions
   438  - primary SDK
   439  
   440  ### Removed
   441  - v0 and v1 NeoFS API is not supported anymore
   442  
   443  ## [1.3.0] - 2020-07-23
   444  
   445  ### Changed
   446  
   447  - Format of ```refs.OwnerID``` based on NEO3.
   448  - Binary format of extended ACL table.
   449  - ```acl``` package structure.
   450  
   451  ## [1.2.0] - 2020-07-08
   452  
   453  ### Added
   454  
   455  - Extended ACL types.
   456  - Getters and setters of ```EACLTable``` and its internal messages.
   457  - Wrappers over ```EACLTable``` and its internal messages.
   458  - Getters, setters and marshaling methods of wrappers.
   459  
   460  ### Changed
   461  
   462  - Mechanism for signing requests on the principle of Matryoshka.
   463  
   464  ### Updated
   465  
   466  - NeoFS API v1.1.0 => 1.2.0
   467  
   468  ## [1.1.0] - 2020-06-18
   469  
   470  ### Added
   471  
   472  - `container.SetExtendedACL` rpc.
   473  - `container.GetExtendedACL` rpc.
   474  - Bearer token to all request messages.
   475  - X-headers to all request messages.
   476  
   477  ### Changed
   478  
   479  - Implementation and signatures of Sign/Verify request functions.
   480  
   481  ### Updated
   482  
   483  - NeoFS API v1.0.0 => 1.1.0
   484  
   485  ## [1.0.0] - 2020-05-26
   486  
   487  - Bump major release
   488  
   489  ### Updated
   490  
   491  - NeoFS API v0.7.5 => v1.0.0
   492  - github.com/golang/protobuf v1.4.0 => v1.4.2
   493  - github.com/prometheus/client_golang v1.5.1 => v1.6.0
   494  - github.com/spf13/viper v1.6.2 => v1.7.0
   495  - google.golang.org/grpc v1.28.1 => v1.29.1
   496  
   497  ## [0.7.6] - 2020-05-19
   498  
   499  ### Added
   500  
   501  - `session.PublicSessionToken` function for session public key bytes receiving.
   502  - The implementation of `service.DataWithSignKeyAccumulator` methods on `object.IntegrityHeader`.
   503  
   504  ### Changed
   505  
   506  - The implementation of `AddSignKey` method on `service.signedSessionToken` structure.
   507  - `session.PrivateTOken` interface methods group.
   508  
   509  ### Removed
   510  
   511  - `OwnerKey` from `service.SessionToken` signed payload.
   512  
   513  ### Fixed
   514  
   515  - Incorrect `object.HeadRequest.ReadSignedData` method implementation.
   516  
   517  ## [0.7.5] - 2020-05-16
   518  
   519  ### Added
   520  
   521  - Owner key to the `SessionToken` signed payload.
   522  
   523  ### Changed
   524  
   525  - `OwnerKeyContainer` interface embedded to `SessionTokenInfo` interface.
   526  
   527  ### Updated
   528  
   529  - NeoFS API v0.7.5
   530  
   531  ## [0.7.4] - 2020-05-12
   532  
   533  ### Added
   534  
   535  - Stringify for `object.Object`.
   536  
   537  ### Changed
   538  
   539  - Mechanism for creating and verifying request message signatures.
   540  - Implementation and interface of private token storage.
   541  - File structure of packages.
   542  
   543  ### Updated
   544  
   545  - NeoFS API v0.7.4
   546  
   547  ## [0.7.1] - 2020-04-20
   548  
   549  ### Added
   550  
   551  - Method to change current node state. (`state.ChangeState`)
   552  
   553  ### Updated
   554  
   555  - NeoFS API v0.7.1
   556  
   557  ## [0.7.0] - 2020-04-16
   558  
   559  ### Updated
   560  - NeoFS API v0.7.0
   561  
   562  ## [0.6.2] - 2020-04-16
   563  
   564  ### Updated
   565  - NeoFS API v0.6.1
   566  - Protobuf v1.4.0
   567  - Netmap v1.7.0
   568  - Prometheus Client v1.5.1
   569  - Testify v1.5.1
   570  - gRPC v1.28.1
   571  
   572  ### Fixed
   573  - formatting
   574  - test coverage for Object.PutRequest.CID method
   575  
   576  ## [0.6.1] - 2020-04-10
   577  
   578  ### Changed
   579  
   580  - License changed to Apache 2.0
   581  
   582  ### Fixed
   583  
   584  -  NPE in PutRequest.CID()
   585  
   586  
   587  ## [0.6.0] - 2020-04-03
   588  
   589  ### Added
   590  
   591  - `RequestType` for object service requests
   592  - `Type()` function in `Request` interface
   593  
   594  ### Changed
   595  
   596  - Synced proto files with `neofs-api v0.6.0`
   597  
   598  ## [0.5.0] - 2020-03-31
   599  
   600  ### Changed
   601  - Rename repo to `neofs-api-go`
   602  - Used public proto files
   603  
   604  ## [0.4.2] - 2020-03-16
   605  
   606  ### Fixed
   607  - NPE bug with CID method of object.PutRequest
   608  
   609  ## [0.4.1] - 2020-03-02
   610  
   611  ### Changed
   612  - Updated neofs-crypto library to v0.3.0
   613  
   614  ## [0.4.0] - 2020-02-18
   615  
   616  ### Added
   617  - Meta header for all gRPC responses. It contains epoch stamp and version number.
   618  ### Changed
   619  - Endianness in accounting cheque. Now it uses little endian for cheaper
   620  decoding in neofs smart-contract.
   621  
   622  ## [0.3.2] - 2020-02-10
   623  
   624  ### Added
   625  - gRPC method DumpVars to State service
   626  - add method `EncodeVariables` to encode debug variables to JSON (slice of bytes)
   627  - increase test coverage for state package
   628  
   629  ### Updated
   630  - state proto file
   631  - documentation for state service and messages
   632  
   633  ## [0.3.1] - 2020-02-07
   634  ### Fixed
   635  - bug with `tz.Concat`
   636  
   637  ### Updated
   638  - dependencies:
   639      - github.com/nspcc-dev/tzhash `v1.3.0 => v1.4.0`
   640      - github.com/prometheus/client_golang `v1.4.0 => v1.4.1`
   641      - google.golang.org/grpc `v1.27.0 => v1.27.1`
   642  
   643  ## [0.3.0] - 2020-02-05
   644  
   645  ### Updated
   646  - proto files
   647  - dependencies
   648      - github.com/golang/protobuf `v1.3.2 => v1.3.3`
   649      - github.com/pkg/errors `v0.8.1 => v0.9.1`
   650      - github.com/prometheus/client_golang `v1.2.1 => v1.4.0`
   651      - github.com/prometheus/client_model `v0.0.0-20190812154241-14fe0d1b01d4 => v0.2.0`
   652      - github.com/spf13/viper `v1.6.1 => v1.6.2`
   653      - google.golang.org/grpc `v1.24.0 => v1.27.0`
   654  
   655  ### Changed
   656  - make object.GetRange to be server-side streaming RPC
   657  - GetRange response struct
   658  
   659  ### Added
   660  - badges to readme
   661  
   662  ## [0.2.14] - 2020-02-04
   663  
   664  ### Fixed
   665  - Readme
   666  
   667  ### Added
   668  - Filename header
   669  
   670  ### Updated
   671  - Object.Search now uses streams
   672  
   673  ## [0.2.13] - 2020-02-03
   674  
   675  ### Fixed
   676  - Code format
   677  
   678  ### Changed
   679  - Use separated proto repository
   680  - Rename neofs-proto to neofs-api
   681  
   682  ## [0.2.12] - 2020-01-27
   683  
   684  ### Fixed
   685  - Bug with ByteSize (0 bytes returns NaN)
   686  
   687  ## [0.2.11] - 2020-01-21
   688  
   689  ### Added
   690  - Raw flag in object head and get queries with docs
   691  
   692  ## [0.2.10] - 2020-01-17
   693  
   694  ### Changed
   695  - Private token contructor now takes public keys as an argument
   696  
   697  ## [0.2.9] - 2020-01-17
   698  
   699  ### Added
   700  - Docs for container ACL field
   701  - Public key header in the object with docs
   702  - Public key field in the session token with docs
   703  
   704  ### Changed
   705  - Routine to verify correct object checks if integrity header is last and
   706  may use public key header if verification header is not present
   707  - Routine to verify correct session token checks if keys in the token
   708  associated with owner id
   709  - Updated neofs-crypto to v0.2.3
   710  
   711  ### Removed
   712  - Timestamp in object tombstone header
   713  
   714  ## [0.2.8] - 2019-12-21
   715  
   716  ### Added
   717  - Container access control type definitions
   718  
   719  ### Changed
   720  - Used sync.Pool for Sign/VerifyRequestHeader
   721  - VerifiableRequest.Marshal method replace with MarshalTo and Size
   722  
   723  ## [0.2.7] - 2019-12-17
   724  
   725  ### Fixed
   726  - Bug with DecodeMetrics (empty metrics returns)
   727  
   728  ## [0.2.6] - 2019-12-17
   729  
   730  ### Added
   731  - Request to dump node config
   732  
   733  ## [0.2.5] - 2019-12-05
   734  
   735  ### Removed
   736  - proto.Message in Maintainable/Verifiable requests
   737  
   738  ## [0.2.4] - 2019-12-03
   739  
   740  ### Added
   741  - StorageGroup library
   742  
   743  ### Changed
   744  - Storage group part of object library moved into separate package
   745  - Updated proto documentation
   746  
   747  ## [0.2.3] - 2019-11-28
   748  
   749  ### Removed
   750  - service: SignRequest / VerifyRequest and accompanying code
   751  - proto: Signature field from requests
   752  - object: bytefmt package not used anymore
   753  
   754  ### Changed
   755  - service: rename EpochRequest to EpochHeader and merge with MetaHeader
   756  - service: get status error even if it is wrapped
   757  
   758  ### Added
   759  - service: RequestVerificationHeader's method to validate owner
   760  - service: test coverage for CheckOwner
   761  - service: test coverage for wrapped status errors
   762  
   763  ## [0.2.2] - 2019-11-22
   764  
   765  ### Changed
   766  - ProcessRequestTTL don't changes status errors from TTLCondition
   767  
   768  ## [0.2.1] - 2019-11-22
   769  
   770  ### Changed
   771  - Removed SendPutRequest
   772  - MakePutRequestHeader sets only object and token
   773  
   774  ## [0.2.0] - 2019-11-21
   775  
   776  ### Added
   777  - Container not found error
   778  - GitHub Actions as CI and Codecov
   779  - Auto-generated proto documentation
   780  - RequestMetaHeader to all RPC requests
   781  - RequestVerificationHeader to all RPC requests
   782  
   783  ### Changed
   784  - Moved TTL and Epoch fields to RequestMetaHeader
   785  - Renamed Version in object.SearchRequest to QueryVersion
   786  - Removed SetTTL, GetTTL, SetEpoch, GetEpoch from all RPC requests
   787  
   788  ## 0.1.0 - 2019-11-18
   789  
   790  Initial public release
   791  
   792  [0.2.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.1.0...v0.2.0
   793  [0.2.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.0...v0.2.1
   794  [0.2.2]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.1...v0.2.2
   795  [0.2.3]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.2...v0.2.3
   796  [0.2.4]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.3...v0.2.4
   797  [0.2.5]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.4...v0.2.5
   798  [0.2.6]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.5...v0.2.6
   799  [0.2.7]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.6...v0.2.7
   800  [0.2.8]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.7...v0.2.8
   801  [0.2.9]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.8...v0.2.9
   802  [0.2.10]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.9...v0.2.10
   803  [0.2.11]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.10...v0.2.11
   804  [0.2.12]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.11...v0.2.12
   805  [0.2.13]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.12...v0.2.13
   806  [0.2.14]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.13...v0.2.14
   807  [0.3.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.2.14...v0.3.0
   808  [0.3.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.3.0...v0.3.1
   809  [0.3.2]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.3.1...v0.3.2
   810  [0.4.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.3.2...v0.4.0
   811  [0.4.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.4.0...v0.4.1
   812  [0.4.2]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.4.1...v0.4.2
   813  [0.5.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.4.2...v0.5.0
   814  [0.6.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.5.0...v0.6.0
   815  [0.6.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.6.0...v0.6.1
   816  [0.6.2]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.6.1...v0.6.2
   817  [0.7.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.6.2...v0.7.0
   818  [0.7.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.7.0...v0.7.1
   819  [0.7.4]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.7.1...v0.7.4
   820  [0.7.5]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.7.4...v0.7.5
   821  [0.7.6]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.7.5...v0.7.6
   822  [1.0.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v0.7.6...v1.0.0
   823  [1.1.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.0.0...v1.1.0
   824  [1.2.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.1.0...v1.2.0
   825  [1.3.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.2.0...v1.3.0
   826  [1.20.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.3.0...v1.20.0
   827  [1.20.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.20.0...v1.20.1
   828  [1.20.2]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.20.1...v1.20.2
   829  [1.20.3]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.20.2...v1.20.3
   830  [1.21.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.20.3...v1.21.0
   831  [1.21.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.21.0...v1.21.1
   832  [1.21.2]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.21.1...v1.21.2
   833  [1.22.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.21.2...v1.22.0
   834  [1.22.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.22.0...v1.22.1
   835  [1.22.2]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.22.1...v1.22.2
   836  [1.23.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.22.2...v1.23.0
   837  [1.24.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.23.0...v1.24.0
   838  [1.25.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.24.0...v1.25.0
   839  [1.26.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.25.0...v1.26.0
   840  [1.26.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.26.0...v1.26.1
   841  [1.27.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.26.1...v1.27.0
   842  [1.27.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.27.0...v1.27.1
   843  [1.28.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.27.1...v1.28.0
   844  [1.28.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.28.0...v1.28.1
   845  [1.28.2]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.28.1...v1.28.2
   846  [1.28.3]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.28.2...v1.28.3
   847  [1.29.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.28.3...v1.29.0
   848  [1.30.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.29.0...v1.30.0
   849  [2.11.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v1.30.0...v2.11.0
   850  [2.11.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v2.11.0...v2.11.1
   851  [2.12.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v2.11.1...v2.12.0
   852  [2.12.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v2.12.0...v2.12.1
   853  [2.12.2]: https://github.com/nspcc-dev/neofs-api-go/compare/v2.12.1...v2.12.2
   854  [2.13.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v2.12.2...v2.13.0
   855  [2.13.1]: https://github.com/nspcc-dev/neofs-api-go/compare/v2.13.0...v2.13.1
   856  [2.14.0]: https://github.com/nspcc-dev/neofs-api-go/compare/v2.13.1...v2.14.0