Applications
These are the groups of applications available (according to permission) in the left side menu of the senior X Platform. Within these divisions it is possible to findCustom Menus/Screens or even external applications.
Customized applications can be registered here, which are those registered by the tenant itself.
Important
When the optionCredentials (withCredentials) is selected, the corresponding screen will display the message "If checked, your access token will be exposed to third-party solutions. Make sure the components/sites are trustworthy.", to inform the customer that the token will be passed to this screen for security reasons.
What do you need to do:

- Access Technology > Customization > Applications;
- Click on Add application;
- Inform theName of the application;
- If you use the senior X Platform in other languages, inform theTranslation key for application name, to be able to translate the module name when using the function
translation/internationalization. The content of this field must be in the model: platform.backend.custom_<key_translation>; - Select an icon of your choice in the fieldIcon and click on Save.

- Access Technology > Customization > Applications;
- Click on the already created application and, inActions, select Add URL;
- Enter the configuration URL and confirm this change. To add this configuration, you must have a .json configuration file available on a company server;
If you prefer, add the configuration file in JSON format instead of the URL. If this file has any changes, it is necessary to add it again. To do this, clickActions is at Add file. This file must be made available at a public URL (accessible via the internet), with a valid digital certificate.Example:
{
"menu": {
"children": [
{
"label": "Administration",
"labelI18n": "platform.backend.administration", //Used to internationalize the customized menu, must start with platform.backend.xxxxx
"children": [
{
"label": "Double Factor Authentication",
"labelI18n": "platform.backend.authentication-twofactor",
"path": {
"category": "CurrentTab", //can be of the CurrentTab type to open within the platform, NewTab type to open in a new tab and DesktopNative type to open via launcher
"menuId": "https://arq.senior.com.br/authentication/#/" //URL of the menu to be opened, if it's a CurrentTab then this must be https
},
"auth": {
"resource": "res://senior.com.br/platform/authentication/mfa_tenant_config", //resource that will be used to validate the permission, must be taken from the resource management screen
"permission": "View" //action over the resource that will be used to validate the permission, must also be taken from the resource management screen
}
}
]
}
]
}
}
- To hide the URL already entered, click the buttonActions next and selectHide.
After the example in item 3, it is possible to check all the options that a config.json can have:

Then configure the product in the config.json file, located in the product's root folder, as shown in the example in config.json.
Below is a table with the items and their possible values:
Property | Definition | Values | Example | Mandatory |
---|---|---|---|---|
domain | Domain name of this project | String | platform | Yes |
service | Service name of this project | String | frontend | Yes |
menu | Context menu settings | JSON Object | see "menu" in the template | Yes |
Some of the properties are composite objects and below is an explanation of each of them.
Menu
Property | Definition | Values | Example | Mandatory |
---|---|---|---|---|
ID | Menu Grouper Item Identifier | String | res://senior.com.br/menu/mydomain/mymenu | No, but recommended |
label | Menu Grouper Item Text | String | Financial | Yes |
labelI18n | Menu label translation key | String | platform.backend.my_domain_my_service_my_menu | No |
children | Details of child menu items | JSON object see "children" in model | Yes |
children
Property | Definition | Values | Example | Mandatory |
---|---|---|---|---|
ID | Menu Item Identifier | String | res://senior.com.br/menu/mydomain/myservice/mymenu | No, but recommended |
label | Menu Item Text | String | Query Customer Data | Yes |
labelI18n | Menu label translation key | String | platform.backend.my_domain_my_service_my_menu | No |
itemIcon | Icon Identifier | FontAwesome String | fa-google | No |
itemType | Menu Type Identifier | String | test | Yes |
auth | Authentication details | JSON Object | see "auth" in template | No |
path | Menu Link Details | JSON Object | see "path" in model | No |
help | Contextualized help details | JSON Object | see "help" in the model | No |
children | Details of child menu items | Recursive call, children's children (...children's) | see "children" in the model | No |
Auth
Property | Definition | Values | Example | Mandatory |
---|---|---|---|---|
resources | Resource Identifier in APIManager | String in res:// format | res://senior.com.br/security/usermanager/usuario | Yes |
permission | Type of permission required for the feature for the menu to be visible | String | To edit | Yes |
Path
Property | Definition | Values | Example | Mandatory |
---|---|---|---|---|
category | Identifier of the Category in which the item is registered | Boxlet/Dashboard/CurrentTab/NewTab/NewWindow/DesktopNative | CurrentTab | Yes |
menuId | Menu item path | String | https://meuservidor.com.br/frontend/tela | Yes |
withCredentials | Whether credentials (token and service url) should be sent to the page | Boolean | true/false | No |
Important
When using the propertywithCredentials To obtain authorization data on customized screens, for the Internet Explorer browser it is necessary to check the browser's security policies, as it may block authorization information from being sent to the customized screen. If this happens, add the access links to the customized screens to the list ofTrusted sites of Internet Explorer.
Help
Property | Definition | Values | Example | Mandatory |
---|---|---|---|---|
url | Base path for documentation | Full URL | http://documentacao.senior.com.br/ | Yes |
context | The context to which the help should refer | String | gestaoempresarialerp/7.0.0/ | No |
For a grouping menu item, declared in more than one config.json, to be unified as a single item (joining the children declared in the config.json), simply enter the same ID. If the ID of the menu items is not provided, an ID will be generated based on the ID of the parent item and the menu label. However, if the label is changed in the future, the ID will also change and this will cause the loss of customization for this menu item. Therefore, it is highly recommended that id be provided.
After that, the products must be configured together with the modules on the platform's frontend.

To edit or remove an application, go to Technology > Customization > Applications, select the custom application, and then clickActions, select the desired option,To edit orTo remove.

After creating an application, adding/hiding a setting, or updating menu items based on settings, press theGenerate menu. With this, the menu structure will be made according to the latest version of the configuration files of the configured applications, also considering the customizations made to the menu.
When editing the application, this feature will only trigger the generation of the specific application menu in the logged in tenant.

To hide the menu, go to Technology > Customization > Applications, with the administrator user:
- Select the menu that will be hidden;
- click inActions and then inHide;
- click inGenerate menu or inF5 to apply this change
Note
The menu has a cache mechanism, so after receiving the success notification it may take some time to present the change, in addition to being necessary to refresh the page.