diff --git a/.forgejo/workflows/pre-commit.yaml b/.forgejo/workflows/pre-commit.yaml index 5bf97eb..9bcbce9 100644 --- a/.forgejo/workflows/pre-commit.yaml +++ b/.forgejo/workflows/pre-commit.yaml @@ -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 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 96f3e27..d30e2da 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -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 diff --git a/CHANGELOG.md b/CHANGELOG.md index 70ceb4a..c934954 100644 --- a/CHANGELOG.md +++ b/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 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b6ecdf5..578b067 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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 diff --git a/Makefile b/Makefile index c08d609..f22250e 100755 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ SHELL=bash 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 +22,46 @@ fmt: clang-format -i $$f; \ done +# Run version update check in version.json file +check-version: + @version=$$(git show remotes/origin/master:version.json); \ + if [ -z "$$version" ]; 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; \ + elif [ "$$masterMilestone" -gt "$$milestone" ]; then \ + echo "⇒ The milestone cannot be decrement in the version.json file"; \ + exit 1; \ + elif [ "$$masterMilestone" -eq "$$milestone" -a "$$masterPatch" -gt "$$patch" ]; then \ + echo "⇒ The patch cannot be decrement without milestone increment in the version.json file"; \ + exit 1; \ + elif [ "$$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 +compatibility: + @version=$$(jq -r '.milestone' version.json).$$(jq -r '.patch' version.json); \ + conflicts=0; \ + for f in `ls **/*.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 diff --git a/accounting/service.proto b/accounting/service.proto index eedd4ce..b5fc7e9 100644 --- a/accounting/service.proto +++ b/accounting/service.proto @@ -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; 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; } diff --git a/accounting/types.proto b/accounting/types.proto index 5dd9b50..8431070 100644 --- a/accounting/types.proto +++ b/accounting/types.proto @@ -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; // 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 diff --git a/acl/types.proto b/acl/types.proto index fdaffd4..2b50cf5 100644 --- a/acl/types.proto +++ b/acl/types.proto @@ -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" ]; } diff --git a/ape/types.proto b/ape/types.proto index 3a97e60..c512d26 100644 --- a/ape/types.proto +++ b/ape/types.proto @@ -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 { diff --git a/apemanager/service.proto b/apemanager/service.proto index 166ba4d..70a3d05 100644 --- a/apemanager/service.proto +++ b/apemanager/service.proto @@ -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; } diff --git a/compatibility/accounting.json b/compatibility/accounting.json new file mode 100644 index 0000000..393b2ef --- /dev/null +++ b/compatibility/accounting.json @@ -0,0 +1,9 @@ +{ + "compatibilityInfo": { + "Balance": { + "v3.0": { + "compatibility": "SUPPORTED" + } + } + } +} diff --git a/compatibility/apemanager.json b/compatibility/apemanager.json new file mode 100644 index 0000000..832af79 --- /dev/null +++ b/compatibility/apemanager.json @@ -0,0 +1,19 @@ +{ + "compatibilityInfo": { + "AddChain": { + "v3.0": { + "compatibility": "SUPPORTED" + } + }, + "RemoveChain": { + "v3.0": { + "compatibility": "SUPPORTED" + } + }, + "ListChains": { + "v3.0": { + "compatibility": "SUPPORTED" + } + } + } +} diff --git a/compatibility/container.json b/compatibility/container.json new file mode 100644 index 0000000..85f3a2f --- /dev/null +++ b/compatibility/container.json @@ -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" + } + } + } +} diff --git a/compatibility/netmap.json b/compatibility/netmap.json new file mode 100644 index 0000000..5fbe780 --- /dev/null +++ b/compatibility/netmap.json @@ -0,0 +1,19 @@ +{ + "compatibilityInfo": { + "LocalNodeInfo": { + "v3.0": { + "compatibility": "SUPPORTED" + } + }, + "NetworkInfo": { + "v3.0": { + "compatibility": "SUPPORTED" + } + }, + "NetmapSnapshot": { + "v3.0": { + "compatibility": "SUPPORTED" + } + } + } +} diff --git a/compatibility/object.json b/compatibility/object.json new file mode 100644 index 0000000..64ef5b4 --- /dev/null +++ b/compatibility/object.json @@ -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" + } + } + } +} diff --git a/compatibility/session.json b/compatibility/session.json new file mode 100644 index 0000000..c9d5eb8 --- /dev/null +++ b/compatibility/session.json @@ -0,0 +1,9 @@ +{ + "compatibilityInfo": { + "Create": { + "v3.0": { + "compatibility": "SUPPORTED" + } + } + } +} diff --git a/container/service.proto b/container/service.proto index 493b08e..336b209 100644 --- a/container/service.proto +++ b/container/service.proto @@ -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; } diff --git a/container/types.proto b/container/types.proto index d133a45..038ebb6 100644 --- a/container/types.proto +++ b/container/types.proto @@ -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" ]; } diff --git a/doc/release_instructions.md b/doc/release_instructions.md index e7f8af2..c3fee48 100644 --- a/doc/release_instructions.md +++ b/doc/release_instructions.md @@ -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 - (, )`, 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 diff --git a/lock/types.proto b/lock/types.proto index 2fdafa5..307c199 100644 --- a/lock/types.proto +++ b/lock/types.proto @@ -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" ]; } diff --git a/netmap/service.proto b/netmap/service.proto index dce43f4..889e1ff 100644 --- a/netmap/service.proto +++ b/netmap/service.proto @@ -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; } diff --git a/netmap/types.proto b/netmap/types.proto index 969790c..5964090 100644 --- a/netmap/types.proto +++ b/netmap/types.proto @@ -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 { diff --git a/object/service.proto b/object/service.proto index e6ab5e0..b0529bb 100644 --- a/object/service.proto +++ b/object/service.proto @@ -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; } diff --git a/object/types.proto b/object/types.proto index 6e9469b..0d11a49 100644 --- a/object/types.proto +++ b/object/types.proto @@ -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. diff --git a/proto-docs/accounting.md b/proto-docs/accounting.md index a8bfd16..3795b33 100644 --- a/proto-docs/accounting.md +++ b/proto-docs/accounting.md @@ -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 @@ - + -### 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) | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. | @@ -128,7 +128,7 @@ rounding. - + ### Message Decimal Standard floating point data type can't be used in FrostFS due to inexactness diff --git a/proto-docs/acl.md b/proto-docs/acl.md index fdc7ade..f78fddd 100644 --- a/proto-docs/acl.md +++ b/proto-docs/acl.md @@ -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 @@ - + ### 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 | - + ### 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. | - + ### 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. | - + ### 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 | - + ### 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 | - + ### 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 | - + ### 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 | - + ### 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 | - + ### Action Rule execution result action. Either allows or denies access if the rule's @@ -201,7 +201,7 @@ filters match. - + ### HeaderType Enumeration of possible sources of Headers to apply filters. @@ -215,7 +215,7 @@ Enumeration of possible sources of Headers to apply filters. - + ### MatchType MatchType is an enumeration of match types. @@ -228,7 +228,7 @@ MatchType is an enumeration of match types. - + ### Operation Request's operation type to match if the rule is applicable to a particular @@ -247,7 +247,7 @@ request. - + ### Role Target role of the access control rule in access control list. diff --git a/proto-docs/ape.md b/proto-docs/ape.md index 9795bc5..8ab1a4b 100644 --- a/proto-docs/ape.md +++ b/proto-docs/ape.md @@ -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 @@ - + ### 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. | - + ### 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) | | | - + ### TargetType TargetType is a type target to which a rule chain is defined. diff --git a/proto-docs/apemanager.md b/proto-docs/apemanager.md index c1cb682..adb401f 100644 --- a/proto-docs/apemanager.md +++ b/proto-docs/apemanager.md @@ -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 @@ - + -### 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) | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. | - + ### Message RemoveChainResponse.Body Since RemoveChain is an idempotent operation, then the only indicator that diff --git a/proto-docs/container.md b/proto-docs/container.md index 76cc115..81bcd42 100644 --- a/proto-docs/container.md +++ b/proto-docs/container.md @@ -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 @@ - + -### 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) | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. - + ### 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. | - + ### 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 | - + ### 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. | - + ### 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 | - + ### 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. | - + ### 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 | - + ### 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. | - + ### 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` | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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 | @@ -346,7 +346,7 @@ returned here to make sure everything has been done as expected. - + ### 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 | - + ### 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 diff --git a/proto-docs/lock.md b/proto-docs/lock.md index ba23306..cc10626 100644 --- a/proto-docs/lock.md +++ b/proto-docs/lock.md @@ -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 @@ - + ### 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. | diff --git a/proto-docs/netmap.md b/proto-docs/netmap.md index b49287c..61b3129 100644 --- a/proto-docs/netmap.md +++ b/proto-docs/netmap.md @@ -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 @@ - + -### 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) | - + ### 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. | - + ### Message LocalNodeInfoRequest.Body LocalNodeInfo request body is empty. - + ### 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. | - + ### 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 | - + ### 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. | - + ### Message NetmapSnapshotRequest.Body Get netmap snapshot request body. - + ### 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. | - + ### 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. | - + ### 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. | - + ### Message NetworkInfoRequest.Body NetworkInfo request body is empty. - + ### 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. | - + ### 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. | @@ -256,7 +256,7 @@ Information about the network. - + ### 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. | - + ### 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. | - + ### 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 | - + ### Message NetworkConfig.Parameter Single configuration parameter. Key MUST be network-unique. @@ -377,7 +377,7 @@ System parameters: | value | [bytes](#bytes) | | Parameter value | - + ### 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 | - + ### 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 | - + ### 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`. | - + ### 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 | - + ### 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 | - + ### 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 | - + ### Clause Selector modifier shows how the node set will be formed. By default selector @@ -550,7 +550,7 @@ hash distance. - + ### 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. - + ### Operation Operations on filters diff --git a/proto-docs/object.md b/proto-docs/object.md index dd30ede..830de94 100644 --- a/proto-docs/object.md +++ b/proto-docs/object.md @@ -5,65 +5,65 @@ - [object/service.proto](#object/service.proto) - Services - - [ObjectService](#neo.fs.v2.object.ObjectService) + - [ObjectService](#frost.fs.object.ObjectService) - Messages - - [DeleteRequest](#neo.fs.v2.object.DeleteRequest) - - [DeleteRequest.Body](#neo.fs.v2.object.DeleteRequest.Body) - - [DeleteResponse](#neo.fs.v2.object.DeleteResponse) - - [DeleteResponse.Body](#neo.fs.v2.object.DeleteResponse.Body) - - [GetRangeHashRequest](#neo.fs.v2.object.GetRangeHashRequest) - - [GetRangeHashRequest.Body](#neo.fs.v2.object.GetRangeHashRequest.Body) - - [GetRangeHashResponse](#neo.fs.v2.object.GetRangeHashResponse) - - [GetRangeHashResponse.Body](#neo.fs.v2.object.GetRangeHashResponse.Body) - - [GetRangeRequest](#neo.fs.v2.object.GetRangeRequest) - - [GetRangeRequest.Body](#neo.fs.v2.object.GetRangeRequest.Body) - - [GetRangeResponse](#neo.fs.v2.object.GetRangeResponse) - - [GetRangeResponse.Body](#neo.fs.v2.object.GetRangeResponse.Body) - - [GetRequest](#neo.fs.v2.object.GetRequest) - - [GetRequest.Body](#neo.fs.v2.object.GetRequest.Body) - - [GetResponse](#neo.fs.v2.object.GetResponse) - - [GetResponse.Body](#neo.fs.v2.object.GetResponse.Body) - - [GetResponse.Body.Init](#neo.fs.v2.object.GetResponse.Body.Init) - - [HeadRequest](#neo.fs.v2.object.HeadRequest) - - [HeadRequest.Body](#neo.fs.v2.object.HeadRequest.Body) - - [HeadResponse](#neo.fs.v2.object.HeadResponse) - - [HeadResponse.Body](#neo.fs.v2.object.HeadResponse.Body) - - [HeaderWithSignature](#neo.fs.v2.object.HeaderWithSignature) - - [PatchRequest](#neo.fs.v2.object.PatchRequest) - - [PatchRequest.Body](#neo.fs.v2.object.PatchRequest.Body) - - [PatchRequest.Body.Patch](#neo.fs.v2.object.PatchRequest.Body.Patch) - - [PatchResponse](#neo.fs.v2.object.PatchResponse) - - [PatchResponse.Body](#neo.fs.v2.object.PatchResponse.Body) - - [PutRequest](#neo.fs.v2.object.PutRequest) - - [PutRequest.Body](#neo.fs.v2.object.PutRequest.Body) - - [PutRequest.Body.Init](#neo.fs.v2.object.PutRequest.Body.Init) - - [PutResponse](#neo.fs.v2.object.PutResponse) - - [PutResponse.Body](#neo.fs.v2.object.PutResponse.Body) - - [PutSingleRequest](#neo.fs.v2.object.PutSingleRequest) - - [PutSingleRequest.Body](#neo.fs.v2.object.PutSingleRequest.Body) - - [PutSingleResponse](#neo.fs.v2.object.PutSingleResponse) - - [PutSingleResponse.Body](#neo.fs.v2.object.PutSingleResponse.Body) - - [Range](#neo.fs.v2.object.Range) - - [SearchRequest](#neo.fs.v2.object.SearchRequest) - - [SearchRequest.Body](#neo.fs.v2.object.SearchRequest.Body) - - [SearchRequest.Body.Filter](#neo.fs.v2.object.SearchRequest.Body.Filter) - - [SearchResponse](#neo.fs.v2.object.SearchResponse) - - [SearchResponse.Body](#neo.fs.v2.object.SearchResponse.Body) + - [DeleteRequest](#frost.fs.object.DeleteRequest) + - [DeleteRequest.Body](#frost.fs.object.DeleteRequest.Body) + - [DeleteResponse](#frost.fs.object.DeleteResponse) + - [DeleteResponse.Body](#frost.fs.object.DeleteResponse.Body) + - [GetRangeHashRequest](#frost.fs.object.GetRangeHashRequest) + - [GetRangeHashRequest.Body](#frost.fs.object.GetRangeHashRequest.Body) + - [GetRangeHashResponse](#frost.fs.object.GetRangeHashResponse) + - [GetRangeHashResponse.Body](#frost.fs.object.GetRangeHashResponse.Body) + - [GetRangeRequest](#frost.fs.object.GetRangeRequest) + - [GetRangeRequest.Body](#frost.fs.object.GetRangeRequest.Body) + - [GetRangeResponse](#frost.fs.object.GetRangeResponse) + - [GetRangeResponse.Body](#frost.fs.object.GetRangeResponse.Body) + - [GetRequest](#frost.fs.object.GetRequest) + - [GetRequest.Body](#frost.fs.object.GetRequest.Body) + - [GetResponse](#frost.fs.object.GetResponse) + - [GetResponse.Body](#frost.fs.object.GetResponse.Body) + - [GetResponse.Body.Init](#frost.fs.object.GetResponse.Body.Init) + - [HeadRequest](#frost.fs.object.HeadRequest) + - [HeadRequest.Body](#frost.fs.object.HeadRequest.Body) + - [HeadResponse](#frost.fs.object.HeadResponse) + - [HeadResponse.Body](#frost.fs.object.HeadResponse.Body) + - [HeaderWithSignature](#frost.fs.object.HeaderWithSignature) + - [PatchRequest](#frost.fs.object.PatchRequest) + - [PatchRequest.Body](#frost.fs.object.PatchRequest.Body) + - [PatchRequest.Body.Patch](#frost.fs.object.PatchRequest.Body.Patch) + - [PatchResponse](#frost.fs.object.PatchResponse) + - [PatchResponse.Body](#frost.fs.object.PatchResponse.Body) + - [PutRequest](#frost.fs.object.PutRequest) + - [PutRequest.Body](#frost.fs.object.PutRequest.Body) + - [PutRequest.Body.Init](#frost.fs.object.PutRequest.Body.Init) + - [PutResponse](#frost.fs.object.PutResponse) + - [PutResponse.Body](#frost.fs.object.PutResponse.Body) + - [PutSingleRequest](#frost.fs.object.PutSingleRequest) + - [PutSingleRequest.Body](#frost.fs.object.PutSingleRequest.Body) + - [PutSingleResponse](#frost.fs.object.PutSingleResponse) + - [PutSingleResponse.Body](#frost.fs.object.PutSingleResponse.Body) + - [Range](#frost.fs.object.Range) + - [SearchRequest](#frost.fs.object.SearchRequest) + - [SearchRequest.Body](#frost.fs.object.SearchRequest.Body) + - [SearchRequest.Body.Filter](#frost.fs.object.SearchRequest.Body.Filter) + - [SearchResponse](#frost.fs.object.SearchResponse) + - [SearchResponse.Body](#frost.fs.object.SearchResponse.Body) - [object/types.proto](#object/types.proto) - Messages - - [ECInfo](#neo.fs.v2.object.ECInfo) - - [ECInfo.Chunk](#neo.fs.v2.object.ECInfo.Chunk) - - [Header](#neo.fs.v2.object.Header) - - [Header.Attribute](#neo.fs.v2.object.Header.Attribute) - - [Header.EC](#neo.fs.v2.object.Header.EC) - - [Header.Split](#neo.fs.v2.object.Header.Split) - - [Object](#neo.fs.v2.object.Object) - - [ShortHeader](#neo.fs.v2.object.ShortHeader) - - [SplitInfo](#neo.fs.v2.object.SplitInfo) + - [ECInfo](#frost.fs.object.ECInfo) + - [ECInfo.Chunk](#frost.fs.object.ECInfo.Chunk) + - [Header](#frost.fs.object.Header) + - [Header.Attribute](#frost.fs.object.Header.Attribute) + - [Header.EC](#frost.fs.object.Header.EC) + - [Header.Split](#frost.fs.object.Header.Split) + - [Object](#frost.fs.object.Object) + - [ShortHeader](#frost.fs.object.ShortHeader) + - [SplitInfo](#frost.fs.object.SplitInfo) - [Scalar Value Types](#scalar-value-types) @@ -78,9 +78,9 @@ - + -### Service "neo.fs.v2.object.ObjectService" +### Service "frost.fs.object.ObjectService" `ObjectService` provides API for manipulating objects. Object operations do not affect the sidechain and are only served by nodes in p2p style. @@ -108,15 +108,12 @@ chunks keeping the receiving order. 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. @@ -139,7 +136,7 @@ Statuses: | Name | Input | Output | | ---- | ----- | ------ | -| Get | [GetRequest](#neo.fs.v2.object.GetRequest) | [GetResponse](#neo.fs.v2.object.GetResponse) | +| Get | [GetRequest](#frost.fs.object.GetRequest) | [GetResponse](#frost.fs.object.GetResponse) | #### Method Put Put the object into container. Request uses gRPC stream. First message @@ -151,7 +148,6 @@ Chunk messages SHOULD be sent in the direct order of fragmentation. 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. @@ -182,7 +178,7 @@ been deleted; | Name | Input | Output | | ---- | ----- | ------ | -| Put | [PutRequest](#neo.fs.v2.object.PutRequest) | [PutResponse](#neo.fs.v2.object.PutResponse) | +| Put | [PutRequest](#frost.fs.object.PutRequest) | [PutResponse](#frost.fs.object.PutResponse) | #### Method Delete Delete the object from a container. There is no immediate removal @@ -190,7 +186,6 @@ guarantee. Object will be marked for removal and deleted eventually. 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. @@ -216,7 +211,7 @@ Statuses: | Name | Input | Output | | ---- | ----- | ------ | -| Delete | [DeleteRequest](#neo.fs.v2.object.DeleteRequest) | [DeleteResponse](#neo.fs.v2.object.DeleteResponse) | +| Delete | [DeleteRequest](#frost.fs.object.DeleteRequest) | [DeleteResponse](#frost.fs.object.DeleteResponse) | #### Method Head Returns the object Headers without data payload. By default full header is @@ -225,7 +220,6 @@ the very minimal information will be returned instead. 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. @@ -250,7 +244,7 @@ Statuses: | Name | Input | Output | | ---- | ----- | ------ | -| Head | [HeadRequest](#neo.fs.v2.object.HeadRequest) | [HeadResponse](#neo.fs.v2.object.HeadResponse) | +| Head | [HeadRequest](#frost.fs.object.HeadRequest) | [HeadResponse](#frost.fs.object.HeadResponse) | #### Method Search Search objects in container. Search query allows to match by Object @@ -259,7 +253,6 @@ Specification section for more details. 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. @@ -280,7 +273,7 @@ Statuses: | Name | Input | Output | | ---- | ----- | ------ | -| Search | [SearchRequest](#neo.fs.v2.object.SearchRequest) | [SearchResponse](#neo.fs.v2.object.SearchResponse) | +| Search | [SearchRequest](#frost.fs.object.SearchRequest) | [SearchResponse](#frost.fs.object.SearchResponse) | #### Method GetRange Get byte range of data payload. Range is set as an (offset, length) tuple. @@ -290,11 +283,9 @@ receiving order. 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. @@ -321,7 +312,7 @@ Statuses: | Name | Input | Output | | ---- | ----- | ------ | -| GetRange | [GetRangeRequest](#neo.fs.v2.object.GetRangeRequest) | [GetRangeResponse](#neo.fs.v2.object.GetRangeResponse) | +| GetRange | [GetRangeRequest](#frost.fs.object.GetRangeRequest) | [GetRangeResponse](#frost.fs.object.GetRangeResponse) | #### Method GetRangeHash Returns homomorphic or regular hash of object's payload range after @@ -331,11 +322,9 @@ the request. Note that hash is calculated for XORed data. 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. @@ -360,7 +349,7 @@ Statuses: | Name | Input | Output | | ---- | ----- | ------ | -| GetRangeHash | [GetRangeHashRequest](#neo.fs.v2.object.GetRangeHashRequest) | [GetRangeHashResponse](#neo.fs.v2.object.GetRangeHashResponse) | +| GetRangeHash | [GetRangeHashRequest](#frost.fs.object.GetRangeHashRequest) | [GetRangeHashResponse](#frost.fs.object.GetRangeHashResponse) | #### Method PutSingle Put the prepared object into container. @@ -369,7 +358,6 @@ an object MUST be set. 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. @@ -400,7 +388,7 @@ been deleted; | Name | Input | Output | | ---- | ----- | ------ | -| PutSingle | [PutSingleRequest](#neo.fs.v2.object.PutSingleRequest) | [PutSingleResponse](#neo.fs.v2.object.PutSingleResponse) | +| PutSingle | [PutSingleRequest](#frost.fs.object.PutSingleRequest) | [PutSingleResponse](#frost.fs.object.PutSingleResponse) | #### Method Patch Patch the object. Request uses gRPC stream. First message must set @@ -423,7 +411,6 @@ payload within the same range; 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. @@ -453,11 +440,11 @@ Statuses: | Name | Input | Output | | ---- | ----- | ------ | -| Patch | [PatchRequest](#neo.fs.v2.object.PatchRequest) | [PatchResponse](#neo.fs.v2.object.PatchResponse) | +| Patch | [PatchRequest](#frost.fs.object.PatchRequest) | [PatchResponse](#frost.fs.object.PatchResponse) | - + ### Message DeleteRequest Object DELETE request @@ -465,12 +452,12 @@ Object DELETE request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [DeleteRequest.Body](#neo.fs.v2.object.DeleteRequest.Body) | | Body of delete object 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.object.DeleteRequest.Body) | | Body of delete object 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. | - + ### Message DeleteRequest.Body Object DELETE request body @@ -478,10 +465,10 @@ Object DELETE request body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| address | [neo.fs.v2.refs.Address](#neo.fs.v2.refs.Address) | | Address of the object to be deleted | +| address | [frost.fs.refs.Address](#frost.fs.refs.Address) | | Address of the object to be deleted | - + ### Message DeleteResponse DeleteResponse body is empty because we cannot guarantee permanent object @@ -490,12 +477,12 @@ removal in distributed system. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [DeleteResponse.Body](#neo.fs.v2.object.DeleteResponse.Body) | | Body of delete object 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.object.DeleteResponse.Body) | | Body of delete object 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. | - + ### Message DeleteResponse.Body Object DELETE Response has an empty body. @@ -503,10 +490,10 @@ Object DELETE Response has an empty body. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| tombstone | [neo.fs.v2.refs.Address](#neo.fs.v2.refs.Address) | | Address of the tombstone created for the deleted object | +| tombstone | [frost.fs.refs.Address](#frost.fs.refs.Address) | | Address of the tombstone created for the deleted object | - + ### Message GetRangeHashRequest Get hash of object's payload part @@ -514,12 +501,12 @@ Get hash of object's payload part | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [GetRangeHashRequest.Body](#neo.fs.v2.object.GetRangeHashRequest.Body) | | Body of get range hash object 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 | [GetRangeHashRequest.Body](#frost.fs.object.GetRangeHashRequest.Body) | | Body of get range hash object 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. | - + ### Message GetRangeHashRequest.Body Get hash of object's payload part request body. @@ -527,13 +514,13 @@ Get hash of object's payload part request body. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| address | [neo.fs.v2.refs.Address](#neo.fs.v2.refs.Address) | | Address of the object that containing the requested payload range | -| ranges | [Range](#neo.fs.v2.object.Range) | repeated | List of object's payload ranges to calculate homomorphic hash | +| address | [frost.fs.refs.Address](#frost.fs.refs.Address) | | Address of the object that containing the requested payload range | +| ranges | [Range](#frost.fs.object.Range) | repeated | List of object's payload ranges to calculate homomorphic hash | | salt | [bytes](#bytes) | | Binary salt to XOR object's payload ranges before hash calculation | -| type | [neo.fs.v2.refs.ChecksumType](#neo.fs.v2.refs.ChecksumType) | | Checksum algorithm type | +| type | [frost.fs.refs.ChecksumType](#frost.fs.refs.ChecksumType) | | Checksum algorithm type | - + ### Message GetRangeHashResponse Get hash of object's payload part @@ -541,12 +528,12 @@ Get hash of object's payload part | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [GetRangeHashResponse.Body](#neo.fs.v2.object.GetRangeHashResponse.Body) | | Body of get range hash object 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 | [GetRangeHashResponse.Body](#frost.fs.object.GetRangeHashResponse.Body) | | Body of get range hash object 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. | - + ### Message GetRangeHashResponse.Body Get hash of object's payload part response body. @@ -554,11 +541,11 @@ Get hash of object's payload part response body. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| type | [neo.fs.v2.refs.ChecksumType](#neo.fs.v2.refs.ChecksumType) | | Checksum algorithm type | +| type | [frost.fs.refs.ChecksumType](#frost.fs.refs.ChecksumType) | | Checksum algorithm type | | hash_list | [bytes](#bytes) | repeated | List of range hashes in a binary format | - + ### Message GetRangeRequest Request part of object's payload @@ -566,12 +553,12 @@ Request part of object's payload | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [GetRangeRequest.Body](#neo.fs.v2.object.GetRangeRequest.Body) | | Body of get range object 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 | [GetRangeRequest.Body](#frost.fs.object.GetRangeRequest.Body) | | Body of get range object 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. | - + ### Message GetRangeRequest.Body Byte range of object's payload request body @@ -579,12 +566,12 @@ Byte range of object's payload request body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| address | [neo.fs.v2.refs.Address](#neo.fs.v2.refs.Address) | | Address of the object containing the requested payload range | -| range | [Range](#neo.fs.v2.object.Range) | | Requested payload range | +| address | [frost.fs.refs.Address](#frost.fs.refs.Address) | | Address of the object containing the requested payload range | +| range | [Range](#frost.fs.object.Range) | | Requested payload range | | raw | [bool](#bool) | | If `raw` flag is set, request will work only with objects that are physically stored on the peer node. | - + ### Message GetRangeResponse Get part of object's payload @@ -592,12 +579,12 @@ Get part of object's payload | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [GetRangeResponse.Body](#neo.fs.v2.object.GetRangeResponse.Body) | | Body of get range object 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 | [GetRangeResponse.Body](#frost.fs.object.GetRangeResponse.Body) | | Body of get range object 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. | - + ### Message GetRangeResponse.Body Get Range response body uses streams to transfer the response. Because @@ -609,11 +596,11 @@ chunks. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | chunk | [bytes](#bytes) | | Chunked object payload's range. | -| split_info | [SplitInfo](#neo.fs.v2.object.SplitInfo) | | Meta information of split hierarchy. | -| ec_info | [ECInfo](#neo.fs.v2.object.ECInfo) | | Meta information for EC object assembly. | +| split_info | [SplitInfo](#frost.fs.object.SplitInfo) | | Meta information of split hierarchy. | +| ec_info | [ECInfo](#frost.fs.object.ECInfo) | | Meta information for EC object assembly. | - + ### Message GetRequest GET object request @@ -621,12 +608,12 @@ GET object request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [GetRequest.Body](#neo.fs.v2.object.GetRequest.Body) | | Body of get object 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.object.GetRequest.Body) | | Body of get object 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. | - + ### Message GetRequest.Body GET Object request body @@ -634,11 +621,11 @@ GET Object request body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| address | [neo.fs.v2.refs.Address](#neo.fs.v2.refs.Address) | | Address of the requested object | +| address | [frost.fs.refs.Address](#frost.fs.refs.Address) | | Address of the requested object | | raw | [bool](#bool) | | If `raw` flag is set, request will work only with objects that are physically stored on the peer node | - + ### Message GetResponse GET object response @@ -646,12 +633,12 @@ GET object response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [GetResponse.Body](#neo.fs.v2.object.GetResponse.Body) | | Body of get object 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.object.GetResponse.Body) | | Body of get object 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. | - + ### Message GetResponse.Body GET Object Response body @@ -659,13 +646,13 @@ GET Object Response body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| init | [GetResponse.Body.Init](#neo.fs.v2.object.GetResponse.Body.Init) | | Initial part of the object stream | +| init | [GetResponse.Body.Init](#frost.fs.object.GetResponse.Body.Init) | | Initial part of the object stream | | chunk | [bytes](#bytes) | | Chunked object payload | -| split_info | [SplitInfo](#neo.fs.v2.object.SplitInfo) | | Meta information of split hierarchy for object assembly. | -| ec_info | [ECInfo](#neo.fs.v2.object.ECInfo) | | Meta information for EC object assembly. | +| split_info | [SplitInfo](#frost.fs.object.SplitInfo) | | Meta information of split hierarchy for object assembly. | +| ec_info | [ECInfo](#frost.fs.object.ECInfo) | | Meta information for EC object assembly. | - + ### Message GetResponse.Body.Init Initial part of the `Object` structure stream. Technically it's a @@ -674,12 +661,12 @@ set of all `Object` structure's fields except `payload`. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| object_id | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | Object's unique identifier. | -| signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signed `ObjectID` | -| header | [Header](#neo.fs.v2.object.Header) | | Object metadata headers | +| object_id | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | Object's unique identifier. | +| signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signed `ObjectID` | +| header | [Header](#frost.fs.object.Header) | | Object metadata headers | - + ### Message HeadRequest Object HEAD request @@ -687,12 +674,12 @@ Object HEAD request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [HeadRequest.Body](#neo.fs.v2.object.HeadRequest.Body) | | Body of head object 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 | [HeadRequest.Body](#frost.fs.object.HeadRequest.Body) | | Body of head object 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. | - + ### Message HeadRequest.Body Object HEAD request body @@ -700,12 +687,12 @@ Object HEAD request body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| address | [neo.fs.v2.refs.Address](#neo.fs.v2.refs.Address) | | Address of the object with the requested Header | +| address | [frost.fs.refs.Address](#frost.fs.refs.Address) | | Address of the object with the requested Header | | main_only | [bool](#bool) | | Return only minimal header subset | | raw | [bool](#bool) | | If `raw` flag is set, request will work only with objects that are physically stored on the peer node | - + ### Message HeadResponse Object HEAD response @@ -713,12 +700,12 @@ Object HEAD response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [HeadResponse.Body](#neo.fs.v2.object.HeadResponse.Body) | | Body of head object 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 | [HeadResponse.Body](#frost.fs.object.HeadResponse.Body) | | Body of head object 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. | - + ### Message HeadResponse.Body Object HEAD response body @@ -726,13 +713,13 @@ Object HEAD response body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| header | [HeaderWithSignature](#neo.fs.v2.object.HeaderWithSignature) | | Full object's `Header` with `ObjectID` signature | -| short_header | [ShortHeader](#neo.fs.v2.object.ShortHeader) | | Short object header | -| split_info | [SplitInfo](#neo.fs.v2.object.SplitInfo) | | Meta information of split hierarchy. | -| ec_info | [ECInfo](#neo.fs.v2.object.ECInfo) | | Meta information for EC object assembly. | +| header | [HeaderWithSignature](#frost.fs.object.HeaderWithSignature) | | Full object's `Header` with `ObjectID` signature | +| short_header | [ShortHeader](#frost.fs.object.ShortHeader) | | Short object header | +| split_info | [SplitInfo](#frost.fs.object.SplitInfo) | | Meta information of split hierarchy. | +| ec_info | [ECInfo](#frost.fs.object.ECInfo) | | Meta information for EC object assembly. | - + ### Message HeaderWithSignature Tuple of a full object header and signature of an `ObjectID`. \ @@ -746,11 +733,11 @@ following steps: | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| header | [Header](#neo.fs.v2.object.Header) | | Full object header | -| signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signed `ObjectID` to verify full header's authenticity | +| header | [Header](#frost.fs.object.Header) | | Full object header | +| signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signed `ObjectID` to verify full header's authenticity | - + ### Message PatchRequest Object PATCH request @@ -758,12 +745,12 @@ Object PATCH request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [PatchRequest.Body](#neo.fs.v2.object.PatchRequest.Body) | | Body for patch 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 | [PatchRequest.Body](#frost.fs.object.PatchRequest.Body) | | Body for patch 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. | - + ### Message PatchRequest.Body PATCH request body @@ -771,15 +758,15 @@ PATCH request body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| address | [neo.fs.v2.refs.Address](#neo.fs.v2.refs.Address) | | The address of the object that is requested to get patched. | -| new_attributes | [Header.Attribute](#neo.fs.v2.object.Header.Attribute) | repeated | New attributes for the object. See `replace_attributes` flag usage to define how new attributes should be set. | +| address | [frost.fs.refs.Address](#frost.fs.refs.Address) | | The address of the object that is requested to get patched. | +| new_attributes | [Header.Attribute](#frost.fs.object.Header.Attribute) | repeated | New attributes for the object. See `replace_attributes` flag usage to define how new attributes should be set. | | replace_attributes | [bool](#bool) | | If this flag is set, then the object's attributes will be entirely replaced by `new_attributes` list. The empty `new_attributes` list with `replace_attributes = true` just resets attributes list for the object. Default `false` value for this flag means the attributes will be just merged. If the incoming `new_attributes` list contains already existing key, then it just replaces it while merging the lists. | -| patch | [PatchRequest.Body.Patch](#neo.fs.v2.object.PatchRequest.Body.Patch) | | The patch that is applied for the object. | +| patch | [PatchRequest.Body.Patch](#frost.fs.object.PatchRequest.Body.Patch) | | The patch that is applied for the object. | - + ### Message PatchRequest.Body.Patch The patch for the object's payload. @@ -787,11 +774,11 @@ The patch for the object's payload. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| source_range | [Range](#neo.fs.v2.object.Range) | | The range of the source object for which the payload is replaced by the patch's chunk. If the range's `length = 0`, then the patch's chunk is just appended to the original payload starting from the `offest` without any replace. | +| source_range | [Range](#frost.fs.object.Range) | | The range of the source object for which the payload is replaced by the patch's chunk. If the range's `length = 0`, then the patch's chunk is just appended to the original payload starting from the `offest` without any replace. | | chunk | [bytes](#bytes) | | The chunk that is being appended to or that replaces the original payload on the given range. | - + ### Message PatchResponse Object PATCH response @@ -799,12 +786,12 @@ Object PATCH response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [PatchResponse.Body](#neo.fs.v2.object.PatchResponse.Body) | | Body for patch 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 | [PatchResponse.Body](#frost.fs.object.PatchResponse.Body) | | Body for patch 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. | - + ### Message PatchResponse.Body PATCH response body @@ -812,10 +799,10 @@ PATCH response body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| object_id | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | The object ID of the saved patched object. | +| object_id | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | The object ID of the saved patched object. | - + ### Message PutRequest PUT object request @@ -823,12 +810,12 @@ PUT object request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [PutRequest.Body](#neo.fs.v2.object.PutRequest.Body) | | Body of put object 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.object.PutRequest.Body) | | Body of put object 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. | - + ### Message PutRequest.Body PUT request body @@ -836,11 +823,11 @@ PUT request body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| init | [PutRequest.Body.Init](#neo.fs.v2.object.PutRequest.Body.Init) | | Initial part of the object stream | +| init | [PutRequest.Body.Init](#frost.fs.object.PutRequest.Body.Init) | | Initial part of the object stream | | chunk | [bytes](#bytes) | | Chunked object payload | - + ### Message PutRequest.Body.Init Newly created object structure parameters. If some optional parameters @@ -849,13 +836,13 @@ are not set, they will be calculated by a peer node. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| object_id | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | ObjectID if available. | -| signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Object signature if available | -| header | [Header](#neo.fs.v2.object.Header) | | Object's Header | +| object_id | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | ObjectID if available. | +| signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Object signature if available | +| header | [Header](#frost.fs.object.Header) | | Object's Header | | copies_number | [uint32](#uint32) | repeated | Number of copies of the object to store within the RPC call. By default, object is processed according to the container's placement policy. Can be one of: 1. A single number; applied to the whole request and is treated as a minimal number of nodes that must store an object to complete the request successfully. 2. An ordered array; every number is treated as a minimal number of nodes in a corresponding placement vector that must store an object to complete the request successfully. The length MUST equal the placement vectors number, otherwise request is considered malformed. | - + ### Message PutResponse PUT Object response @@ -863,12 +850,12 @@ PUT Object response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [PutResponse.Body](#neo.fs.v2.object.PutResponse.Body) | | Body of put object 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.object.PutResponse.Body) | | Body of put object 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. | - + ### Message PutResponse.Body PUT Object response body @@ -876,10 +863,10 @@ PUT Object response body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| object_id | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | Identifier of the saved object | +| object_id | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | Identifier of the saved object | - + ### Message PutSingleRequest Object PUT Single request @@ -887,12 +874,12 @@ Object PUT Single request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [PutSingleRequest.Body](#neo.fs.v2.object.PutSingleRequest.Body) | | Body of put single object 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 | [PutSingleRequest.Body](#frost.fs.object.PutSingleRequest.Body) | | Body of put single object 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. | - + ### Message PutSingleRequest.Body PUT Single request body @@ -900,11 +887,11 @@ PUT Single request body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| object | [Object](#neo.fs.v2.object.Object) | | Prepared object with payload. | +| object | [Object](#frost.fs.object.Object) | | Prepared object with payload. | | copies_number | [uint32](#uint32) | repeated | Number of copies of the object to store within the RPC call. By default, object is processed according to the container's placement policy. Every number is treated as a minimal number of nodes in a corresponding placement vector that must store an object to complete the request successfully. The length MUST equal the placement vectors number, otherwise request is considered malformed. | - + ### Message PutSingleResponse Object PUT Single response @@ -912,19 +899,19 @@ Object PUT Single response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [PutSingleResponse.Body](#neo.fs.v2.object.PutSingleResponse.Body) | | Body of put single object 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 | [PutSingleResponse.Body](#frost.fs.object.PutSingleResponse.Body) | | Body of put single object 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. | - + ### Message PutSingleResponse.Body PUT Single Object response body - + ### Message Range Object payload range.Ranges of zero length SHOULD be considered as invalid. @@ -936,7 +923,7 @@ Object payload range.Ranges of zero length SHOULD be considered as invalid. | length | [uint64](#uint64) | | Length in bytes of the object payload range | - + ### Message SearchRequest Object Search request @@ -944,12 +931,12 @@ Object Search request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [SearchRequest.Body](#neo.fs.v2.object.SearchRequest.Body) | | Body of search object 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 | [SearchRequest.Body](#frost.fs.object.SearchRequest.Body) | | Body of search object 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. | - + ### Message SearchRequest.Body Object Search request body @@ -957,12 +944,12 @@ Object Search request body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Container identifier were to search | +| container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Container identifier were to search | | version | [uint32](#uint32) | | Version of the Query Language used | -| filters | [SearchRequest.Body.Filter](#neo.fs.v2.object.SearchRequest.Body.Filter) | repeated | List of search expressions | +| filters | [SearchRequest.Body.Filter](#frost.fs.object.SearchRequest.Body.Filter) | repeated | List of search expressions | - + ### Message SearchRequest.Body.Filter Filter structure checks if the object header field or the attribute @@ -1026,12 +1013,12 @@ approach. Behavior when processing this kind of filters is undefined. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| match_type | [MatchType](#neo.fs.v2.object.MatchType) | | Match type to use | +| match_type | [MatchType](#frost.fs.object.MatchType) | | Match type to use | | key | [string](#string) | | Attribute or Header fields to match | | value | [string](#string) | | Value to match | - + ### Message SearchResponse Search response @@ -1039,12 +1026,12 @@ Search response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| body | [SearchResponse.Body](#neo.fs.v2.object.SearchResponse.Body) | | Body of search object 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 | [SearchResponse.Body](#frost.fs.object.SearchResponse.Body) | | Body of search object 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. | - + ### Message SearchResponse.Body Object Search response body @@ -1052,7 +1039,7 @@ Object Search response body | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| id_list | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | repeated | List of `ObjectID`s that match the search query | +| id_list | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | repeated | List of `ObjectID`s that match the search query | @@ -1069,7 +1056,7 @@ Object Search response body - + ### Message ECInfo Meta information for the erasure-encoded object. @@ -1077,10 +1064,10 @@ Meta information for the erasure-encoded object. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| chunks | [ECInfo.Chunk](#neo.fs.v2.object.ECInfo.Chunk) | repeated | Chunk stored on the node. | +| chunks | [ECInfo.Chunk](#frost.fs.object.ECInfo.Chunk) | repeated | Chunk stored on the node. | - + ### Message ECInfo.Chunk @@ -1088,12 +1075,12 @@ Meta information for the erasure-encoded object. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| id | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | Object ID of the chunk. | +| id | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | Object ID of the chunk. | | index | [uint32](#uint32) | | Index of the chunk. | | total | [uint32](#uint32) | | Total number of chunks in this split. | - + ### Message Header Object Header @@ -1101,21 +1088,21 @@ Object Header | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | Object format version. Effectively, the version of API library used to create particular object | -| container_id | [neo.fs.v2.refs.ContainerID](#neo.fs.v2.refs.ContainerID) | | Object's container | -| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Object's owner | +| version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | Object format version. Effectively, the version of API library used to create particular object | +| container_id | [frost.fs.refs.ContainerID](#frost.fs.refs.ContainerID) | | Object's container | +| owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Object's owner | | creation_epoch | [uint64](#uint64) | | Object creation Epoch | | payload_length | [uint64](#uint64) | | Size of payload in bytes. `0xFFFFFFFFFFFFFFFF` means `payload_length` is unknown. | -| payload_hash | [neo.fs.v2.refs.Checksum](#neo.fs.v2.refs.Checksum) | | Hash of payload bytes | -| object_type | [ObjectType](#neo.fs.v2.object.ObjectType) | | Type of the object payload content | -| homomorphic_hash | [neo.fs.v2.refs.Checksum](#neo.fs.v2.refs.Checksum) | | Homomorphic hash of the object payload | -| session_token | [neo.fs.v2.session.SessionToken](#neo.fs.v2.session.SessionToken) | | Session token, if it was used during Object creation. Need it to verify integrity and authenticity out of Request scope. | -| attributes | [Header.Attribute](#neo.fs.v2.object.Header.Attribute) | repeated | User-defined object attributes | -| split | [Header.Split](#neo.fs.v2.object.Header.Split) | | Position of the object in the split hierarchy | -| ec | [Header.EC](#neo.fs.v2.object.Header.EC) | | Erasure code chunk information. | +| payload_hash | [frost.fs.refs.Checksum](#frost.fs.refs.Checksum) | | Hash of payload bytes | +| object_type | [ObjectType](#frost.fs.object.ObjectType) | | Type of the object payload content | +| homomorphic_hash | [frost.fs.refs.Checksum](#frost.fs.refs.Checksum) | | Homomorphic hash of the object payload | +| session_token | [frost.fs.session.SessionToken](#frost.fs.session.SessionToken) | | Session token, if it was used during Object creation. Need it to verify integrity and authenticity out of Request scope. | +| attributes | [Header.Attribute](#frost.fs.object.Header.Attribute) | repeated | User-defined object attributes | +| split | [Header.Split](#frost.fs.object.Header.Split) | | Position of the object in the split hierarchy | +| ec | [Header.EC](#frost.fs.object.Header.EC) | | Erasure code chunk information. | - + ### Message Header.Attribute `Attribute` is a user-defined Key-Value metadata pair attached to an @@ -1126,23 +1113,19 @@ Objects with duplicated attribute names or attributes with empty values 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: @@ -1173,7 +1156,7 @@ corresponding section in FrostFS Technical Specification. | value | [string](#string) | | string value of the object attribute | - + ### Message Header.EC Erasure code can be applied to any object. @@ -1183,17 +1166,17 @@ All objects belonging to a single EC group have the same `parent` field. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| parent | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | Identifier of the origin object. Known to all chunks. | +| parent | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | Identifier of the origin object. Known to all chunks. | | index | [uint32](#uint32) | | Index of this chunk. | | total | [uint32](#uint32) | | Total number of chunks in this split. | | header_length | [uint32](#uint32) | | Total length of a parent header. Used to trim padding zeroes. | | header | [bytes](#bytes) | | Chunk of a parent header. | | parent_split_id | [bytes](#bytes) | | As the origin object is EC-splitted its identifier is known to all chunks as parent. But parent itself can be a part of Split (does not relate to EC-split). In this case parent_split_id should be set. | -| parent_split_parent_id | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | EC-parent's parent ID. parent_split_parent_id is set if EC-parent, 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. | -| parent_attributes | [Header.Attribute](#neo.fs.v2.object.Header.Attribute) | repeated | EC parent's attributes. | +| parent_split_parent_id | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | EC-parent's parent ID. parent_split_parent_id is set if EC-parent, 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. | +| parent_attributes | [Header.Attribute](#frost.fs.object.Header.Attribute) | repeated | EC parent's attributes. | - + ### Message Header.Split Bigger objects can be split into a chain of smaller objects. Information @@ -1204,15 +1187,15 @@ must be within the same container. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| parent | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | Identifier of the origin object. Known only to the minor child. | -| previous | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | Identifier of the left split neighbor | -| parent_signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | `signature` field of the parent object. Used to reconstruct parent. | -| parent_header | [Header](#neo.fs.v2.object.Header) | | `header` field of the parent object. Used to reconstruct parent. | -| children | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | repeated | List of identifiers of the objects generated by splitting current one. | +| parent | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | Identifier of the origin object. Known only to the minor child. | +| previous | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | Identifier of the left split neighbor | +| parent_signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | `signature` field of the parent object. Used to reconstruct parent. | +| parent_header | [Header](#frost.fs.object.Header) | | `header` field of the parent object. Used to reconstruct parent. | +| children | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | repeated | List of identifiers of the objects generated by splitting current one. | | split_id | [bytes](#bytes) | | 16 byte UUIDv4 used to identify the split object hierarchy parts. Must be unique inside container. All objects participating in the split must have the same `split_id` value. | - + ### Message Object Object structure. Object is immutable and content-addressed. It means @@ -1225,13 +1208,13 @@ in the header. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| object_id | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | Object's unique identifier. | -| signature | [neo.fs.v2.refs.Signature](#neo.fs.v2.refs.Signature) | | Signed object_id | -| header | [Header](#neo.fs.v2.object.Header) | | Object metadata headers | +| object_id | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | Object's unique identifier. | +| signature | [frost.fs.refs.Signature](#frost.fs.refs.Signature) | | Signed object_id | +| header | [Header](#frost.fs.object.Header) | | Object metadata headers | | payload | [bytes](#bytes) | | Payload bytes | - + ### Message ShortHeader Short header fields @@ -1239,16 +1222,16 @@ Short header fields | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| version | [neo.fs.v2.refs.Version](#neo.fs.v2.refs.Version) | | Object format version. Effectively, the version of API library used to create particular object. | +| version | [frost.fs.refs.Version](#frost.fs.refs.Version) | | Object format version. Effectively, the version of API library used to create particular object. | | creation_epoch | [uint64](#uint64) | | Epoch when the object was created | -| owner_id | [neo.fs.v2.refs.OwnerID](#neo.fs.v2.refs.OwnerID) | | Object's owner | -| object_type | [ObjectType](#neo.fs.v2.object.ObjectType) | | Type of the object payload content | +| owner_id | [frost.fs.refs.OwnerID](#frost.fs.refs.OwnerID) | | Object's owner | +| object_type | [ObjectType](#frost.fs.object.ObjectType) | | Type of the object payload content | | payload_length | [uint64](#uint64) | | Size of payload in bytes. `0xFFFFFFFFFFFFFFFF` means `payload_length` is unknown | -| payload_hash | [neo.fs.v2.refs.Checksum](#neo.fs.v2.refs.Checksum) | | Hash of payload bytes | -| homomorphic_hash | [neo.fs.v2.refs.Checksum](#neo.fs.v2.refs.Checksum) | | Homomorphic hash of the object payload | +| payload_hash | [frost.fs.refs.Checksum](#frost.fs.refs.Checksum) | | Hash of payload bytes | +| homomorphic_hash | [frost.fs.refs.Checksum](#frost.fs.refs.Checksum) | | Homomorphic hash of the object payload | - + ### Message SplitInfo Meta information of split hierarchy for object assembly. With the last part @@ -1260,13 +1243,13 @@ object right from the object parts. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | split_id | [bytes](#bytes) | | 16 byte UUID used to identify the split object hierarchy parts. | -| last_part | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | The identifier of the last object in split hierarchy parts. It contains split header with the original object header. | -| link | [neo.fs.v2.refs.ObjectID](#neo.fs.v2.refs.ObjectID) | | 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. | +| last_part | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | The identifier of the last object in split hierarchy parts. It contains split header with the original object header. | +| link | [frost.fs.refs.ObjectID](#frost.fs.refs.ObjectID) | | 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. | - + ### MatchType Type of match expression @@ -1281,7 +1264,7 @@ Type of match expression - + ### ObjectType Type of the object payload content. Only `REGULAR` type objects can be split, diff --git a/proto-docs/refs.md b/proto-docs/refs.md index 3ad3126..344c4b4 100644 --- a/proto-docs/refs.md +++ b/proto-docs/refs.md @@ -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 @@ - + ### 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 | - + ### 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 | - + ### 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. | - + ### 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 | - + ### 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 | - + ### 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 | - + ### Message SignatureRFC6979 RFC 6979 signature. @@ -164,7 +164,7 @@ RFC 6979 signature. | sign | [bytes](#bytes) | | Deterministic ECDSA with SHA-256 hashing | - + ### Message Version API version used by a node. @@ -182,7 +182,7 @@ number. - + ### ChecksumType Checksum algorithm type. @@ -195,7 +195,7 @@ Checksum algorithm type. - + ### SignatureScheme Signature scheme describes digital signing scheme used for (key, signature) diff --git a/proto-docs/session.md b/proto-docs/session.md index 984db48..a27de81 100644 --- a/proto-docs/session.md +++ b/proto-docs/session.md @@ -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 @@ - + -### 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) | - + ### 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. | - + ### 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` | - + ### 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. | - + ### Message CreateResponse.Body Session creation response body @@ -134,7 +134,7 @@ Session creation response body - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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. | - + ### 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 | - + ### 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 | - + ### 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 | - + ### 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 | - + ### 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 | - + ### 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 | - + ### 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: - + ### ContainerSessionContext.Verb Container request verbs @@ -323,7 +321,7 @@ Container request verbs - + ### ObjectSessionContext.Verb Object request verbs diff --git a/proto-docs/status.md b/proto-docs/status.md index 76534fb..dc94d48 100644 --- a/proto-docs/status.md +++ b/proto-docs/status.md @@ -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 @@ - + ### 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. | - + ### Message Status.Detail Return detail. It contains additional information that can be used to @@ -79,7 +79,7 @@ covered by the code. - + ### APEManager Section of status for APE manager related operations. @@ -90,7 +90,7 @@ Section of status for APE manager related operations. - + ### CommonFail Section of failed statuses independent of the operation. @@ -105,7 +105,7 @@ Section of failed statuses independent of the operation. - + ### Container Section of statuses for container-related operations. @@ -118,7 +118,7 @@ Section of statuses for container-related operations. - + ### Object Section of statuses for object-related operations. @@ -134,7 +134,7 @@ Section of statuses for object-related operations. - + ### Section Section identifiers. @@ -150,7 +150,7 @@ Section identifiers. - + ### Session Section of statuses for session-related operations. @@ -162,7 +162,7 @@ Section of statuses for session-related operations. - + ### Success Section of FrostFS successful return codes. diff --git a/proto-docs/tombstone.md b/proto-docs/tombstone.md index 467ad55..a0d67e1 100644 --- a/proto-docs/tombstone.md +++ b/proto-docs/tombstone.md @@ -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 @@ - + ### 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. | diff --git a/refs/types.proto b/refs/types.proto index fe12ec6..edac5ff 100644 --- a/refs/types.proto +++ b/refs/types.proto @@ -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. // diff --git a/session/service.proto b/session/service.proto index 544556b..7874444 100644 --- a/session/service.proto +++ b/session/service.proto @@ -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; } diff --git a/session/types.proto b/session/types.proto index c5bb695..50b91d5 100644 --- a/session/types.proto +++ b/session/types.proto @@ -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 diff --git a/status/types.proto b/status/types.proto index d3e09fd..29e4e6e 100644 --- a/status/types.proto +++ b/status/types.proto @@ -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 diff --git a/tombstone/types.proto b/tombstone/types.proto index ccf1257..70ffac3 100644 --- a/tombstone/types.proto +++ b/tombstone/types.proto @@ -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" ]; } diff --git a/version.json b/version.json new file mode 100644 index 0000000..118bee4 --- /dev/null +++ b/version.json @@ -0,0 +1,5 @@ +{ + "milestone": 3, + "patch": 0, + "date": "2024-10-08" +}