This is a starter project for implementing a Marketplace Executor in the Open Data Mesh (ODM) platform. It serves as a template for creating executors that handle data product access management in the ODM ecosystem.
The Marketplace Executor is a crucial component in the ODM architecture that bridges the gap between the Data Product Catalog and various enterprise tools. It's responsible for managing access to data products listed in the catalog, effectively turning the catalog into a true Data Product marketplace.
The executor follows a standardized interface to handle marketplace operations:
POST {executorBaseUrl}/api/v1/up/marketplace-executor/requests
{
"v": "1",
"operation": "MARKETPLACE_SUBSCRIBE|MARKETPLACE_UNSUBSCRIBE",
"request": {
"name": "",
"identifier": "",
"provider": {
"dataProductFqn": "",
"dataProductPortsFqn": [""]
},
"consumer": {
"type": "dataproduct | user | team",
"identifier": "fqn | email | ?"
},
"requester": {
"type": "user",
"identifier": "email"
},
"properties": {},
"startDate": "Date",
"endDate": "Date"
}
}
{
"status": "PENDING|GRANTED|DENIED|REVOKED|ERROR",
"message": "",
"provider": {
"dataProductFqn": "",
"dataProductPortsFqn": [""]
},
"createdAt": "Date"
}
- Fork this repository
- Implement the executor interface according to your specific enterprise tool requirements
- Configure the necessary properties and dependencies
- Build and deploy your custom executor
- Standardized interface for marketplace operations
- Support for subscription and unsubscription operations
- Flexible consumer type handling (data product, user, or team)
- Configurable properties for custom implementation needs
- Built-in support for access duration management (start/end dates)
- Each request has a unique identifier generated by the Marketplace Service
- The complexity of orchestrating multiple calls to grant access is delegated to the executor
- The executor should maintain detailed logs of the resources created during the access grant process
- Error handling and rollback mechanisms should be implemented as needed
This project is licensed under the terms of the license included in the repository.
This is a starter project intended to be forked and customized. For questions or suggestions, please refer to the ODM Initiative Discussion.