diff --git a/proto-docs/state.md b/proto-docs/state.md deleted file mode 100644 index 3b7b89d..0000000 --- a/proto-docs/state.md +++ /dev/null @@ -1,270 +0,0 @@ -# Protocol Documentation - - -## Table of Contents - -- [state/service.proto](#state/service.proto) - - Services - - [Status](#state.Status) - - - Messages - - [ChangeStateRequest](#state.ChangeStateRequest) - - [ChangeStateResponse](#state.ChangeStateResponse) - - [DumpRequest](#state.DumpRequest) - - [DumpResponse](#state.DumpResponse) - - [DumpVarsRequest](#state.DumpVarsRequest) - - [DumpVarsResponse](#state.DumpVarsResponse) - - [HealthRequest](#state.HealthRequest) - - [HealthResponse](#state.HealthResponse) - - [MetricsRequest](#state.MetricsRequest) - - [MetricsResponse](#state.MetricsResponse) - - [NetmapRequest](#state.NetmapRequest) - - -- [Scalar Value Types](#scalar-value-types) - - - - -
- -## state/service.proto - - - - - - -### Service "state.Status" -Status service provides node's healthcheck and status info. -TODO: decide how to describe auth and were contains permissions. - -``` -rpc Netmap(NetmapRequest) returns (.bootstrap.SpreadMap); -rpc Metrics(MetricsRequest) returns (MetricsResponse); -rpc HealthCheck(HealthRequest) returns (HealthResponse); -rpc DumpConfig(DumpRequest) returns (DumpResponse); -rpc DumpVars(DumpVarsRequest) returns (DumpVarsResponse); -rpc ChangeState(ChangeStateRequest) returns (ChangeStateResponse); - -``` - -#### Method Netmap - -Netmap request allows to receive current [bootstrap.SpreadMap](bootstrap.md#bootstrap.SpreadMap) - -| Name | Input | Output | -| ---- | ----- | ------ | -| Netmap | [NetmapRequest](#state.NetmapRequest) | [.bootstrap.SpreadMap](#bootstrap.SpreadMap) | -#### Method Metrics - -Metrics request allows to receive metrics in prometheus format - -| Name | Input | Output | -| ---- | ----- | ------ | -| Metrics | [MetricsRequest](#state.MetricsRequest) | [MetricsResponse](#state.MetricsResponse) | -#### Method HealthCheck - -HealthCheck request allows to check health status of the node. -If node unhealthy field Status would contains detailed info. - -| Name | Input | Output | -| ---- | ----- | ------ | -| HealthCheck | [HealthRequest](#state.HealthRequest) | [HealthResponse](#state.HealthResponse) | -#### Method DumpConfig - -DumpConfig request allows dumping settings for the current node. -To permit access, used server config options. -The request should be signed. - -| Name | Input | Output | -| ---- | ----- | ------ | -| DumpConfig | [DumpRequest](#state.DumpRequest) | [DumpResponse](#state.DumpResponse) | -#### Method DumpVars - -DumpVars returns debug variables for the current node. -To permit access, used server config options. -The request should be signed. - -| Name | Input | Output | -| ---- | ----- | ------ | -| DumpVars | [DumpVarsRequest](#state.DumpVarsRequest) | [DumpVarsResponse](#state.DumpVarsResponse) | -#### Method ChangeState - -ChangeState allows to change current node state of node. -To permit access, used server config options. -The request should be signed. - -| Name | Input | Output | -| ---- | ----- | ------ | -| ChangeState | [ChangeStateRequest](#state.ChangeStateRequest) | [ChangeStateResponse](#state.ChangeStateResponse) | - - - - - -### Message ChangeStateRequest -ChangeStateRequest contains a new state of node. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| state | [ChangeStateRequest.State](#state.ChangeStateRequest.State) | | State is a new state of node. | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message ChangeStateResponse -ChangeStateResponse is an empty response, that returns when RPC invoked without errors. - - - - - -### Message DumpRequest -DumpRequest message to fetch current server config. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message DumpResponse -DumpResponse message contains current server config. -Config stored in JSON encoded into slice of bytes. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Config | [bytes](#bytes) | | | - - - - -### Message DumpVarsRequest -DumpVarsRequest message to fetch current server debug variables. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message DumpVarsResponse -DumpVarsResponse message contains current server debug variables. -Variables stored in JSON encoded into slice of bytes. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Variables | [bytes](#bytes) | | | - - - - -### Message HealthRequest -HealthRequest message to check current state - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message HealthResponse -HealthResponse message with current state - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Healthy | [bool](#bool) | | Healthy is true when node alive and healthy | -| Status | [string](#string) | | Status contains detailed information about health status | - - - - -### Message MetricsRequest -MetricsRequest message to request node metrics - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - -### Message MetricsResponse -MetricsResponse contains [][]byte, -every []byte is marshaled MetricFamily proto message -from github.com/prometheus/client_model/metrics.proto - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Metrics | [bytes](#bytes) | repeated | | - - - - -### Message NetmapRequest -NetmapRequest message to request current node netmap - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) | -| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) | - - - - - - -### ChangeStateRequest.State - - -| Name | Number | Description | -| ---- | ------ | ----------- | -| Unknown | 0 | Unknown is default value. Does nothing. | -| Online | 1 | Online used when need to set node to the online state. | -| Offline | 2 | Offline used when need to set node to the offline state. | - - - - - - -## 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 | - diff --git a/state/service.proto b/state/service.proto deleted file mode 100644 index 410a000..0000000 --- a/state/service.proto +++ /dev/null @@ -1,124 +0,0 @@ -syntax = "proto3"; -package state; -option go_package = "github.com/nspcc-dev/neofs-api-go/state"; -option csharp_namespace = "NeoFS.API.State"; - -import "service/meta.proto"; -import "service/verify.proto"; -import "bootstrap/types.proto"; -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.stable_marshaler_all) = true; - -// Status service provides node's healthcheck and status info. -// TODO: decide how to describe auth and were contains permissions. -service Status { - // Netmap request allows to receive current [bootstrap.SpreadMap](bootstrap.md#bootstrap.SpreadMap) - rpc Netmap(NetmapRequest) returns (bootstrap.SpreadMap); - // Metrics request allows to receive metrics in prometheus format - rpc Metrics(MetricsRequest) returns (MetricsResponse); - // HealthCheck request allows to check health status of the node. - // If node unhealthy field Status would contains detailed info. - rpc HealthCheck(HealthRequest) returns (HealthResponse); - // DumpConfig request allows dumping settings for the current node. - // To permit access, used server config options. - // The request should be signed. - rpc DumpConfig(DumpRequest) returns (DumpResponse); - // DumpVars returns debug variables for the current node. - // To permit access, used server config options. - // The request should be signed. - rpc DumpVars(DumpVarsRequest) returns (DumpVarsResponse); - // ChangeState allows to change current node state of node. - // To permit access, used server config options. - // The request should be signed. - rpc ChangeState(ChangeStateRequest) returns (ChangeStateResponse); -} - -// NetmapRequest message to request current node netmap -message NetmapRequest { - // RequestMetaHeader contains information about request meta headers (should be embedded into message) - service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - // RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) - service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; -} - -// MetricsRequest message to request node metrics -message MetricsRequest { - // RequestMetaHeader contains information about request meta headers (should be embedded into message) - service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - // RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) - service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; -} - -// MetricsResponse contains [][]byte, -// every []byte is marshaled MetricFamily proto message -// from github.com/prometheus/client_model/metrics.proto -message MetricsResponse { - repeated bytes Metrics = 1; -} - -// HealthRequest message to check current state -message HealthRequest { - // RequestMetaHeader contains information about request meta headers (should be embedded into message) - service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - // RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) - service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; -} - -// HealthResponse message with current state -message HealthResponse { - // Healthy is true when node alive and healthy - bool Healthy = 1; - // Status contains detailed information about health status - string Status = 2; -} - -// DumpRequest message to fetch current server config. -message DumpRequest { - // RequestMetaHeader contains information about request meta headers (should be embedded into message) - service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - // RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) - service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; -} - -// DumpResponse message contains current server config. -// Config stored in JSON encoded into slice of bytes. -message DumpResponse { - bytes Config = 1; -} - -// DumpVarsRequest message to fetch current server debug variables. -message DumpVarsRequest { - // RequestMetaHeader contains information about request meta headers (should be embedded into message) - service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - // RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) - service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; -} - -// DumpVarsResponse message contains current server debug variables. -// Variables stored in JSON encoded into slice of bytes. -message DumpVarsResponse { - bytes Variables = 1; -} - -// ChangeStateRequest contains a new state of node. -message ChangeStateRequest { - enum State { - // Unknown is default value. Does nothing. - Unknown = 0; - // Online used when need to set node to the online state. - Online = 1; - // Offline used when need to set node to the offline state. - Offline = 2; - } - - // State is a new state of node. - State state = 1; - // RequestMetaHeader contains information about request meta headers (should be embedded into message) - service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - // RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) - service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; -} - -// ChangeStateResponse is an empty response, that returns when RPC invoked without errors. -message ChangeStateResponse {} \ No newline at end of file