Commit graph

124 commits

Author SHA1 Message Date
f2a60016ab [#9] object service: Add PutSingle RPC
Signed-off-by: Dmitrii Stepanov <d.stepanov@yadro.com>
2023-07-04 11:08:35 +03:00
b471eaaba9 [#29] object: Extend Delete rpc specification
* Add OBJECT_NOT_FOUND status specification

Signed-off-by: Airat Arifullin a.arifullin@yadro.com
2023-06-28 13:30:49 +03:00
Pavel Karpy
cbc038f84e [#17] object: Allow set copy_number for every placement vector
Signed-off-by: Pavel Karpy <p.karpy@yadro.com>
2023-04-07 10:59:26 +03:00
5fd4059061 [#14] Rename __FROSTFS__ to __SYSTEM__
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-03-14 10:24:35 +03:00
3adb55c38a [#12] Add __FROSTFS__ system prefix
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2023-03-07 15:40:40 +03:00
eafcbff11f Rename go package names
Due to source code relocation from GitHub.

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
2023-03-07 11:50:02 +03:00
7431075ca1 Rename go package names
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2022-12-11 12:18:48 +03: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
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
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
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
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