Commit graph

66 commits

Author SHA1 Message Date
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
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
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
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
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
f1acb8c14f Typo fix
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
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
Stanislav Bogatyrev
e5f78eb927 Move SessionToken to session package
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 18:31:36 +03:00
Stanislav Bogatyrev
7d72061fb3 Move BearerToken type to acl package
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 18:31:36 +03:00
Stanislav Bogatyrev
54778a86ed Move Version to refs
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 18:31:36 +03:00
Stanislav Bogatyrev
a78b8a1ea5 Move all service types to types.proto
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 15:04:15 +03:00
Stanislav Bogatyrev
4e908a17b1 [#50] Add version fields where it makes sense
Some pieces of data (container, object, etc) may be stored for a long time and
there will be a need in the future to understand which obscure format from the
past was used to create it.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-17 12:12:30 +03:00
Stanislav Bogatyrev
7555e166b2 [#49] Minor reformat
- Trying to move enums to the package level
- Trying to keep all definitions in types.proto

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-17 12:12:16 +03:00
Stanislav Bogatyrev
e63a482529 [#48] Add grpc suffix to go_package option
To simplify adding more transport level protocols to neofs-api-go in future, we
need to separate currently default gRPC.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-17 12:11:38 +03:00
Stanislav Bogatyrev
42e35fefff [#45] Fix linter errors
- Changed package names adding version
- Added documentation descriptions (sometimes useless) for all fields
- Changed enum format
- Made SessionToken and BearerToken field names more clear

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-13 22:57:00 +03:00
Stanislav Bogatyrev
818ec7f0dc [#38] Change ObjectID format from UUID to Hash
NeoFS Object are now Content-addressed. It means the Object's address depends on
it's content. ObjectID is now calculated as hash of Header, which contains a
hash of payload. If either if Object's payload of Headers change, the ID will
also change.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-11 16:30:39 +03:00
Stanislav Bogatyrev
327c476ecf [#41] Reindent according to Google Style Guide
Just a minor change to follow 2-space indent declared in Google Style Guide

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-11 12:08:37 +03:00
Leonard Lyubich
b088391294 [#40] service: Rename Token to SessionToken
Rename Token message to SessionToken to clarify its purpose.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-11 11:50:36 +03:00
Stanislav Bogatyrev
e75ef53793 [#32] Rename fields according to Protobuf Style Guide
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-07 14:36:15 +03:00
Leonard Lyubich
40420f3ab0 [#31] refs: Use OwnerID message in all services
Change the type of all fields for identifier of the container owner to
refs.OwnerID. This will allow you to follow a single format and not duplicate
its description.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 22:00:01 +03:00
Leonard Lyubich
67ecea7507 [#28] object: Move storage group information
In previous version of the format storage group information was stored in
completely in the dedicated header field. However, having a header field
instead of storing it in a payload is not justified, since it is used only
to check the presence in the object. Based on this, this commit defines a
message for marking the object as the custodian of information about the
storage group and changes the type of field StorageGroup to it. Information
about the storage group will be stored serialized in the payload of the
objects marked in this way

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 22:00:01 +03:00
Leonard Lyubich
974a2288c4 [#26] object: Add line breaks for readability
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
a5c1b3683b [#26] object: Rename System header to Main
In the previous format, the object header was subdivided into system and
extended parts, which confused the purpose of these parts. In particular,
the extended header contains system fields. To clarify the non-intersection
of the mentioned parts of the object header, it was decided to rename System
to Main.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
eaad094a2c [#26] object: Tidy up comments
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
0525786d09 [#26] object: Use nested types in Header
This commit replaces all message definitions related to object header to
Header message.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
81a4adb202 [#26] object: Use nested types in ExtendedHeader
This commit replaces all message definitions related to extended header to
ExtendedHeader message.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
72edea28db [#26] object: Change field order in Header
This commit changes field order in ExtendedHeader message.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
a3a0de01b3 [#26] object: Replace Token to IntegrityHeader
This commit replaces Token field from ExtendedHeader to IntegrityHeader for
assembling all verification data in one structure.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
8e8d9f0982 [#26] object: Replace Epoch to ExtendedHeader
This commit replaces CreationEpoch field to ExtendedHeader message.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
a28decac39 [#26] object: Repeat object attributes in header
This commit replaces single Attribute field with the repeated list of
Attribute in ExtendedHeader message.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
fb2064803e [#26] object: Replace PayloadChecksum to Integrity
This commit replaces PayloadChecksum field from ExtendedHeader to
IntegrityHeader for assembling all verification data in one structure.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
b77811716e [#26] object: Replace creator key to Integrity
This commit moves the public key of the creator of the object to
IntegrityHeader to encapsulate the verification data in one message. Thus
field PublicKey of message Header has been moved to message IntegrityHeader
with the name CreatorKey. As a result, PublicKey message is deleted as no
longer used.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
0a5f3d5a01 [#26] object: Remove unused Redirect field
Redirect field was introduced for the future, however, at the moment it is
not used anywhere. This commit removes field Redirect from ExtendedHeader
message. It can be added back later without losing API backward
compatibility.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
4df4badf9c [#26] object: Remove Link message
After updating the structure of SplitHeader and StorageGroup messages, the
Link header field is no longer needed. This commit removes the field and
message Link as no longer used.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00
Leonard Lyubich
7ce0945e6c [#26] object: Remove unused Version field
Field with object revision number was introduced for the future, however, at
the moment it is not used anywhere. This commit removes field Version from
SystemHeader message. It can be added back later without losing API
backward compatibility.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 21:59:42 +03:00