storj/pkg/pb/metainfo.proto
JT Olio e17908a266
metainfo: add project info rpc for getting a project salt using an api key (#2311)
The API exposed in #2302 needs to be able to get a project-level salt (https://github.com/storj/storj/pull/2302/files#diff-72b734f4a2e408a544fef071d2565fc8R200), see https://github.com/storj/storj/blob/master/docs/design/password-key-derivation.md also

I realized this morning that if we need it later this week, we need to get it into today's release.

Please describe the tests: tests will come as part of #2302

Please describe the performance impact: none
2019-06-24 11:15:45 -06:00

124 lines
2.9 KiB
Protocol Buffer

// Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.
syntax = "proto3";
option go_package = "pb";
package metainfo;
import "gogo.proto";
import "google/protobuf/timestamp.proto";
import "node.proto";
import "pointerdb.proto";
import "orders.proto";
// Metainfo it's a satellite RPC service
service Metainfo {
rpc CreateSegment(SegmentWriteRequest) returns (SegmentWriteResponse);
rpc CommitSegment(SegmentCommitRequest) returns (SegmentCommitResponse);
rpc SegmentInfo(SegmentInfoRequest) returns (SegmentInfoResponse);
rpc DownloadSegment(SegmentDownloadRequest) returns (SegmentDownloadResponse);
rpc DeleteSegment(SegmentDeleteRequest) returns (SegmentDeleteResponse);
rpc ListSegments(ListSegmentsRequest) returns (ListSegmentsResponse);
rpc SetAttribution(SetAttributionRequest) returns (SetAttributionResponse);
rpc ProjectInfo(ProjectInfoRequest) returns (ProjectInfoResponse);
}
message AddressedOrderLimit {
orders.OrderLimit2 limit = 1;
node.NodeAddress storage_node_address = 2;
}
message SegmentWriteRequest {
bytes bucket = 1;
bytes path = 2;
int64 segment = 3;
pointerdb.RedundancyScheme redundancy = 4;
int64 max_encrypted_segment_size = 5;
google.protobuf.Timestamp expiration = 6;
}
message SegmentWriteResponse {
repeated AddressedOrderLimit addressed_limits = 1;
bytes root_piece_id = 2 [(gogoproto.customtype) = "PieceID", (gogoproto.nullable) = false];
}
message SegmentCommitRequest {
bytes bucket = 1;
bytes path = 2;
int64 segment = 3;
pointerdb.Pointer pointer = 4;
repeated orders.OrderLimit2 original_limits = 5;
}
message SegmentCommitResponse {
pointerdb.Pointer pointer = 1;
}
message SegmentDownloadRequest {
bytes bucket = 1;
bytes path = 2;
int64 segment = 3;
}
message SegmentDownloadResponse {
repeated AddressedOrderLimit addressed_limits = 1;
pointerdb.Pointer pointer = 2;
}
message SegmentInfoRequest {
bytes bucket = 1;
bytes path = 2;
int64 segment = 3;
}
message SegmentInfoResponse {
pointerdb.Pointer pointer = 2;
}
message SegmentDeleteRequest {
bytes bucket = 1;
bytes path = 2;
int64 segment = 3;
}
message SegmentDeleteResponse {
repeated AddressedOrderLimit addressed_limits = 1;
}
message ListSegmentsRequest {
bytes bucket = 1;
bytes prefix = 2;
bytes start_after = 3;
bytes end_before = 4;
bool recursive = 5;
int32 limit = 6;
fixed32 meta_flags = 7;
}
message ListSegmentsResponse {
message Item {
bytes path = 1;
pointerdb.Pointer pointer = 2;
bool is_prefix = 3;
}
repeated Item items = 1;
bool more = 2;
}
message SetAttributionRequest{
bytes bucket_name = 1;
bytes partner_id = 2 ;
}
message SetAttributionResponse {
}
message ProjectInfoRequest {
}
message ProjectInfoResponse {
bytes project_salt = 1;
}