Key Concepts

The Digital Bill of Materials (DBoM) provides the missing layer for policy controlled attestation sharing between organizations.

System Architecture

Each partner or organization needs to instantiate a DBoM node to exchange attestations or information. As shown in the following diagram, an instance of DBoM node consists of the following components:

  • DBoM Gateway

  • Repository Agent (Database Agent)

  • Notary Agent

  • [WIP] Pub-Sub Queue

  • [WIP] Channel Management

  • [WIP] Policy Controller

  • [WIP] Identity and Signing Service

DBoM V2 - High Level Architecture

Note

The DBoM Gateway and Repository Agent are the only components that are currently implemented in Release 2.0.0-alpha-1. In current release the functionalities like certificate generation, Pub-Sub Queue, Channel Management built in with DBoM Gateway and Repository Agent, but they will be moved to separate micro-services and it’s not fully implemented yet. Notary Agent, Policy Controller, Identity, Signing Service and other micro-services are planned for future releases.

DBoM Gateway

The “DBoM Gateway” is the single-entry point for all DBoM functionality. Here are the available operations:

Channels

  • Create Channel

  • List Channels

  • Get details of a specific channel

  • Add a notary to a channel

  • Remove a notary from a channel

Assets

  • List Assets

  • Add an Assets

  • Retrieve an Asset

  • Update an Asset

  • Rich Query Assets

  • Query Assets

  • Audit trail of an Asset

  • Add link to an Asset

  • Remove link from an Asset

Federation

  • Initiate a channel join request (handled automatically)

  • List all the requests

  • Get details of a specific channel join request

  • Accept a channel join request

  • Reject a channel join request

Note

The DBoM Gateway is implemented as a REST API. As shown in the high level diagram above, the DBoM Gateway is the only component that is exposed to the outside world. All other components are only accessible via the DBoM Gateway.

  • Users and Clients can interact by using Client APIs (Port 3050)

  • Other DBoM Nodes can interact by using Federation APIs (Port 7205)

Repository Agent (Database Agent)

The repository agent is responsible for abstracting CRUD, rich query and list operations for a given data repository.

Notary Agent

The notary agent is responsible for abstracting the “notarization” operation of a notary, including interfacing to key management systems to access secrets (such as private keys, passwords, and wallets), and holding configuration objects such as smart contract addresses.

[WIP] Pub-Sub Queue

This is a newly introduced microservice that is responsible for all pub-sub operations.

[WIP] Channel Management

This is a newly introduced microservice which takes care of maintaining all state related to channel establishment.

[WIP] Policy Controller

This is a newly introduced microservice that is the single point of control for ACL decisions for any sort of data access on the DBoM.

[WIP] Identity and Signing Service

This is a newly introduced microservice that takes care of all operations around the cryptographic identity of the DBoM Node.