Files
sonr/proto/dwn/v1/query.proto
T
Prad NukalaandGitHub 13e6c3e84d Master (#1262)
* clear

* feat: Add everything

* fix: Commenht
2025-10-03 14:45:52 -04:00

302 lines
9.4 KiB
Protocol Buffer
Executable File

syntax = "proto3";
package dwn.v1;
import "cosmos/base/query/v1beta1/pagination.proto";
import "dwn/v1/genesis.proto";
import "dwn/v1/state.proto";
import "gogoproto/gogo.proto";
import "google/api/annotations.proto";
option go_package = "github.com/sonr-io/sonr/x/dwn/types";
// Query provides defines the gRPC querier service.
service Query {
// Params queries all parameters of the module.
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
option (google.api.http).get = "/dwn/v1/params";
}
// IPFS queries the status of the IPFS node
rpc IPFS(QueryIPFSRequest) returns (QueryIPFSResponse) {
option (google.api.http).get = "/dwn/v1/ipfs";
}
// CID returns the data for a given CID
rpc CID(QueryCIDRequest) returns (QueryCIDResponse) {
option (google.api.http).get = "/dwn/v1/ipfs/{cid}";
}
// Records queries DWN records with filters
//
// {{.MethodDescriptorProto.Name}} is a call with the method(s) {{$first := true}}{{range .Bindings}}{{if $first}}{{$first = false}}{{else}}, {{end}}{{.HTTPMethod}}{{end}} within the "{{.Service.Name}}" service.
// It takes in "{{.RequestType.Name}}" and returns a "{{.ResponseType.Name}}".
//
// {{import "dwn_docs.md"}}
rpc Records(QueryRecordsRequest) returns (QueryRecordsResponse) {
option (google.api.http).get = "/dwn/v1/records/{target}";
}
// Record queries a specific DWN record by ID
rpc Record(QueryRecordRequest) returns (QueryRecordResponse) {
option (google.api.http).get = "/dwn/v1/records/{target}/{record_id}";
}
// Protocols queries DWN protocols
rpc Protocols(QueryProtocolsRequest) returns (QueryProtocolsResponse) {
option (google.api.http).get = "/dwn/v1/protocols/{target}";
}
// Protocol queries a specific DWN protocol
rpc Protocol(QueryProtocolRequest) returns (QueryProtocolResponse) {
option (google.api.http).get = "/dwn/v1/protocols/{target}/{protocol_uri}";
}
// Permissions queries DWN permissions
rpc Permissions(QueryPermissionsRequest) returns (QueryPermissionsResponse) {
option (google.api.http).get = "/dwn/v1/permissions/{target}";
}
// Vault queries a specific vault
rpc Vault(QueryVaultRequest) returns (QueryVaultResponse) {
option (google.api.http).get = "/dwn/v1/vaults/{vault_id}";
}
// Vaults queries vaults by owner
rpc Vaults(QueryVaultsRequest) returns (QueryVaultsResponse) {
option (google.api.http).get = "/dwn/v1/vaults";
}
// EncryptedRecord queries a specific encrypted record with automatic decryption
rpc EncryptedRecord(QueryEncryptedRecordRequest) returns (QueryEncryptedRecordResponse) {
option (google.api.http).get = "/dwn/v1/encrypted-records/{target}/{record_id}";
}
// EncryptionStatus queries current encryption key state and version
rpc EncryptionStatus(QueryEncryptionStatusRequest) returns (QueryEncryptionStatusResponse) {
option (google.api.http).get = "/dwn/v1/encryption/status";
}
// VRFContributions lists VRF contributions for current consensus round
rpc VRFContributions(QueryVRFContributionsRequest) returns (QueryVRFContributionsResponse) {
option (google.api.http).get = "/dwn/v1/encryption/vrf-contributions";
}
}
// QueryParamsRequest is the request type for the Query/Params RPC method.
message QueryParamsRequest {}
// QueryParamsResponse is the response type for the Query/Params RPC method.
message QueryParamsResponse {
// params defines the parameters of the module.
Params params = 1;
}
// QueryIPFSRequest is the request type for the Query/IPFS RPC method.
message QueryIPFSRequest {}
// QueryIPFSResponse is the response type for the Query/IPFS RPC method.
message QueryIPFSResponse {
// IPFS status
IPFSStatus status = 1;
}
// QueryCIDRequest is the request type for the Query/CID RPC method.
message QueryCIDRequest {
// CID to query
string cid = 1;
}
// QueryCIDResponse is the response type for the Query/CID RPC method.
message QueryCIDResponse {
// Status code
int32 status_code = 1;
// CID data
bytes data = 2;
}
// QueryRecordsRequest is the request type for querying DWN records
message QueryRecordsRequest {
// Target DWN (DID)
string target = 1;
// Optional protocol filter
string protocol = 2;
// Optional schema filter
string schema = 3;
// Optional parent ID filter
string parent_id = 4;
// Filter by published status
bool published_only = 5;
// Pagination
cosmos.base.query.v1beta1.PageRequest pagination = 6;
}
// QueryRecordsResponse is the response type for querying DWN records
message QueryRecordsResponse {
// List of records
repeated DWNRecord records = 1 [(gogoproto.nullable) = false];
// Pagination response
cosmos.base.query.v1beta1.PageResponse pagination = 2;
}
// QueryRecordRequest is the request type for querying a specific DWN record
message QueryRecordRequest {
// Target DWN (DID)
string target = 1;
// Record ID
string record_id = 2;
}
// QueryRecordResponse is the response type for querying a specific DWN record
message QueryRecordResponse {
// The record
DWNRecord record = 1;
}
// QueryProtocolsRequest is the request type for querying DWN protocols
message QueryProtocolsRequest {
// Target DWN (DID)
string target = 1;
// Filter by published status
bool published_only = 2;
// Pagination
cosmos.base.query.v1beta1.PageRequest pagination = 3;
}
// QueryProtocolsResponse is the response type for querying DWN protocols
message QueryProtocolsResponse {
// List of protocols
repeated DWNProtocol protocols = 1 [(gogoproto.nullable) = false];
// Pagination response
cosmos.base.query.v1beta1.PageResponse pagination = 2;
}
// QueryProtocolRequest is the request type for querying a specific DWN protocol
message QueryProtocolRequest {
// Target DWN (DID)
string target = 1;
// Protocol URI
string protocol_uri = 2;
}
// QueryProtocolResponse is the response type for querying a specific DWN protocol
message QueryProtocolResponse {
// The protocol
DWNProtocol protocol = 1;
}
// QueryPermissionsRequest is the request type for querying DWN permissions
message QueryPermissionsRequest {
// Target DWN (DID)
string target = 1;
// Optional grantor filter
string grantor = 2;
// Optional grantee filter
string grantee = 3;
// Optional interface filter
string interface_name = 4;
// Optional method filter
string method = 5;
// Include revoked permissions
bool include_revoked = 6;
// Pagination
cosmos.base.query.v1beta1.PageRequest pagination = 7;
}
// QueryPermissionsResponse is the response type for querying DWN permissions
message QueryPermissionsResponse {
// List of permissions
repeated DWNPermission permissions = 1 [(gogoproto.nullable) = false];
// Pagination response
cosmos.base.query.v1beta1.PageResponse pagination = 2;
}
// QueryVaultRequest is the request type for querying a specific vault
message QueryVaultRequest {
// Vault ID
string vault_id = 1;
}
// QueryVaultResponse is the response type for querying a specific vault
message QueryVaultResponse {
// The vault
VaultState vault = 1;
}
// QueryVaultsRequest is the request type for querying vaults by owner
message QueryVaultsRequest {
// Optional owner filter
string owner = 1;
// Pagination
cosmos.base.query.v1beta1.PageRequest pagination = 2;
}
// QueryVaultsResponse is the response type for querying vaults
message QueryVaultsResponse {
// List of vaults
repeated VaultState vaults = 1 [(gogoproto.nullable) = false];
// Pagination response
cosmos.base.query.v1beta1.PageResponse pagination = 2;
}
// QueryEncryptedRecordRequest is the request type for querying encrypted records
message QueryEncryptedRecordRequest {
// Target DWN (DID)
string target = 1;
// Record ID
string record_id = 2;
// Optional: return encrypted data instead of decrypting
bool return_encrypted = 3;
}
// QueryEncryptedRecordResponse is the response type for querying encrypted records
message QueryEncryptedRecordResponse {
// The record with decrypted data (if requested)
DWNRecord record = 1;
// Encryption metadata for the record
EncryptionMetadata encryption_metadata = 2;
// Whether data was decrypted
bool was_decrypted = 3;
}
// QueryEncryptionStatusRequest is the request type for querying encryption status
message QueryEncryptionStatusRequest {}
// QueryEncryptionStatusResponse is the response type for querying encryption status
message QueryEncryptionStatusResponse {
// Current encryption key version
uint64 current_key_version = 1;
// Current validator set participating in consensus
repeated string validator_set = 2;
// Whether running in single-node mode
bool single_node_mode = 3;
// Last key rotation timestamp
int64 last_rotation = 4;
// Next scheduled rotation timestamp
int64 next_rotation = 5;
// Total encrypted records in the system
uint64 total_encrypted_records = 6;
}
// QueryVRFContributionsRequest is the request type for querying VRF contributions
message QueryVRFContributionsRequest {
// Optional: filter by validator address
string validator_address = 1;
// Optional: filter by block height
int64 block_height = 2;
// Pagination
cosmos.base.query.v1beta1.PageRequest pagination = 3;
}
// QueryVRFContributionsResponse is the response type for querying VRF contributions
message QueryVRFContributionsResponse {
// List of VRF contributions
repeated VRFContribution contributions = 1 [(gogoproto.nullable) = false];
// Current consensus round information
VRFConsensusRound current_round = 2;
// Pagination response
cosmos.base.query.v1beta1.PageResponse pagination = 3;
}