mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 21:09:11 +00:00
* 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
217 lines
4.4 KiB
Protocol Buffer
217 lines
4.4 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package did.v1;
|
|
|
|
import "cosmos/orm/v1/orm.proto";
|
|
import "did/v1/genesis.proto";
|
|
import "did/v1/models.proto";
|
|
|
|
option go_package = "github.com/onsonr/sonr/x/did/types";
|
|
|
|
// Authentication represents strongly created credentials (e.g., Passkeys, SSH, GPG, Native Secure Enclaave)
|
|
message Authentication {
|
|
option (cosmos.orm.v1.table) = {
|
|
id: 1
|
|
primary_key: {fields: "id"}
|
|
index: {
|
|
id: 1
|
|
fields: "subject,origin"
|
|
unique: true
|
|
}
|
|
index: {
|
|
id: 2
|
|
fields: "controller,origin"
|
|
unique: true
|
|
}
|
|
index: {
|
|
id: 3
|
|
fields: "controller,credential_label"
|
|
unique: true
|
|
}
|
|
};
|
|
|
|
// The unique identifier of the attestation
|
|
string id = 1;
|
|
|
|
// The controller of the attestation
|
|
string controller = 2;
|
|
|
|
// Key type (e.g., "passkey", "ssh", "gpg", "native-secure-enclave")
|
|
PubKey public_key = 3;
|
|
|
|
// The origin of the attestation
|
|
string origin = 4;
|
|
|
|
// The subject of the attestation
|
|
string subject = 5;
|
|
|
|
// The value of the linked identifier
|
|
bytes credential_id = 6;
|
|
|
|
// The credential label
|
|
string credential_label = 7;
|
|
|
|
// The display label of the attestation
|
|
repeated string credential_transport = 8;
|
|
|
|
// The attestationtype of the attestation
|
|
string attestation_type = 9;
|
|
|
|
// Metadata is optional additional information about the assertion
|
|
Metadata metadata = 10;
|
|
}
|
|
|
|
// Assertion represents linked identifiers (e.g., Crypto Accounts, Github, Email, Phone)
|
|
message Assertion {
|
|
option (cosmos.orm.v1.table) = {
|
|
id: 2
|
|
primary_key: {fields: "id"}
|
|
index: {
|
|
id: 1
|
|
fields: "subject,origin"
|
|
unique: true
|
|
}
|
|
index: {
|
|
id: 2
|
|
fields: "controller,origin"
|
|
unique: true
|
|
}
|
|
};
|
|
|
|
// The unique identifier of the attestation
|
|
string id = 1;
|
|
|
|
// The type of the linked identifier (e.g., "crypto", "github", "email", "phone")
|
|
string controller = 2;
|
|
|
|
// The value of the linked identifier
|
|
PubKey public_key = 3;
|
|
|
|
// The origin of the attestation
|
|
string origin = 4;
|
|
|
|
// The subject of the attestation
|
|
string subject = 5;
|
|
|
|
// The controller of the attestation
|
|
Metadata metadata = 6;
|
|
}
|
|
|
|
// Controller represents a Sonr DWN Vault
|
|
message Controller {
|
|
option (cosmos.orm.v1.table) = {
|
|
id: 3
|
|
primary_key: {fields: "id"}
|
|
index: {
|
|
id: 1
|
|
fields: "address"
|
|
unique: true
|
|
}
|
|
index: {
|
|
id: 2
|
|
fields: "vault_cid"
|
|
unique: true
|
|
}
|
|
};
|
|
|
|
// The unique identifier of the controller
|
|
string id = 1;
|
|
|
|
// The DID of the controller
|
|
string address = 2;
|
|
|
|
// Aliases of the controller
|
|
repeated string aliases = 3;
|
|
|
|
// PubKey is the verification method
|
|
PubKey public_key = 4;
|
|
|
|
// The vault address or identifier
|
|
string vault_cid = 5;
|
|
}
|
|
|
|
// Delegation represents IBC Account Controllers for various chains (e.g., ETH, BTC)
|
|
message Delegation {
|
|
option (cosmos.orm.v1.table) = {
|
|
id: 4
|
|
primary_key: {fields: "id"}
|
|
index: {
|
|
id: 1
|
|
fields: "account_address,chain_id"
|
|
unique: true
|
|
}
|
|
index: {
|
|
id: 2
|
|
fields: "controller,account_label"
|
|
unique: true
|
|
}
|
|
index: {
|
|
id: 3
|
|
fields: "controller,chain_id"
|
|
}
|
|
};
|
|
|
|
// The unique identifier of the delegation
|
|
string id = 1;
|
|
|
|
// The Decentralized Identifier of the delegated account
|
|
string controller = 2;
|
|
|
|
// Resolved from module parameters
|
|
string chain_index = 3;
|
|
|
|
// The delegation proof or verification method
|
|
PubKey public_key = 4;
|
|
|
|
// The Account Address
|
|
string account_address = 5;
|
|
|
|
// The Account label
|
|
string account_label = 6;
|
|
|
|
// The Chain ID
|
|
string chain_id = 7;
|
|
}
|
|
|
|
// ServiceRecord represents a decentralized service in a DID Document
|
|
message ServiceRecord {
|
|
option (cosmos.orm.v1.table) = {
|
|
id: 5
|
|
primary_key: {fields: "id"}
|
|
index: {
|
|
id: 1
|
|
fields: "origin_uri"
|
|
unique: true
|
|
}
|
|
index: {
|
|
id: 2
|
|
fields: "controller,origin_uri"
|
|
unique: true
|
|
}
|
|
};
|
|
|
|
// The ID of the service
|
|
string id = 1;
|
|
|
|
// The type of the service
|
|
string service_type = 2;
|
|
|
|
// The controller DID of the service
|
|
string controller = 3;
|
|
|
|
// The domain name of the service
|
|
string origin_uri = 4;
|
|
|
|
// The description of the service
|
|
string description = 5;
|
|
|
|
// The service endpoint
|
|
map<string, string> service_endpoints = 6;
|
|
|
|
// Scopes is the Authorization Grants of the service
|
|
Permissions permissions = 7;
|
|
|
|
// Metadata is optional additional information about the service
|
|
Metadata metadata = 8;
|
|
}
|