feature/ipfs vault allocation (#8)

* refactor: move constants to genesis.proto

* feat: add ipfs_active flag to genesis state

* feat: add IPFS connection initialization to keeper

* feat: add testnet process-compose

* refactor: rename sonr-testnet docker image to sonr-runner

* refactor: update docker-vm-release workflow to use 'latest' tag

* feat: add permission to workflows

* feat: add new service chain execution

* feat: add abstract vault class to pkl

* feat: use jetpackio/devbox image for runner

* feat: introduce dwn for local service worker

* refactor: remove unnecessary dockerfile layers

* refactor(deploy): Update Dockerfile to copy go.mod and go.sum from the parent directory

* build: move Dockerfile to root directory

* build: Add Dockerfile for deployment

* feat: Update Dockerfile to work with Go project in parent directory

* build: Update docker-compose.yaml to use relative paths

* feat: Update docker-compose to work with new image and parent git directory

* refactor: remove unnecessary test script

* <no value>

* feat: add test_node script for running node tests

* feat: add IPFS cluster to testnet

* feat: add docker image for sonr-runner

* fix: typo in export path

* feat(did): Add Localhost Registration Enabled Genesis Option

* feat: add support for Sqlite DB in vault

* feat: improve vault model JSON serialization

* feat: support querying HTMX endpoint for DID

* feat: Add primary key, unique, default, not null, auto increment, and foreign key field types

* feat: Add PublicKey model in pkl/vault.pkl

* feat: add frontend server

* refactor: move dwn.wasm to vfs directory

* feat(frontend): remove frontend server implementation

* feat: Add a frontend server and web auth protocol

* feat: implement new key types for MPC and ZK proofs

* fix: Update enum types and DefaultKeyInfos

* fix: correct typo in KeyAlgorithm enum

* feat(did): add attestation format validation

* feat: Add x/did/builder/extractor.go

* feat: Update JWK parsing in x/did/builder/extractor.go

* feat: Use github.com/onsonr/sonr/x/did/types package

* feat: Extract and format public keys from WebAuthn credentials

* feat: Introduce a new `mapToJWK` function to convert a map to a `types.JWK` struct

* feat: add support for extracting JWK public keys

* feat: remove VerificationMethod struct

* refactor: extract public key extraction logic

* feat: add helper functions to map COSECurveID to JWK curve names

* feat: pin initial vault
This commit is contained in:
Prad Nukala
2024-09-07 18:12:58 -04:00
committed by GitHub
parent 93ebc9eea1
commit 4f2d342649
116 changed files with 12036 additions and 7657 deletions
+24 -37
View File
@@ -4,6 +4,7 @@ package did.v1;
import "did/v1/genesis.proto";
import "did/v1/models.proto";
import "google/api/annotations.proto";
import "google/api/httpbody.proto";
option go_package = "github.com/onsonr/sonr/x/did/types";
@@ -14,16 +15,6 @@ service Query {
option (google.api.http).get = "/did/params";
}
// Accounts returns associated wallet accounts with the DID.
rpc Accounts(QueryRequest) returns (QueryAccountsResponse) {
option (google.api.http).get = "/did/{did}/accounts";
}
// Credentials returns associated credentials with the DID and Service Origin.
rpc Credentials(QueryRequest) returns (QueryCredentialsResponse) {
option (google.api.http).get = "/service/{origin}/{subject}/credentials";
}
// Resolve queries the DID document by its id.
rpc Resolve(QueryRequest) returns (QueryResolveResponse) {
option (google.api.http).get = "/did/{did}";
@@ -33,11 +24,6 @@ service Query {
rpc Service(QueryRequest) returns (QueryServiceResponse) {
option (google.api.http).get = "/service/{origin}";
}
// Token returns the current authentication token for the client.
rpc Token(QueryRequest) returns (QueryTokenResponse) {
option (google.api.http).post = "/token";
}
}
// Queryequest is the request type for the Query/Params RPC method.
@@ -45,46 +31,47 @@ message QueryRequest {
string did = 1;
string origin = 2;
string subject = 3;
repeated Credential credentials = 4;
string endpoint = 4;
}
// QueryParamsResponse is the response type for the Query/Params RPC method.
message QueryParamsResponse {
// params defines the parameters of the module.
Params params = 1;
// ipfs_active returns true if the IPFS client is initialized
bool ipfs_active = 2;
}
// QueryAccountsResponse is the response type for the Query/Exists RPC method.
message QueryAccountsResponse {
bool exists = 1;
}
// QueryCredentialsResponse is the response type for the Query/Exists RPC method.
message QueryCredentialsResponse {
// QueryResponse is the response type for the Query/Exists RPC method.
message QueryResponse {
bool success = 1;
string subject = 2;
string origin = 3;
repeated Credential credentials = 4;
string error = 5;
bool ipfs_active = 4;
Params params = 5;
Document document = 6;
Service service = 7;
repeated Credential credentials = 8;
Token token = 9;
string error = 10;
}
// QueryResolveResponse is the response type for the Query/Resolve RPC method.
message QueryResolveResponse {
// document is the DID document
Document document = 1;
bool success = 1;
string subject = 2;
string origin = 3;
bool ipfs_active = 4;
Params params = 5;
Document document = 6;
repeated Credential credentials = 7;
Token token = 8;
}
// QueryLoginOptionsResponse is the response type for the Query/LoginOptions RPC method.
message QueryServiceResponse {
Service service = 1;
}
// QueryTokenResponse is the response type for the Query/LoginOptions RPC method.
message QueryTokenResponse {
bool success = 1;
Token token = 2;
string error = 3;
string subject = 2;
string origin = 3;
bool ipfs_active = 4;
Params params = 5;
Service service = 6;
}