frostfs-api/CHANGELOG.md
Bruk Ori 527fe93e5d
Some checks failed
Formatters / Run fmt (pull_request) Successful in 33s
DCO action / DCO (pull_request) Successful in 1m0s
Pre-commit hooks / Pre-commit (pull_request) Failing after 1m1s
[#68] Ensure compatibility of different API versions with each other.
Remove unnecessary language options.
Update linters.
Signed-off-by: Ori Bruk <o.bruk@yadro.com>
2024-10-08 17:30:50 +03:00

16 KiB

Changelog

[3.0] - 2024-10-08 - Oryukdo (오륙도, 五六島)

Added

  • Version compatibility information
  • Linter for checking version update
  • Linter for checking json files for version compatibility

Changed

  • Proto package path
  • Versioning (semver like 2.14.0 to milestone with patch like 3.0)

Removed

  • Proto options for all languages

[Unreleased]

Changed

  • Add __SYSTEM__ attribute prefix (#12, #14)
  • Add allow_impersonate flag to bearer token (#18)

Removed

  • Reputation system (#22)
  • All subnet related fields and types (#25)
  • Storage group (#19)

2.14.0 - 2022-09-23 - Anmado (안마도, 鞍馬島)

Added

  • NetmapSnapsot RPC to netmap.NetmapService (#228)
  • Well-known object attribute FilePath of object.Header.Attribute (#238)
  • MAINTENANCE value of netmap.NodeInfo.State enum (#237)
  • NODE_UNDER_MAINTENANCE code to status.CommonFail status section (#237)
  • Well-known node attribute ExternalAddr of netmap.NodeInfo.Attribute (#235)

Changed

  • Object session can be issued for a group of objects (#202)
  • System network parameters are explicitly declared in NetworkConfig.Parameter (#214)

2.13.1 - 2022-08-01

Added

  • EACL_NOT_FOUND status code to the container section (#230)

2.13.0 - 2022-06-21 - Yeonpyeongdo (연평도, 延坪島)

Added

  • Extended headers usage clarification (#204)
  • OUT_OF_RANGE status code to the object section (#208)
  • Disabling homomorphic hashing container setting (#217)
  • LOCK object behaviour clarification (#221)
  • Storage group members uniqueness constraint (#222)
  • WalletConnect signature scheme (#206)
  • SIGNATURE_VERIFICATION_FAIL status code to the CommonFail section (#225)

Deprecated

  • Storage group's expiration epoch field (#205)

Fixed

  • English language typos (#216)

2.12.0 - 2022-02-22 - Heuksando (흑산도, 黑山島)

Network magic, main status codes, object locks and notifications.

Added

  • magic_number field to RequestMetaHeader message (#82)
  • WRONG_MAGIC_NUMBER status code to CommonFail section (#82)
  • Well-known object attributes related to notifications __NEOFS__TICK_EPOCH and __NEOFS__TICK_TOPIC (#193)
  • ACCESS_DENIED status code to Object section (#189)
  • OBJECT_NOT_FOUND, CONTAINER_NOT_FOUND and OBJECT_ALREADY_REMOVED status codes (#190)
  • TOKEN_NOT_FOUND and TOKEN_EXPIRED status codes to Session section (#191)
  • LOCK value of object.Type enum (#194)
  • Lock message with payload content of LOCK objects (#194)
  • LOCKED and LOCK_NON_REGULAR_OBJECT status codes to Object section (#194)
  • scheme field of type SignatureScheme to Signature message which determines signature scheme (#55)
  • SignatureRFC6979 message (#203)

Changed

  • Type of signature field in ContainerService requests to SignatureRFC6979 (#203)

2.11.0 - 2021-12-02 - Sinjido (신지도, 薪智島)

Subnets and status responses.

Added

  • Status message structure (#150)
  • status field of Status type to ResponseMetaHeader message (#150)
  • Subnet message structure (#180)
  • subnet field of Subnet type to PlacementPolicy message (#179)

Changed

  • Subnet attributes in NodeInfo (#181)

2.10.0 - 2021-10-14 - Udo (우도, 牛島)

NNS integration, detailed network info and ACL rules for non-native services.

Added

  • ACL header type for services (#173)
  • Side chain block duration and NeoFS network config fields in NetworkInfo message (#172)
  • Well-known container attributes for NNS integration (#177)

2.9.1 - 2021-08-26

Changed

  • String presentation of object type enum.

2.9.0 - 2021-08-16 - Anmyeondo (안면도, 安眠島)

Support "common prefix" attribute match operation to simplify filesystem directory tree-like structures implementation in NeoFS protocol gateways.

Added

  • COMMON_PREFIX object attribute match type.
  • Storage node's attribute escape symbol description.

2.8.0 - 2021-06-25 - Muuido (무의도, 舞衣島)

Storage nodes with a group of network endpoints.

Changed

  • address field of netmap.NodeInfo message became repeated.

2.7.0 - 2021-06-03 - Seongmodo (석모도, 席毛島)

Container service sessions.

Added

Session

  • ContainerSessionContext message.
  • ContainerSessionContext value of context oneof to SessionToken.Body message.

Container

Get
  • session_token field of type session.SessionToken to GetResponse.Body message.
  • signature field of type refs.Signature to GetResponse.Body message.
GetExtendedACL
  • session_token field of type session.SessionToken to GetExtendedACLResponse.Body message.

2.6.0 - 2021-05-07 - Daecheongdo (대청도, 大靑島)

Added

  • Reputation package with reputation service and corresponding type definitions.

2.5.0 - 2021-03-19 - Jebudo (제부도, 濟扶島)

This release contains changes and fixes for NEO3 testnet launch.

Added

  • Well-known object attribute Content-Type.

Changed

  • Namespace for C# has been changed to Neo.FileStorage.API.

2.4.0 - 2021-02-26 - Ganghwado (강화도, 江華島)

This release provides new RPC method to fetch network info from storage node. By getting current epoch value, application might set up correct expiration values in the objects.

Added

  • netmap.NetworkInfo request for getting node's network view.
  • Release instructions.

Changed

  • Clarified processing of empty search query in object.Search RPC.
  • Specified connection of tombstone expiration value with well-known __NEOFS__EXPIRATION_EPOCH object attribute.

2.3.0 - 2021-02-11 - Seonyudo (선유도, 仙遊島)

This release brings support for nodes to exchange information about disk space used by each Container. This information will be used by Inner Ring nodes to calculate basic rewards and payments.

Another significant change is UN/LOCODE support for node's attributes describing geographical location. From now on, most of the geographical attributes will be calculated automatically from a single UN-LOCODE attribute in a deterministic manner.

Added

  • Added container.AnnounceUsedSpace request for announcing disk space consumed by container's objects on the node
  • Added Continent well-known node's attribute
  • Added SubDivCode well-known node's attribute
  • Added Location well-known node's attribute
  • Added CounrtyCode well-known node's attribute
  • Added STRING_NOT_EQUAL match type
  • Added NOT_PRESENT match type
  • Added JSON names for search request filter fields

Changed

  • Locode well-known node's attribute renamed to UN-LOCODE. It will be used as a base for calculating most of the node's geographical attributes.
  • Region well-known node's attribute renamed to SubDiv

Removed

  • Removed City well-known node's attribute
  • Removed Region well-known node's attribute

2.2.1 - 2021-01-15

Define "well-known" X-headers

Added

  • Description of the format of "well-known" X-headers that affect system behavior
  • X-header key to netmap epoch value
  • X-header key to netmap lookup depth value

2.2.0 - 2020-12-30 - Yeouido (여의도, 汝矣島)

Storage Groups based Data Audit updates

Added

  • audit.DataAuditResult message for recording audit result is added

Changed

  • object.ShortHeader now has payload_hash and homomorphic_hash fields

2.1.1 - 2020-12-17

Minor documentation fixes

Changed

  • Clarify JSON encoding for ObjectID, ContainerID and OwnerID
  • Clarify object field usage in some requests' eACL filters

2.1.0 - 2020-12-11 - Modo (모도, 茅島)

Object split and deletion improvements, documentation clarifications.

Added

  • $Object:objectID added to the list of available ACL and Search filters
  • split_id field added in object.Object.header
  • $Object:split.splitID search filter added
  • json_name notation added to acl.EACLTable.Version field
  • Adding tombstone field with newly created tombstone address field to object.DeleteResponse.Body
  • tombstone package added
  • Tombstone payload definition added as tombstone.Tombstone message
  • SplitInfo message added to object package
  • split_info field added to object.GetResponse.Body
  • split_info field added to object.HeadResponse.Body
  • split_info field added to object.GetRangeResponse.Body
  • raw flag added in object.GetRangeRequest.Body

Changed

  • Clarified special search index descriptions
  • Clarified various types encoding formats descriptions

Removed

  • $Object:CHILDFREE filter description removed from well-known list
  • $Object:LEAF filter description removed from well-known list

2.0.2 - 2020-10-27

More "well-known" application attributes and documentation updates.

Added

  • Added "well-known" attributes list for extended ACL and object search filters
  • Added Name, Timestamp "well-known" application attributes for container
  • Added Name, FileName, Timestamp "well-known" application attributes for object

Changed

  • BearerToken.owner_id field description changed
  • Subnet container attribute now has __NEOFS__ prefix
  • Search and ACL filters now have key and value fields

2.0.1 - 2020-10-19

Documentation updates and JSON field names definition

Added

  • Added "well-known" attributes list for netmap.NodeInfo
  • Added "well-known" attributes list for objects
  • Added "well-known" attributes list for containers
  • JSON field names defined for most of data structures

Changed

  • Documentation updated for all packages fixing typos and minor inaccuracies
  • acl.EACLRecord.Target.key_list field renamed to keys for consistency

Removed

2.0.0 - 2020-09-07 - Jindo (진도, 珍島)

Major API refactoring and simplification.

Added

  • neo.fs.v2 prefix added to all package names
  • container.Attributes field added
  • refs.ContainerID added as a separate type
  • refs.OwnerID added as a separate type
  • Object Search query language defined in object.SearchRequest.Body.filter
  • netmap package added
  • refs.Signature defined as a separate type
  • session.SessionToken now has context information for each service
  • refs.Version defined as a separate type
  • refs.Version field added to all messages stored in SmartContracts
  • refs.Checksum defined as a separate type
  • netmap.LocalNodeInfo request added to get actual information from connected peer

Changed

  • Extended ACL Table format changed
  • Protobuf definitions style changed to follow Google Style Guide
  • System and Extended Object headers are merged into on object.Header type
  • object.UserHeader renamed to object.Header.Attribute
  • refs.ObjectID is now a hash of the object.Header field, which contains hash of payload
  • StorageGroup information moved to Object's payload
  • netmap.NodeInfo.options renamed to netmap.NodeInfo.attributes and it uses a separate netmap.NodeInfo.Attribute type now.
  • netmap.NodeInfo.Attribute type now has a list of parents to construct a tree
  • Session Token renamed to session.SessionToken from session.Token
  • All Requests and Responses now have a common "body-meta-verify" structure
  • Meta and Verification headers now follow Matryoshka-style composition
  • SessionToken and BearerToken are now part of Meta header
  • Object placement policy format is simplified and defined in netmap package
  • object.Head() request now returns either short header or full header with a signature

Removed

  • gogoproto is not used anymore
  • decimal package merged into accounting package
  • query package merged into object package
  • storagegroup package merged into object package
  • bootstrap package merged into netmap package
  • state package removed
  • service package removed. Merged with session package
  • state package removed. It will be implementation specific part of neofs-node
  • SpreadMap functionality removed from netmap package
  • Unixtime support removed from creation timestamps, leaving only Epoch number
  • Link type removed from Object headers
  • Redirect type support removed from Object headers
  • Withdrawal and Account Lock functionality removed from accounting service
  • Deposit functionality removed from accounting service
  • Settlement functionality removed from accounting service

1.2.0 - 2020-07-08

Added

  • acl.EACLRecord, acl.EACLTable messages for the table of extended ACL rules.

1.1.0 - 2020-06-18

Added

  • Extended ACL support in container service.
  • Bearer token support in the object service requests.
  • Extended headers for the requests in service.RequestMetaHeader

1.0.0 - 2020-05-16

Bump major release

0.7.5 - 2020-05-15

Added

  • OwnerKey bytes field to service.Token.TokenInfo message.

0.7.4 - 2020-05-08

Added

  • service.TokenLifetime message.

Changed

  • service.Token structure.
  • session.Session.Create RPC signature.
  • session.CreateRequest structure.
  • session.CreateResponse structure.

0.7.3 - 2020-04-28

Changed

  • CreationPoint disabled stringer method.

0.7.2 - 2020-04-28

Added

  • Raw boolean field to service.RequestMetaHeader.
  • Token message field to service.RequestVerificationHeader.

Replaced

  • Token message from session to service package.
  • Signature message with Sign one in service package.

Changed

  • Token message structure.

Removed

  • Raw field from object.GetRequest and object.HeadRequest messages.
  • Token field from object.PutRequest.PutHeader and object.DeleteRequest messages.
  • VerificationHeader message.

0.7.1 - 2020-04-20

Added

  • Method to change current node state. (state.ChangeState)

0.7.0 - 2020-04-16

Added

  • A numerical field CopiesNumber into object.PutRequest.PutHeader message.

0.6.1 - 2020-04-15

Added

  • State field into Bootstrap request.
  • Request.State enum: Unknown, Online, Offline.

0.6.0 - 2020-04-02

Added

  • ACL package with enum of ACL targets.

Changed

  • Use BasicACL field in container structure and container.Put request.

0.5.0 - 2020-04-01

  • Initial release