# 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