(no commit message provided)

This commit is contained in:
Prad Nukala
2024-08-10 17:01:14 -04:00
committed by Prad Nukala (aider)
parent 24db9de0ad
commit 2923b8866b
23 changed files with 9499 additions and 1677 deletions
+4
View File
@@ -0,0 +1,4 @@
syntax = "proto3";
package did.v1;
option go_package = "github.com/onsonr/hway/x/did/types";
+55 -18
View File
@@ -3,6 +3,7 @@ package did.v1;
import "google/api/annotations.proto";
import "did/v1/genesis.proto";
import "did/v1/types.proto";
option go_package = "github.com/onsonr/hway/x/did/types";
@@ -13,14 +14,29 @@ service Query {
option (google.api.http).get = "/did/params";
}
// Resolve queries the DID document by its id.
rpc ResolveIdentifier(QueryResolveRequest) returns (QueryResolveResponse) {
option (google.api.http).get = "/did/resolve/{id}";
// Accounts returns associated wallet accounts with the DID.
rpc Accounts(QueryAccountsRequest) returns (QueryAccountsResponse) {
option (google.api.http).get = "/did/{did}/accounts";
}
// Credentials returns associated credentials with the DID and Service Origin.
rpc Credentials(QueryCredentialsRequest) returns (QueryCredentialsResponse) {
option (google.api.http).get = "/did/{did}/{origin}/credentials";
}
// Identities returns associated identity with the DID.
rpc Identities(QueryIdentitiesRequest) returns (QueryIdentitiesResponse) {
option (google.api.http).get = "/did/{did}/identities";
}
// Resolve queries the DID document by its id.
rpc Resolve(QueryResolveRequest) returns (QueryResolveResponse) {
option (google.api.http).get = "/did/resolve/{did}";
}
// LoginOptions queries the PublicKeyCredentialAttestationOptions for starting a login flow.
rpc WitnessCredential(QueryWitnessCredentialRequest) returns (QueryWitnessCredentialResponse) {
option (google.api.http).get = "/did/assertion/{id}/witness";
// Service returns associated ServiceInfo for a given Origin
rpc Service(QueryServiceRequest) returns (QueryServiceResponse) {
option (google.api.http).get = "/did/service/{origin}";
}
}
@@ -33,35 +49,56 @@ message QueryParamsResponse {
Params params = 1;
}
// QueryExistsRequest is the request type for the Query/Exists RPC method.
message QueryExistsRequest {
string kind = 1;
string value = 2;
// QueryAccountsRequest is the request type for the Query/Exists RPC method.
message QueryAccountsRequest {
string did = 1;
}
// QueryExistsResponse is the response type for the Query/Exists RPC method.
message QueryExistsResponse {
// QueryAccountsResponse is the response type for the Query/Exists RPC method.
message QueryAccountsResponse {
bool exists = 1;
}
// QueryCredentialsRequest is the request type for the Query/Exists RPC method.
message QueryCredentialsRequest {
string did = 1;
string origin = 2;
}
// QueryCredentialsResponse is the response type for the Query/Exists RPC method.
message QueryCredentialsResponse {
map<string, bytes> credentials = 1;
}
// QueryIdentitiesRequest is the request type for the Query/Exists RPC method.
message QueryIdentitiesRequest {
string did = 1;
}
// QueryIdentitiesResponse is the response type for the Query/Exists RPC method.
message QueryIdentitiesResponse {
bool exists = 1;
repeated VerificationMethod verificationMethod = 2;
}
// QueryResolveRequest is the request type for the Query/Resolve RPC method.
message QueryResolveRequest {
string id = 1;
string did = 1;
}
// QueryResolveResponse is the response type for the Query/Resolve RPC method.
message QueryResolveResponse {
// document is the DID document
string document = 1;
Document document = 1;
}
// QueryLoginOptionsRequest is the request type for the Query/LoginOptions RPC method.
message QueryWitnessCredentialRequest {
string id = 1;
// QueryServiceRequest is the request type for the Query/LoginOptions RPC method.
message QueryServiceRequest {
string origin = 1;
}
// QueryLoginOptionsResponse is the response type for the Query/LoginOptions RPC method.
message QueryWitnessCredentialResponse {
message QueryServiceResponse {
// options is the PublicKeyCredentialAttestationOptions
string options = 1;
}
+3 -3
View File
@@ -12,7 +12,7 @@ message Aliases {
option (cosmos.orm.v1.table) = {
id: 1
primary_key: {fields: "id"}
index: { id: 1, fields: "handle", unique: true }
index: { id: 1, fields: "subject", unique: true }
};
// The unique identifier of the alias
@@ -21,8 +21,8 @@ message Aliases {
// Origin is the Alias provider
string origin = 2;
// Handle is the user defined alias
string handle = 3;
// Subject is the user defined alias
string subject = 3;
// Controller of the alias
string controller = 4;
+29 -2
View File
@@ -9,9 +9,19 @@ import "cosmos_proto/cosmos.proto";
option go_package = "github.com/onsonr/hway/x/did/types";
// Credential defines a WebAuthn credential
message Credential {
string id = 1;
string credential_type = 2;
bytes credential_id = 3;
repeated string transport = 4;
string attestation_type = 5;
string display_name = 6;
string controller = 7;
}
// BaseDocument defines a DID document
message BaseDocument {
// Document defines a DID document
message Document {
string id = 1;
repeated VerificationMethod verification_methods = 2;
repeated string authentication = 4;
@@ -20,6 +30,23 @@ message BaseDocument {
repeated string capability_invocation = 8;
}
// Identity defines an associated profile for a did subject
message Identity {
string id = 1;
string subject = 2;
string controller = 3;
repeated Credential credentials = 4;
repeated VerificationMethod verification_methods = 5;
}
// PubKey defines a public key for a did
message PubKey {
string id = 1;
bytes key = 2;
string key_type = 3;
string controller = 4;
}
// VerificationMethod defines a verification method
message VerificationMethod {
string id = 1;