frostfs-api/proto-docs/service.md
Stanislav Bogatyrev 658bc45fb9 [#38] docs: update docs after object type changes
Signed-off-by: Stanislav Bogatyrev <stanislav@nspcc.ru>
2020-08-11 16:30:39 +03:00

7.9 KiB

Protocol Documentation

Table of Contents

Top

service/meta.proto

Message RequestMetaHeader

RequestMetaHeader contains information about request meta headers.

Field Type Label Description
ttl uint32 Carries maximum number of nodes in the request route.
x_headers RequestMetaHeader.XHeader repeated Carries request X-Headers.

Message RequestMetaHeader.XHeader

Field Type Label Description
key string Carries key to the X-Header.
value string Carries value of the X-Header.

Message Version

Represents API version used by node.

Field Type Label Description
major uint32 Major API version.
minor uint32 Minor API version.

Top

service/verify.proto

Message BearerTokenMsg

BearerTokenMsg carries information about request ACL rules with limited lifetime

Field Type Label Description
token_info BearerTokenMsg.Info token_info is a grouped information about token
owner_key bytes owner_key is a public key of the token owner
signature bytes Signature is a signature of token information

Message BearerTokenMsg.Info

Field Type Label Description
eacl_table acl.EACLTable EACLTable carries table of extended ACL rules.
owner_id refs.OwnerID OwnerID carries identifier of the token owner.
valid_until uint64 ValidUntil carries a last epoch of token lifetime

Message RequestVerificationHeader

RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request.

Field Type Label Description
signatures Signature repeated Signatures is a set of signatures of every passed NeoFS Node
token SessionToken Token is a token of the session within which the request is sent
bearer BearerTokenMsg Bearer is a Bearer token of the request

Message SessionToken

Represents the NeoFS session token.

Field Type Label Description
token_info SessionToken.Info token_info is a grouped information about token
signature bytes Signature is a signature of session token information

Message SessionToken.Info

Field Type Label Description
id bytes ID is a token identifier. valid UUIDv4 represented in bytes
owner_id refs.OwnerID OwnerID carries identifier of the session initiator.
verb SessionToken.Info.Verb Verb is a type of request for which the token is issued
lifetime TokenLifetime Lifetime is a lifetime of the session
session_key bytes SessionKey is a public key of session key
owner_key bytes OwnerKey is a public key of the token owner
object_address refs.Address object_address represents the object session context.

Message Signature

Field Type Label Description
key bytes Public key used for signing.
sign bytes Signature

Message TokenLifetime

TokenLifetime carries a group of lifetime parameters of the token

Field Type Label Description
created uint64 created carries an initial epoch of token lifetime
valid_until uint64 valid_until carries a last epoch of token lifetime

SessionToken.Info.Verb

Verb is an enumeration of session request types

Name Number Description
OBJECT_PUT 0 Refers to object.Put RPC call
OBJECT_GET 1 Refers to object.Get RPC call
OBJECT_HEAD 2 Refers to object.Head RPC call
OBJECT_SEARCH 3 Refers to object.Search RPC call
OBJECT_DELETE 4 Refers to object.Delete RPC call
OBJECT_RANGE 5 Refers to object.GetRange RPC call
OBJECT_RANGEHASH 6 Refers to object.GetRangeHash RPC call

Scalar Value Types

.proto Type Notes C++ Type Java Type Python Type
double double double float
float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long
uint32 Uses variable-length encoding. uint32 int int/long
uint64 Uses variable-length encoding. uint64 long int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long
sfixed32 Always four bytes. int32 int int
sfixed64 Always eight bytes. int64 long int/long
bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode
bytes May contain any arbitrary sequence of bytes. string ByteString str