Product Registry
Overview
The product registry provides APIs to create products and product variants for HCM. This document provides the configuration details for setting up products and product variants.
Pre-requisites
Knowledge of Java/J2EE (preferably Java 8 version).
Knowledge of Spring Boot and Spring Boot microservices.
Knowledge of Git or any version control system.
Knowledge of RESTful web services.
Knowledge of the Lombok library is helpful.
Knowledge of eGov-mdms service, eGov-persister, eGov-idgen, eGov-indexer, and eGov-user will be helpful.
Functionalities
Provides APIs to create, update, and search products.
Provides APIs to create, update, and search product variants.
Setup
Clone or download the code from the GitHub repository
The source code for the Product registry is located in the Git repository here. Clone or download the code from this repository before proceeding.
API
Refer to the Swagger API for YAML file details: Product.yaml
Application.properties file information:
Kafka topics persister configs for eGov persister
product.kafka.create.topic=save-product-topic
product.kafka.update.topic=update-product-topic
product.variant.kafka.create.topic=save-product-variant-topic
product.variant.kafka.update.topic=update-product-variant-topic
External Service URLs
Below are the URLs for external services that the Product registry interacts with:
Configuration Details
Follow the details outlined below to configure and enable Product registry API actions and access control using MDMS, role-action mapping, persister, and indexer configurations.
MDMS Configurations
Define Action URLs
Add new actions in the MDMS actions configuration (e.g., action-test.json
). Each action represents an API endpoint you wish to secure and manage: Action-test.json
{
"id": 1536,
"name": "Product Variant Create",
"url": "/product/variant/v1/_create",
"displayName": "Product Variant Create",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
{
"id": 1537,
"name": "Product Create",
"url": "/product/v1/_create",
"displayName": "Product Create",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
{
"id": 1541,
"name": "Product Update",
"url": "/product/v1/_update",
"displayName": "Product Update",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
{
"id": 1542,
"name": "Product Search",
"url": "/product/v1/_search",
"displayName": "Product Search",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
{
"id": 1543,
"name": "Product Variant Update",
"url": "/product/variant/v1/_update",
"displayName": "Product Variant Update",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
{
"id": 1544,
"name": "Product Variant Search",
"url": "/product/variant/v1/_search",
"displayName": "Product Variant Search",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
Assign Actions to Roles
Configure which user roles can access which API actions in roleaction.json
. Map each action ID to the required roles: Roleaction.json. Refer example below:
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1536,
"actioncode": "",
"tenantId": "default"
},
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1537,
"actioncode": "",
"tenantId": "default"
},
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1541,
"actioncode": "",
"tenantId": "default"
},
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1542,
"actioncode": "",
"tenantId": "default"
},
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1543,
"actioncode": "",
"tenantId": "default"
},
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1544,
"actioncode": "",
"tenantId": "default"
}
Persister Configuration
Indexer Configuration
Database Schema
Postman Collection
Last updated
Was this helpful?