Commit graph

41 commits

Author SHA1 Message Date
Alex Vanin
c51f4cd314 [#122] container: Add epoch field to size announcement
Nodes aggregate size estimation based on container id
and epoch number. Estimations are not valid forever.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-02-11 14:53:59 +03:00
Alex Vanin
3a129a2557 [#122] container: Add AnnounceUsedSpace method
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2021-02-11 14:53:59 +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
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
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
d0d74c3a2f [#73] Add JSON field names to container package
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-19 14:49:14 +03:00
Stanislav Bogatyrev
f51ee1ba9d Update container package docs
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-16 12:37:19 +03:00
Stanislav Bogatyrev
cad80a2c86 Add well-known attributes for containers
Adding the list of currently well-known container attributes. More to come
later.

Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-10-16 12:37:19 +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
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
13a80df882 Use common signature type
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-18 15:04:15 +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
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
Alex Vanin
7447bdceee [#37] Add body message to container requests
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-08-11 12:37:06 +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
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
12dd5e07ba container: Tidy up the format
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:45:50 +03:00
Leonard Lyubich
f9c865eb53 [#34] container: Import PlacementRule from netmap
Replaces import of PlacementRule message from netmap repository with a message
from the internal netmap package.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:45:33 +03:00
Leonard Lyubich
0046e8fb14 [#32] container: Remove gogoproto from typedef
There is a need to remove gogoproto usage from NeoFS API since this plugin
is not cross-language. This commit removes usage from container package.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2020-08-06 23:34:03 +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
fccd753a5d [#31] refs: Use ContainerID message in all services
Change the type of all fields for the container identifier to refs.ContainerID.
This will allow 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
Alex Vanin
62cc321c3e [#23] Update comments for autogenerated docs
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-08-03 18:03:34 +03:00
Alex Vanin
5928fa9bea [#23] Use rich field names instead of abbreviations
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-08-03 18:03:34 +03:00
Alex Vanin
21f51c8c8b [#23] Reorganize container message fields
Capacity field is obsolete and removed. Salt field renamed to
Nonce so it shows better the purpose of the field.

Remaining fields are reorded to have fixed size fields on top.
It affects stable-marshaller implementation.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-08-03 18:03:34 +03:00
Alex Vanin
ebf96fea9e [#23] Remove meta and verify headers from requests
Neofs-node doesn't use these headers in any way. They are
obsolete since container API provides proxy between client
and morph chain.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-08-03 18:03:34 +03:00
Alex Vanin
cd6db41fe3 [#22] Add signature field to container delete request
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-08-03 18:03:34 +03:00
Alex Vanin
72618c4e49 [#22] Update fields in container put request
With explicit signature field, that contains signature of
stable-marshalled container message, there is no need to have
separate fields of the container in request.

Public key will be stored in neofs.id smart-contract for later
signature verifications.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-08-03 18:03:34 +03:00
Alex Vanin
9510aaee5d [#21] Return signature in GetEACL response
With EACLTable signature client can verify if EACLTable is
not corrupted by malicious node.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-08-03 18:03:34 +03:00
Alex Vanin
944cf1ff47 [#21] Use EACLTable in EACL related requests
With EACLTable in requests and container id in EACLTable there
is no need in extra messages such as ExtendedACLKey and
ExtendedACLValue.

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-08-03 18:03:34 +03:00
Alex Vanin
6a2c66cbd8 [#20] Add attributes in container definition
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
2020-07-31 17:11:48 +03:00
Leonard Lyubich
17e07df8d9 container: add Get/Set extended ACL rpc 2020-06-18 10:42:37 +03:00
alexvanin
18b698d429 container: Replace AccessGroup with BasicACL
With new ACL conception, access control lists in NeoFS
defined as a required basic ACL and optional extended ACL.

Basic ACL must be set up in container structure. It is a bit
mask stored in 32-bit unsigned integer.

Seven nibbles represent seven object operations: get, put,
head, search, delete, range, range-hash.

Every nibble defines access rules for three targets: user,
owner, others and has permission bit for bearer token.

There is a permission bit for extended ACL and three unused
bits.
2020-04-01 21:06:54 +03:00
Evgeniy Kulikov
d8a0c287c4
Migrate to NeoFS API Go 2020-03-31 09:58:22 +03:00
Evgeniy Kulikov
d1d9b75f49
Add CSharp namespace to proto files 2020-02-05 15:14:39 +03:00
Evgeniy Kulikov
cc35580700
rename gopackage from neofs-proto to neofs-api 2020-01-30 16:29:38 +03:00
Evgeniy Kulikov
fe877a169f
initialize 2020-01-30 14:43:09 +03:00