In Anjana Data, menus are top-level blocks within the dynamic forms of metadata templates. Their main purpose is to group and classify the information of an object (entity or relationship) into different sections, allowing metadata to be organized in a clear and navigable way.
Each menu contains at least one section, which represents the second level of classification and in which the specific attributes of the object are defined.
In this way, menus and sections structure metadata into two hierarchical levels:
-
Level 1 – Menu: Main categories that appear in the object form (example: DETAIL, DATA QUALITY, EXTENDED GOVERNANCE).
-
Level 2 – Section: Subsections within each menu that group related attributes (example: within the DETAIL menu, sections such as FUNCTIONAL, GOVERNANCE, SECURITY AND DATA PROTECTION and TECHNICAL).
Thanks to this hierarchical organization, users can easily navigate the Data Portal forms, locate relevant information and maintain consistency in asset documentation.
Menus Table in the Configuration Panel (Administrator view)
Menus are configured in the Menus table of the Configuration Panel. Defining menus is the first step in creating the metadata templates for entities and relationships in the metamodel.
Structure of the Menus table
Each menu is characterized by the following fields:
-
Id: unique identifier of the menu.-
Automatically assigned from the Configuration Panel.
-
-
Name: display name of the menu within the template.-
When configuring multiple languages, the
Namevalue itself should be used as the translation key in thetranslationstable, creating one record per language.
-
-
Description: description of the menu. This description (or its translation value) is visible in the metadata template and helps understand the content of the menu.-
It can also be internationalized by using the
Descriptionvalue asconfig_keyintranslations.
-
-
order: display order of the menu within the template of the samesubType(1, 2, 3, …). -
subType: object subtype to which the menu belongs.-
Corresponds to a value from the Object Sub-types table resulting from the concatenation of the
Idand thename(e.g., 1-DATASET, 2-DATASET_FIELD, 3-DSA).
-
Notes
-
If the
Name/Descriptiontext has no translation intranslations, the text specified in these fields will be displayed. -
The order is only compared between menus of the same
subType. -
The same
subTypemust have at least one menu and can have unlimited menus (e.g., DETAIL, GOVERNANCE, QUALITY, SECURITY).
Important:
The ADHERENCE relationship requires a menu as it contains metadata corresponding to user adherences to DSAs.
Adding a Menu in the Menus table
Adding a new menu involves adding a new record to the Menus table.
To add the record and register a new menu:
-
Click the New button in the top-right corner. This will open a wizard with the fields defined in the Structure of the
Menustable section. -
Fill in the role fields according to the structure described in the previous section.
-
Name: With the name or its translation key (e.g.,DETAIL) -
Description: With the description or its translation key (e.g.,DETAIL OF DATASET) -
order: With the position the menu being created will occupy relative to the other menus to be configured for that entity or relationship (e.g.,1) -
subType: Select the entity or relationship subtype for which the menu is defined (select the subtype, e.g.,1-DATASET)
-
-
Click Save to save or Cancel to discard.
Note: After adding menus, it is necessary to run the Clear cache action from the Configuration Panel (Actions > Clear cache) for the changes to be applied and become visible in the Data Portal.
Modifying a Menu in the Menus table
Modifying a record in the Menus table must be done with caution, as it can have different levels of impact depending on the field affected.
-
Modification of the
NameorDescriptionfields must be done with caution:-
If internationalization has not been configured, the texts can be modified without impact.
-
If internationalization has been configured, modifying these texts has an impact on the corresponding records in
translations(sameconfig_keyasName/Description). In this case, consider whether it is sufficient to modify only the translation value (value) or whether the key (config_key) also needs to be updated.
-
-
Modifying the
orderfield can be done without any impact other than its repositioning within the object template. -
Modifying the
subTypecan have a high impact, as it directly affects the entire object template.-
If no governed assets exist in the Data Portal, modification is possible but implies the following:
-
All configuration dependent on the menu (sections and attributes of each section) is transferred to the newly selected
subType. -
Before the modification, validations on the attributes belonging to the subtype template must be deleted (table
templateAttributeValidations). -
Before the modification, versioning rules on the attributes belonging to the subtype template must be deleted (table
Edition Configuration). -
Before the modification, attribute relationships on the attributes belonging to the subtype template must be deleted (table
Attribute Relationship).
-
-
If governed assets exist in the Data Portal, the modification cannot be performed.
-
Note: After modifying menus, it is necessary to run the Clear cache action from the Configuration Panel (Actions > Clear cache) for the changes to be applied and become visible in the Data Portal.
Configuring Menus via direct database access (Developer view)
The database (DB) table that contains the parameterization of metadata template menus is anjana.menu and has the following structure.
|
Column |
Data type |
Constraints / Notes |
|---|---|---|
|
id_menu |
int4 (INTEGER) |
PRIMARY KEY. Unique identifier of the menu. Managed through sequences. |
|
description |
varchar(255) |
Optional. Description of the menu. Can be used as a translation key in |
|
name |
varchar(255) |
Name of the menu. Must be unique within the same |
|
order_menu |
int4 (INTEGER) |
Display order of menus within the same object subtype. Combined UNIQUE constraint with |
|
id_object_subtype |
int4 (INTEGER) |
Foreign key to |
Below is an example script to configure the DETAIL menu for DATASET:
INSERT INTO anjana.sections
(id_section, description, id_menu, "name", order_section)
VALUES(1, 'FUNCIONAL INFORMATION OF DATASET', 1, 'FUNCIONAL', 1);
Important:
-
Once the insert has been executed, run the sequence update for the table. (From the Configuration Panel at
Actions > Reset DQ sequencesyou can update the sequences for all tables, including this one). -
The entire responsibility for the configuration logic falls on the developer executing SQL queries directly against the tables. It is strongly recommended to carefully review the Table Structure section.