forked from TrueCloudLab/frostfs-api
Merge pull request #16 from nspcc-dev/feature/container-eacl-rpc
container: add Get/Set extended ACL rpc
This commit is contained in:
commit
2a48bf7e95
2 changed files with 135 additions and 0 deletions
|
@ -27,6 +27,12 @@ service Service {
|
||||||
|
|
||||||
// List returns all user's containers
|
// List returns all user's containers
|
||||||
rpc List(ListRequest) returns (ListResponse);
|
rpc List(ListRequest) returns (ListResponse);
|
||||||
|
|
||||||
|
// SetExtendedACL changes extended ACL rules of the container
|
||||||
|
rpc SetExtendedACL(SetExtendedACLRequest) returns (SetExtendedACLResponse);
|
||||||
|
|
||||||
|
// GetExtendedACL returns extended ACL rules of the container
|
||||||
|
rpc GetExtendedACL(GetExtendedACLRequest) returns (GetExtendedACLResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
message PutRequest {
|
message PutRequest {
|
||||||
|
@ -99,3 +105,42 @@ message ListResponse {
|
||||||
// CID (container id) is list of SHA256 hashes of the container structures
|
// CID (container id) is list of SHA256 hashes of the container structures
|
||||||
repeated bytes CID = 1 [(gogoproto.customtype) = "CID", (gogoproto.nullable) = false];
|
repeated bytes CID = 1 [(gogoproto.customtype) = "CID", (gogoproto.nullable) = false];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message ExtendedACLKey {
|
||||||
|
// ID (container id) is a SHA256 hash of the container structure
|
||||||
|
bytes ID = 1 [(gogoproto.customtype) = "CID", (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
message ExtendedACLValue {
|
||||||
|
// EACL carries binary representation of the table of extended ACL rules
|
||||||
|
bytes EACL = 1;
|
||||||
|
// Signature carries EACL field signature
|
||||||
|
bytes Signature = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
message SetExtendedACLRequest {
|
||||||
|
// Key carries key to extended ACL information
|
||||||
|
ExtendedACLKey Key = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
// Value carries extended ACL information
|
||||||
|
ExtendedACLValue Value = 2 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
|
||||||
|
service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
|
||||||
|
service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
message SetExtendedACLResponse {}
|
||||||
|
|
||||||
|
message GetExtendedACLRequest {
|
||||||
|
// Key carries key to extended ACL information
|
||||||
|
ExtendedACLKey Key = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
// RequestMetaHeader contains information about request meta headers (should be embedded into message)
|
||||||
|
service.RequestMetaHeader Meta = 98 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
// RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message)
|
||||||
|
service.RequestVerificationHeader Verify = 99 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
||||||
|
message GetExtendedACLResponse {
|
||||||
|
// ACL carries extended ACL information
|
||||||
|
ExtendedACLValue ACL = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false];
|
||||||
|
}
|
||||||
|
|
|
@ -10,12 +10,18 @@
|
||||||
- Messages
|
- Messages
|
||||||
- [DeleteRequest](#container.DeleteRequest)
|
- [DeleteRequest](#container.DeleteRequest)
|
||||||
- [DeleteResponse](#container.DeleteResponse)
|
- [DeleteResponse](#container.DeleteResponse)
|
||||||
|
- [ExtendedACLKey](#container.ExtendedACLKey)
|
||||||
|
- [ExtendedACLValue](#container.ExtendedACLValue)
|
||||||
|
- [GetExtendedACLRequest](#container.GetExtendedACLRequest)
|
||||||
|
- [GetExtendedACLResponse](#container.GetExtendedACLResponse)
|
||||||
- [GetRequest](#container.GetRequest)
|
- [GetRequest](#container.GetRequest)
|
||||||
- [GetResponse](#container.GetResponse)
|
- [GetResponse](#container.GetResponse)
|
||||||
- [ListRequest](#container.ListRequest)
|
- [ListRequest](#container.ListRequest)
|
||||||
- [ListResponse](#container.ListResponse)
|
- [ListResponse](#container.ListResponse)
|
||||||
- [PutRequest](#container.PutRequest)
|
- [PutRequest](#container.PutRequest)
|
||||||
- [PutResponse](#container.PutResponse)
|
- [PutResponse](#container.PutResponse)
|
||||||
|
- [SetExtendedACLRequest](#container.SetExtendedACLRequest)
|
||||||
|
- [SetExtendedACLResponse](#container.SetExtendedACLResponse)
|
||||||
|
|
||||||
|
|
||||||
- [container/types.proto](#container/types.proto)
|
- [container/types.proto](#container/types.proto)
|
||||||
|
@ -46,6 +52,8 @@ rpc Put(PutRequest) returns (PutResponse);
|
||||||
rpc Delete(DeleteRequest) returns (DeleteResponse);
|
rpc Delete(DeleteRequest) returns (DeleteResponse);
|
||||||
rpc Get(GetRequest) returns (GetResponse);
|
rpc Get(GetRequest) returns (GetResponse);
|
||||||
rpc List(ListRequest) returns (ListResponse);
|
rpc List(ListRequest) returns (ListResponse);
|
||||||
|
rpc SetExtendedACL(SetExtendedACLRequest) returns (SetExtendedACLResponse);
|
||||||
|
rpc GetExtendedACL(GetExtendedACLRequest) returns (GetExtendedACLResponse);
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -80,6 +88,20 @@ List returns all user's containers
|
||||||
| Name | Input | Output |
|
| Name | Input | Output |
|
||||||
| ---- | ----- | ------ |
|
| ---- | ----- | ------ |
|
||||||
| List | [ListRequest](#container.ListRequest) | [ListResponse](#container.ListResponse) |
|
| List | [ListRequest](#container.ListRequest) | [ListResponse](#container.ListResponse) |
|
||||||
|
#### Method SetExtendedACL
|
||||||
|
|
||||||
|
SetExtendedACL changes extended ACL rules of the container
|
||||||
|
|
||||||
|
| Name | Input | Output |
|
||||||
|
| ---- | ----- | ------ |
|
||||||
|
| SetExtendedACL | [SetExtendedACLRequest](#container.SetExtendedACLRequest) | [SetExtendedACLResponse](#container.SetExtendedACLResponse) |
|
||||||
|
#### Method GetExtendedACL
|
||||||
|
|
||||||
|
GetExtendedACL returns extended ACL rules of the container
|
||||||
|
|
||||||
|
| Name | Input | Output |
|
||||||
|
| ---- | ----- | ------ |
|
||||||
|
| GetExtendedACL | [GetExtendedACLRequest](#container.GetExtendedACLRequest) | [GetExtendedACLResponse](#container.GetExtendedACLResponse) |
|
||||||
<!-- end services -->
|
<!-- end services -->
|
||||||
|
|
||||||
|
|
||||||
|
@ -104,6 +126,53 @@ via consensus in inner ring nodes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<a name="container.ExtendedACLKey"></a>
|
||||||
|
|
||||||
|
### Message ExtendedACLKey
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| ID | [bytes](#bytes) | | ID (container id) is a SHA256 hash of the container structure |
|
||||||
|
|
||||||
|
|
||||||
|
<a name="container.ExtendedACLValue"></a>
|
||||||
|
|
||||||
|
### Message ExtendedACLValue
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| EACL | [bytes](#bytes) | | EACL carries binary representation of the table of extended ACL rules |
|
||||||
|
| Signature | [bytes](#bytes) | | Signature carries EACL field signature |
|
||||||
|
|
||||||
|
|
||||||
|
<a name="container.GetExtendedACLRequest"></a>
|
||||||
|
|
||||||
|
### Message GetExtendedACLRequest
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| Key | [ExtendedACLKey](#container.ExtendedACLKey) | | Key carries key to extended ACL information |
|
||||||
|
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
|
||||||
|
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
|
||||||
|
|
||||||
|
|
||||||
|
<a name="container.GetExtendedACLResponse"></a>
|
||||||
|
|
||||||
|
### Message GetExtendedACLResponse
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| ACL | [ExtendedACLValue](#container.ExtendedACLValue) | | ACL carries extended ACL information |
|
||||||
|
|
||||||
|
|
||||||
<a name="container.GetRequest"></a>
|
<a name="container.GetRequest"></a>
|
||||||
|
|
||||||
### Message GetRequest
|
### Message GetRequest
|
||||||
|
@ -179,6 +248,27 @@ via consensus in inner ring nodes
|
||||||
| ----- | ---- | ----- | ----------- |
|
| ----- | ---- | ----- | ----------- |
|
||||||
| CID | [bytes](#bytes) | | CID (container id) is a SHA256 hash of the container structure |
|
| CID | [bytes](#bytes) | | CID (container id) is a SHA256 hash of the container structure |
|
||||||
|
|
||||||
|
|
||||||
|
<a name="container.SetExtendedACLRequest"></a>
|
||||||
|
|
||||||
|
### Message SetExtendedACLRequest
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
| Field | Type | Label | Description |
|
||||||
|
| ----- | ---- | ----- | ----------- |
|
||||||
|
| Key | [ExtendedACLKey](#container.ExtendedACLKey) | | Key carries key to extended ACL information |
|
||||||
|
| Value | [ExtendedACLValue](#container.ExtendedACLValue) | | Value carries extended ACL information |
|
||||||
|
| Meta | [service.RequestMetaHeader](#service.RequestMetaHeader) | | RequestMetaHeader contains information about request meta headers (should be embedded into message) |
|
||||||
|
| Verify | [service.RequestVerificationHeader](#service.RequestVerificationHeader) | | RequestVerificationHeader is a set of signatures of every NeoFS Node that processed request (should be embedded into message) |
|
||||||
|
|
||||||
|
|
||||||
|
<a name="container.SetExtendedACLResponse"></a>
|
||||||
|
|
||||||
|
### Message SetExtendedACLResponse
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- end messages -->
|
<!-- end messages -->
|
||||||
|
|
||||||
<!-- end enums -->
|
<!-- end enums -->
|
||||||
|
|
Loading…
Reference in a new issue