[#68] Ensure compatibility of different API versions with each other. #69
|
@ -10,6 +10,8 @@ jobs:
|
|||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Install deps
|
||||
run: |
|
||||
apt update
|
||||
|
|
|
@ -22,3 +22,13 @@ repos:
|
|||
entry: make fmt
|
||||
language: system
|
||||
pass_filenames: false
|
||||
- id: make-check-version
|
||||
name: Run make check-version
|
||||
entry: make check-version
|
||||
language: system
|
||||
pass_filenames: false
|
||||
- id: make-compatibility
|
||||
name: Run make compatibility
|
||||
entry: make compatibility
|
||||
language: system
|
||||
pass_filenames: false
|
||||
|
|
14
CHANGELOG.md
|
@ -1,5 +1,19 @@
|
|||
# Changelog
|
||||
|
||||
## [3.0] - 2024-10-08 - Potanin Glacier
|
||||
|
||||
|
||||
### Added
|
||||
- Version compatibility information
|
||||
- Linter for checking version update
|
||||
- Linter for checking json files for version compatibility
|
||||
|
||||
### Changed
|
||||
- Proto package path
|
||||
- Versioning (semver like 2.14.0 to milestone with patch like 3.0)
|
||||
|
||||
### Removed
|
||||
- Proto options for all languages
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Changed
|
||||
|
|
|
@ -53,6 +53,13 @@ changes. Maybe you will find it convenient to name branch in the
|
|||
$ git checkout -b feature/123-something_awesome
|
||||
```
|
||||
|
||||
### Maintain version compatibility
|
||||
After your code changes, make sure
|
||||
|
||||
- Increment the milestone version or patch version in case of bug fixes [Version information](version.json).
|
||||
- To add information about compatibility with previous versions of the api for the new code
|
||||
[Compatibility files](compatibility).
|
||||
|
||||
### Test your changes
|
||||
After your code changes, make sure
|
||||
|
||||
|
|
53
Makefile
|
@ -1,9 +1,11 @@
|
|||
#!/usr/bin/make -f
|
||||
SHELL=bash
|
||||
|
||||
VERSION_CHECK_BRANCH ?=$(shell git describe --tags --match "version-check*" 2>/dev/null || echo "remotes/origin/master")
|
||||
|
||||
include help.mk
|
||||
|
||||
.PHONY: doc fmt pre-commit unpre-commit pre-commit-run
|
||||
.PHONY: doc fmt check-version compatibility pre-commit unpre-commit pre-commit-run
|
||||
|
||||
# Regenerate documentation for proto files:
|
||||
doc:
|
||||
|
@ -22,6 +24,55 @@ fmt:
|
|||
clang-format -i $$f; \
|
||||
done
|
||||
|
||||
realloc
commented
`version` target usually returns current version of the repository. Should be renamed.
orikik
commented
Changed Changed
|
||||
# Run version update check in version.json file
|
||||
realloc
commented
Is it possible to make version checks locally? Is it possible to make version checks locally?
orikik
commented
Added check with the repository master where the pull request is located. Added check with the repository master where the pull request is located.
|
||||
check-version:
|
||||
@protoChanges=$$(git diff --name-only $(VERSION_CHECK_BRANCH) | grep '**/*.proto'); \
|
||||
version=$$(git show $(VERSION_CHECK_BRANCH):version.json); \
|
||||
if [ -z "$$version" ] || [ -z "$$protoChanges" ]; then \
|
||||
exit; \
|
||||
fi; \
|
||||
masterMilestone=$$(jq -n --argjson data "$$version" '$$data.milestone'); \
|
||||
masterPatch=$$(jq -n --argjson data "$$version" '$$data.patch'); \
|
||||
milestone=$$(jq -r '.milestone' version.json); \
|
||||
patch=$$(jq -r '.patch' version.json); \
|
||||
if [ "$$masterMilestone" -eq "$$milestone" -a "$$masterPatch" -eq "$$patch" ]; then \
|
||||
echo "⇒ You need to update the api version in the version.json file"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
if [ "$$masterMilestone" -gt "$$milestone" ]; then \
|
||||
echo "⇒ The milestone cannot be decrement in the version.json file"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
if [ "$$masterMilestone" -eq "$$milestone" -a "$$masterPatch" -gt "$$patch" ]; then \
|
||||
echo "⇒ The patch cannot be decrement without milestone increment in the version.json file"; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
realloc
commented
Is it possible to describe logic behind the following code? Is it possible to describe logic behind the following code?
orikik
commented
added description added description
|
||||
if [ "$$masterMilestone" -lt "$$milestone" -a "$$patch" -ne 0 ]; then \
|
||||
echo "⇒ The patch should be 0 after milestone increment in the version.json file"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
# Run a compatibility information check
|
||||
# Checks that the files that describe compatibility in the compatibility package
|
||||
# have the current version information added in the version.json file.
|
||||
# Description of logic:
|
||||
# 1. Determine the current API version from the version.json file;
|
||||
# 2. Find all JSON files with compatibility descriptions in the compatibility package;
|
||||
# 3. For each such file, we define all the described rpc methods;
|
||||
# 4. For each rpc method in each compatibility file, we check that the updated version information is present.
|
||||
compatibility:
|
||||
@version=$$(jq -r '.milestone' version.json).$$(jq -r '.patch' version.json); \
|
||||
conflicts=0; \
|
||||
for f in `ls compatibility/*.json`; do \
|
||||
for rpc in $$(jq -r '.[] | to_entries | .[].key' $$f); do \
|
||||
if $$(jq -r '.[].'$$rpc' | has("v'$$version'") | not' $$f); then \
|
||||
echo "⇒ No compatibility information found for version" $$version "in file" $$f "for rpc" $$rpc; \
|
||||
conflicts=$$(($conflicts+1)); \
|
||||
fi \
|
||||
done \
|
||||
done; \
|
||||
exit $$conflicts;
|
||||
|
||||
# Activate pre-commit hooks
|
||||
pre-commit:
|
||||
pre-commit install --hook-type pre-commit
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.accounting;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/accounting/grpc;accounting";
|
||||
aarifullin marked this conversation as resolved
aarifullin
commented
Why have you removed this option? This breaks the plugin (
Why have you removed this option? This breaks the plugin (`api/util/protogen` in `frostfs-sdk-go`) and thus protobufs cannot be generated
```
⇒ Processing ./api/object/grpc/service.proto
protogen: unable to determine Go import path for "api/refs/grpc/types.proto"
Please specify either:
• a "go_package" option in the .proto source file, or
• a "M" argument on the command line.
```
orikik
commented
frostfs-api-go and frostfs-sdk-go are now combined into one repository frostfs-api-go and frostfs-sdk-go are now combined into one repository
https://git.frostfs.info/TrueCloudLab/frostfs-sdk-go/issues/276
orikik
commented
Now each sdk is responsible for the language features of working with the api Now each sdk is responsible for the language features of working with the api
aarifullin
commented
> Now each sdk is responsible for the language...
`frostfs-api` defines `.proto`-s, not proto _templates_ where we can insert language-specific options and instructions on SDK's demand (although I've never seen such approach because it seems unreasonable). From my POV: it's absolutely fine to define options for specific languages because this defines import lookup order
orikik
commented
Currently sdk-go converts proto files into prepare.sh. Replaces api-go/v2 with sdk-go/api (and more). It is intended that this functionality will be replaced by the creation of a "option go_package". This API assumes the ability to create a third-party SDK, so it should not contain any specific language constructs for use in our SDKs. Currently sdk-go converts proto files into prepare.sh. Replaces api-go/v2 with sdk-go/api (and more).
It is intended that this functionality will be replaced by the creation of a "option go_package".
(as a rough example `sed -i "2ioption go_package = \"git.frostfs.info\/TrueCloudLab\/frostfs-sdk-go\/api\/${dir:2};$parentDir\";" $file`)
This API assumes the ability to create a third-party SDK, so it should not contain any specific language constructs for use in our SDKs.
@realloc
aarifullin
commented
Okay. I believe @realloc can confirm either we leave Okay. I believe @realloc can confirm either we leave `go_package` or we insert in makefile
|
||||
option csharp_namespace = "Neo.FileStorage.API.Accounting";
|
||||
package frost.fs.accounting;
|
||||
dstepanov-yadro marked this conversation as resolved
Outdated
dstepanov-yadro
commented
This is breaking change. Is it expected? This is breaking change. Is it expected?
orikik
commented
Yes, these changes were discussed with @realloc @alexvanin in order to bring everything to a single form. Yes, these changes were discussed with @realloc @alexvanin in order to bring everything to a single form.
|
||||
|
||||
import "accounting/types.proto";
|
||||
import "refs/types.proto";
|
||||
|
@ -33,19 +30,19 @@ message BalanceRequest {
|
|||
message Body {
|
||||
// Valid user identifier in `OwnerID` format for which the balance is
|
||||
// requested. Required field.
|
||||
neo.fs.v2.refs.OwnerID owner_id = 1;
|
||||
frost.fs.refs.OwnerID owner_id = 1;
|
||||
}
|
||||
// Body of the balance request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// BalanceResponse message
|
||||
|
@ -62,10 +59,10 @@ message BalanceResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.accounting;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/accounting/grpc;accounting";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Accounting";
|
||||
package frost.fs.accounting;
|
||||
fyrchik marked this conversation as resolved
Outdated
fyrchik
commented
Honestly, I would use Honestly, I would use `frostfs` without a dot, `neo` by itself has some sense, `frost` does not (as some project).
|
||||
|
||||
// Standard floating point data type can't be used in FrostFS due to inexactness
|
||||
// of the result when doing lots of small number operations. To solve the lost
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.acl;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc;acl";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Acl";
|
||||
package frost.fs.acl;
|
||||
|
||||
import "refs/types.proto";
|
||||
import "ape/types.proto";
|
||||
|
@ -169,10 +166,10 @@ message EACLRecord {
|
|||
message EACLTable {
|
||||
// eACL format version. Effectively, the version of API library used to create
|
||||
// eACL Table.
|
||||
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ];
|
||||
frost.fs.refs.Version version = 1 [ json_name = "version" ];
|
||||
|
||||
// Identifier of the container that should use given access control rules
|
||||
neo.fs.v2.refs.ContainerID container_id = 2 [ json_name = "containerID" ];
|
||||
frost.fs.refs.ContainerID container_id = 2 [ json_name = "containerID" ];
|
||||
|
||||
// List of Extended ACL rules
|
||||
repeated EACLRecord records = 3 [ json_name = "records" ];
|
||||
|
@ -202,7 +199,7 @@ message BearerToken {
|
|||
|
||||
// `OwnerID` defines to whom the token was issued. It must match the request
|
||||
// originator's `OwnerID`. If empty, any token bearer will be accepted.
|
||||
neo.fs.v2.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ];
|
||||
frost.fs.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ];
|
||||
|
||||
// Lifetime parameters of the token. Field names taken from
|
||||
// [rfc7519](https://tools.ietf.org/html/rfc7519).
|
||||
|
@ -232,10 +229,10 @@ message BearerToken {
|
|||
// preventing unauthorized access through the APE mechanism.
|
||||
message APEOverride {
|
||||
// Target for which chains are applied.
|
||||
frostfs.v2.ape.ChainTarget target = 1 [ json_name = "target" ];
|
||||
frost.fs.ape.ChainTarget target = 1 [ json_name = "target" ];
|
||||
|
||||
// The list of APE chains.
|
||||
repeated frostfs.v2.ape.Chain chains = 2 [ json_name = "chains" ];
|
||||
repeated frost.fs.ape.Chain chains = 2 [ json_name = "chains" ];
|
||||
}
|
||||
|
||||
// APE override for the target.
|
||||
|
@ -245,5 +242,5 @@ message BearerToken {
|
|||
Body body = 1 [ json_name = "body" ];
|
||||
|
||||
// Signature of BearerToken body
|
||||
neo.fs.v2.refs.Signature signature = 2 [ json_name = "signature" ];
|
||||
frost.fs.refs.Signature signature = 2 [ json_name = "signature" ];
|
||||
}
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package frostfs.v2.ape;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc;ape";
|
||||
package frost.fs.ape;
|
||||
|
||||
// TargetType is a type target to which a rule chain is defined.
|
||||
enum TargetType {
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package frostfs.v2.apemanager;
|
||||
package frost.fs.apemanager;
|
||||
|
||||
import "ape/types.proto";
|
||||
import "session/types.proto";
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/apemanager/grpc;apemanager";
|
||||
|
||||
// `APEManagerService` provides API to manage rule chains within sidechain's
|
||||
// `Policy` smart contract.
|
||||
service APEManagerService {
|
||||
|
@ -52,10 +50,10 @@ service APEManagerService {
|
|||
message AddChainRequest {
|
||||
message Body {
|
||||
// A target for which a rule chain is added.
|
||||
frostfs.v2.ape.ChainTarget target = 1;
|
||||
frost.fs.ape.ChainTarget target = 1;
|
||||
|
||||
// The chain to set for the target.
|
||||
frostfs.v2.ape.Chain chain = 2;
|
||||
frost.fs.ape.Chain chain = 2;
|
||||
}
|
||||
|
||||
// The request's body.
|
||||
|
@ -63,12 +61,12 @@ message AddChainRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
message AddChainResponse {
|
||||
|
@ -84,18 +82,18 @@ message AddChainResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
message RemoveChainRequest {
|
||||
message Body {
|
||||
// Target for which a rule chain is removed.
|
||||
frostfs.v2.ape.ChainTarget target = 1;
|
||||
frost.fs.ape.ChainTarget target = 1;
|
||||
|
||||
// Chain ID assigned for the rule chain.
|
||||
bytes chain_id = 2;
|
||||
|
@ -106,12 +104,12 @@ message RemoveChainRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
message RemoveChainResponse {
|
||||
|
@ -124,18 +122,18 @@ message RemoveChainResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
message ListChainsRequest {
|
||||
message Body {
|
||||
// Target for which rule chains are listed.
|
||||
frostfs.v2.ape.ChainTarget target = 1;
|
||||
frost.fs.ape.ChainTarget target = 1;
|
||||
}
|
||||
|
||||
// The request's body.
|
||||
|
@ -143,18 +141,18 @@ message ListChainsRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
message ListChainsResponse {
|
||||
message Body {
|
||||
// The list of chains defined for the reqeusted target.
|
||||
repeated frostfs.v2.ape.Chain chains = 1;
|
||||
repeated frost.fs.ape.Chain chains = 1;
|
||||
}
|
||||
|
||||
// The response's body.
|
||||
|
@ -162,10 +160,10 @@ message ListChainsResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
|
9
compatibility/accounting.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"compatibilityInfo": {
|
||||
"Balance": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
19
compatibility/apemanager.json
Normal file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"compatibilityInfo": {
|
||||
"AddChain": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"RemoveChain": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"ListChains": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
24
compatibility/container.json
Normal file
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"compatibilityInfo": {
|
||||
"Put": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"Get": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"List": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
19
compatibility/netmap.json
Normal file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"compatibilityInfo": {
|
||||
"LocalNodeInfo": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"NetworkInfo": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"NetmapSnapshot": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
49
compatibility/object.json
Normal file
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"compatibilityInfo": {
|
||||
"Get": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"Put": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"Delete": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"Head": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"Search": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"GetRange": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"GetRangeHash": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"PutSingle": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
},
|
||||
"Patch": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
9
compatibility/session.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"compatibilityInfo": {
|
||||
"Create": {
|
||||
"v3.0": {
|
||||
"compatibility": "SUPPORTED"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.container;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container/grpc;container";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Container";
|
||||
package frost.fs.container;
|
||||
|
||||
import "container/types.proto";
|
||||
import "refs/types.proto";
|
||||
|
@ -75,19 +72,19 @@ message PutRequest {
|
|||
container.Container container = 1;
|
||||
|
||||
// Signature of a stable-marshalled container according to RFC-6979.
|
||||
neo.fs.v2.refs.SignatureRFC6979 signature = 2;
|
||||
frost.fs.refs.SignatureRFC6979 signature = 2;
|
||||
}
|
||||
// Body of container put request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// New FrostFS Container creation response
|
||||
|
@ -98,19 +95,19 @@ message PutResponse {
|
|||
// returned here to make sure everything has been done as expected.
|
||||
message Body {
|
||||
// Unique identifier of the newly created container
|
||||
neo.fs.v2.refs.ContainerID container_id = 1;
|
||||
frost.fs.refs.ContainerID container_id = 1;
|
||||
}
|
||||
// Body of container put response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Container removal request
|
||||
|
@ -120,23 +117,23 @@ message DeleteRequest {
|
|||
// smart contract, so signing algorithm must be supported by NeoVM.
|
||||
message Body {
|
||||
// Identifier of the container to delete from FrostFS
|
||||
neo.fs.v2.refs.ContainerID container_id = 1;
|
||||
frost.fs.refs.ContainerID container_id = 1;
|
||||
|
||||
// `ContainerID` signed with the container owner's key according to
|
||||
// RFC-6979.
|
||||
neo.fs.v2.refs.SignatureRFC6979 signature = 2;
|
||||
frost.fs.refs.SignatureRFC6979 signature = 2;
|
||||
}
|
||||
// Body of container delete request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// `DeleteResponse` has an empty body because delete operation is asynchronous
|
||||
|
@ -150,12 +147,12 @@ message DeleteResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get container structure
|
||||
|
@ -163,19 +160,19 @@ message GetRequest {
|
|||
// Get container structure request body.
|
||||
message Body {
|
||||
// Identifier of the container to get
|
||||
neo.fs.v2.refs.ContainerID container_id = 1;
|
||||
frost.fs.refs.ContainerID container_id = 1;
|
||||
}
|
||||
// Body of container get request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get container structure
|
||||
|
@ -187,22 +184,22 @@ message GetResponse {
|
|||
Container container = 1;
|
||||
|
||||
// Signature of a stable-marshalled container according to RFC-6979.
|
||||
neo.fs.v2.refs.SignatureRFC6979 signature = 2;
|
||||
frost.fs.refs.SignatureRFC6979 signature = 2;
|
||||
|
||||
// Session token if the container has been created within the session
|
||||
neo.fs.v2.session.SessionToken session_token = 3;
|
||||
frost.fs.session.SessionToken session_token = 3;
|
||||
}
|
||||
// Body of container get response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// List containers
|
||||
|
@ -210,19 +207,19 @@ message ListRequest {
|
|||
// List containers request body.
|
||||
message Body {
|
||||
// Identifier of the container owner
|
||||
neo.fs.v2.refs.OwnerID owner_id = 1;
|
||||
frost.fs.refs.OwnerID owner_id = 1;
|
||||
}
|
||||
// Body of list containers request message
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// List containers
|
||||
|
@ -238,10 +235,10 @@ message ListResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.container;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container/grpc;container";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Container";
|
||||
package frost.fs.container;
|
||||
|
||||
import "netmap/types.proto";
|
||||
import "refs/types.proto";
|
||||
|
@ -15,10 +12,10 @@ import "refs/types.proto";
|
|||
message Container {
|
||||
// Container format version. Effectively, the version of API library used to
|
||||
// create the container.
|
||||
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ];
|
||||
frost.fs.refs.Version version = 1 [ json_name = "version" ];
|
||||
|
||||
// Identifier of the container owner
|
||||
neo.fs.v2.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ];
|
||||
frost.fs.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ];
|
||||
|
||||
// Nonce is a 16 byte UUIDv4, used to avoid collisions of `ContainerID`s
|
||||
bytes nonce = 3 [ json_name = "nonce" ];
|
||||
|
@ -38,16 +35,13 @@ message Container {
|
|||
// There are some "well-known" attributes affecting system behaviour:
|
||||
//
|
||||
// * [ __SYSTEM__NAME ] \
|
||||
// (`__NEOFS__NAME` is deprecated) \
|
||||
// String of a human-friendly container name registered as a domain in
|
||||
// NNS contract.
|
||||
// * [ __SYSTEM__ZONE ] \
|
||||
// (`__NEOFS__ZONE` is deprecated) \
|
||||
// String of a zone for `__SYSTEM__NAME` (`__NEOFS__NAME` is deprecated).
|
||||
// String of a zone for `__SYSTEM__NAME`.
|
||||
// Used as a TLD of a domain name in NNS contract. If no zone is specified,
|
||||
// use default zone: `container`.
|
||||
// * [ __SYSTEM__DISABLE_HOMOMORPHIC_HASHING ] \
|
||||
// (`__NEOFS__DISABLE_HOMOMORPHIC_HASHING` is deprecated) \
|
||||
// Disables homomorphic hashing for the container if the value equals "true"
|
||||
// string. Any other values are interpreted as missing attribute. Container
|
||||
// could be accepted in a FrostFS network only if the global network hashing
|
||||
|
@ -71,6 +65,6 @@ message Container {
|
|||
repeated Attribute attributes = 5 [ json_name = "attributes" ];
|
||||
|
||||
// Placement policy for the object inside the container
|
||||
neo.fs.v2.netmap.PlacementPolicy placement_policy = 6
|
||||
frost.fs.netmap.PlacementPolicy placement_policy = 6
|
||||
[ json_name = "placementPolicy" ];
|
||||
}
|
||||
|
|
|
@ -3,15 +3,17 @@
|
|||
This documents outlines the frostfs-api release process and can be used as a TODO
|
||||
list for a new release.
|
||||
|
||||
## Pre-release actions
|
||||
|
||||
Increment the milestone version or patch version in case of bug fixes.
|
||||
To add information about compatibility with previous versions of the api for the new code.
|
||||
This must be run:
|
||||
* `make doc`
|
||||
|
||||
## Pre-release checks
|
||||
|
||||
This should run successfully:
|
||||
* `make lint`
|
||||
|
||||
## Pre-release actions
|
||||
|
||||
This must be run:
|
||||
* `make doc`
|
||||
* `make pre-commit-run`
|
||||
|
||||
## Writing CHANGELOG
|
||||
|
||||
|
@ -30,13 +32,13 @@ Release commit summary should follow the template:
|
|||
`Release v<Version> - <Codename island> (<Hangeul>, <Hanja>)`, e.g.:
|
||||
|
||||
```
|
||||
Release v2.9.0 - Anmyeondo (안면도, 安眠島)
|
||||
Release v3.0 - Anmyeondo (안면도, 安眠島)
|
||||
```
|
||||
|
||||
## Tag the release
|
||||
|
||||
Use `vX.Y.Z` tag following the semantic versioning standard. For pre-release
|
||||
versions use `vX.Y.Z-rc.N` scheme.
|
||||
Use `vX.Y` tag (milestone version with patch). For pre-release
|
||||
versions use `vX.Y-rc.N` scheme.
|
||||
|
||||
## Push changes and release tag to Github
|
||||
|
||||
|
@ -45,7 +47,7 @@ that releasing requires admin privileges for the project), both the `master`
|
|||
branch update and tag must be pushed simultaneously like this:
|
||||
|
||||
```
|
||||
$ git push origin master v2.7.0
|
||||
$ git push origin master v2.7
|
||||
```
|
||||
|
||||
## Make a proper Github release
|
||||
|
@ -58,5 +60,5 @@ releases.
|
|||
|
||||
## Post-release actions
|
||||
|
||||
* Close corresponding X.Y.Z Github milestone
|
||||
* Close corresponding X.Y Github milestone
|
||||
* Make announcements in Matrix and Discord channels
|
||||
|
|
|
@ -1,19 +1,16 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.lock;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/lock/grpc;lock";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Lock";
|
||||
package frost.fs.lock;
|
||||
|
||||
import "refs/types.proto";
|
||||
|
||||
// Lock objects protects a list of objects from being deleted. The lifetime of a
|
||||
// lock object is limited similar to regular objects in
|
||||
// `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated)
|
||||
// `__SYSTEM__EXPIRATION_EPOCH`
|
||||
// attribute. Lock object MUST have expiration epoch. It is impossible to delete
|
||||
// a lock object via ObjectService.Delete RPC call.
|
||||
message Lock {
|
||||
// List of objects to lock. Must not be empty or carry empty IDs.
|
||||
// All members must be of the `REGULAR` type.
|
||||
repeated neo.fs.v2.refs.ObjectID members = 1 [ json_name = "members" ];
|
||||
repeated frost.fs.refs.ObjectID members = 1 [ json_name = "members" ];
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.netmap;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/grpc;netmap";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Netmap";
|
||||
package frost.fs.netmap;
|
||||
|
||||
import "netmap/types.proto";
|
||||
import "refs/types.proto";
|
||||
|
@ -53,12 +50,12 @@ message LocalNodeInfoRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Local Node Info, including API Version in use
|
||||
|
@ -66,7 +63,7 @@ message LocalNodeInfoResponse {
|
|||
// Local Node Info, including API Version in use.
|
||||
message Body {
|
||||
// Latest FrostFS API version in use
|
||||
neo.fs.v2.refs.Version version = 1;
|
||||
frost.fs.refs.Version version = 1;
|
||||
|
||||
// NodeInfo structure with recent information from node itself
|
||||
NodeInfo node_info = 2;
|
||||
|
@ -76,12 +73,12 @@ message LocalNodeInfoResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect response execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get NetworkInfo structure with the network view from a particular node.
|
||||
|
@ -93,12 +90,12 @@ message NetworkInfoRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Response with NetworkInfo structure including current epoch and
|
||||
|
@ -114,12 +111,12 @@ message NetworkInfoResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect response execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get netmap snapshot request
|
||||
|
@ -132,12 +129,12 @@ message NetmapSnapshotRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Response with current netmap snapshot
|
||||
|
@ -153,10 +150,10 @@ message NetmapSnapshotResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect response execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.netmap;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/grpc;netmap";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Netmap";
|
||||
package frost.fs.netmap;
|
||||
|
||||
// Operations on filters
|
||||
enum Operation {
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.object;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object/grpc;object";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Object";
|
||||
package frost.fs.object;
|
||||
|
||||
import "object/types.proto";
|
||||
import "refs/types.proto";
|
||||
|
@ -21,15 +18,12 @@ service ObjectService {
|
|||
//
|
||||
// Extended headers can change `Get` behaviour:
|
||||
// * [ __SYSTEM__NETMAP_EPOCH ] \
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
// Will use the requsted version of Network Map for object placement
|
||||
// calculation.
|
||||
// * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
|
||||
// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
|
||||
// Will try older versions (starting from `__SYSTEM__NETMAP_EPOCH`
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) if specified or the latest one
|
||||
// otherwise) of Network Map to find an object until the depth limit is
|
||||
// reached.
|
||||
// if specified or the latest one otherwise) of Network Map
|
||||
// to find an object until the depth limit is reached.
|
||||
//
|
||||
// Please refer to detailed `XHeader` description.
|
||||
//
|
||||
|
@ -60,7 +54,6 @@ service ObjectService {
|
|||
//
|
||||
// Extended headers can change `Put` behaviour:
|
||||
// * [ __SYSTEM__NETMAP_EPOCH \
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
// Will use the requsted version of Network Map for object placement
|
||||
// calculation.
|
||||
//
|
||||
|
@ -95,7 +88,6 @@ service ObjectService {
|
|||
//
|
||||
// Extended headers can change `Delete` behaviour:
|
||||
// * [ __SYSTEM__NETMAP_EPOCH ] \
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
// Will use the requested version of Network Map for object placement
|
||||
// calculation.
|
||||
//
|
||||
|
@ -126,7 +118,6 @@ service ObjectService {
|
|||
//
|
||||
// Extended headers can change `Head` behaviour:
|
||||
// * [ __SYSTEM__NETMAP_EPOCH ] \
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
// Will use the requested version of Network Map for object placement
|
||||
// calculation.
|
||||
//
|
||||
|
@ -156,7 +147,6 @@ service ObjectService {
|
|||
//
|
||||
// Extended headers can change `Search` behaviour:
|
||||
// * [ __SYSTEM__NETMAP_EPOCH ] \
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
// Will use the requested version of Network Map for object placement
|
||||
// calculation.
|
||||
//
|
||||
|
@ -183,11 +173,9 @@ service ObjectService {
|
|||
//
|
||||
// Extended headers can change `GetRange` behaviour:
|
||||
// * [ __SYSTEM__NETMAP_EPOCH ] \
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
// Will use the requested version of Network Map for object placement
|
||||
// calculation.
|
||||
// * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
|
||||
// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
|
||||
// Will try older versions of Network Map to find an object until the depth
|
||||
// limit is reached.
|
||||
//
|
||||
|
@ -220,11 +208,9 @@ service ObjectService {
|
|||
//
|
||||
// Extended headers can change `GetRangeHash` behaviour:
|
||||
// * [ __SYSTEM__NETMAP_EPOCH ] \
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
// Will use the requested version of Network Map for object placement
|
||||
// calculation.
|
||||
// * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
|
||||
// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
|
||||
// Will try older versions of Network Map to find an object until the depth
|
||||
// limit is reached.
|
||||
//
|
||||
|
@ -254,7 +240,6 @@ service ObjectService {
|
|||
//
|
||||
// Extended headers can change `Put` behaviour:
|
||||
// * [ __SYSTEM__NETMAP_EPOCH \
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
// Will use the requested version of Network Map for object placement
|
||||
// calculation.
|
||||
//
|
||||
|
@ -304,7 +289,6 @@ service ObjectService {
|
|||
//
|
||||
// Extended headers can change `Patch` behaviour:
|
||||
// * [ __SYSTEM__NETMAP_EPOCH \
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
// Will use the requsted version of Network Map for object placement
|
||||
// calculation.
|
||||
//
|
||||
|
@ -339,7 +323,7 @@ message GetRequest {
|
|||
// GET Object request body
|
||||
message Body {
|
||||
// Address of the requested object
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
frost.fs.refs.Address address = 1;
|
||||
|
||||
// If `raw` flag is set, request will work only with objects that are
|
||||
// physically stored on the peer node
|
||||
|
@ -350,12 +334,12 @@ message GetRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// GET object response
|
||||
|
@ -366,10 +350,10 @@ message GetResponse {
|
|||
// set of all `Object` structure's fields except `payload`.
|
||||
message Init {
|
||||
// Object's unique identifier.
|
||||
neo.fs.v2.refs.ObjectID object_id = 1;
|
||||
frost.fs.refs.ObjectID object_id = 1;
|
||||
|
||||
// Signed `ObjectID`
|
||||
neo.fs.v2.refs.Signature signature = 2;
|
||||
frost.fs.refs.Signature signature = 2;
|
||||
|
||||
// Object metadata headers
|
||||
Header header = 3;
|
||||
|
@ -394,12 +378,12 @@ message GetResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// PUT object request
|
||||
|
@ -410,10 +394,10 @@ message PutRequest {
|
|||
// are not set, they will be calculated by a peer node.
|
||||
message Init {
|
||||
// ObjectID if available.
|
||||
neo.fs.v2.refs.ObjectID object_id = 1;
|
||||
frost.fs.refs.ObjectID object_id = 1;
|
||||
|
||||
// Object signature if available
|
||||
neo.fs.v2.refs.Signature signature = 2;
|
||||
frost.fs.refs.Signature signature = 2;
|
||||
|
||||
// Object's Header
|
||||
Header header = 3;
|
||||
|
@ -444,12 +428,12 @@ message PutRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// PUT Object response
|
||||
|
@ -457,19 +441,19 @@ message PutResponse {
|
|||
// PUT Object response body
|
||||
message Body {
|
||||
// Identifier of the saved object
|
||||
neo.fs.v2.refs.ObjectID object_id = 1;
|
||||
frost.fs.refs.ObjectID object_id = 1;
|
||||
}
|
||||
// Body of put object response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Object DELETE request
|
||||
|
@ -477,19 +461,19 @@ message DeleteRequest {
|
|||
// Object DELETE request body
|
||||
message Body {
|
||||
// Address of the object to be deleted
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
frost.fs.refs.Address address = 1;
|
||||
}
|
||||
// Body of delete object request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// DeleteResponse body is empty because we cannot guarantee permanent object
|
||||
|
@ -498,7 +482,7 @@ message DeleteResponse {
|
|||
// Object DELETE Response has an empty body.
|
||||
message Body {
|
||||
// Address of the tombstone created for the deleted object
|
||||
neo.fs.v2.refs.Address tombstone = 1;
|
||||
frost.fs.refs.Address tombstone = 1;
|
||||
}
|
||||
|
||||
// Body of delete object response message.
|
||||
|
@ -506,12 +490,12 @@ message DeleteResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Object HEAD request
|
||||
|
@ -519,7 +503,7 @@ message HeadRequest {
|
|||
// Object HEAD request body
|
||||
message Body {
|
||||
// Address of the object with the requested Header
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
frost.fs.refs.Address address = 1;
|
||||
|
||||
// Return only minimal header subset
|
||||
bool main_only = 2;
|
||||
|
@ -533,12 +517,12 @@ message HeadRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Tuple of a full object header and signature of an `ObjectID`. \
|
||||
|
@ -553,7 +537,7 @@ message HeaderWithSignature {
|
|||
Header header = 1 [ json_name = "header" ];
|
||||
|
||||
// Signed `ObjectID` to verify full header's authenticity
|
||||
neo.fs.v2.refs.Signature signature = 2 [ json_name = "signature" ];
|
||||
frost.fs.refs.Signature signature = 2 [ json_name = "signature" ];
|
||||
}
|
||||
|
||||
// Object HEAD response
|
||||
|
@ -581,12 +565,12 @@ message HeadResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Object Search request
|
||||
|
@ -594,7 +578,7 @@ message SearchRequest {
|
|||
// Object Search request body
|
||||
message Body {
|
||||
// Container identifier were to search
|
||||
neo.fs.v2.refs.ContainerID container_id = 1;
|
||||
frost.fs.refs.ContainerID container_id = 1;
|
||||
|
||||
// Version of the Query Language used
|
||||
uint32 version = 2;
|
||||
|
@ -673,12 +657,12 @@ message SearchRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Search response
|
||||
|
@ -686,19 +670,19 @@ message SearchResponse {
|
|||
// Object Search response body
|
||||
message Body {
|
||||
// List of `ObjectID`s that match the search query
|
||||
repeated neo.fs.v2.refs.ObjectID id_list = 1;
|
||||
repeated frost.fs.refs.ObjectID id_list = 1;
|
||||
}
|
||||
// Body of search object response message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Object payload range.Ranges of zero length SHOULD be considered as invalid.
|
||||
|
@ -715,7 +699,7 @@ message GetRangeRequest {
|
|||
// Byte range of object's payload request body
|
||||
message Body {
|
||||
// Address of the object containing the requested payload range
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
frost.fs.refs.Address address = 1;
|
||||
|
||||
// Requested payload range
|
||||
Range range = 2;
|
||||
|
@ -730,12 +714,12 @@ message GetRangeRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get part of object's payload
|
||||
|
@ -763,12 +747,12 @@ message GetRangeResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get hash of object's payload part
|
||||
|
@ -776,7 +760,7 @@ message GetRangeHashRequest {
|
|||
// Get hash of object's payload part request body.
|
||||
message Body {
|
||||
// Address of the object that containing the requested payload range
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
frost.fs.refs.Address address = 1;
|
||||
|
||||
// List of object's payload ranges to calculate homomorphic hash
|
||||
repeated Range ranges = 2;
|
||||
|
@ -785,19 +769,19 @@ message GetRangeHashRequest {
|
|||
bytes salt = 3;
|
||||
|
||||
// Checksum algorithm type
|
||||
neo.fs.v2.refs.ChecksumType type = 4;
|
||||
frost.fs.refs.ChecksumType type = 4;
|
||||
}
|
||||
// Body of get range hash object request message.
|
||||
Body body = 1;
|
||||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Get hash of object's payload part
|
||||
|
@ -805,7 +789,7 @@ message GetRangeHashResponse {
|
|||
// Get hash of object's payload part response body.
|
||||
message Body {
|
||||
// Checksum algorithm type
|
||||
neo.fs.v2.refs.ChecksumType type = 1;
|
||||
frost.fs.refs.ChecksumType type = 1;
|
||||
|
||||
// List of range hashes in a binary format
|
||||
repeated bytes hash_list = 2;
|
||||
|
@ -815,12 +799,12 @@ message GetRangeHashResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Object PUT Single request
|
||||
|
@ -842,12 +826,12 @@ message PutSingleRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Object PUT Single response
|
||||
|
@ -859,12 +843,12 @@ message PutSingleResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Object PATCH request
|
||||
|
@ -872,11 +856,11 @@ message PatchRequest {
|
|||
// PATCH request body
|
||||
message Body {
|
||||
// The address of the object that is requested to get patched.
|
||||
neo.fs.v2.refs.Address address = 1;
|
||||
frost.fs.refs.Address address = 1;
|
||||
|
||||
// New attributes for the object. See `replace_attributes` flag usage to
|
||||
// define how new attributes should be set.
|
||||
repeated neo.fs.v2.object.Header.Attribute new_attributes = 2;
|
||||
repeated frost.fs.object.Header.Attribute new_attributes = 2;
|
||||
|
||||
// If this flag is set, then the object's attributes will be entirely
|
||||
// replaced by `new_attributes` list. The empty `new_attributes` list with
|
||||
|
@ -909,12 +893,12 @@ message PatchRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Object PATCH response
|
||||
|
@ -922,7 +906,7 @@ message PatchResponse {
|
|||
// PATCH response body
|
||||
message Body {
|
||||
// The object ID of the saved patched object.
|
||||
neo.fs.v2.refs.ObjectID object_id = 1;
|
||||
frost.fs.refs.ObjectID object_id = 1;
|
||||
}
|
||||
|
||||
// Body for patch response message.
|
||||
|
@ -930,10 +914,10 @@ message PatchResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.object;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object/grpc;object";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Object";
|
||||
package frost.fs.object;
|
||||
|
||||
import "refs/types.proto";
|
||||
import "session/types.proto";
|
||||
|
@ -52,13 +49,13 @@ enum MatchType {
|
|||
message ShortHeader {
|
||||
// Object format version. Effectively, the version of API library used to
|
||||
// create particular object.
|
||||
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ];
|
||||
frost.fs.refs.Version version = 1 [ json_name = "version" ];
|
||||
|
||||
// Epoch when the object was created
|
||||
uint64 creation_epoch = 2 [ json_name = "creationEpoch" ];
|
||||
|
||||
// Object's owner
|
||||
neo.fs.v2.refs.OwnerID owner_id = 3 [ json_name = "ownerID" ];
|
||||
frost.fs.refs.OwnerID owner_id = 3 [ json_name = "ownerID" ];
|
||||
|
||||
// Type of the object payload content
|
||||
ObjectType object_type = 4 [ json_name = "objectType" ];
|
||||
|
@ -68,24 +65,23 @@ message ShortHeader {
|
|||
uint64 payload_length = 5 [ json_name = "payloadLength" ];
|
||||
|
||||
// Hash of payload bytes
|
||||
neo.fs.v2.refs.Checksum payload_hash = 6 [ json_name = "payloadHash" ];
|
||||
frost.fs.refs.Checksum payload_hash = 6 [ json_name = "payloadHash" ];
|
||||
|
||||
// Homomorphic hash of the object payload
|
||||
neo.fs.v2.refs.Checksum homomorphic_hash = 7
|
||||
[ json_name = "homomorphicHash" ];
|
||||
frost.fs.refs.Checksum homomorphic_hash = 7 [ json_name = "homomorphicHash" ];
|
||||
}
|
||||
|
||||
// Object Header
|
||||
message Header {
|
||||
// Object format version. Effectively, the version of API library used to
|
||||
// create particular object
|
||||
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ];
|
||||
frost.fs.refs.Version version = 1 [ json_name = "version" ];
|
||||
|
||||
// Object's container
|
||||
neo.fs.v2.refs.ContainerID container_id = 2 [ json_name = "containerID" ];
|
||||
frost.fs.refs.ContainerID container_id = 2 [ json_name = "containerID" ];
|
||||
|
||||
// Object's owner
|
||||
neo.fs.v2.refs.OwnerID owner_id = 3 [ json_name = "ownerID" ];
|
||||
frost.fs.refs.OwnerID owner_id = 3 [ json_name = "ownerID" ];
|
||||
|
||||
// Object creation Epoch
|
||||
uint64 creation_epoch = 4 [ json_name = "creationEpoch" ];
|
||||
|
@ -95,18 +91,17 @@ message Header {
|
|||
uint64 payload_length = 5 [ json_name = "payloadLength" ];
|
||||
|
||||
// Hash of payload bytes
|
||||
neo.fs.v2.refs.Checksum payload_hash = 6 [ json_name = "payloadHash" ];
|
||||
frost.fs.refs.Checksum payload_hash = 6 [ json_name = "payloadHash" ];
|
||||
|
||||
// Type of the object payload content
|
||||
ObjectType object_type = 7 [ json_name = "objectType" ];
|
||||
|
||||
// Homomorphic hash of the object payload
|
||||
neo.fs.v2.refs.Checksum homomorphic_hash = 8
|
||||
[ json_name = "homomorphicHash" ];
|
||||
frost.fs.refs.Checksum homomorphic_hash = 8 [ json_name = "homomorphicHash" ];
|
||||
|
||||
// Session token, if it was used during Object creation. Need it to verify
|
||||
// integrity and authenticity out of Request scope.
|
||||
neo.fs.v2.session.SessionToken session_token = 9
|
||||
frost.fs.session.SessionToken session_token = 9
|
||||
[ json_name = "sessionToken" ];
|
||||
|
||||
// `Attribute` is a user-defined Key-Value metadata pair attached to an
|
||||
|
@ -117,23 +112,19 @@ message Header {
|
|||
// will be considered invalid.
|
||||
//
|
||||
// There are some "well-known" attributes starting with `__SYSTEM__`
|
||||
// (`__NEOFS__` is deprecated) prefix that affect system behaviour:
|
||||
// prefix that affect system behaviour:
|
||||
//
|
||||
// * [ __SYSTEM__UPLOAD_ID ] \
|
||||
// (`__NEOFS__UPLOAD_ID` is deprecated) \
|
||||
// Marks smaller parts of a split bigger object
|
||||
// * [ __SYSTEM__EXPIRATION_EPOCH ] \
|
||||
// (`__NEOFS__EXPIRATION_EPOCH` is deprecated) \
|
||||
// The epoch after which object with no LOCKs on it becomes unavailable.
|
||||
// Locked object continues to be available until each of the LOCKs expire.
|
||||
// * [ __SYSTEM__TICK_EPOCH ] \
|
||||
// (`__NEOFS__TICK_EPOCH` is deprecated) \
|
||||
// Decimal number that defines what epoch must produce
|
||||
// object notification with UTF-8 object address in a
|
||||
// body (`0` value produces notification right after
|
||||
// object put)
|
||||
// * [ __SYSTEM__TICK_TOPIC ] \
|
||||
// (`__NEOFS__TICK_TOPIC` is deprecated) \
|
||||
// UTF-8 string topic ID that is used for object notification
|
||||
//
|
||||
// And some well-known attributes used by applications only:
|
||||
|
@ -171,20 +162,20 @@ message Header {
|
|||
// must be within the same container.
|
||||
message Split {
|
||||
// Identifier of the origin object. Known only to the minor child.
|
||||
neo.fs.v2.refs.ObjectID parent = 1 [ json_name = "parent" ];
|
||||
frost.fs.refs.ObjectID parent = 1 [ json_name = "parent" ];
|
||||
|
||||
// Identifier of the left split neighbor
|
||||
neo.fs.v2.refs.ObjectID previous = 2 [ json_name = "previous" ];
|
||||
frost.fs.refs.ObjectID previous = 2 [ json_name = "previous" ];
|
||||
|
||||
// `signature` field of the parent object. Used to reconstruct parent.
|
||||
neo.fs.v2.refs.Signature parent_signature = 3
|
||||
frost.fs.refs.Signature parent_signature = 3
|
||||
[ json_name = "parentSignature" ];
|
||||
|
||||
// `header` field of the parent object. Used to reconstruct parent.
|
||||
Header parent_header = 4 [ json_name = "parentHeader" ];
|
||||
|
||||
// List of identifiers of the objects generated by splitting current one.
|
||||
repeated neo.fs.v2.refs.ObjectID children = 5 [ json_name = "children" ];
|
||||
repeated frost.fs.refs.ObjectID children = 5 [ json_name = "children" ];
|
||||
|
||||
// 16 byte UUIDv4 used to identify the split object hierarchy parts. Must be
|
||||
// unique inside container. All objects participating in the split must have
|
||||
|
@ -199,7 +190,7 @@ message Header {
|
|||
// All objects belonging to a single EC group have the same `parent` field.
|
||||
message EC {
|
||||
// Identifier of the origin object. Known to all chunks.
|
||||
neo.fs.v2.refs.ObjectID parent = 1 [ json_name = "parent" ];
|
||||
frost.fs.refs.ObjectID parent = 1 [ json_name = "parent" ];
|
||||
// Index of this chunk.
|
||||
uint32 index = 2 [ json_name = "index" ];
|
||||
// Total number of chunks in this split.
|
||||
|
@ -216,7 +207,7 @@ message Header {
|
|||
// itself, is a part of Split and if an object ID of its parent is
|
||||
// presented. The field allows to determine how EC-chunk is placed in Split
|
||||
// hierarchy.
|
||||
neo.fs.v2.refs.ObjectID parent_split_parent_id = 7
|
||||
frost.fs.refs.ObjectID parent_split_parent_id = 7
|
||||
[ json_name = "parentSplitParentID" ];
|
||||
// EC parent's attributes.
|
||||
repeated Attribute parent_attributes = 8 [ json_name = "parentAttributes" ];
|
||||
|
@ -233,10 +224,10 @@ message Header {
|
|||
// in the header.
|
||||
message Object {
|
||||
// Object's unique identifier.
|
||||
neo.fs.v2.refs.ObjectID object_id = 1 [ json_name = "objectID" ];
|
||||
frost.fs.refs.ObjectID object_id = 1 [ json_name = "objectID" ];
|
||||
|
||||
// Signed object_id
|
||||
neo.fs.v2.refs.Signature signature = 2 [ json_name = "signature" ];
|
||||
frost.fs.refs.Signature signature = 2 [ json_name = "signature" ];
|
||||
|
||||
// Object metadata headers
|
||||
Header header = 3 [ json_name = "header" ];
|
||||
|
@ -255,19 +246,19 @@ message SplitInfo {
|
|||
|
||||
// The identifier of the last object in split hierarchy parts. It contains
|
||||
// split header with the original object header.
|
||||
neo.fs.v2.refs.ObjectID last_part = 2;
|
||||
frost.fs.refs.ObjectID last_part = 2;
|
||||
|
||||
// The identifier of a linking object for split hierarchy parts. It contains
|
||||
// split header with the original object header and a sorted list of
|
||||
// object parts.
|
||||
neo.fs.v2.refs.ObjectID link = 3;
|
||||
frost.fs.refs.ObjectID link = 3;
|
||||
}
|
||||
|
||||
// Meta information for the erasure-encoded object.
|
||||
message ECInfo {
|
||||
message Chunk {
|
||||
// Object ID of the chunk.
|
||||
neo.fs.v2.refs.ObjectID id = 1;
|
||||
frost.fs.refs.ObjectID id = 1;
|
||||
// Index of the chunk.
|
||||
uint32 index = 2;
|
||||
// Total number of chunks in this split.
|
||||
|
|
|
@ -5,19 +5,19 @@
|
|||
|
||||
- [accounting/service.proto](#accounting/service.proto)
|
||||
- Services
|
||||
- [AccountingService](#neo.fs.v2.accounting.AccountingService)
|
||||
- [AccountingService](#frost.fs.accounting.AccountingService)
|
||||
|
||||
- Messages
|
||||
- [BalanceRequest](#neo.fs.v2.accounting.BalanceRequest)
|
||||
- [BalanceRequest.Body](#neo.fs.v2.accounting.BalanceRequest.Body)
|
||||
- [BalanceResponse](#neo.fs.v2.accounting.BalanceResponse)
|
||||
- [BalanceResponse.Body](#neo.fs.v2.accounting.BalanceResponse.Body)
|
||||
- [BalanceRequest](#frost.fs.accounting.BalanceRequest)
|
||||
- [BalanceRequest.Body](#frost.fs.accounting.BalanceRequest.Body)
|
||||
- [BalanceResponse](#frost.fs.accounting.BalanceResponse)
|
||||
- [BalanceResponse.Body](#frost.fs.accounting.BalanceResponse.Body)
|
||||
|
||||
|
||||
- [accounting/types.proto](#accounting/types.proto)
|
||||
|
||||
- Messages
|
||||
- [Decimal](#neo.fs.v2.accounting.Decimal)
|
||||
- [Decimal](#frost.fs.accounting.Decimal)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -32,9 +32,9 @@
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.accounting.AccountingService"></a>
|
||||
<a name="frost.fs.accounting.AccountingService"></a>
|
||||
|
||||
### Service "neo.fs.v2.accounting.AccountingService"
|
||||
### Service "frost.fs.accounting.AccountingService"
|
||||
Accounting service provides methods for interaction with FrostFS sidechain
|
||||
via other FrostFS nodes to get information about the account balance. Deposit
|
||||
and Withdraw operations can't be implemented here, as they require Mainnet
|
||||
|
@ -57,11 +57,11 @@ balance has been successfully read;
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| Balance | [BalanceRequest](#neo.fs.v2.accounting.BalanceRequest) | [BalanceResponse](#neo.fs.v2.accounting.BalanceResponse) |
|
||||
| Balance | [BalanceRequest](#frost.fs.accounting.BalanceRequest) | [BalanceResponse](#frost.fs.accounting.BalanceResponse) |
|
||||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.accounting.BalanceRequest"></a>
|
||||
<a name="frost.fs.accounting.BalanceRequest"></a>
|
||||
|
||||
### Message BalanceRequest
|
||||
BalanceRequest message
|
||||
|
@ -69,12 +69,12 @@ BalanceRequest message
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [BalanceRequest.Body](#neo.fs.v2.accounting.BalanceRequest.Body) | | Body of the balance request message. |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [BalanceRequest.Body](#frost.fs.accounting.BalanceRequest.Body) | | Body of the balance request message. |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.accounting.BalanceRequest.Body"></a>
|
||||
<a name="frost.fs.accounting.BalanceRequest.Body"></a>
|
||||
|
||||
### Message BalanceRequest.Body
|
||||
To indicate the account for which the balance is requested, its identifier
|
||||
|
@ -85,10 +85,10 @@ request's signer `OwnerID`.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Valid user identifier in `OwnerID` format for which the balance is requested. Required field. |
|
||||
| owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Valid user identifier in `OwnerID` format for which the balance is requested. Required field. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.accounting.BalanceResponse"></a>
|
||||
<a name="frost.fs.accounting.BalanceResponse"></a>
|
||||
|
||||
### Message BalanceResponse
|
||||
BalanceResponse message
|
||||
|
@ -96,12 +96,12 @@ BalanceResponse message
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [BalanceResponse.Body](#neo.fs.v2.accounting.BalanceResponse.Body) | | Body of the balance response message. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [BalanceResponse.Body](#frost.fs.accounting.BalanceResponse.Body) | | Body of the balance response message. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.accounting.BalanceResponse.Body"></a>
|
||||
<a name="frost.fs.accounting.BalanceResponse.Body"></a>
|
||||
|
||||
### Message BalanceResponse.Body
|
||||
The amount of funds in GAS token for the `OwnerID`'s account requested.
|
||||
|
@ -111,7 +111,7 @@ rounding.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| balance | [Decimal](#neo.fs.v2.accounting.Decimal) | | Amount of funds in GAS token for the requested account. |
|
||||
| balance | [Decimal](#frost.fs.accounting.Decimal) | | Amount of funds in GAS token for the requested account. |
|
||||
|
||||
<!-- end messages -->
|
||||
|
||||
|
@ -128,7 +128,7 @@ rounding.
|
|||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.accounting.Decimal"></a>
|
||||
<a name="frost.fs.accounting.Decimal"></a>
|
||||
|
||||
### Message Decimal
|
||||
Standard floating point data type can't be used in FrostFS due to inexactness
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
- [acl/types.proto](#acl/types.proto)
|
||||
|
||||
- Messages
|
||||
- [BearerToken](#neo.fs.v2.acl.BearerToken)
|
||||
- [BearerToken.Body](#neo.fs.v2.acl.BearerToken.Body)
|
||||
- [BearerToken.Body.APEOverride](#neo.fs.v2.acl.BearerToken.Body.APEOverride)
|
||||
- [BearerToken.Body.TokenLifetime](#neo.fs.v2.acl.BearerToken.Body.TokenLifetime)
|
||||
- [EACLRecord](#neo.fs.v2.acl.EACLRecord)
|
||||
- [EACLRecord.Filter](#neo.fs.v2.acl.EACLRecord.Filter)
|
||||
- [EACLRecord.Target](#neo.fs.v2.acl.EACLRecord.Target)
|
||||
- [EACLTable](#neo.fs.v2.acl.EACLTable)
|
||||
- [BearerToken](#frost.fs.acl.BearerToken)
|
||||
- [BearerToken.Body](#frost.fs.acl.BearerToken.Body)
|
||||
- [BearerToken.Body.APEOverride](#frost.fs.acl.BearerToken.Body.APEOverride)
|
||||
- [BearerToken.Body.TokenLifetime](#frost.fs.acl.BearerToken.Body.TokenLifetime)
|
||||
- [EACLRecord](#frost.fs.acl.EACLRecord)
|
||||
- [EACLRecord.Filter](#frost.fs.acl.EACLRecord.Filter)
|
||||
- [EACLRecord.Target](#frost.fs.acl.EACLRecord.Target)
|
||||
- [EACLTable](#frost.fs.acl.EACLTable)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -29,7 +29,7 @@
|
|||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.BearerToken"></a>
|
||||
<a name="frost.fs.acl.BearerToken"></a>
|
||||
|
||||
### Message BearerToken
|
||||
BearerToken allows to attach signed Extended ACL rules to the request in
|
||||
|
@ -45,11 +45,11 @@ using the key associated with the container's `OwnerID`.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [BearerToken.Body](#neo.fs.v2.acl.BearerToken.Body) | | Bearer Token body |
|
||||
| signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signature of BearerToken body |
|
||||
| body | [BearerToken.Body](#frost.fs.acl.BearerToken.Body) | | Bearer Token body |
|
||||
| signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signature of BearerToken body |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.BearerToken.Body"></a>
|
||||
<a name="frost.fs.acl.BearerToken.Body"></a>
|
||||
|
||||
### Message BearerToken.Body
|
||||
Bearer Token body structure contains Extended ACL table issued by the
|
||||
|
@ -58,16 +58,16 @@ container owner with additional information preventing token abuse.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| eacl_table | [EACLTable](#neo.fs.v2.acl.EACLTable) | | Table of Extended ACL rules to use instead of the ones attached to the container. If it contains `container_id` field, bearer token is only valid for this specific container. Otherwise, any container of the same owner is allowed.
|
||||
| eacl_table | [EACLTable](#frost.fs.acl.EACLTable) | | Table of Extended ACL rules to use instead of the ones attached to the container. If it contains `container_id` field, bearer token is only valid for this specific container. Otherwise, any container of the same owner is allowed.
|
||||
|
||||
Deprecated: eACL tables are no longer relevant - `APEOverrides` should be used instead. |
|
||||
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | `OwnerID` defines to whom the token was issued. It must match the request originator's `OwnerID`. If empty, any token bearer will be accepted. |
|
||||
| lifetime | [BearerToken.Body.TokenLifetime](#neo.fs.v2.acl.BearerToken.Body.TokenLifetime) | | Token expiration and valid time period parameters |
|
||||
| owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | `OwnerID` defines to whom the token was issued. It must match the request originator's `OwnerID`. If empty, any token bearer will be accepted. |
|
||||
| lifetime | [BearerToken.Body.TokenLifetime](#frost.fs.acl.BearerToken.Body.TokenLifetime) | | Token expiration and valid time period parameters |
|
||||
| allow_impersonate | [bool](#bool) | | AllowImpersonate flag to consider token signer as request owner. If this field is true extended ACL table in token body isn't processed. |
|
||||
| ape_override | [BearerToken.Body.APEOverride](#neo.fs.v2.acl.BearerToken.Body.APEOverride) | | APE override for the target. |
|
||||
| ape_override | [BearerToken.Body.APEOverride](#frost.fs.acl.BearerToken.Body.APEOverride) | | APE override for the target. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.BearerToken.Body.APEOverride"></a>
|
||||
<a name="frost.fs.acl.BearerToken.Body.APEOverride"></a>
|
||||
|
||||
### Message BearerToken.Body.APEOverride
|
||||
APEOverride is the list of APE chains defined for a target.
|
||||
|
@ -81,11 +81,11 @@ preventing unauthorized access through the APE mechanism.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| target | [frostfs.v2.ape.ChainTarget](#frostfs.v2.ape.ChainTarget) | | Target for which chains are applied. |
|
||||
| chains | [frostfs.v2.ape.Chain](#frostfs.v2.ape.Chain) | repeated | The list of APE chains. |
|
||||
| target | [frost.fs.ape.ChainTarget](#frost.fs.ape.ChainTarget) | | Target for which chains are applied. |
|
||||
| chains | [frost.fs.ape.Chain](#frost.fs.ape.Chain) | repeated | The list of APE chains. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.BearerToken.Body.TokenLifetime"></a>
|
||||
<a name="frost.fs.acl.BearerToken.Body.TokenLifetime"></a>
|
||||
|
||||
### Message BearerToken.Body.TokenLifetime
|
||||
Lifetime parameters of the token. Field names taken from
|
||||
|
@ -99,7 +99,7 @@ Lifetime parameters of the token. Field names taken from
|
|||
| iat | [uint64](#uint64) | | Issued at Epoch |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.EACLRecord"></a>
|
||||
<a name="frost.fs.acl.EACLRecord"></a>
|
||||
|
||||
### Message EACLRecord
|
||||
Describes a single eACL rule.
|
||||
|
@ -107,13 +107,13 @@ Describes a single eACL rule.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| operation | [Operation](#neo.fs.v2.acl.Operation) | | FrostFS request Verb to match |
|
||||
| action | [Action](#neo.fs.v2.acl.Action) | | Rule execution result. Either allows or denies access if filters match. |
|
||||
| filters | [EACLRecord.Filter](#neo.fs.v2.acl.EACLRecord.Filter) | repeated | List of filters to match and see if rule is applicable |
|
||||
| targets | [EACLRecord.Target](#neo.fs.v2.acl.EACLRecord.Target) | repeated | List of target subjects to apply ACL rule to |
|
||||
| operation | [Operation](#frost.fs.acl.Operation) | | FrostFS request Verb to match |
|
||||
| action | [Action](#frost.fs.acl.Action) | | Rule execution result. Either allows or denies access if filters match. |
|
||||
| filters | [EACLRecord.Filter](#frost.fs.acl.EACLRecord.Filter) | repeated | List of filters to match and see if rule is applicable |
|
||||
| targets | [EACLRecord.Target](#frost.fs.acl.EACLRecord.Target) | repeated | List of target subjects to apply ACL rule to |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.EACLRecord.Filter"></a>
|
||||
<a name="frost.fs.acl.EACLRecord.Filter"></a>
|
||||
|
||||
### Message EACLRecord.Filter
|
||||
Filter to check particular properties of the request or the object.
|
||||
|
@ -150,13 +150,13 @@ it's possible to take that information from the requested address.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| header_type | [HeaderType](#neo.fs.v2.acl.HeaderType) | | Define if Object or Request header will be used |
|
||||
| match_type | [MatchType](#neo.fs.v2.acl.MatchType) | | Match operation type |
|
||||
| header_type | [HeaderType](#frost.fs.acl.HeaderType) | | Define if Object or Request header will be used |
|
||||
| match_type | [MatchType](#frost.fs.acl.MatchType) | | Match operation type |
|
||||
| key | [string](#string) | | Name of the Header to use |
|
||||
| value | [string](#string) | | Expected Header Value or pattern to match |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.EACLRecord.Target"></a>
|
||||
<a name="frost.fs.acl.EACLRecord.Target"></a>
|
||||
|
||||
### Message EACLRecord.Target
|
||||
Target to apply ACL rule. Can be a subject's role class or a list of public
|
||||
|
@ -165,11 +165,11 @@ keys to match.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| role | [Role](#neo.fs.v2.acl.Role) | | Target subject's role class |
|
||||
| role | [Role](#frost.fs.acl.Role) | | Target subject's role class |
|
||||
| keys | [bytes](#bytes) | repeated | List of public keys to identify target subject |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.EACLTable"></a>
|
||||
<a name="frost.fs.acl.EACLTable"></a>
|
||||
|
||||
### Message EACLTable
|
||||
Extended ACL rules table. A list of ACL rules defined additionally to Basic
|
||||
|
@ -180,14 +180,14 @@ FrostFS Technical Specification section for detailed description.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | eACL format version. Effectively, the version of API library used to create eACL Table. |
|
||||
| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Identifier of the container that should use given access control rules |
|
||||
| records | [EACLRecord](#neo.fs.v2.acl.EACLRecord) | repeated | List of Extended ACL rules |
|
||||
| version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | eACL format version. Effectively, the version of API library used to create eACL Table. |
|
||||
| container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Identifier of the container that should use given access control rules |
|
||||
| records | [EACLRecord](#frost.fs.acl.EACLRecord) | repeated | List of Extended ACL rules |
|
||||
|
||||
<!-- end messages -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.Action"></a>
|
||||
<a name="frost.fs.acl.Action"></a>
|
||||
|
||||
### Action
|
||||
Rule execution result action. Either allows or denies access if the rule's
|
||||
|
@ -201,7 +201,7 @@ filters match.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.HeaderType"></a>
|
||||
<a name="frost.fs.acl.HeaderType"></a>
|
||||
|
||||
### HeaderType
|
||||
Enumeration of possible sources of Headers to apply filters.
|
||||
|
@ -215,7 +215,7 @@ Enumeration of possible sources of Headers to apply filters.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.MatchType"></a>
|
||||
<a name="frost.fs.acl.MatchType"></a>
|
||||
|
||||
### MatchType
|
||||
MatchType is an enumeration of match types.
|
||||
|
@ -228,7 +228,7 @@ MatchType is an enumeration of match types.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.Operation"></a>
|
||||
<a name="frost.fs.acl.Operation"></a>
|
||||
|
||||
### Operation
|
||||
Request's operation type to match if the rule is applicable to a particular
|
||||
|
@ -247,7 +247,7 @@ request.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.acl.Role"></a>
|
||||
<a name="frost.fs.acl.Role"></a>
|
||||
|
||||
### Role
|
||||
Target role of the access control rule in access control list.
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
- [ape/types.proto](#ape/types.proto)
|
||||
|
||||
- Messages
|
||||
- [Chain](#frostfs.v2.ape.Chain)
|
||||
- [ChainTarget](#frostfs.v2.ape.ChainTarget)
|
||||
- [Chain](#frost.fs.ape.Chain)
|
||||
- [ChainTarget](#frost.fs.ape.ChainTarget)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -23,7 +23,7 @@
|
|||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="frostfs.v2.ape.Chain"></a>
|
||||
<a name="frost.fs.ape.Chain"></a>
|
||||
|
||||
### Message Chain
|
||||
Chain is a chain of rules defined for a specific target.
|
||||
|
@ -34,7 +34,7 @@ Chain is a chain of rules defined for a specific target.
|
|||
| raw | [bytes](#bytes) | | Raw representation of a serizalized rule chain. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.ape.ChainTarget"></a>
|
||||
<a name="frost.fs.ape.ChainTarget"></a>
|
||||
|
||||
### Message ChainTarget
|
||||
ChainTarget is an object to which a rule chain is defined.
|
||||
|
@ -42,13 +42,13 @@ ChainTarget is an object to which a rule chain is defined.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| type | [TargetType](#frostfs.v2.ape.TargetType) | | |
|
||||
| type | [TargetType](#frost.fs.ape.TargetType) | | |
|
||||
| name | [string](#string) | | |
|
||||
|
||||
<!-- end messages -->
|
||||
|
||||
|
||||
<a name="frostfs.v2.ape.TargetType"></a>
|
||||
<a name="frost.fs.ape.TargetType"></a>
|
||||
|
||||
### TargetType
|
||||
TargetType is a type target to which a rule chain is defined.
|
||||
|
|
|
@ -5,21 +5,21 @@
|
|||
|
||||
- [apemanager/service.proto](#apemanager/service.proto)
|
||||
- Services
|
||||
- [APEManagerService](#frostfs.v2.apemanager.APEManagerService)
|
||||
- [APEManagerService](#frost.fs.apemanager.APEManagerService)
|
||||
|
||||
- Messages
|
||||
- [AddChainRequest](#frostfs.v2.apemanager.AddChainRequest)
|
||||
- [AddChainRequest.Body](#frostfs.v2.apemanager.AddChainRequest.Body)
|
||||
- [AddChainResponse](#frostfs.v2.apemanager.AddChainResponse)
|
||||
- [AddChainResponse.Body](#frostfs.v2.apemanager.AddChainResponse.Body)
|
||||
- [ListChainsRequest](#frostfs.v2.apemanager.ListChainsRequest)
|
||||
- [ListChainsRequest.Body](#frostfs.v2.apemanager.ListChainsRequest.Body)
|
||||
- [ListChainsResponse](#frostfs.v2.apemanager.ListChainsResponse)
|
||||
- [ListChainsResponse.Body](#frostfs.v2.apemanager.ListChainsResponse.Body)
|
||||
- [RemoveChainRequest](#frostfs.v2.apemanager.RemoveChainRequest)
|
||||
- [RemoveChainRequest.Body](#frostfs.v2.apemanager.RemoveChainRequest.Body)
|
||||
- [RemoveChainResponse](#frostfs.v2.apemanager.RemoveChainResponse)
|
||||
- [RemoveChainResponse.Body](#frostfs.v2.apemanager.RemoveChainResponse.Body)
|
||||
- [AddChainRequest](#frost.fs.apemanager.AddChainRequest)
|
||||
- [AddChainRequest.Body](#frost.fs.apemanager.AddChainRequest.Body)
|
||||
- [AddChainResponse](#frost.fs.apemanager.AddChainResponse)
|
||||
- [AddChainResponse.Body](#frost.fs.apemanager.AddChainResponse.Body)
|
||||
- [ListChainsRequest](#frost.fs.apemanager.ListChainsRequest)
|
||||
- [ListChainsRequest.Body](#frost.fs.apemanager.ListChainsRequest.Body)
|
||||
- [ListChainsResponse](#frost.fs.apemanager.ListChainsResponse)
|
||||
- [ListChainsResponse.Body](#frost.fs.apemanager.ListChainsResponse.Body)
|
||||
- [RemoveChainRequest](#frost.fs.apemanager.RemoveChainRequest)
|
||||
- [RemoveChainRequest.Body](#frost.fs.apemanager.RemoveChainRequest.Body)
|
||||
- [RemoveChainResponse](#frost.fs.apemanager.RemoveChainResponse)
|
||||
- [RemoveChainResponse.Body](#frost.fs.apemanager.RemoveChainResponse.Body)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -34,9 +34,9 @@
|
|||
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.APEManagerService"></a>
|
||||
<a name="frost.fs.apemanager.APEManagerService"></a>
|
||||
|
||||
### Service "frostfs.v2.apemanager.APEManagerService"
|
||||
### Service "frost.fs.apemanager.APEManagerService"
|
||||
`APEManagerService` provides API to manage rule chains within sidechain's
|
||||
`Policy` smart contract.
|
||||
|
||||
|
@ -62,7 +62,7 @@ Statuses:
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| AddChain | [AddChainRequest](#frostfs.v2.apemanager.AddChainRequest) | [AddChainResponse](#frostfs.v2.apemanager.AddChainResponse) |
|
||||
| AddChain | [AddChainRequest](#frost.fs.apemanager.AddChainRequest) | [AddChainResponse](#frost.fs.apemanager.AddChainResponse) |
|
||||
#### Method RemoveChain
|
||||
|
||||
Remove a rule chain for a specific target from `Policy` smart contract.
|
||||
|
@ -80,7 +80,7 @@ Statuses:
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| RemoveChain | [RemoveChainRequest](#frostfs.v2.apemanager.RemoveChainRequest) | [RemoveChainResponse](#frostfs.v2.apemanager.RemoveChainResponse) |
|
||||
| RemoveChain | [RemoveChainRequest](#frost.fs.apemanager.RemoveChainRequest) | [RemoveChainResponse](#frost.fs.apemanager.RemoveChainResponse) |
|
||||
#### Method ListChains
|
||||
|
||||
List chains defined for a specific target from `Policy` smart contract.
|
||||
|
@ -96,11 +96,11 @@ Statuses:
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| ListChains | [ListChainsRequest](#frostfs.v2.apemanager.ListChainsRequest) | [ListChainsResponse](#frostfs.v2.apemanager.ListChainsResponse) |
|
||||
| ListChains | [ListChainsRequest](#frost.fs.apemanager.ListChainsRequest) | [ListChainsResponse](#frost.fs.apemanager.ListChainsResponse) |
|
||||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.AddChainRequest"></a>
|
||||
<a name="frost.fs.apemanager.AddChainRequest"></a>
|
||||
|
||||
### Message AddChainRequest
|
||||
|
||||
|
@ -108,12 +108,12 @@ Statuses:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [AddChainRequest.Body](#frostfs.v2.apemanager.AddChainRequest.Body) | | The request's body. |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [AddChainRequest.Body](#frost.fs.apemanager.AddChainRequest.Body) | | The request's body. |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.AddChainRequest.Body"></a>
|
||||
<a name="frost.fs.apemanager.AddChainRequest.Body"></a>
|
||||
|
||||
### Message AddChainRequest.Body
|
||||
|
||||
|
@ -121,11 +121,11 @@ Statuses:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| target | [frostfs.v2.ape.ChainTarget](#frostfs.v2.ape.ChainTarget) | | A target for which a rule chain is added. |
|
||||
| chain | [frostfs.v2.ape.Chain](#frostfs.v2.ape.Chain) | | The chain to set for the target. |
|
||||
| target | [frost.fs.ape.ChainTarget](#frost.fs.ape.ChainTarget) | | A target for which a rule chain is added. |
|
||||
| chain | [frost.fs.ape.Chain](#frost.fs.ape.Chain) | | The chain to set for the target. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.AddChainResponse"></a>
|
||||
<a name="frost.fs.apemanager.AddChainResponse"></a>
|
||||
|
||||
### Message AddChainResponse
|
||||
|
||||
|
@ -133,12 +133,12 @@ Statuses:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [AddChainResponse.Body](#frostfs.v2.apemanager.AddChainResponse.Body) | | The response's body. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [AddChainResponse.Body](#frost.fs.apemanager.AddChainResponse.Body) | | The response's body. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.AddChainResponse.Body"></a>
|
||||
<a name="frost.fs.apemanager.AddChainResponse.Body"></a>
|
||||
|
||||
### Message AddChainResponse.Body
|
||||
|
||||
|
@ -149,7 +149,7 @@ Statuses:
|
|||
| chain_id | [bytes](#bytes) | | Chain ID assigned for the added rule chain. If chain ID is left empty in the request, then it will be generated. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.ListChainsRequest"></a>
|
||||
<a name="frost.fs.apemanager.ListChainsRequest"></a>
|
||||
|
||||
### Message ListChainsRequest
|
||||
|
||||
|
@ -157,12 +157,12 @@ Statuses:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [ListChainsRequest.Body](#frostfs.v2.apemanager.ListChainsRequest.Body) | | The request's body. |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [ListChainsRequest.Body](#frost.fs.apemanager.ListChainsRequest.Body) | | The request's body. |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.ListChainsRequest.Body"></a>
|
||||
<a name="frost.fs.apemanager.ListChainsRequest.Body"></a>
|
||||
|
||||
### Message ListChainsRequest.Body
|
||||
|
||||
|
@ -170,10 +170,10 @@ Statuses:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| target | [frostfs.v2.ape.ChainTarget](#frostfs.v2.ape.ChainTarget) | | Target for which rule chains are listed. |
|
||||
| target | [frost.fs.ape.ChainTarget](#frost.fs.ape.ChainTarget) | | Target for which rule chains are listed. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.ListChainsResponse"></a>
|
||||
<a name="frost.fs.apemanager.ListChainsResponse"></a>
|
||||
|
||||
### Message ListChainsResponse
|
||||
|
||||
|
@ -181,12 +181,12 @@ Statuses:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [ListChainsResponse.Body](#frostfs.v2.apemanager.ListChainsResponse.Body) | | The response's body. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [ListChainsResponse.Body](#frost.fs.apemanager.ListChainsResponse.Body) | | The response's body. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.ListChainsResponse.Body"></a>
|
||||
<a name="frost.fs.apemanager.ListChainsResponse.Body"></a>
|
||||
|
||||
### Message ListChainsResponse.Body
|
||||
|
||||
|
@ -194,10 +194,10 @@ Statuses:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| chains | [frostfs.v2.ape.Chain](#frostfs.v2.ape.Chain) | repeated | The list of chains defined for the reqeusted target. |
|
||||
| chains | [frost.fs.ape.Chain](#frost.fs.ape.Chain) | repeated | The list of chains defined for the reqeusted target. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.RemoveChainRequest"></a>
|
||||
<a name="frost.fs.apemanager.RemoveChainRequest"></a>
|
||||
|
||||
### Message RemoveChainRequest
|
||||
|
||||
|
@ -205,12 +205,12 @@ Statuses:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [RemoveChainRequest.Body](#frostfs.v2.apemanager.RemoveChainRequest.Body) | | The request's body. |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [RemoveChainRequest.Body](#frost.fs.apemanager.RemoveChainRequest.Body) | | The request's body. |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.RemoveChainRequest.Body"></a>
|
||||
<a name="frost.fs.apemanager.RemoveChainRequest.Body"></a>
|
||||
|
||||
### Message RemoveChainRequest.Body
|
||||
|
||||
|
@ -218,11 +218,11 @@ Statuses:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| target | [frostfs.v2.ape.ChainTarget](#frostfs.v2.ape.ChainTarget) | | Target for which a rule chain is removed. |
|
||||
| target | [frost.fs.ape.ChainTarget](#frost.fs.ape.ChainTarget) | | Target for which a rule chain is removed. |
|
||||
| chain_id | [bytes](#bytes) | | Chain ID assigned for the rule chain. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.RemoveChainResponse"></a>
|
||||
<a name="frost.fs.apemanager.RemoveChainResponse"></a>
|
||||
|
||||
### Message RemoveChainResponse
|
||||
|
||||
|
@ -230,12 +230,12 @@ Statuses:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [RemoveChainResponse.Body](#frostfs.v2.apemanager.RemoveChainResponse.Body) | | The response's body. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [RemoveChainResponse.Body](#frost.fs.apemanager.RemoveChainResponse.Body) | | The response's body. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="frostfs.v2.apemanager.RemoveChainResponse.Body"></a>
|
||||
<a name="frost.fs.apemanager.RemoveChainResponse.Body"></a>
|
||||
|
||||
### Message RemoveChainResponse.Body
|
||||
Since RemoveChain is an idempotent operation, then the only indicator that
|
||||
|
|
|
@ -5,32 +5,32 @@
|
|||
|
||||
- [container/service.proto](#container/service.proto)
|
||||
- Services
|
||||
- [ContainerService](#neo.fs.v2.container.ContainerService)
|
||||
- [ContainerService](#frost.fs.container.ContainerService)
|
||||
|
||||
- Messages
|
||||
- [DeleteRequest](#neo.fs.v2.container.DeleteRequest)
|
||||
- [DeleteRequest.Body](#neo.fs.v2.container.DeleteRequest.Body)
|
||||
- [DeleteResponse](#neo.fs.v2.container.DeleteResponse)
|
||||
- [DeleteResponse.Body](#neo.fs.v2.container.DeleteResponse.Body)
|
||||
- [GetRequest](#neo.fs.v2.container.GetRequest)
|
||||
- [GetRequest.Body](#neo.fs.v2.container.GetRequest.Body)
|
||||
- [GetResponse](#neo.fs.v2.container.GetResponse)
|
||||
- [GetResponse.Body](#neo.fs.v2.container.GetResponse.Body)
|
||||
- [ListRequest](#neo.fs.v2.container.ListRequest)
|
||||
- [ListRequest.Body](#neo.fs.v2.container.ListRequest.Body)
|
||||
- [ListResponse](#neo.fs.v2.container.ListResponse)
|
||||
- [ListResponse.Body](#neo.fs.v2.container.ListResponse.Body)
|
||||
- [PutRequest](#neo.fs.v2.container.PutRequest)
|
||||
- [PutRequest.Body](#neo.fs.v2.container.PutRequest.Body)
|
||||
- [PutResponse](#neo.fs.v2.container.PutResponse)
|
||||
- [PutResponse.Body](#neo.fs.v2.container.PutResponse.Body)
|
||||
- [DeleteRequest](#frost.fs.container.DeleteRequest)
|
||||
- [DeleteRequest.Body](#frost.fs.container.DeleteRequest.Body)
|
||||
- [DeleteResponse](#frost.fs.container.DeleteResponse)
|
||||
- [DeleteResponse.Body](#frost.fs.container.DeleteResponse.Body)
|
||||
- [GetRequest](#frost.fs.container.GetRequest)
|
||||
- [GetRequest.Body](#frost.fs.container.GetRequest.Body)
|
||||
- [GetResponse](#frost.fs.container.GetResponse)
|
||||
- [GetResponse.Body](#frost.fs.container.GetResponse.Body)
|
||||
- [ListRequest](#frost.fs.container.ListRequest)
|
||||
- [ListRequest.Body](#frost.fs.container.ListRequest.Body)
|
||||
- [ListResponse](#frost.fs.container.ListResponse)
|
||||
- [ListResponse.Body](#frost.fs.container.ListResponse.Body)
|
||||
- [PutRequest](#frost.fs.container.PutRequest)
|
||||
- [PutRequest.Body](#frost.fs.container.PutRequest.Body)
|
||||
- [PutResponse](#frost.fs.container.PutResponse)
|
||||
- [PutResponse.Body](#frost.fs.container.PutResponse.Body)
|
||||
|
||||
|
||||
- [container/types.proto](#container/types.proto)
|
||||
|
||||
- Messages
|
||||
- [Container](#neo.fs.v2.container.Container)
|
||||
- [Container.Attribute](#neo.fs.v2.container.Container.Attribute)
|
||||
- [Container](#frost.fs.container.Container)
|
||||
- [Container.Attribute](#frost.fs.container.Container.Attribute)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -45,9 +45,9 @@
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.ContainerService"></a>
|
||||
<a name="frost.fs.container.ContainerService"></a>
|
||||
|
||||
### Service "neo.fs.v2.container.ContainerService"
|
||||
### Service "frost.fs.container.ContainerService"
|
||||
`ContainerService` provides API to interact with `Container` smart contract
|
||||
in FrostFS sidechain via other FrostFS nodes. All of those actions can be
|
||||
done equivalently by directly issuing transactions and RPC calls to sidechain
|
||||
|
@ -77,7 +77,7 @@ Statuses:
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| Put | [PutRequest](#neo.fs.v2.container.PutRequest) | [PutResponse](#neo.fs.v2.container.PutResponse) |
|
||||
| Put | [PutRequest](#frost.fs.container.PutRequest) | [PutResponse](#frost.fs.container.PutResponse) |
|
||||
#### Method Delete
|
||||
|
||||
`Delete` invokes `Container` smart contract's `Delete` method and returns
|
||||
|
@ -94,7 +94,7 @@ Statuses:
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| Delete | [DeleteRequest](#neo.fs.v2.container.DeleteRequest) | [DeleteResponse](#neo.fs.v2.container.DeleteResponse) |
|
||||
| Delete | [DeleteRequest](#frost.fs.container.DeleteRequest) | [DeleteResponse](#frost.fs.container.DeleteResponse) |
|
||||
#### Method Get
|
||||
|
||||
Returns container structure from `Container` smart contract storage.
|
||||
|
@ -110,7 +110,7 @@ Statuses:
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| Get | [GetRequest](#neo.fs.v2.container.GetRequest) | [GetResponse](#neo.fs.v2.container.GetResponse) |
|
||||
| Get | [GetRequest](#frost.fs.container.GetRequest) | [GetResponse](#frost.fs.container.GetResponse) |
|
||||
#### Method List
|
||||
|
||||
Returns all owner's containers from 'Container` smart contract' storage.
|
||||
|
@ -124,11 +124,11 @@ Statuses:
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| List | [ListRequest](#neo.fs.v2.container.ListRequest) | [ListResponse](#neo.fs.v2.container.ListResponse) |
|
||||
| List | [ListRequest](#frost.fs.container.ListRequest) | [ListResponse](#frost.fs.container.ListResponse) |
|
||||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.DeleteRequest"></a>
|
||||
<a name="frost.fs.container.DeleteRequest"></a>
|
||||
|
||||
### Message DeleteRequest
|
||||
Container removal request
|
||||
|
@ -136,12 +136,12 @@ Container removal request
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [DeleteRequest.Body](#neo.fs.v2.container.DeleteRequest.Body) | | Body of container delete request message. |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [DeleteRequest.Body](#frost.fs.container.DeleteRequest.Body) | | Body of container delete request message. |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.DeleteRequest.Body"></a>
|
||||
<a name="frost.fs.container.DeleteRequest.Body"></a>
|
||||
|
||||
### Message DeleteRequest.Body
|
||||
Container removal request body has signed `ContainerID` as a proof of
|
||||
|
@ -151,11 +151,11 @@ smart contract, so signing algorithm must be supported by NeoVM.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Identifier of the container to delete from FrostFS |
|
||||
| signature | [neo.fs.v2.refs.SignatureRFC6979](#neo.fs.v2.refs.SignatureRFC6979) | | `ContainerID` signed with the container owner's key according to RFC-6979. |
|
||||
| container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Identifier of the container to delete from FrostFS |
|
||||
| signature | [frost.fs.refs.SignatureRFC6979](#frost.fs.refs.SignatureRFC6979) | | `ContainerID` signed with the container owner's key according to RFC-6979. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.DeleteResponse"></a>
|
||||
<a name="frost.fs.container.DeleteResponse"></a>
|
||||
|
||||
### Message DeleteResponse
|
||||
`DeleteResponse` has an empty body because delete operation is asynchronous
|
||||
|
@ -164,12 +164,12 @@ and done via consensus in Inner Ring nodes.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [DeleteResponse.Body](#neo.fs.v2.container.DeleteResponse.Body) | | Body of container delete response message. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [DeleteResponse.Body](#frost.fs.container.DeleteResponse.Body) | | Body of container delete response message. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.DeleteResponse.Body"></a>
|
||||
<a name="frost.fs.container.DeleteResponse.Body"></a>
|
||||
|
||||
### Message DeleteResponse.Body
|
||||
`DeleteResponse` has an empty body because delete operation is asynchronous
|
||||
|
@ -177,7 +177,7 @@ and done via consensus in Inner Ring nodes.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.GetRequest"></a>
|
||||
<a name="frost.fs.container.GetRequest"></a>
|
||||
|
||||
### Message GetRequest
|
||||
Get container structure
|
||||
|
@ -185,12 +185,12 @@ Get container structure
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [GetRequest.Body](#neo.fs.v2.container.GetRequest.Body) | | Body of container get request message. |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [GetRequest.Body](#frost.fs.container.GetRequest.Body) | | Body of container get request message. |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.GetRequest.Body"></a>
|
||||
<a name="frost.fs.container.GetRequest.Body"></a>
|
||||
|
||||
### Message GetRequest.Body
|
||||
Get container structure request body.
|
||||
|
@ -198,10 +198,10 @@ Get container structure request body.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Identifier of the container to get |
|
||||
| container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Identifier of the container to get |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.GetResponse"></a>
|
||||
<a name="frost.fs.container.GetResponse"></a>
|
||||
|
||||
### Message GetResponse
|
||||
Get container structure
|
||||
|
@ -209,12 +209,12 @@ Get container structure
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [GetResponse.Body](#neo.fs.v2.container.GetResponse.Body) | | Body of container get response message. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [GetResponse.Body](#frost.fs.container.GetResponse.Body) | | Body of container get response message. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.GetResponse.Body"></a>
|
||||
<a name="frost.fs.container.GetResponse.Body"></a>
|
||||
|
||||
### Message GetResponse.Body
|
||||
Get container response body does not have container structure signature. It
|
||||
|
@ -223,12 +223,12 @@ has been already verified upon container creation.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| container | [Container](#neo.fs.v2.container.Container) | | Requested container structure |
|
||||
| signature | [neo.fs.v2.refs.SignatureRFC6979](#neo.fs.v2.refs.SignatureRFC6979) | | Signature of a stable-marshalled container according to RFC-6979. |
|
||||
| session_token | [neo.fs.v2.session.SessionToken](#neo.fs.v2.session.SessionToken) | | Session token if the container has been created within the session |
|
||||
| container | [Container](#frost.fs.container.Container) | | Requested container structure |
|
||||
| signature | [frost.fs.refs.SignatureRFC6979](#frost.fs.refs.SignatureRFC6979) | | Signature of a stable-marshalled container according to RFC-6979. |
|
||||
| session_token | [frost.fs.session.SessionToken](#frost.fs.session.SessionToken) | | Session token if the container has been created within the session |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.ListRequest"></a>
|
||||
<a name="frost.fs.container.ListRequest"></a>
|
||||
|
||||
### Message ListRequest
|
||||
List containers
|
||||
|
@ -236,12 +236,12 @@ List containers
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [ListRequest.Body](#neo.fs.v2.container.ListRequest.Body) | | Body of list containers request message |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [ListRequest.Body](#frost.fs.container.ListRequest.Body) | | Body of list containers request message |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.ListRequest.Body"></a>
|
||||
<a name="frost.fs.container.ListRequest.Body"></a>
|
||||
|
||||
### Message ListRequest.Body
|
||||
List containers request body.
|
||||
|
@ -249,10 +249,10 @@ List containers request body.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Identifier of the container owner |
|
||||
| owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Identifier of the container owner |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.ListResponse"></a>
|
||||
<a name="frost.fs.container.ListResponse"></a>
|
||||
|
||||
### Message ListResponse
|
||||
List containers
|
||||
|
@ -260,12 +260,12 @@ List containers
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [ListResponse.Body](#neo.fs.v2.container.ListResponse.Body) | | Body of list containers response message. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [ListResponse.Body](#frost.fs.container.ListResponse.Body) | | Body of list containers response message. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.ListResponse.Body"></a>
|
||||
<a name="frost.fs.container.ListResponse.Body"></a>
|
||||
|
||||
### Message ListResponse.Body
|
||||
List containers response body.
|
||||
|
@ -273,10 +273,10 @@ List containers response body.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| container_ids | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | repeated | List of `ContainerID`s belonging to the requested `OwnerID` |
|
||||
| container_ids | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | repeated | List of `ContainerID`s belonging to the requested `OwnerID` |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.PutRequest"></a>
|
||||
<a name="frost.fs.container.PutRequest"></a>
|
||||
|
||||
### Message PutRequest
|
||||
New FrostFS Container creation request
|
||||
|
@ -284,12 +284,12 @@ New FrostFS Container creation request
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [PutRequest.Body](#neo.fs.v2.container.PutRequest.Body) | | Body of container put request message. |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [PutRequest.Body](#frost.fs.container.PutRequest.Body) | | Body of container put request message. |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.PutRequest.Body"></a>
|
||||
<a name="frost.fs.container.PutRequest.Body"></a>
|
||||
|
||||
### Message PutRequest.Body
|
||||
Container creation request has container structure's signature as a
|
||||
|
@ -301,11 +301,11 @@ additional signature checks.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| container | [Container](#neo.fs.v2.container.Container) | | Container structure to register in FrostFS |
|
||||
| signature | [neo.fs.v2.refs.SignatureRFC6979](#neo.fs.v2.refs.SignatureRFC6979) | | Signature of a stable-marshalled container according to RFC-6979. |
|
||||
| container | [Container](#frost.fs.container.Container) | | Container structure to register in FrostFS |
|
||||
| signature | [frost.fs.refs.SignatureRFC6979](#frost.fs.refs.SignatureRFC6979) | | Signature of a stable-marshalled container according to RFC-6979. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.PutResponse"></a>
|
||||
<a name="frost.fs.container.PutResponse"></a>
|
||||
|
||||
### Message PutResponse
|
||||
New FrostFS Container creation response
|
||||
|
@ -313,12 +313,12 @@ New FrostFS Container creation response
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [PutResponse.Body](#neo.fs.v2.container.PutResponse.Body) | | Body of container put response message. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [PutResponse.Body](#frost.fs.container.PutResponse.Body) | | Body of container put response message. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.PutResponse.Body"></a>
|
||||
<a name="frost.fs.container.PutResponse.Body"></a>
|
||||
|
||||
### Message PutResponse.Body
|
||||
Container put response body contains information about the newly registered
|
||||
|
@ -329,7 +329,7 @@ returned here to make sure everything has been done as expected.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Unique identifier of the newly created container |
|
||||
| container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Unique identifier of the newly created container |
|
||||
|
||||
<!-- end messages -->
|
||||
|
||||
|
@ -346,7 +346,7 @@ returned here to make sure everything has been done as expected.
|
|||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.Container"></a>
|
||||
<a name="frost.fs.container.Container"></a>
|
||||
|
||||
### Message Container
|
||||
Container is a structure that defines object placement behaviour. Objects can
|
||||
|
@ -357,15 +357,15 @@ hash of stable-marshalled container message.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | Container format version. Effectively, the version of API library used to create the container. |
|
||||
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Identifier of the container owner |
|
||||
| version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | Container format version. Effectively, the version of API library used to create the container. |
|
||||
| owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Identifier of the container owner |
|
||||
| nonce | [bytes](#bytes) | | Nonce is a 16 byte UUIDv4, used to avoid collisions of `ContainerID`s |
|
||||
| basic_acl | [uint32](#uint32) | | `BasicACL` contains access control rules for the owner, system and others groups, as well as permission bits for `BearerToken` and `Extended ACL` |
|
||||
| attributes | [Container.Attribute](#neo.fs.v2.container.Container.Attribute) | repeated | Attributes represent immutable container's meta data |
|
||||
| placement_policy | [neo.fs.v2.netmap.PlacementPolicy](#neo.fs.v2.netmap.PlacementPolicy) | | Placement policy for the object inside the container |
|
||||
| attributes | [Container.Attribute](#frost.fs.container.Container.Attribute) | repeated | Attributes represent immutable container's meta data |
|
||||
| placement_policy | [frost.fs.netmap.PlacementPolicy](#frost.fs.netmap.PlacementPolicy) | | Placement policy for the object inside the container |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.container.Container.Attribute"></a>
|
||||
<a name="frost.fs.container.Container.Attribute"></a>
|
||||
|
||||
### Message Container.Attribute
|
||||
`Attribute` is a user-defined Key-Value metadata pair attached to the
|
||||
|
@ -379,16 +379,13 @@ values will be considered invalid.
|
|||
There are some "well-known" attributes affecting system behaviour:
|
||||
|
||||
* [ __SYSTEM__NAME ] \
|
||||
(`__NEOFS__NAME` is deprecated) \
|
||||
String of a human-friendly container name registered as a domain in
|
||||
NNS contract.
|
||||
* [ __SYSTEM__ZONE ] \
|
||||
(`__NEOFS__ZONE` is deprecated) \
|
||||
String of a zone for `__SYSTEM__NAME` (`__NEOFS__NAME` is deprecated).
|
||||
String of a zone for `__SYSTEM__NAME`.
|
||||
Used as a TLD of a domain name in NNS contract. If no zone is specified,
|
||||
use default zone: `container`.
|
||||
* [ __SYSTEM__DISABLE_HOMOMORPHIC_HASHING ] \
|
||||
(`__NEOFS__DISABLE_HOMOMORPHIC_HASHING` is deprecated) \
|
||||
Disables homomorphic hashing for the container if the value equals "true"
|
||||
string. Any other values are interpreted as missing attribute. Container
|
||||
could be accepted in a FrostFS network only if the global network hashing
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
- [lock/types.proto](#lock/types.proto)
|
||||
|
||||
- Messages
|
||||
- [Lock](#neo.fs.v2.lock.Lock)
|
||||
- [Lock](#frost.fs.lock.Lock)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -22,19 +22,19 @@
|
|||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.lock.Lock"></a>
|
||||
<a name="frost.fs.lock.Lock"></a>
|
||||
|
||||
### Message Lock
|
||||
Lock objects protects a list of objects from being deleted. The lifetime of a
|
||||
lock object is limited similar to regular objects in
|
||||
`__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated)
|
||||
`__SYSTEM__EXPIRATION_EPOCH`
|
||||
attribute. Lock object MUST have expiration epoch. It is impossible to delete
|
||||
a lock object via ObjectService.Delete RPC call.
|
||||
|
||||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| members | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | repeated | List of objects to lock. Must not be empty or carry empty IDs. All members must be of the `REGULAR` type. |
|
||||
| members | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | repeated | List of objects to lock. Must not be empty or carry empty IDs. All members must be of the `REGULAR` type. |
|
||||
|
||||
<!-- end messages -->
|
||||
|
||||
|
|
|
@ -5,36 +5,36 @@
|
|||
|
||||
- [netmap/service.proto](#netmap/service.proto)
|
||||
- Services
|
||||
- [NetmapService](#neo.fs.v2.netmap.NetmapService)
|
||||
- [NetmapService](#frost.fs.netmap.NetmapService)
|
||||
|
||||
- Messages
|
||||
- [LocalNodeInfoRequest](#neo.fs.v2.netmap.LocalNodeInfoRequest)
|
||||
- [LocalNodeInfoRequest.Body](#neo.fs.v2.netmap.LocalNodeInfoRequest.Body)
|
||||
- [LocalNodeInfoResponse](#neo.fs.v2.netmap.LocalNodeInfoResponse)
|
||||
- [LocalNodeInfoResponse.Body](#neo.fs.v2.netmap.LocalNodeInfoResponse.Body)
|
||||
- [NetmapSnapshotRequest](#neo.fs.v2.netmap.NetmapSnapshotRequest)
|
||||
- [NetmapSnapshotRequest.Body](#neo.fs.v2.netmap.NetmapSnapshotRequest.Body)
|
||||
- [NetmapSnapshotResponse](#neo.fs.v2.netmap.NetmapSnapshotResponse)
|
||||
- [NetmapSnapshotResponse.Body](#neo.fs.v2.netmap.NetmapSnapshotResponse.Body)
|
||||
- [NetworkInfoRequest](#neo.fs.v2.netmap.NetworkInfoRequest)
|
||||
- [NetworkInfoRequest.Body](#neo.fs.v2.netmap.NetworkInfoRequest.Body)
|
||||
- [NetworkInfoResponse](#neo.fs.v2.netmap.NetworkInfoResponse)
|
||||
- [NetworkInfoResponse.Body](#neo.fs.v2.netmap.NetworkInfoResponse.Body)
|
||||
- [LocalNodeInfoRequest](#frost.fs.netmap.LocalNodeInfoRequest)
|
||||
- [LocalNodeInfoRequest.Body](#frost.fs.netmap.LocalNodeInfoRequest.Body)
|
||||
- [LocalNodeInfoResponse](#frost.fs.netmap.LocalNodeInfoResponse)
|
||||
- [LocalNodeInfoResponse.Body](#frost.fs.netmap.LocalNodeInfoResponse.Body)
|
||||
- [NetmapSnapshotRequest](#frost.fs.netmap.NetmapSnapshotRequest)
|
||||
- [NetmapSnapshotRequest.Body](#frost.fs.netmap.NetmapSnapshotRequest.Body)
|
||||
- [NetmapSnapshotResponse](#frost.fs.netmap.NetmapSnapshotResponse)
|
||||
- [NetmapSnapshotResponse.Body](#frost.fs.netmap.NetmapSnapshotResponse.Body)
|
||||
- [NetworkInfoRequest](#frost.fs.netmap.NetworkInfoRequest)
|
||||
- [NetworkInfoRequest.Body](#frost.fs.netmap.NetworkInfoRequest.Body)
|
||||
- [NetworkInfoResponse](#frost.fs.netmap.NetworkInfoResponse)
|
||||
- [NetworkInfoResponse.Body](#frost.fs.netmap.NetworkInfoResponse.Body)
|
||||
|
||||
|
||||
- [netmap/types.proto](#netmap/types.proto)
|
||||
|
||||
- Messages
|
||||
- [Filter](#neo.fs.v2.netmap.Filter)
|
||||
- [Netmap](#neo.fs.v2.netmap.Netmap)
|
||||
- [NetworkConfig](#neo.fs.v2.netmap.NetworkConfig)
|
||||
- [NetworkConfig.Parameter](#neo.fs.v2.netmap.NetworkConfig.Parameter)
|
||||
- [NetworkInfo](#neo.fs.v2.netmap.NetworkInfo)
|
||||
- [NodeInfo](#neo.fs.v2.netmap.NodeInfo)
|
||||
- [NodeInfo.Attribute](#neo.fs.v2.netmap.NodeInfo.Attribute)
|
||||
- [PlacementPolicy](#neo.fs.v2.netmap.PlacementPolicy)
|
||||
- [Replica](#neo.fs.v2.netmap.Replica)
|
||||
- [Selector](#neo.fs.v2.netmap.Selector)
|
||||
- [Filter](#frost.fs.netmap.Filter)
|
||||
- [Netmap](#frost.fs.netmap.Netmap)
|
||||
- [NetworkConfig](#frost.fs.netmap.NetworkConfig)
|
||||
- [NetworkConfig.Parameter](#frost.fs.netmap.NetworkConfig.Parameter)
|
||||
- [NetworkInfo](#frost.fs.netmap.NetworkInfo)
|
||||
- [NodeInfo](#frost.fs.netmap.NodeInfo)
|
||||
- [NodeInfo.Attribute](#frost.fs.netmap.NodeInfo.Attribute)
|
||||
- [PlacementPolicy](#frost.fs.netmap.PlacementPolicy)
|
||||
- [Replica](#frost.fs.netmap.Replica)
|
||||
- [Selector](#frost.fs.netmap.Selector)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -49,9 +49,9 @@
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetmapService"></a>
|
||||
<a name="frost.fs.netmap.NetmapService"></a>
|
||||
|
||||
### Service "neo.fs.v2.netmap.NetmapService"
|
||||
### Service "frost.fs.netmap.NetmapService"
|
||||
`NetmapService` provides methods to work with `Network Map` and the
|
||||
information required to build it. The resulting `Network Map` is stored in
|
||||
sidechain `Netmap` smart contract, while related information can be obtained
|
||||
|
@ -80,7 +80,7 @@ information about the server has been successfully read;
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| LocalNodeInfo | [LocalNodeInfoRequest](#neo.fs.v2.netmap.LocalNodeInfoRequest) | [LocalNodeInfoResponse](#neo.fs.v2.netmap.LocalNodeInfoResponse) |
|
||||
| LocalNodeInfo | [LocalNodeInfoRequest](#frost.fs.netmap.LocalNodeInfoRequest) | [LocalNodeInfoResponse](#frost.fs.netmap.LocalNodeInfoResponse) |
|
||||
#### Method NetworkInfo
|
||||
|
||||
Read recent information about the FrostFS network.
|
||||
|
@ -92,7 +92,7 @@ information about the current network state has been successfully read;
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| NetworkInfo | [NetworkInfoRequest](#neo.fs.v2.netmap.NetworkInfoRequest) | [NetworkInfoResponse](#neo.fs.v2.netmap.NetworkInfoResponse) |
|
||||
| NetworkInfo | [NetworkInfoRequest](#frost.fs.netmap.NetworkInfoRequest) | [NetworkInfoResponse](#frost.fs.netmap.NetworkInfoResponse) |
|
||||
#### Method NetmapSnapshot
|
||||
|
||||
Returns network map snapshot of the current FrostFS epoch.
|
||||
|
@ -104,11 +104,11 @@ information about the current network map has been successfully read;
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| NetmapSnapshot | [NetmapSnapshotRequest](#neo.fs.v2.netmap.NetmapSnapshotRequest) | [NetmapSnapshotResponse](#neo.fs.v2.netmap.NetmapSnapshotResponse) |
|
||||
| NetmapSnapshot | [NetmapSnapshotRequest](#frost.fs.netmap.NetmapSnapshotRequest) | [NetmapSnapshotResponse](#frost.fs.netmap.NetmapSnapshotResponse) |
|
||||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.LocalNodeInfoRequest"></a>
|
||||
<a name="frost.fs.netmap.LocalNodeInfoRequest"></a>
|
||||
|
||||
### Message LocalNodeInfoRequest
|
||||
Get NodeInfo structure directly from a particular node
|
||||
|
@ -116,19 +116,19 @@ Get NodeInfo structure directly from a particular node
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [LocalNodeInfoRequest.Body](#neo.fs.v2.netmap.LocalNodeInfoRequest.Body) | | Body of the LocalNodeInfo request message |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [LocalNodeInfoRequest.Body](#frost.fs.netmap.LocalNodeInfoRequest.Body) | | Body of the LocalNodeInfo request message |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.LocalNodeInfoRequest.Body"></a>
|
||||
<a name="frost.fs.netmap.LocalNodeInfoRequest.Body"></a>
|
||||
|
||||
### Message LocalNodeInfoRequest.Body
|
||||
LocalNodeInfo request body is empty.
|
||||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.LocalNodeInfoResponse"></a>
|
||||
<a name="frost.fs.netmap.LocalNodeInfoResponse"></a>
|
||||
|
||||
### Message LocalNodeInfoResponse
|
||||
Local Node Info, including API Version in use
|
||||
|
@ -136,12 +136,12 @@ Local Node Info, including API Version in use
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [LocalNodeInfoResponse.Body](#neo.fs.v2.netmap.LocalNodeInfoResponse.Body) | | Body of the balance response message. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [LocalNodeInfoResponse.Body](#frost.fs.netmap.LocalNodeInfoResponse.Body) | | Body of the balance response message. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.LocalNodeInfoResponse.Body"></a>
|
||||
<a name="frost.fs.netmap.LocalNodeInfoResponse.Body"></a>
|
||||
|
||||
### Message LocalNodeInfoResponse.Body
|
||||
Local Node Info, including API Version in use.
|
||||
|
@ -149,11 +149,11 @@ Local Node Info, including API Version in use.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | Latest FrostFS API version in use |
|
||||
| node_info | [NodeInfo](#neo.fs.v2.netmap.NodeInfo) | | NodeInfo structure with recent information from node itself |
|
||||
| version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | Latest FrostFS API version in use |
|
||||
| node_info | [NodeInfo](#frost.fs.netmap.NodeInfo) | | NodeInfo structure with recent information from node itself |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetmapSnapshotRequest"></a>
|
||||
<a name="frost.fs.netmap.NetmapSnapshotRequest"></a>
|
||||
|
||||
### Message NetmapSnapshotRequest
|
||||
Get netmap snapshot request
|
||||
|
@ -161,19 +161,19 @@ Get netmap snapshot request
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [NetmapSnapshotRequest.Body](#neo.fs.v2.netmap.NetmapSnapshotRequest.Body) | | Body of get netmap snapshot request message. |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [NetmapSnapshotRequest.Body](#frost.fs.netmap.NetmapSnapshotRequest.Body) | | Body of get netmap snapshot request message. |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetmapSnapshotRequest.Body"></a>
|
||||
<a name="frost.fs.netmap.NetmapSnapshotRequest.Body"></a>
|
||||
|
||||
### Message NetmapSnapshotRequest.Body
|
||||
Get netmap snapshot request body.
|
||||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetmapSnapshotResponse"></a>
|
||||
<a name="frost.fs.netmap.NetmapSnapshotResponse"></a>
|
||||
|
||||
### Message NetmapSnapshotResponse
|
||||
Response with current netmap snapshot
|
||||
|
@ -181,12 +181,12 @@ Response with current netmap snapshot
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [NetmapSnapshotResponse.Body](#neo.fs.v2.netmap.NetmapSnapshotResponse.Body) | | Body of get netmap snapshot response message. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [NetmapSnapshotResponse.Body](#frost.fs.netmap.NetmapSnapshotResponse.Body) | | Body of get netmap snapshot response message. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetmapSnapshotResponse.Body"></a>
|
||||
<a name="frost.fs.netmap.NetmapSnapshotResponse.Body"></a>
|
||||
|
||||
### Message NetmapSnapshotResponse.Body
|
||||
Get netmap snapshot response body
|
||||
|
@ -194,10 +194,10 @@ Get netmap snapshot response body
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| netmap | [Netmap](#neo.fs.v2.netmap.Netmap) | | Structure of the requested network map. |
|
||||
| netmap | [Netmap](#frost.fs.netmap.Netmap) | | Structure of the requested network map. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetworkInfoRequest"></a>
|
||||
<a name="frost.fs.netmap.NetworkInfoRequest"></a>
|
||||
|
||||
### Message NetworkInfoRequest
|
||||
Get NetworkInfo structure with the network view from a particular node.
|
||||
|
@ -205,19 +205,19 @@ Get NetworkInfo structure with the network view from a particular node.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [NetworkInfoRequest.Body](#neo.fs.v2.netmap.NetworkInfoRequest.Body) | | Body of the NetworkInfo request message |
|
||||
| meta_header | [neo.fs.v2.session.RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [neo.fs.v2.session.RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [NetworkInfoRequest.Body](#frost.fs.netmap.NetworkInfoRequest.Body) | | Body of the NetworkInfo request message |
|
||||
| meta_header | [frost.fs.session.RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [frost.fs.session.RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetworkInfoRequest.Body"></a>
|
||||
<a name="frost.fs.netmap.NetworkInfoRequest.Body"></a>
|
||||
|
||||
### Message NetworkInfoRequest.Body
|
||||
NetworkInfo request body is empty.
|
||||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetworkInfoResponse"></a>
|
||||
<a name="frost.fs.netmap.NetworkInfoResponse"></a>
|
||||
|
||||
### Message NetworkInfoResponse
|
||||
Response with NetworkInfo structure including current epoch and
|
||||
|
@ -226,12 +226,12 @@ sidechain magic number.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [NetworkInfoResponse.Body](#neo.fs.v2.netmap.NetworkInfoResponse.Body) | | Body of the NetworkInfo response message. |
|
||||
| meta_header | [neo.fs.v2.session.ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. |
|
||||
| verify_header | [neo.fs.v2.session.ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [NetworkInfoResponse.Body](#frost.fs.netmap.NetworkInfoResponse.Body) | | Body of the NetworkInfo response message. |
|
||||
| meta_header | [frost.fs.session.ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect response execution. |
|
||||
| verify_header | [frost.fs.session.ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetworkInfoResponse.Body"></a>
|
||||
<a name="frost.fs.netmap.NetworkInfoResponse.Body"></a>
|
||||
|
||||
### Message NetworkInfoResponse.Body
|
||||
Information about the network.
|
||||
|
@ -239,7 +239,7 @@ Information about the network.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| network_info | [NetworkInfo](#neo.fs.v2.netmap.NetworkInfo) | | NetworkInfo structure with recent information. |
|
||||
| network_info | [NetworkInfo](#frost.fs.netmap.NetworkInfo) | | NetworkInfo structure with recent information. |
|
||||
|
||||
<!-- end messages -->
|
||||
|
||||
|
@ -256,7 +256,7 @@ Information about the network.
|
|||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.Filter"></a>
|
||||
<a name="frost.fs.netmap.Filter"></a>
|
||||
|
||||
### Message Filter
|
||||
This filter will return the subset of nodes from `NetworkMap` or another
|
||||
|
@ -267,12 +267,12 @@ filter's results that will satisfy filter's conditions.
|
|||
| ----- | ---- | ----- | ----------- |
|
||||
| name | [string](#string) | | Name of the filter or a reference to a named filter. '*' means application to the whole unfiltered NetworkMap. At top level it's used as a filter name. At lower levels it's considered to be a reference to another named filter |
|
||||
| key | [string](#string) | | Key to filter |
|
||||
| op | [Operation](#neo.fs.v2.netmap.Operation) | | Filtering operation |
|
||||
| op | [Operation](#frost.fs.netmap.Operation) | | Filtering operation |
|
||||
| value | [string](#string) | | Value to match |
|
||||
| filters | [Filter](#neo.fs.v2.netmap.Filter) | repeated | List of inner filters. Top level operation will be applied to the whole list. |
|
||||
| filters | [Filter](#frost.fs.netmap.Filter) | repeated | List of inner filters. Top level operation will be applied to the whole list. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.Netmap"></a>
|
||||
<a name="frost.fs.netmap.Netmap"></a>
|
||||
|
||||
### Message Netmap
|
||||
Network map structure
|
||||
|
@ -281,10 +281,10 @@ Network map structure
|
|||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| epoch | [uint64](#uint64) | | Network map revision number. |
|
||||
| nodes | [NodeInfo](#neo.fs.v2.netmap.NodeInfo) | repeated | Nodes presented in network. |
|
||||
| nodes | [NodeInfo](#frost.fs.netmap.NodeInfo) | repeated | Nodes presented in network. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetworkConfig"></a>
|
||||
<a name="frost.fs.netmap.NetworkConfig"></a>
|
||||
|
||||
### Message NetworkConfig
|
||||
FrostFS network configuration
|
||||
|
@ -292,10 +292,10 @@ FrostFS network configuration
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| parameters | [NetworkConfig.Parameter](#neo.fs.v2.netmap.NetworkConfig.Parameter) | repeated | List of parameter values |
|
||||
| parameters | [NetworkConfig.Parameter](#frost.fs.netmap.NetworkConfig.Parameter) | repeated | List of parameter values |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetworkConfig.Parameter"></a>
|
||||
<a name="frost.fs.netmap.NetworkConfig.Parameter"></a>
|
||||
|
||||
### Message NetworkConfig.Parameter
|
||||
Single configuration parameter. Key MUST be network-unique.
|
||||
|
@ -377,7 +377,7 @@ System parameters:
|
|||
| value | [bytes](#bytes) | | Parameter value |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NetworkInfo"></a>
|
||||
<a name="frost.fs.netmap.NetworkInfo"></a>
|
||||
|
||||
### Message NetworkInfo
|
||||
Information about FrostFS network
|
||||
|
@ -388,10 +388,10 @@ Information about FrostFS network
|
|||
| current_epoch | [uint64](#uint64) | | Number of the current epoch in the FrostFS network |
|
||||
| magic_number | [uint64](#uint64) | | Magic number of the sidechain of the FrostFS network |
|
||||
| ms_per_block | [int64](#int64) | | MillisecondsPerBlock network parameter of the sidechain of the FrostFS network |
|
||||
| network_config | [NetworkConfig](#neo.fs.v2.netmap.NetworkConfig) | | FrostFS network configuration |
|
||||
| network_config | [NetworkConfig](#frost.fs.netmap.NetworkConfig) | | FrostFS network configuration |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NodeInfo"></a>
|
||||
<a name="frost.fs.netmap.NodeInfo"></a>
|
||||
|
||||
### Message NodeInfo
|
||||
FrostFS node description
|
||||
|
@ -401,11 +401,11 @@ FrostFS node description
|
|||
| ----- | ---- | ----- | ----------- |
|
||||
| public_key | [bytes](#bytes) | | Public key of the FrostFS node in a binary format |
|
||||
| addresses | [string](#string) | repeated | Ways to connect to a node |
|
||||
| attributes | [NodeInfo.Attribute](#neo.fs.v2.netmap.NodeInfo.Attribute) | repeated | Carries list of the FrostFS node attributes in a key-value form. Key name must be a node-unique valid UTF-8 string. Value can't be empty. NodeInfo structures with duplicated attribute names or attributes with empty values will be considered invalid. |
|
||||
| state | [NodeInfo.State](#neo.fs.v2.netmap.NodeInfo.State) | | Carries state of the FrostFS node |
|
||||
| attributes | [NodeInfo.Attribute](#frost.fs.netmap.NodeInfo.Attribute) | repeated | Carries list of the FrostFS node attributes in a key-value form. Key name must be a node-unique valid UTF-8 string. Value can't be empty. NodeInfo structures with duplicated attribute names or attributes with empty values will be considered invalid. |
|
||||
| state | [NodeInfo.State](#frost.fs.netmap.NodeInfo.State) | | Carries state of the FrostFS node |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NodeInfo.Attribute"></a>
|
||||
<a name="frost.fs.netmap.NodeInfo.Attribute"></a>
|
||||
|
||||
### Message NodeInfo.Attribute
|
||||
Administrator-defined Attributes of the FrostFS Storage Node.
|
||||
|
@ -484,7 +484,7 @@ corresponding section in FrostFS Technical Specification.
|
|||
| parents | [string](#string) | repeated | Parent keys, if any. For example for `City` it could be `Region` and `Country`. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.PlacementPolicy"></a>
|
||||
<a name="frost.fs.netmap.PlacementPolicy"></a>
|
||||
|
||||
### Message PlacementPolicy
|
||||
Set of rules to select a subset of nodes from `NetworkMap` able to store
|
||||
|
@ -494,14 +494,14 @@ storage policy definition languages.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| replicas | [Replica](#neo.fs.v2.netmap.Replica) | repeated | Rules to set number of object replicas and place each one into a named bucket |
|
||||
| replicas | [Replica](#frost.fs.netmap.Replica) | repeated | Rules to set number of object replicas and place each one into a named bucket |
|
||||
| container_backup_factor | [uint32](#uint32) | | Container backup factor controls how deep FrostFS will search for nodes alternatives to include into container's nodes subset |
|
||||
| selectors | [Selector](#neo.fs.v2.netmap.Selector) | repeated | Set of Selectors to form the container's nodes subset |
|
||||
| filters | [Filter](#neo.fs.v2.netmap.Filter) | repeated | List of named filters to reference in selectors |
|
||||
| selectors | [Selector](#frost.fs.netmap.Selector) | repeated | Set of Selectors to form the container's nodes subset |
|
||||
| filters | [Filter](#frost.fs.netmap.Filter) | repeated | List of named filters to reference in selectors |
|
||||
| unique | [bool](#bool) | | Unique flag defines non-overlapping application for replicas |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.Replica"></a>
|
||||
<a name="frost.fs.netmap.Replica"></a>
|
||||
|
||||
### Message Replica
|
||||
Number of object replicas in a set of nodes from the defined selector. If no
|
||||
|
@ -517,7 +517,7 @@ default.
|
|||
| ec_parity_count | [uint32](#uint32) | | Parity shards count |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.Selector"></a>
|
||||
<a name="frost.fs.netmap.Selector"></a>
|
||||
|
||||
### Message Selector
|
||||
Selector chooses a number of nodes from the bucket taking the nearest nodes
|
||||
|
@ -528,14 +528,14 @@ to the provided `ContainerID` by hash distance.
|
|||
| ----- | ---- | ----- | ----------- |
|
||||
| name | [string](#string) | | Selector name to reference in object placement section |
|
||||
| count | [uint32](#uint32) | | How many nodes to select from the bucket |
|
||||
| clause | [Clause](#neo.fs.v2.netmap.Clause) | | Selector modifier showing how to form a bucket |
|
||||
| clause | [Clause](#frost.fs.netmap.Clause) | | Selector modifier showing how to form a bucket |
|
||||
| attribute | [string](#string) | | Bucket attribute to select from |
|
||||
| filter | [string](#string) | | Filter reference to select from |
|
||||
|
||||
<!-- end messages -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.Clause"></a>
|
||||
<a name="frost.fs.netmap.Clause"></a>
|
||||
|
||||
### Clause
|
||||
Selector modifier shows how the node set will be formed. By default selector
|
||||
|
@ -550,7 +550,7 @@ hash distance.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.NodeInfo.State"></a>
|
||||
<a name="frost.fs.netmap.NodeInfo.State"></a>
|
||||
|
||||
### NodeInfo.State
|
||||
Represents the enumeration of various states of the FrostFS node.
|
||||
|
@ -564,7 +564,7 @@ Represents the enumeration of various states of the FrostFS node.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.netmap.Operation"></a>
|
||||
<a name="frost.fs.netmap.Operation"></a>
|
||||
|
||||
### Operation
|
||||
Operations on filters
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
- [refs/types.proto](#refs/types.proto)
|
||||
|
||||
- Messages
|
||||
- [Address](#neo.fs.v2.refs.Address)
|
||||
- [Checksum](#neo.fs.v2.refs.Checksum)
|
||||
- [ContainerID](#neo.fs.v2.refs.ContainerID)
|
||||
- [ObjectID](#neo.fs.v2.refs.ObjectID)
|
||||
- [OwnerID](#neo.fs.v2.refs.OwnerID)
|
||||
- [Signature](#neo.fs.v2.refs.Signature)
|
||||
- [SignatureRFC6979](#neo.fs.v2.refs.SignatureRFC6979)
|
||||
- [Version](#neo.fs.v2.refs.Version)
|
||||
- [Address](#frost.fs.refs.Address)
|
||||
- [Checksum](#frost.fs.refs.Checksum)
|
||||
- [ContainerID](#frost.fs.refs.ContainerID)
|
||||
- [ObjectID](#frost.fs.refs.ObjectID)
|
||||
- [OwnerID](#frost.fs.refs.OwnerID)
|
||||
- [Signature](#frost.fs.refs.Signature)
|
||||
- [SignatureRFC6979](#frost.fs.refs.SignatureRFC6979)
|
||||
- [Version](#frost.fs.refs.Version)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -29,7 +29,7 @@
|
|||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.refs.Address"></a>
|
||||
<a name="frost.fs.refs.Address"></a>
|
||||
|
||||
### Message Address
|
||||
Objects in FrostFS are addressed by their ContainerID and ObjectID.
|
||||
|
@ -40,11 +40,11 @@ String presentation of `Address` is a concatenation of string encoded
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| container_id | [ContainerID](#neo.fs.v2.refs.ContainerID) | | Container identifier |
|
||||
| object_id | [ObjectID](#neo.fs.v2.refs.ObjectID) | | Object identifier |
|
||||
| container_id | [ContainerID](#frost.fs.refs.ContainerID) | | Container identifier |
|
||||
| object_id | [ObjectID](#frost.fs.refs.ObjectID) | | Object identifier |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.refs.Checksum"></a>
|
||||
<a name="frost.fs.refs.Checksum"></a>
|
||||
|
||||
### Message Checksum
|
||||
Checksum message.
|
||||
|
@ -58,11 +58,11 @@ Depending on checksum algorithm type, the string presentation may vary:
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| type | [ChecksumType](#neo.fs.v2.refs.ChecksumType) | | Checksum algorithm type |
|
||||
| type | [ChecksumType](#frost.fs.refs.ChecksumType) | | Checksum algorithm type |
|
||||
| sum | [bytes](#bytes) | | Checksum itself |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.refs.ContainerID"></a>
|
||||
<a name="frost.fs.refs.ContainerID"></a>
|
||||
|
||||
### Message ContainerID
|
||||
FrostFS container identifier. Container structures are immutable and
|
||||
|
@ -87,7 +87,7 @@ with/without paddings are accepted.
|
|||
| value | [bytes](#bytes) | | Container identifier in a binary format. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.refs.ObjectID"></a>
|
||||
<a name="frost.fs.refs.ObjectID"></a>
|
||||
|
||||
### Message ObjectID
|
||||
FrostFS Object unique identifier. Objects are immutable and
|
||||
|
@ -114,7 +114,7 @@ with/without paddings are accepted.
|
|||
| value | [bytes](#bytes) | | Object identifier in a binary format |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.refs.OwnerID"></a>
|
||||
<a name="frost.fs.refs.OwnerID"></a>
|
||||
|
||||
### Message OwnerID
|
||||
`OwnerID` is a derivative of a user's main public key. The transformation
|
||||
|
@ -139,7 +139,7 @@ with/without paddings are accepted.
|
|||
| value | [bytes](#bytes) | | Identifier of the container owner in a binary format |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.refs.Signature"></a>
|
||||
<a name="frost.fs.refs.Signature"></a>
|
||||
|
||||
### Message Signature
|
||||
Signature of something in FrostFS.
|
||||
|
@ -149,10 +149,10 @@ Signature of something in FrostFS.
|
|||
| ----- | ---- | ----- | ----------- |
|
||||
| key | [bytes](#bytes) | | Public key used for signing |
|
||||
| sign | [bytes](#bytes) | | Signature |
|
||||
| scheme | [SignatureScheme](#neo.fs.v2.refs.SignatureScheme) | | Scheme contains digital signature scheme identifier |
|
||||
| scheme | [SignatureScheme](#frost.fs.refs.SignatureScheme) | | Scheme contains digital signature scheme identifier |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.refs.SignatureRFC6979"></a>
|
||||
<a name="frost.fs.refs.SignatureRFC6979"></a>
|
||||
|
||||
### Message SignatureRFC6979
|
||||
RFC 6979 signature.
|
||||
|
@ -164,7 +164,7 @@ RFC 6979 signature.
|
|||
| sign | [bytes](#bytes) | | Deterministic ECDSA with SHA-256 hashing |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.refs.Version"></a>
|
||||
<a name="frost.fs.refs.Version"></a>
|
||||
|
||||
### Message Version
|
||||
API version used by a node.
|
||||
|
@ -182,7 +182,7 @@ number.
|
|||
<!-- end messages -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.refs.ChecksumType"></a>
|
||||
<a name="frost.fs.refs.ChecksumType"></a>
|
||||
|
||||
### ChecksumType
|
||||
Checksum algorithm type.
|
||||
|
@ -195,7 +195,7 @@ Checksum algorithm type.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.refs.SignatureScheme"></a>
|
||||
<a name="frost.fs.refs.SignatureScheme"></a>
|
||||
|
||||
### SignatureScheme
|
||||
Signature scheme describes digital signing scheme used for (key, signature)
|
||||
|
|
|
@ -5,29 +5,29 @@
|
|||
|
||||
- [session/service.proto](#session/service.proto)
|
||||
- Services
|
||||
- [SessionService](#neo.fs.v2.session.SessionService)
|
||||
- [SessionService](#frost.fs.session.SessionService)
|
||||
|
||||
- Messages
|
||||
- [CreateRequest](#neo.fs.v2.session.CreateRequest)
|
||||
- [CreateRequest.Body](#neo.fs.v2.session.CreateRequest.Body)
|
||||
- [CreateResponse](#neo.fs.v2.session.CreateResponse)
|
||||
- [CreateResponse.Body](#neo.fs.v2.session.CreateResponse.Body)
|
||||
- [CreateRequest](#frost.fs.session.CreateRequest)
|
||||
- [CreateRequest.Body](#frost.fs.session.CreateRequest.Body)
|
||||
- [CreateResponse](#frost.fs.session.CreateResponse)
|
||||
- [CreateResponse.Body](#frost.fs.session.CreateResponse.Body)
|
||||
|
||||
|
||||
- [session/types.proto](#session/types.proto)
|
||||
|
||||
- Messages
|
||||
- [ContainerSessionContext](#neo.fs.v2.session.ContainerSessionContext)
|
||||
- [ObjectSessionContext](#neo.fs.v2.session.ObjectSessionContext)
|
||||
- [ObjectSessionContext.Target](#neo.fs.v2.session.ObjectSessionContext.Target)
|
||||
- [RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader)
|
||||
- [RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader)
|
||||
- [ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader)
|
||||
- [ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader)
|
||||
- [SessionToken](#neo.fs.v2.session.SessionToken)
|
||||
- [SessionToken.Body](#neo.fs.v2.session.SessionToken.Body)
|
||||
- [SessionToken.Body.TokenLifetime](#neo.fs.v2.session.SessionToken.Body.TokenLifetime)
|
||||
- [XHeader](#neo.fs.v2.session.XHeader)
|
||||
- [ContainerSessionContext](#frost.fs.session.ContainerSessionContext)
|
||||
- [ObjectSessionContext](#frost.fs.session.ObjectSessionContext)
|
||||
- [ObjectSessionContext.Target](#frost.fs.session.ObjectSessionContext.Target)
|
||||
- [RequestMetaHeader](#frost.fs.session.RequestMetaHeader)
|
||||
- [RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader)
|
||||
- [ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader)
|
||||
- [ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader)
|
||||
- [SessionToken](#frost.fs.session.SessionToken)
|
||||
- [SessionToken.Body](#frost.fs.session.SessionToken.Body)
|
||||
- [SessionToken.Body.TokenLifetime](#frost.fs.session.SessionToken.Body.TokenLifetime)
|
||||
- [XHeader](#frost.fs.session.XHeader)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -42,9 +42,9 @@
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.SessionService"></a>
|
||||
<a name="frost.fs.session.SessionService"></a>
|
||||
|
||||
### Service "neo.fs.v2.session.SessionService"
|
||||
### Service "frost.fs.session.SessionService"
|
||||
`SessionService` allows to establish a temporary trust relationship between
|
||||
two peer nodes and generate a `SessionToken` as the proof of trust to be
|
||||
attached in requests for further verification. Please see corresponding
|
||||
|
@ -66,11 +66,11 @@ session has been successfully opened;
|
|||
|
||||
| Name | Input | Output |
|
||||
| ---- | ----- | ------ |
|
||||
| Create | [CreateRequest](#neo.fs.v2.session.CreateRequest) | [CreateResponse](#neo.fs.v2.session.CreateResponse) |
|
||||
| Create | [CreateRequest](#frost.fs.session.CreateRequest) | [CreateResponse](#frost.fs.session.CreateResponse) |
|
||||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.CreateRequest"></a>
|
||||
<a name="frost.fs.session.CreateRequest"></a>
|
||||
|
||||
### Message CreateRequest
|
||||
Information necessary for opening a session.
|
||||
|
@ -78,12 +78,12 @@ Information necessary for opening a session.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [CreateRequest.Body](#neo.fs.v2.session.CreateRequest.Body) | | Body of a create session token request message. |
|
||||
| meta_header | [RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [CreateRequest.Body](#frost.fs.session.CreateRequest.Body) | | Body of a create session token request message. |
|
||||
| meta_header | [RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | Carries request meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Carries request verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.CreateRequest.Body"></a>
|
||||
<a name="frost.fs.session.CreateRequest.Body"></a>
|
||||
|
||||
### Message CreateRequest.Body
|
||||
Session creation request body
|
||||
|
@ -91,11 +91,11 @@ Session creation request body
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Session initiating user's or node's key derived `OwnerID` |
|
||||
| owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Session initiating user's or node's key derived `OwnerID` |
|
||||
| expiration | [uint64](#uint64) | | Session expiration `Epoch` |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.CreateResponse"></a>
|
||||
<a name="frost.fs.session.CreateResponse"></a>
|
||||
|
||||
### Message CreateResponse
|
||||
Information about the opened session.
|
||||
|
@ -103,12 +103,12 @@ Information about the opened session.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [CreateResponse.Body](#neo.fs.v2.session.CreateResponse.Body) | | Body of create session token response message. |
|
||||
| meta_header | [ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
| body | [CreateResponse.Body](#frost.fs.session.CreateResponse.Body) | | Body of create session token response message. |
|
||||
| meta_header | [ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | Carries response meta information. Header data is used only to regulate message transport and does not affect request execution. |
|
||||
| verify_header | [ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Carries response verification information. This header is used to authenticate the nodes of the message route and check the correctness of transmission. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.CreateResponse.Body"></a>
|
||||
<a name="frost.fs.session.CreateResponse.Body"></a>
|
||||
|
||||
### Message CreateResponse.Body
|
||||
Session creation response body
|
||||
|
@ -134,7 +134,7 @@ Session creation response body
|
|||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.ContainerSessionContext"></a>
|
||||
<a name="frost.fs.session.ContainerSessionContext"></a>
|
||||
|
||||
### Message ContainerSessionContext
|
||||
Context information for Session Tokens related to ContainerService requests.
|
||||
|
@ -142,12 +142,12 @@ Context information for Session Tokens related to ContainerService requests.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| verb | [ContainerSessionContext.Verb](#neo.fs.v2.session.ContainerSessionContext.Verb) | | Type of request for which the token is issued |
|
||||
| verb | [ContainerSessionContext.Verb](#frost.fs.session.ContainerSessionContext.Verb) | | Type of request for which the token is issued |
|
||||
| wildcard | [bool](#bool) | | Spreads the action to all owner containers. If set, container_id field is ignored. |
|
||||
| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Particular container to which the action applies. Ignored if wildcard flag is set. |
|
||||
| container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Particular container to which the action applies. Ignored if wildcard flag is set. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.ObjectSessionContext"></a>
|
||||
<a name="frost.fs.session.ObjectSessionContext"></a>
|
||||
|
||||
### Message ObjectSessionContext
|
||||
Context information for Session Tokens related to ObjectService requests
|
||||
|
@ -155,11 +155,11 @@ Context information for Session Tokens related to ObjectService requests
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| verb | [ObjectSessionContext.Verb](#neo.fs.v2.session.ObjectSessionContext.Verb) | | Type of request for which the token is issued |
|
||||
| target | [ObjectSessionContext.Target](#neo.fs.v2.session.ObjectSessionContext.Target) | | Object session target. MUST be correctly formed and set. If `objects` field is not empty, then the session applies only to these elements, otherwise, to all objects from the specified container. |
|
||||
| verb | [ObjectSessionContext.Verb](#frost.fs.session.ObjectSessionContext.Verb) | | Type of request for which the token is issued |
|
||||
| target | [ObjectSessionContext.Target](#frost.fs.session.ObjectSessionContext.Target) | | Object session target. MUST be correctly formed and set. If `objects` field is not empty, then the session applies only to these elements, otherwise, to all objects from the specified container. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.ObjectSessionContext.Target"></a>
|
||||
<a name="frost.fs.session.ObjectSessionContext.Target"></a>
|
||||
|
||||
### Message ObjectSessionContext.Target
|
||||
Carries objects involved in the object session.
|
||||
|
@ -167,11 +167,11 @@ Carries objects involved in the object session.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| container | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Indicates which container the session is spread to. Field MUST be set and correct. |
|
||||
| objects | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | repeated | Indicates which objects the session is spread to. Objects are expected to be stored in the FrostFS container referenced by `container` field. Each element MUST have correct format. |
|
||||
| container | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Indicates which container the session is spread to. Field MUST be set and correct. |
|
||||
| objects | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | repeated | Indicates which objects the session is spread to. Objects are expected to be stored in the FrostFS container referenced by `container` field. Each element MUST have correct format. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.RequestMetaHeader"></a>
|
||||
<a name="frost.fs.session.RequestMetaHeader"></a>
|
||||
|
||||
### Message RequestMetaHeader
|
||||
Meta information attached to the request. When forwarded between peers,
|
||||
|
@ -180,17 +180,17 @@ request meta headers are folded in matryoshka style.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | Peer's API version used |
|
||||
| version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | Peer's API version used |
|
||||
| epoch | [uint64](#uint64) | | Peer's local epoch number. Set to 0 if unknown. |
|
||||
| ttl | [uint32](#uint32) | | Maximum number of intermediate nodes in the request route |
|
||||
| x_headers | [XHeader](#neo.fs.v2.session.XHeader) | repeated | Request X-Headers |
|
||||
| session_token | [SessionToken](#neo.fs.v2.session.SessionToken) | | Session token within which the request is sent |
|
||||
| bearer_token | [neo.fs.v2.acl.BearerToken](#neo.fs.v2.acl.BearerToken) | | `BearerToken` with eACL overrides for the request |
|
||||
| origin | [RequestMetaHeader](#neo.fs.v2.session.RequestMetaHeader) | | `RequestMetaHeader` of the origin request |
|
||||
| x_headers | [XHeader](#frost.fs.session.XHeader) | repeated | Request X-Headers |
|
||||
| session_token | [SessionToken](#frost.fs.session.SessionToken) | | Session token within which the request is sent |
|
||||
| bearer_token | [frost.fs.acl.BearerToken](#frost.fs.acl.BearerToken) | | `BearerToken` with eACL overrides for the request |
|
||||
| origin | [RequestMetaHeader](#frost.fs.session.RequestMetaHeader) | | `RequestMetaHeader` of the origin request |
|
||||
| magic_number | [uint64](#uint64) | | FrostFS network magic. Must match the value for the network that the server belongs to. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.RequestVerificationHeader"></a>
|
||||
<a name="frost.fs.session.RequestVerificationHeader"></a>
|
||||
|
||||
### Message RequestVerificationHeader
|
||||
Verification info for the request signed by all intermediate nodes.
|
||||
|
@ -198,13 +198,13 @@ Verification info for the request signed by all intermediate nodes.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Request Body signature. Should be generated once by the request initiator. |
|
||||
| meta_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Request Meta signature is added and signed by each intermediate node |
|
||||
| origin_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signature of previous hops |
|
||||
| origin | [RequestVerificationHeader](#neo.fs.v2.session.RequestVerificationHeader) | | Chain of previous hops signatures |
|
||||
| body_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Request Body signature. Should be generated once by the request initiator. |
|
||||
| meta_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Request Meta signature is added and signed by each intermediate node |
|
||||
| origin_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signature of previous hops |
|
||||
| origin | [RequestVerificationHeader](#frost.fs.session.RequestVerificationHeader) | | Chain of previous hops signatures |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.ResponseMetaHeader"></a>
|
||||
<a name="frost.fs.session.ResponseMetaHeader"></a>
|
||||
|
||||
### Message ResponseMetaHeader
|
||||
Information about the response
|
||||
|
@ -212,15 +212,15 @@ Information about the response
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | Peer's API version used |
|
||||
| version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | Peer's API version used |
|
||||
| epoch | [uint64](#uint64) | | Peer's local epoch number |
|
||||
| ttl | [uint32](#uint32) | | Maximum number of intermediate nodes in the request route |
|
||||
| x_headers | [XHeader](#neo.fs.v2.session.XHeader) | repeated | Response X-Headers |
|
||||
| origin | [ResponseMetaHeader](#neo.fs.v2.session.ResponseMetaHeader) | | `ResponseMetaHeader` of the origin request |
|
||||
| status | [neo.fs.v2.status.Status](#neo.fs.v2.status.Status) | | Status return |
|
||||
| x_headers | [XHeader](#frost.fs.session.XHeader) | repeated | Response X-Headers |
|
||||
| origin | [ResponseMetaHeader](#frost.fs.session.ResponseMetaHeader) | | `ResponseMetaHeader` of the origin request |
|
||||
| status | [frost.fs.status.Status](#frost.fs.status.Status) | | Status return |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.ResponseVerificationHeader"></a>
|
||||
<a name="frost.fs.session.ResponseVerificationHeader"></a>
|
||||
|
||||
### Message ResponseVerificationHeader
|
||||
Verification info for the response signed by all intermediate nodes
|
||||
|
@ -228,13 +228,13 @@ Verification info for the response signed by all intermediate nodes
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Response Body signature. Should be generated once by an answering node. |
|
||||
| meta_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Response Meta signature is added and signed by each intermediate node |
|
||||
| origin_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signature of previous hops |
|
||||
| origin | [ResponseVerificationHeader](#neo.fs.v2.session.ResponseVerificationHeader) | | Chain of previous hops signatures |
|
||||
| body_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Response Body signature. Should be generated once by an answering node. |
|
||||
| meta_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Response Meta signature is added and signed by each intermediate node |
|
||||
| origin_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signature of previous hops |
|
||||
| origin | [ResponseVerificationHeader](#frost.fs.session.ResponseVerificationHeader) | | Chain of previous hops signatures |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.SessionToken"></a>
|
||||
<a name="frost.fs.session.SessionToken"></a>
|
||||
|
||||
### Message SessionToken
|
||||
FrostFS Session Token.
|
||||
|
@ -242,11 +242,11 @@ FrostFS Session Token.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| body | [SessionToken.Body](#neo.fs.v2.session.SessionToken.Body) | | Session Token contains the proof of trust between peers to be attached in requests for further verification. Please see corresponding section of FrostFS Technical Specification for details. |
|
||||
| signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signature of `SessionToken` information |
|
||||
| body | [SessionToken.Body](#frost.fs.session.SessionToken.Body) | | Session Token contains the proof of trust between peers to be attached in requests for further verification. Please see corresponding section of FrostFS Technical Specification for details. |
|
||||
| signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signature of `SessionToken` information |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.SessionToken.Body"></a>
|
||||
<a name="frost.fs.session.SessionToken.Body"></a>
|
||||
|
||||
### Message SessionToken.Body
|
||||
Session Token body
|
||||
|
@ -255,14 +255,14 @@ Session Token body
|
|||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| id | [bytes](#bytes) | | Token identifier is a valid UUIDv4 in binary form |
|
||||
| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Identifier of the session initiator |
|
||||
| lifetime | [SessionToken.Body.TokenLifetime](#neo.fs.v2.session.SessionToken.Body.TokenLifetime) | | Lifetime of the session |
|
||||
| owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Identifier of the session initiator |
|
||||
| lifetime | [SessionToken.Body.TokenLifetime](#frost.fs.session.SessionToken.Body.TokenLifetime) | | Lifetime of the session |
|
||||
| session_key | [bytes](#bytes) | | Public key used in session |
|
||||
| object | [ObjectSessionContext](#neo.fs.v2.session.ObjectSessionContext) | | ObjectService session context |
|
||||
| container | [ContainerSessionContext](#neo.fs.v2.session.ContainerSessionContext) | | ContainerService session context |
|
||||
| object | [ObjectSessionContext](#frost.fs.session.ObjectSessionContext) | | ObjectService session context |
|
||||
| container | [ContainerSessionContext](#frost.fs.session.ContainerSessionContext) | | ContainerService session context |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.SessionToken.Body.TokenLifetime"></a>
|
||||
<a name="frost.fs.session.SessionToken.Body.TokenLifetime"></a>
|
||||
|
||||
### Message SessionToken.Body.TokenLifetime
|
||||
Lifetime parameters of the token. Field names taken from rfc7519.
|
||||
|
@ -275,7 +275,7 @@ Lifetime parameters of the token. Field names taken from rfc7519.
|
|||
| iat | [uint64](#uint64) | | Issued at Epoch |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.XHeader"></a>
|
||||
<a name="frost.fs.session.XHeader"></a>
|
||||
|
||||
### Message XHeader
|
||||
Extended headers for Request/Response. They may contain any user-defined
|
||||
|
@ -285,16 +285,14 @@ Key name must be a unique valid UTF-8 string. Value can't be empty. Requests
|
|||
or Responses with duplicated header names or headers with empty values will
|
||||
be considered invalid.
|
||||
|
||||
There are some "well-known" headers starting with `__SYSTEM__` (`__NEOFS__`
|
||||
is deprecated) prefix that affect system behaviour:
|
||||
There are some "well-known" headers starting with
|
||||
`__SYSTEM__` prefix that affect system behaviour:
|
||||
|
||||
* [ __SYSTEM__NETMAP_EPOCH ] \
|
||||
(`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
Netmap epoch to use for object placement calculation. The `value` is string
|
||||
encoded `uint64` in decimal presentation. If set to '0' or not set, the
|
||||
current epoch only will be used.
|
||||
* [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
|
||||
(`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
|
||||
If object can't be found using current epoch's netmap, this header limits
|
||||
how many past epochs the node can look up through. The `value` is string
|
||||
encoded `uint64` in decimal presentation. If set to '0' or not set, only
|
||||
|
@ -309,7 +307,7 @@ is deprecated) prefix that affect system behaviour:
|
|||
<!-- end messages -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.ContainerSessionContext.Verb"></a>
|
||||
<a name="frost.fs.session.ContainerSessionContext.Verb"></a>
|
||||
|
||||
### ContainerSessionContext.Verb
|
||||
Container request verbs
|
||||
|
@ -323,7 +321,7 @@ Container request verbs
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.session.ObjectSessionContext.Verb"></a>
|
||||
<a name="frost.fs.session.ObjectSessionContext.Verb"></a>
|
||||
|
||||
### ObjectSessionContext.Verb
|
||||
Object request verbs
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
- [status/types.proto](#status/types.proto)
|
||||
|
||||
- Messages
|
||||
- [Status](#neo.fs.v2.status.Status)
|
||||
- [Status.Detail](#neo.fs.v2.status.Status.Detail)
|
||||
- [Status](#frost.fs.status.Status)
|
||||
- [Status.Detail](#frost.fs.status.Status.Detail)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -23,7 +23,7 @@
|
|||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.status.Status"></a>
|
||||
<a name="frost.fs.status.Status"></a>
|
||||
|
||||
### Message Status
|
||||
Declares the general format of the status returns of the FrostFS RPC
|
||||
|
@ -59,10 +59,10 @@ should make the return more detailed.
|
|||
| ----- | ---- | ----- | ----------- |
|
||||
| code | [uint32](#uint32) | | The status code |
|
||||
| message | [string](#string) | | Developer-facing error message |
|
||||
| details | [Status.Detail](#neo.fs.v2.status.Status.Detail) | repeated | Data detailing the outcome of the operation. Must be unique by ID. |
|
||||
| details | [Status.Detail](#frost.fs.status.Status.Detail) | repeated | Data detailing the outcome of the operation. Must be unique by ID. |
|
||||
|
||||
|
||||
<a name="neo.fs.v2.status.Status.Detail"></a>
|
||||
<a name="frost.fs.status.Status.Detail"></a>
|
||||
|
||||
### Message Status.Detail
|
||||
Return detail. It contains additional information that can be used to
|
||||
|
@ -79,7 +79,7 @@ covered by the code.
|
|||
<!-- end messages -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.status.APEManager"></a>
|
||||
<a name="frost.fs.status.APEManager"></a>
|
||||
|
||||
### APEManager
|
||||
Section of status for APE manager related operations.
|
||||
|
@ -90,7 +90,7 @@ Section of status for APE manager related operations.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.status.CommonFail"></a>
|
||||
<a name="frost.fs.status.CommonFail"></a>
|
||||
|
||||
### CommonFail
|
||||
Section of failed statuses independent of the operation.
|
||||
|
@ -105,7 +105,7 @@ Section of failed statuses independent of the operation.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.status.Container"></a>
|
||||
<a name="frost.fs.status.Container"></a>
|
||||
|
||||
### Container
|
||||
Section of statuses for container-related operations.
|
||||
|
@ -118,7 +118,7 @@ Section of statuses for container-related operations.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.status.Object"></a>
|
||||
<a name="frost.fs.status.Object"></a>
|
||||
|
||||
### Object
|
||||
Section of statuses for object-related operations.
|
||||
|
@ -134,7 +134,7 @@ Section of statuses for object-related operations.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.status.Section"></a>
|
||||
<a name="frost.fs.status.Section"></a>
|
||||
|
||||
### Section
|
||||
Section identifiers.
|
||||
|
@ -150,7 +150,7 @@ Section identifiers.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.status.Session"></a>
|
||||
<a name="frost.fs.status.Session"></a>
|
||||
|
||||
### Session
|
||||
Section of statuses for session-related operations.
|
||||
|
@ -162,7 +162,7 @@ Section of statuses for session-related operations.
|
|||
|
||||
|
||||
|
||||
<a name="neo.fs.v2.status.Success"></a>
|
||||
<a name="frost.fs.status.Success"></a>
|
||||
|
||||
### Success
|
||||
Section of FrostFS successful return codes.
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
- [tombstone/types.proto](#tombstone/types.proto)
|
||||
|
||||
- Messages
|
||||
- [Tombstone](#neo.fs.v2.tombstone.Tombstone)
|
||||
- [Tombstone](#frost.fs.tombstone.Tombstone)
|
||||
|
||||
|
||||
- [Scalar Value Types](#scalar-value-types)
|
||||
|
@ -22,7 +22,7 @@
|
|||
<!-- end services -->
|
||||
|
||||
|
||||
<a name="neo.fs.v2.tombstone.Tombstone"></a>
|
||||
<a name="frost.fs.tombstone.Tombstone"></a>
|
||||
|
||||
### Message Tombstone
|
||||
Tombstone keeps record of deleted objects for a few epochs until they are
|
||||
|
@ -31,9 +31,9 @@ purged from the FrostFS network.
|
|||
|
||||
| Field | Type | Label | Description |
|
||||
| ----- | ---- | ----- | ----------- |
|
||||
| expiration_epoch | [uint64](#uint64) | | Last FrostFS epoch number of the tombstone lifetime. It's set by the tombstone creator depending on the current FrostFS network settings. A tombstone object must have the same expiration epoch value in `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated) attribute. Otherwise, the tombstone will be rejected by a storage node. |
|
||||
| expiration_epoch | [uint64](#uint64) | | Last FrostFS epoch number of the tombstone lifetime. It's set by the tombstone creator depending on the current FrostFS network settings. A tombstone object must have the same expiration epoch value in `__SYSTEM__EXPIRATION_EPOCH` attribute. Otherwise, the tombstone will be rejected by a storage node. |
|
||||
| split_id | [bytes](#bytes) | | 16 byte UUID used to identify the split object hierarchy parts. Must be unique inside a container. All objects participating in the split must have the same `split_id` value. |
|
||||
| members | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | repeated | List of objects to be deleted. |
|
||||
| members | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | repeated | List of objects to be deleted. |
|
||||
|
||||
<!-- end messages -->
|
||||
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.refs;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc;refs";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Refs";
|
||||
package frost.fs.refs;
|
||||
|
||||
// Objects in FrostFS are addressed by their ContainerID and ObjectID.
|
||||
//
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.session;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc;session";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Session";
|
||||
package frost.fs.session;
|
||||
|
||||
import "refs/types.proto";
|
||||
import "session/types.proto";
|
||||
|
@ -27,7 +24,7 @@ message CreateRequest {
|
|||
// Session creation request body
|
||||
message Body {
|
||||
// Session initiating user's or node's key derived `OwnerID`
|
||||
neo.fs.v2.refs.OwnerID owner_id = 1;
|
||||
frost.fs.refs.OwnerID owner_id = 1;
|
||||
// Session expiration `Epoch`
|
||||
uint64 expiration = 2;
|
||||
}
|
||||
|
@ -36,12 +33,12 @@ message CreateRequest {
|
|||
|
||||
// Carries request meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.RequestMetaHeader meta_header = 2;
|
||||
frost.fs.session.RequestMetaHeader meta_header = 2;
|
||||
|
||||
// Carries request verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.RequestVerificationHeader verify_header = 3;
|
||||
frost.fs.session.RequestVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
||||
// Information about the opened session.
|
||||
|
@ -60,10 +57,10 @@ message CreateResponse {
|
|||
|
||||
// Carries response meta information. Header data is used only to regulate
|
||||
// message transport and does not affect request execution.
|
||||
neo.fs.v2.session.ResponseMetaHeader meta_header = 2;
|
||||
frost.fs.session.ResponseMetaHeader meta_header = 2;
|
||||
|
||||
// Carries response verification information. This header is used to
|
||||
// authenticate the nodes of the message route and check the correctness of
|
||||
// transmission.
|
||||
neo.fs.v2.session.ResponseVerificationHeader verify_header = 3;
|
||||
frost.fs.session.ResponseVerificationHeader verify_header = 3;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.session;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc;session";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Session";
|
||||
package frost.fs.session;
|
||||
|
||||
import "refs/types.proto";
|
||||
import "acl/types.proto";
|
||||
|
@ -96,7 +93,7 @@ message SessionToken {
|
|||
bytes id = 1 [ json_name = "id" ];
|
||||
|
||||
// Identifier of the session initiator
|
||||
neo.fs.v2.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ];
|
||||
frost.fs.refs.OwnerID owner_id = 2 [ json_name = "ownerID" ];
|
||||
|
||||
// Lifetime parameters of the token. Field names taken from rfc7519.
|
||||
message TokenLifetime {
|
||||
|
@ -130,7 +127,7 @@ message SessionToken {
|
|||
Body body = 1 [ json_name = "body" ];
|
||||
|
||||
// Signature of `SessionToken` information
|
||||
neo.fs.v2.refs.Signature signature = 2 [ json_name = "signature" ];
|
||||
frost.fs.refs.Signature signature = 2 [ json_name = "signature" ];
|
||||
}
|
||||
|
||||
// Extended headers for Request/Response. They may contain any user-defined
|
||||
|
@ -140,16 +137,14 @@ message SessionToken {
|
|||
// or Responses with duplicated header names or headers with empty values will
|
||||
// be considered invalid.
|
||||
//
|
||||
// There are some "well-known" headers starting with `__SYSTEM__` (`__NEOFS__`
|
||||
// is deprecated) prefix that affect system behaviour:
|
||||
// There are some "well-known" headers starting with
|
||||
// `__SYSTEM__` prefix that affect system behaviour:
|
||||
//
|
||||
// * [ __SYSTEM__NETMAP_EPOCH ] \
|
||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||
// Netmap epoch to use for object placement calculation. The `value` is string
|
||||
// encoded `uint64` in decimal presentation. If set to '0' or not set, the
|
||||
// current epoch only will be used.
|
||||
// * [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
|
||||
// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
|
||||
// If object can't be found using current epoch's netmap, this header limits
|
||||
// how many past epochs the node can look up through. The `value` is string
|
||||
// encoded `uint64` in decimal presentation. If set to '0' or not set, only
|
||||
|
@ -166,7 +161,7 @@ message XHeader {
|
|||
// request meta headers are folded in matryoshka style.
|
||||
message RequestMetaHeader {
|
||||
// Peer's API version used
|
||||
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ];
|
||||
frost.fs.refs.Version version = 1 [ json_name = "version" ];
|
||||
|
||||
// Peer's local epoch number. Set to 0 if unknown.
|
||||
uint64 epoch = 2 [ json_name = "epoch" ];
|
||||
|
@ -181,7 +176,7 @@ message RequestMetaHeader {
|
|||
SessionToken session_token = 5 [ json_name = "sessionToken" ];
|
||||
|
||||
// `BearerToken` with eACL overrides for the request
|
||||
neo.fs.v2.acl.BearerToken bearer_token = 6 [ json_name = "bearerToken" ];
|
||||
frost.fs.acl.BearerToken bearer_token = 6 [ json_name = "bearerToken" ];
|
||||
|
||||
// `RequestMetaHeader` of the origin request
|
||||
RequestMetaHeader origin = 7 [ json_name = "origin" ];
|
||||
|
@ -194,7 +189,7 @@ message RequestMetaHeader {
|
|||
// Information about the response
|
||||
message ResponseMetaHeader {
|
||||
// Peer's API version used
|
||||
neo.fs.v2.refs.Version version = 1 [ json_name = "version" ];
|
||||
frost.fs.refs.Version version = 1 [ json_name = "version" ];
|
||||
|
||||
// Peer's local epoch number
|
||||
uint64 epoch = 2 [ json_name = "epoch" ];
|
||||
|
@ -209,17 +204,17 @@ message ResponseMetaHeader {
|
|||
ResponseMetaHeader origin = 5 [ json_name = "origin" ];
|
||||
|
||||
// Status return
|
||||
neo.fs.v2.status.Status status = 6 [ json_name = "status" ];
|
||||
frost.fs.status.Status status = 6 [ json_name = "status" ];
|
||||
}
|
||||
|
||||
// Verification info for the request signed by all intermediate nodes.
|
||||
message RequestVerificationHeader {
|
||||
// Request Body signature. Should be generated once by the request initiator.
|
||||
neo.fs.v2.refs.Signature body_signature = 1 [ json_name = "bodySignature" ];
|
||||
frost.fs.refs.Signature body_signature = 1 [ json_name = "bodySignature" ];
|
||||
// Request Meta signature is added and signed by each intermediate node
|
||||
neo.fs.v2.refs.Signature meta_signature = 2 [ json_name = "metaSignature" ];
|
||||
frost.fs.refs.Signature meta_signature = 2 [ json_name = "metaSignature" ];
|
||||
// Signature of previous hops
|
||||
neo.fs.v2.refs.Signature origin_signature = 3
|
||||
frost.fs.refs.Signature origin_signature = 3
|
||||
[ json_name = "originSignature" ];
|
||||
|
||||
// Chain of previous hops signatures
|
||||
|
@ -229,11 +224,11 @@ message RequestVerificationHeader {
|
|||
// Verification info for the response signed by all intermediate nodes
|
||||
message ResponseVerificationHeader {
|
||||
// Response Body signature. Should be generated once by an answering node.
|
||||
neo.fs.v2.refs.Signature body_signature = 1 [ json_name = "bodySignature" ];
|
||||
frost.fs.refs.Signature body_signature = 1 [ json_name = "bodySignature" ];
|
||||
// Response Meta signature is added and signed by each intermediate node
|
||||
neo.fs.v2.refs.Signature meta_signature = 2 [ json_name = "metaSignature" ];
|
||||
frost.fs.refs.Signature meta_signature = 2 [ json_name = "metaSignature" ];
|
||||
// Signature of previous hops
|
||||
neo.fs.v2.refs.Signature origin_signature = 3
|
||||
frost.fs.refs.Signature origin_signature = 3
|
||||
[ json_name = "originSignature" ];
|
||||
|
||||
// Chain of previous hops signatures
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.status;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status/grpc;status";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Status";
|
||||
package frost.fs.status;
|
||||
|
||||
// Declares the general format of the status returns of the FrostFS RPC
|
||||
// protocol. Status is present in all response messages. Each RPC of FrostFS
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
syntax = "proto3";
|
||||
|
||||
package neo.fs.v2.tombstone;
|
||||
|
||||
option go_package = "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/tombstone/grpc;tombstone";
|
||||
option csharp_namespace = "Neo.FileStorage.API.Tombstone";
|
||||
package frost.fs.tombstone;
|
||||
|
||||
import "refs/types.proto";
|
||||
|
||||
|
@ -13,7 +10,7 @@ message Tombstone {
|
|||
// Last FrostFS epoch number of the tombstone lifetime. It's set by the
|
||||
// tombstone creator depending on the current FrostFS network settings. A
|
||||
// tombstone object must have the same expiration epoch value in
|
||||
// `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated)
|
||||
// `__SYSTEM__EXPIRATION_EPOCH`
|
||||
// attribute. Otherwise, the tombstone will be rejected by a storage node.
|
||||
uint64 expiration_epoch = 1 [ json_name = "expirationEpoch" ];
|
||||
|
||||
|
@ -23,5 +20,5 @@ message Tombstone {
|
|||
bytes split_id = 2 [ json_name = "splitID" ];
|
||||
|
||||
// List of objects to be deleted.
|
||||
repeated neo.fs.v2.refs.ObjectID members = 3 [ json_name = "members" ];
|
||||
repeated frost.fs.refs.ObjectID members = 3 [ json_name = "members" ];
|
||||
}
|
||||
|
|
5
version.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"milestone": 3,
|
||||
"patch": 0,
|
||||
"date": "2024-10-08"
|
||||
}
|
For FrostFS we follow a different release naming scheme. It should be glaciers sorted by the path of the sun from the date change line. There is a list already prepared, please ask me about it.
Yep, changed it