Commit graph

441 commits

Author SHA1 Message Date
Leonard Lyubich
d95228c402 Release v2.14.0 - Anmado (안마도, 鞍馬島)
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-09-26 09:59:20 +04:00
Leonard Lyubich
ae38b06f9b *: Re-generate protobuf docs
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-09-26 09:59:20 +04:00
Leonard Lyubich
35a012b0fe [#214] netmap: Define keys of NetworkConfig.Parameter
There is a need to declare all system parameters stored as raw key-value
parameters in `NetworkConfig` messages. So applications can interpret
raw configurations in a controlled manner.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-09-23 18:47:57 +04:00
Evgenii Stratonikov
4d0140902f [#235] netmap: Add a well-known attribute for additional addresses
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-09-22 11:35:51 +03:00
Leonard Lyubich
b4cdca989f [#202] session: Support sessions issued for an object group
Sometimes it is useful to open single session which covers several
objects in the container. In previous implementation it could be done:
 * by opening container-global session
 * by opening N per-object sessions

Both approaches are not optimal for the mentioned need.

Define `ObjectSessionContext.Target` which is backward compatible with
`refs.Address` in binary format. Replace `address` field of
`refs.Address` type in `ObjectSessionContext` message with `target`
field of `ObjectSessionContext.Target` type. This change saves backward
compatibility in binary format, but break the JSON one. Such a breakage
is considered admissible for now since NeoFS API protocol hasn't
declared JSON compatibility yet.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-09-20 15:02:05 +04:00
Leonard Lyubich
d6090eb2fc [#202] session: Allow to spread object session to the whole container
Object sessions for `PUT` and `SEARCH` ops are spread to the whole
container due to op semantics. Sometimes it is convenient to spread the
session to all objects of the container for other operations. Thus,
object sessions for the whole container can be unified.

Modify docs of `ObjectSessionContext.address` field:
 * require `container_id` field to be correctly set;
 * require `object_id` field to be correctly field if set;
 * allow `object_id` field to be unset and make this case equivalent to
   the container-global session.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-09-20 15:02:05 +04:00
Leonard Lyubich
b8b1a90075 [#198] object: Sort statuses by codes
Description of statuses sorted by sections and codes looks more logical.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-09-19 11:04:15 +04:00
Evgenii Stratonikov
4d8dd727ea [#237] status: Add NODE_UNDER_MAINTENANCE status code
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-09-15 15:29:54 +03:00
Evgenii Stratonikov
d939c47ee5 [#237] netmap: Add MAINTENANCE node state
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-09-15 15:29:54 +03:00
Stanislav Bogatyrev
15eaf93ba1 [#238] Add FilePath object attribute
FilePath attribute is already used by S3 and HTTP protocol gateways.
Also seen in [Gaspump](https://github.com/configwizard/gaspump-api/).

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2022-08-26 12:55:34 +03:00
Stanislav Bogatyrev
c03a53813a [#228] Add netmap snapshot request
Clients need an easy way of getting network map to get connection
endpoints form Node's attributes.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2022-08-17 12:06:36 +03:00
anastasia prasolova
4de2570e1a [#232] Comments fix for ACL
Signed-off-by: anastasia prasolova <anastasia@nspcc.ru>
2022-08-02 17:49:54 +03:00
Pavel Karpy
81488edd8b Release v2.13.1
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-08-01 16:24:37 +03:00
Pavel Karpy
22a7d8be6c [#230] status: Add EACL_NOT_FOUND status
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-08-01 09:31:52 +03:00
Pavel Karpy
10f18e4b69 Release v2.13.0 - Yeonpyeongdo (연평도, 延坪島)
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-06-21 19:56:15 +03:00
Pavel Karpy
1bc50fc2a9 [#227] *: Regenerate docs
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-06-21 19:56:15 +03:00
Pavel Karpy
2f52216400 [#225] status: Add signature related status
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-06-21 15:30:26 +03:00
Evgenii Stratonikov
66cc44e727 refs: add WalletConnect signature type
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-06-20 18:42:05 +03:00
Pavel Karpy
5bd512774c [#222] storagegroup: Force members to be unique
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-06-07 19:30:20 +03:00
Pavel Karpy
e31fcad6b8 [#221] lock: Clarify lock object usage
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-06-02 13:04:24 +03:00
Pavel Karpy
64ab86a1ff [#217] container: Add homomorphic hashing well-known attribute
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-05-30 15:40:50 +03:00
Evgenii Stratonikov
869fb64155 [#208] status: Add OUT_OF_RANGE status in Object section
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-05-27 12:51:13 +03:00
Stanislav Bogatyrev
8bf98ec983 Use well-known expiration attribute for SGs
To avoid ambiguity, let's use the common well-known attribute to control
both Object and Storage Group expirations.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2022-05-25 11:20:09 +03:00
Elizaveta Chichindaeva
f741ea6f4a Update
Signed-off-by: Elizaveta Chichindaeva <elizaveta@nspcc.ru>
2022-05-17 10:46:54 +03:00
Stanislav Bogatyrev
cd5fdbbd55 Clarification for eXtended Headers in MetaHeader
Minor clarification to show how XHeaders should be used.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2022-05-17 10:46:54 +03:00
Elizaveta Chichindaeva
f233a2fd67 [#216] English Check
Signed-off-by: Elizaveta Chichindaeva <elizaveta@nspcc.ru>
2022-05-12 15:06:51 +03:00
Evgenii Stratonikov
431335054c [#207] acl: Clarify container_id field meaning in the eACL table of a BearerToken
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-03-21 10:49:25 +03:00
Leonard Lyubich
650c367529 Release v2.12.0 - Heuksando (흑산도, 黑山島)
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-03-02 16:46:58 +03:00
Leonard Lyubich
b28ce35524 [#203] refs: Change support for different signature schemes
Remove `UNSPECIFIED` value from `SignatureScheme` enum. Make
`ECDSA_SHA512` to be default signature scheme (zero value).

Define `SignatureRFC6979` type for RFC-6979 signatures. Use it in
`Container` service.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-03-02 16:46:58 +03:00
Leonard Lyubich
f6dad19bef Release v2.12.0 - Heuksando (흑산도, 黑山島)
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-22 16:02:14 +03:00
Evgenii Stratonikov
478c388df9 [#55] container: add a comment about signature restrictions
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-02-22 12:00:58 +03:00
Evgenii Stratonikov
3302a530f2 [#55] refs: add signature scheme description
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-02-22 12:00:58 +03:00
Leonard Lyubich
2743e4ba11 [#194] Generate docs with recent protocol changes
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-22 11:58:44 +03:00
Leonard Lyubich
fc79cd18cc [#190] status: Add OBJECT_ALREADY_REMOVED code
Add `OBJECT_ALREADY_REMOVED` value to `Object` enumeration. Return this
status from object GET/HEAD/RANGE operations.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-22 11:58:44 +03:00
Leonard Lyubich
83b0eef37d [#189] status: Refine format of the ACCESS_DENIED status detail
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-22 11:58:44 +03:00
Leonard Lyubich
0caf501b4a [#194] Document status returns of Object and Container service RPCs
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-22 11:58:44 +03:00
Stanislav Bogatyrev
1c683c7578 [#194] Move Lock payload description to definition
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2022-02-22 11:58:44 +03:00
Leonard Lyubich
d6bf64589f [#194] object: Define payload format of LOCK objects
Define `object.Lock` message which carries list of locked objects.
Require this message to be a payload of locked objects (`LOCK` type).

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-22 11:58:44 +03:00
Leonard Lyubich
7b83b9df4e [#194] object: Add status returns related to LOCKs
Add `status.Object` section for object failures. Add `LOCKED` and
`LOCK_NON_REGULAR_OBJECT` codes to it. Return these codes from `Put` and
`Delete` RPCs of `ObjectService`.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-22 11:58:44 +03:00
Leonard Lyubich
3793783ed4 [#194] object: Add LOCK type
NeoFS introduces object LOCKs - a mechanism for locking an object from,
for example, deletion. Object locks are implemented and stored in the
container as objects, so there is a need to define a new type of system
objects.

Add `LOCK` value to `ObjectType` enum.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-02-22 11:58:44 +03:00
Evgenii Stratonikov
35e9840de6 [#192] docs: Generate documentation
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-02-21 15:52:48 +03:00
Evgenii Stratonikov
3a154760b5 [#191] status: add Session section and some status codes
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-02-21 15:52:48 +03:00
Evgenii Stratonikov
31b7b073c2 [#190] status: add Container section and CONTAINER_NOT_FOUND code
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-02-21 15:52:48 +03:00
Evgenii Stratonikov
5f53a683d1 [#190] status: add Object.OBJECT_NOT_FOUND code
`OBJECT_` prefix is needed because of possible conflicts with other
`NOT_FOUND` codes declared in the same file.

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-02-21 15:52:48 +03:00
Evgenii Stratonikov
5f3fa3fdd8 [#189] status: add Object section and ACL_DENIED code
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2022-02-21 15:52:48 +03:00
Pavel Karpy
1842305116 [#195] doc: Regenerate documentation
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-02-21 15:26:28 +03:00
Pavel Karpy
f67442d769 [#195] object: Add notification well-known attributes
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2022-02-21 15:26:28 +03:00
Leonard Lyubich
e09a560d57 [#187] status: Add detail with supported network magic
Add detail for `WRONG_MAGIC_NUMBER` status code which carries the
correct magic of the served network served. Clients will be able to fix
incorrect magic and re-send the request. ID is 0, binary format
is uint64 in big-endian.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-01-27 16:48:52 +03:00
Leonard Lyubich
d9d71ccd66 [#82] status: Add status code for wrong network magic
After the recent update of NeoFS V2 protocol all requests must carry
correct network magic.

Add `WRONG_MAGIC_NUMBER` code to `CommonFail` section.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-01-10 17:32:31 +03:00
Leonard Lyubich
b1fca685a9 [#82] session: Add network magic to RequestMetaHeader
To prevent theoretical cross-network replay attack, we need to have
network magic in NeoFS requests.

Add `magic_number` numeric field to `session.RequestMetaHeader`
message.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2022-01-10 17:32:31 +03:00