Shoppable and Consumable attributes
Overview
As described in the Property Graph section, both system instances and component instances can be marked as shoppable. Components can also be flagged as consumable.
Consumable components
A consumable component — or simply a consumable — is ready to be transmitted, used, or processed, indicating that its output is in a format or state that can be readily consumed. The tech adapters of consumable components will be involved in ACL update operations.
A tech adapter is a microservice, usually developed and maintained by the Platform Team, responsible for interacting with and updating the infrastructure on which a component is physically deployed
Consider a data product that represents the cash flow generated by a company. This data can be accessed through an output port that exposes a SQL table. In this scenario, the data product functions as a system, with the output port serving as one of its consumable components. The cash flow data can be ingested and transformed by a workload component, which does not expose data itself but is responsible for populating the SQL table exposed by the output port. This workload is not considered a consumable component.
Marketplace
The Witboost Marketplace only displays consumable components within a published system, as the primary objective of marketplace users is to access data.
Components that are not consumable are displayed only when they contain consumable subcomponents. In this case, they serve as groups of consumables.
A group of consumables is a published Marketplace entity containing consumable components. Based on this definition:
- a top-level component is a group of consumables when it contains at least one consumable subcomponent
- a system is a group of consumables when it contains at least one consumable component or at least one component that’s a group of consumables
Access Control
Once deployed, every consumable — whether top-level component or subcomponent — is associated to an Access Control List (ACL): a registry of users and groups with access to the data exposed by the consumable.
Shoppable
Marketplace
When a system or component is marked as shoppable, Marketplace users are enabled to send an access request to be included in the access control lists.
When the shoppable attribute is on... | a Request Access button is displayed in... | and the access request is sent to... |
---|---|---|
a system | the system's Marketplace page | the tech adapters of all its consumable components and their subcomponents |
a component | the component's Marketplace page | its tech adapter (if the component is consumable) and to the tech adapters of all its consumable subcomponents |
a subcomponent | the parent component's Marketplace page | the tech adapters of all its parent component's consumable subcomponents |
There are two important points to note:
- The Marketplace disregards the shoppable attribute on subcomponents. Instead, the attribute gets inherited by the parent component. This behavior is subject to change in future releases; to avoid potential issues, it is recommended to explicitly mark the parent component as shoppable rather than relying on this fallback mechanism.
- The Access Control flow outlined above represents the standard process: an access request is sent to the project owner and, upon approval, it is forwarded to the relevant tech adapters. However, as this process is configurable, it may vary significantly across different Witboost installations. For more details, refer to the Access Control section in the documentation.
Before flagging systems and components as shoppable or consumable, align with your Platform Team to make sure the involved tech adapters support the ACL operations.
Remember: by default, system and components instances inherit these attributes from the types they are instances of, although they can override them.