frostfs-api/proto-docs/service.md
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

7.8 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.

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 RequestVerificationHeader.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 RequestVerificationHeader.Signature

Field Type Label Description
key bytes Key is compressed public key used for signature.
sign bytes Sign is signature of the request or session key.

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 manipulation object owner.
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 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