Protocol Documentation
Table of Contents
Top
service/meta.proto
RequestExtendedHeader contains extended headers of request
KV contains string key-value pair
Field
Type
Label
Description
K
string
K carries extended header key
V
string
V carries extended header value
RequestMetaHeader contains information about request meta headers
(should be embedded into message)
Field
Type
Label
Description
TTL
uint32
TTL must be larger than zero, it decreased in every NeoFS Node
Epoch
uint64
Epoch for user can be empty, because node sets epoch to the actual value
Version
uint32
Version defines protocol version TODO: not used for now, should be implemented in future
Raw
bool
Raw determines whether the request is raw or not
ExtendedHeader
RequestExtendedHeader
ExtendedHeader carries extended headers of the request
ResponseMetaHeader contains meta information based on request processing by server
(should be embedded into message)
Field
Type
Label
Description
Epoch
uint64
Current NeoFS epoch on server
Version
uint32
Version defines protocol version TODO: not used for now, should be implemented in future
Top
service/verify.proto
Message BearerTokenMsg
BearerTokenMsg carries information about request ACL rules with limited lifetime
Field
Type
Label
Description
TokenInfo
BearerTokenMsg.Info
TokenInfo is a grouped information about token
OwnerKey
bytes
OwnerKey is a public key of the token owner
Signature
bytes
Signature is a signature of token information
Message BearerTokenMsg.Info
Field
Type
Label
Description
ACLRules
bytes
ACLRules carries a binary representation of the table of extended ACL rules
OwnerID
refs.OwnerID
OwnerID carries identifier of the token owner.
ValidUntil
uint64
ValidUntil carries a last epoch of token lifetime
RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request
(should be embedded into message).
Field
Type
Label
Description
Signatures
RequestVerificationHeader.Signature
repeated
Signatures is a set of signatures of every passed NeoFS Node
Token
Token
Token is a token of the session within which the request is sent
Bearer
BearerTokenMsg
Bearer is a Bearer token of the request
Field
Type
Label
Description
Sign
bytes
Sign is signature of the request or session key.
Peer
bytes
Peer is compressed public key used for signature.
Message Token
User token granting rights for object manipulation
Field
Type
Label
Description
TokenInfo
Token.Info
TokenInfo is a grouped information about token
Signature
bytes
Signature is a signature of session token information
Message Token.Info
Field
Type
Label
Description
ID
bytes
ID is a token identifier. valid UUIDv4 represented in bytes
OwnerID
refs.OwnerID
OwnerID carries identifier of the manipulation object owner.
verb
Token.Info.Verb
Verb is a type of request for which the token is issued
Address
refs.Address
Address is an object address for which token is issued
Lifetime
TokenLifetime
Lifetime is a lifetime of the session
SessionKey
bytes
SessionKey is a public key of session key
OwnerKey
bytes
OwnerKey is a public key of the token owner
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
ValidUntil
uint64
ValidUntil carries a last epoch of token lifetime
Token.Info.Verb
Verb is an enumeration of session request types
Name
Number
Description
Put
0
Put refers to object.Put RPC call
Get
1
Get refers to object.Get RPC call
Head
2
Head refers to object.Head RPC call
Search
3
Search refers to object.Search RPC call
Delete
4
Delete refers to object.Delete RPC call
Range
5
Range refers to object.GetRange RPC call
RangeHash
6
RangeHash 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