# Create New Master

Steps to follow to create a new Master -

1. Create a schema using Postman (API) - Schema( [JSON draft-07](https://json-schema.org/draft-07/json-schema-release-notes.html) ) can be constructed by inputting the required JSON Object [here](https://transform.tools/json-to-json-schema)\
   Below is the sample cURL to create a schema.

```
curl --location --request POST 'https://qa.digit.org/mdms-v2/schema/v1/_create' \
--header 'Content-Type: application/json' \
--data-raw '{
    "RequestInfo": {
        "apiId": "asset-services",
        "ver": null,
        "ts": null,
        "action": null,
        "did": null,
        "key": null,
        "msgId": "search with from and to values",
        "authToken": "b2250d2c-3c25-40c9-960d-c4dda7443d44",
        "correlationId": null,
        "userInfo": {
            "id": "1",
            "userName": null,
            "name": null,
            "type": null,
            "mobileNumber": null,
            "emailId": null,
            "roles": null
        }
    },
    "SchemaDefinition": {
        "id": "b55f449c-61bb-4c56-b8cd-99cbdb00ee7f",
        "tenantId": "pb",  // update the state tenant id as per environment
        "code": "ACCESSCONTROL-ROLEACTIONS.roleactions",
        "description": "roleactions",
        "definition": {
            "type": "object",
            "title": "Generated schema for Root",
            "$schema": "http://json-schema.org/draft-07/schema#",
            "isActive": true,
            "properties": {
                "rolecode": {
                    "type": "string"
                },
                "actionid": {
                    "type": "string"
                },
                "actioncode": {
                    "type": "string"
                },
                "tenantId": {
                    "type": "string"
                }
            },
            "required": [
                "rolecode",
                "actionid"
            ],
            "x-unique": [
                "rolecode",
                "actionid"
            ],
            "x-ref-schema": [
                {
                    "fieldPath": "rolecode",
                    "schemaCode": "ACCESSCONTROL-ROLES.roles"
                },
                {
                    "fieldPath": "actionid",
                    "schemaCode": "ACCESSCONTROL-ACTIONS-TEST.actions-test"
                }
            ]
        },
        "isActive": true,
        "auditDetails": {
            "createdBy": "902fcdad-8742-4e13-b9f0-12605a6180bb",
            "lastModifiedBy": "902fcdad-8742-4e13-b9f0-12605a6180bb",
            "createdTime": 1693284323630,
            "lastModifiedTime": 1693284323630
        }
    }
}'
```

2. &#x20;Add actions-test and roleactions for search, create, and update. Below is the sample code for the actions-test for the schema mentioned above::

```
{
      "id": 2486,
      "name": "MDMS",
      "url": "url",
      "displayName": "Roleactions",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "navigationURL": "/workbench-ui/employee/workbench/mdms-search-v2?moduleName=ACCESSCONTROL-ROLEACTIONS&masterName=roleactions",
      "path": "9MDMS.ACCESSCONTROL-ROLEACTIONSroleactions",
      "leftIcon": "dynamic:ContractIcon"
    },
    {
      "id": 2487,
      "name": "MDMS",
      "url":"/mdms-v2/v2/_create/ACCESSCONTROL-ROLEACTIONS.roleactions",
      "displayName": "Create ACCESSCONTROL-ROLEACTIONS roleactions",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    },{
      "id": 2488,
      "name": "MDMS",
      "url":"/mdms-v2/v2/_update/ACCESSCONTROL-ROLEACTIONS.roleactions",
      "displayName": "Update ACCESSCONTROL-ROLEACTIONS roleactions",
      "orderNumber": 1,
      "parentModule": "",
      "enabled": true,
      "serviceCode": "MDMS",
      "code": "null",
      "path": ""
    } 
```

&#x20;Here is the sample code for the  roleactions::

```
{
      "rolecode": "MDMS_ADMIN",
      "actionid": 2486,
      "actioncode": "",
      "tenantId": "pb"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 2487,
      "actioncode": "",
      "tenantId": "pb"
    },
    {
      "rolecode": "MDMS_ADMIN",
      "actionid": 2488,
      "actioncode": "",
      "tenantId": "pb"
    }
```

3. Push the localization messages using the *rainmaker-schema* module to the schema's name(on the Add Master Data page and sidebar), tooltips, and all the fields on the UI.\
   Example::

```
{
   "code": "SCHEMA_ACCESSCONTROL_ROLEACTIONS_ROLEACTIONS",
   "message": "Role Action",
   "module": "rainmaker-schema",
   "locale": "en_IN"
},
{
   "code": "ACCESSCONTROL_ROLEACTIONS_ROLEACTIONS_TENANTID",
   "message": "Tenant Id",
   "module": "rainmaker-schema",
   "locale": "en_IN"
},
{
   "code": "TIP_ACCESSCONTROL_ROLEACTIONS_ROLEACTIONS_TENANTID",
   "message": "Tenant Id",
   "module": "rainmaker-schema",
   "locale": "en_IN"
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://workbench.digit.org/setup/configurations/workbench-ui/create-new-master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
