Hub Specification Planning

An exhaustive list of all the things members believe Hubs should support.

High-Level Feature Areas

Description MVP
Profile Discovery Mechanism to expose a basic profile object
Semantic Data CRUD/Discovery Storage and retrieval of discoverable semantic data
Action Inbox for Agents Intake and relay messages that are prompts to do something

Items pending assessment:

  • Peer DID Support: Ability to host/resolve Peer DIDs

Capabilities

Description MVP
Semantic JSON Storage Store and fetch semantically typed objects
Non-JSON Data Storage Storage of non-JSON data, like binary objects
Commit Abstraction Ability to store data in various ways for the purpose of state correctness - basic timestamp, CRDT, etc.
Encrypted Data Mechanism for encrypting data, either fully private, or to specified parties
Encrypted Metadata Ability to encrypt and index metadata while encrypted
Control Access to Data Ability to permit an external entity to retrieve/view data
Sync Ability to sync data with wallets and other Hubs
Replication Ability to proactively reach a shared state with wallets or other Hubs with an active/active replication mechanism

Note

  • Guidance: make sure to pave the path for attachments/blobs
  • Follow-up: incorporate feedback from the folks who want encrypted indexing/search of metadata
  • Permissions are only a means of policy enforcement, based on the signed permission objects it holds (which are from the DID controller)
  • Bikeshed on the name "Control Access to Data"
  • Make it clear that the Hub has no access to any private key material for users/data
  • Dealing with commitment and fetch of unencrypted permissioned objects

Data Types

This is orthogonal work that includes defining the objects below, which may take place in other WGs.

Description MVP
Key Descriptors/Lists Active and revoked keys
Credentials Various credential formats (VC, JWT, etc.)
Credential Manifests How and what is required to get a credential
Credential Revocation Declare revoked credentials
Trust Lists Express relationships with other DIDs

Note

  • Follow-up with on-boarding existing data schemas
Select a repo