Commit graph

111 commits

Author SHA1 Message Date
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
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
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
7ea5a1d2f1 [#150] *: Write status-related docs
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-11-16 09:46:14 +03:00
Alex Vanin
233f777d0c [#84] Fix string presentation object type enum
Default string presentations of enums in protobuf are the same
as definitions. In our case it is going to be UPPER_SNAKE_CASE
string constants. Default presentation is easier to maintain.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-08-26 13:03:31 +03:00
Pavel Karpy
0040853986 [#166] object: Define COMMON_PREFIX value in MatchType enum
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-08-16 15:15:58 +03:00
Stanislav Bogatyrev
e33f784e05 [#141] Add well-known attribute for content type
Neo3 Oracles need a way to check object's MIME content type, as
described in neo-project/neo-modules#555.

The proposal was to add Content-Type as a well-known attribute.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2021-03-15 10:33:31 +03:00
ZhangTao
69f09c8030
change csharp namespace (#140)
* change csharp namespace

Signed-off-by: ZhangTao1596 <zhangtao@ngd.neo.org>

* use Neo.FileStorage.API as base namespace

Signed-off-by: ZhangTao1596 <zhangtao@ngd.neo.org>
2021-03-10 13:54:06 +03:00
Stanislav Bogatyrev
82f2b4cbc1 [#135] Clarify empty search filter behaviour
It may be confusing for the user to get all types of objects as the
result of a search with no filters set. Human users may expect to see
only the objects intended for direct manipulation by humans.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2021-02-20 14:15:03 +03:00
Leonard Lyubich
0f8fb25969 [#128] object: Add json_name tags to fields of SearchRequest.Body.Filter
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-11 14:53:59 +03:00
Leonard Lyubich
3b6f5d70ec [#120] object: Document processing of filters with match type NOT_PRESENT
The behavior of the node when processing system search filters with match
type NOT_PRESENT is declared undefined.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-11 14:53:59 +03:00
Leonard Lyubich
90160db0ac [#120] object: Define NOT_PRESENT value in MatchType enum
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-11 14:53:59 +03:00
Leonard Lyubich
ad4a9142ab [#119] object: Define STRING_NOT_EQUAL value in MatchType enum
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-02-11 14:53:59 +03:00
Stanislav Bogatyrev
c5612b01cc [#110] Add hashes to ShortHeader structure
Hashes in ShortHeader are needed for Data Audit process.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-12-17 12:24:15 +03:00
Stanislav Bogatyrev
a8c1779690 [#81] Clarify that attribute names must be unique
All types of attribute keys must be unique and can't be repeated in the same
entity.

- Containers with duplicated attribute keys must not be accepted by InnerRing on
  creation.
- Nodes with duplicated attribute keys can't be accepted to NetMap by InnerRing
- Objects with duplicated attribute keys must be considered invalid and not
  accepted in PUT operations

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-12-11 10:19:46 +03:00
Alex Vanin
75dd1261e3 Add raw flag in object.GetRangeRequest
Raw flag used to get range of physically stored objects and
ignoring split objects. In case of split object node should
return SplitInfo message.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-12-10 10:43:42 +03:00
Alex Vanin
7f26542813 Add split_info field in object.GetRangeResponse body
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-12-10 10:43:42 +03:00
Alex Vanin
7995020a9d Add split_info field in object.HeadResponse body
Head operation returns SplitInfo structure if request has
raw flag and ID of virtual object.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-12-10 10:43:42 +03:00
Alex Vanin
a5a39257fc Add split_info field in object.GetResponse body
SplitInfo structure from split_info field contains meta information
to assembly the object that has been split into parts.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-12-10 10:43:42 +03:00
Stanislav Bogatyrev
289a6366fa [#51] Define Tombstone type and return it's address on object delete
- Define payload structure for Tombstone object type.
- Return address of the created TS on object delete. Useful for testing

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-12-09 19:38:16 +03:00
Stanislav Bogatyrev
b930782fd3 [#84] Clarify various types encoding formats
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-12-09 16:55:02 +03:00
Stanislav Bogatyrev
063ec430d1 [#86] Clarify that Attributes can't have empty values
In case there is a need to set flag-like attributes, the value should be set to
something like `true` or `1`.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-12-09 16:51:21 +03:00
Stanislav Bogatyrev
29c9e1d68b typo fix
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-11-25 16:37:08 +03:00
Stanislav Bogatyrev
73143ac362 Add split_id search attribute and remove childfree
After adding `split_id` there is no need to have $Object:CHILDFREE.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-11-25 13:43:20 +03:00
Stanislav Bogatyrev
71469da602 Typo fixes
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-11-25 13:43:20 +03:00
Stanislav Bogatyrev
55c04e485e Add header.split.split_id header to object
In some cases like nspcc-dev/neofs-node#167 there is no simple way to identify
where does the object part belongs to. Adding `split_id` as the required field
will simplify split object processing.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-11-17 11:03:33 +03:00
Stanislav Bogatyrev
3cdde6492b Mention object split limitation by type
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-11-10 09:26:11 +03:00
Stanislav Bogatyrev
2613670553 [nspcc-dev/neofs-node#151] Clarify $Object:ROOT filter description
* It's expected by app developers that ROOT filter will return the list of objects
created by user, without supplementary objects like split object parts,
tombstones and storage groups.

* Rename LEAF to PHY as it's purpose it to return physically existing objects.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-11-09 19:00:39 +03:00
Stanislav Bogatyrev
9a319905be [#87] Add object ID key in extended ACL filters
Extended ACL description lacks `objectID` key in filters. It's useful to control
access to specific object.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-11-09 17:33:19 +03:00
Alex Vanin
5916eb1170 [#80] Clarify well-known object filters parent and childfree
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-10-23 18:17:28 +03:00
Stanislav Bogatyrev
b063e5b910 Rename object search and ACL filters fields for consistency
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-23 16:27:34 +03:00
Stanislav Bogatyrev
f1acb8c14f Typo fix
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-23 15:29:37 +03:00
Stanislav Bogatyrev
8056035132 Clarify object search filter header name usage
Related: nspcc-dev/neofs-spec#12

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-23 15:29:37 +03:00
Stanislav Bogatyrev
31e1801c4a Add more well-known attributes
Resolves nspcc-dev/neofs-api-go#172

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-21 19:37:50 +03:00
Stanislav Bogatyrev
a1d9527f34 [#73] Add JSON field names to object package
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-19 14:49:14 +03:00
Evgenii Stratonikov
4f01f4b902 [#73] Add json field names to oblect struct
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
2020-10-19 14:49:14 +03:00
Stanislav Bogatyrev
27f4b1ad63 Update object package docs
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-16 12:37:19 +03:00
Stanislav Bogatyrev
c793503167 Add well-known attributes for objects
Adding the list of currently well-known object attributes. More to come later.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-16 12:37:19 +03:00
Stanislav Bogatyrev
6014665fa6 [#67] Typo fixes
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-09-04 15:50:31 +03:00
Alex Vanin
4aea595cc6 [#67] Use tuple of header and signature in object head response
Object.Head method returns either full header or short header.
Since it can't return anything else, signature must be paired
with full header in explicit tuple message.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-09-04 13:27:05 +03:00
Stanislav Bogatyrev
a07a518a1e [#66] object: Add object_id signature to Head response
Object ID signature is needed to check Header authenticity.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-09-03 16:10:05 +03:00
Stanislav Bogatyrev
c8054c5daa [#58] netmap: Simplify Placement Policy
Proposed protobuf format for Placement Policy simplifies direct editing in
visual editors and import/export from other formats like JSON.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-09-01 21:15:09 +03:00
Stanislav Bogatyrev
fc170f56bf [#57] Merge service and session packages
Merging session and service packages to increase clarity and reduce
cross-dependencies.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-20 10:33:49 +03:00
Stanislav Bogatyrev
762c9762ef [#56] Fix typos and regenerate docs
Sorry =)

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 18:41:44 +03:00
Stanislav Bogatyrev
526792324d [#56] Add separate checksum type
NeoFS uses different checksum algorithms. It looks like we need to explicitly
define what algorithm is used in each particular case.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 18:36:31 +03:00