Profile Configuration Reference
Purpose
Profiles define how centraQuest objects are used, displayed, searched, imported, edited, and shown in tables. A profile is not necessarily identical to a database table or DMS aspect. It is the functional view on one or more technical masks, aspects, dialogs, reports, or table configurations.
This page documents the structure of entries below profiles: and explains the most relevant properties found in the standard centraquest configuration and in customer-specific configurations below C:\Users\danie\IdeaProjects\centraquestCustom.
Basic Principle
A profile is defined in YAML below the profiles: key:
profiles:
- id: obj_table_invoice_account
label: Accounts
profile_type: ["insert", "internal", "view"]
mask: obj_table_invoice_account
fields:
- id: cq_account_no
label: Account
type: string
searchable: true
result_columns:
- id: cq_account_no
label: Account
table:
enabled: true
route: /webui/profile_table?profile_id=obj_table_invoice_account
The most important building blocks are:
id: functional profile ID used in URLs, obj_profile, imports, dialogs, and details.
profile_type: context in which the profile is valid, such as insert, view, search, table, internal, or folder.
mask: technical mask or aspect on which the fields are stored.
fields: fields and UI behavior in the detail form.
result_columns: columns for result lists and tables.
table: modern table and admin configuration for /webui/profile_table.
Profiles are loaded from all active YAML configuration files during startup. The default configurator then transforms them:
- global
fields and field_groups are expanded into profiles,
inherit relationships are resolved,
view profiles can automatically create search profiles when create_search_profiles is enabled,
- inherited lists with
id are merged by id; matching entries are updated and new entries are appended.
Important: the effective profile is not always identical to one YAML file. It is the result of global fields, field groups, inheritance, and automatic search-profile generation.
Top-Level Profile Properties
Identity and Type
| Property | Effect |
|---|
id | Unique functional profile ID. Used by profile_id, obj_profile, imports, and table links. |
label | Visible profile name in dialogs, details, tables, and menus. |
title | Alternative title for reports or special dialogs. |
profile_type | Validity context of the profile. Common values are insert, view, search, table, internal, and folder. Can be a string or list. |
mask | Technical mask or aspect. Can be a string or list. Generic table logic often uses the first entry as main aspect. |
table_name | Alternative technical table or aspect name, mostly used by table and import logic. |
type | Functional special type interpreted by legacy or custom logic. |
| Property | Effect |
|---|
fields | Fields visible, editable, searchable, or technically relevant in this profile. |
tab_ids | Tabs for generic detail pages. Fields with tab_id are assigned to these tabs. |
invoice_tab_ids | Invoice-specific tab list for invoice detail pages. |
visible_tabs | Restricts or controls visible tabs in legacy or customer-specific forms. |
edit_tabs | Tabs for edit dialogs when edit and view pages differ. |
properties_dialog | Path to a Microclient or YAML properties dialog. |
main_dialog | Main dialog for special legacy forms. |
detail_page_template | Custom HTML detail page instead of generic detail rendering. |
form | Report or special form configuration, often with tabs, input fields, or filters. |
form_columns | Number of columns in generic form layout. |
form_height | Dialog or form height. |
label_spacing | Label and spacing behavior in forms. |
initial_window_width | Initial Microclient window width. |
initial_window_height | Initial Microclient window height. |
width | Context-specific width of dialog, report, or form area. |
height | Context-specific height of dialog, report, or form area. |
edit_side_panel | Enables or configures side-panel editing in special WebUI views. |
split_window | Controls split-window behavior in older Microclient or viewer flows. |
Tables, Lists, and Search
| Property | Effect |
|---|
result_columns | Result-list or table columns on profile level. Used when table.result_columns is missing. |
result_columns_short | Shorter column variant for compact lists. |
short_result_columns | Alternative name for compact result columns. |
columns | Columns for reports or special lists. |
table | Modern table configuration for profile tables. |
query | DQL or SQL query for report or list profiles. |
params | Parameter list for queries or value-assistance configuration. |
dql_template | DQL template used by generic reports or customer-specific lists. |
initial_search | Default search values or initial search behavior. |
result_limit | Maximum number of results in reports or searches. |
limit_field | Field used for limits or client filtering. |
map_results | Mapping for query results in reports or special lists. |
report_type | Report variant or renderer selection. |
refresh_on | Events or fields that trigger a list or report reload. |
double_click_action | Action executed when a result row is double-clicked. |
Navigation, Menus, and Actions
| Property | Effect |
|---|
menu | Menu integration or menu definition for classic navigation. |
show_menu | Controls whether menu entries are shown. |
context_menu | Context menu for objects or table rows. |
portlet_menu | Menu entries for portlets or dashboards. |
button_ids | Enabled buttons in classic dialogs. |
buttons | Direct button configuration in customer-specific profiles. |
action | Target action, URL, import action, or Microclient action. |
attachments | Configuration for attachments or related documents. |
references | Reference relationships or linked objects. |
list_versions | Controls whether versions are shown in lists or details. |
Security and Visibility
| Property | Effect |
|---|
acl | Role or ACL restriction on profile level. Used by menus, reports, or special views. |
insert_grp | Roles or groups allowed to create or import objects with this profile. |
read_only_disabled | Changes readonly behavior in certain forms. |
show_subscription | Controls subscription or notification functions. |
notify_on_save | Sends a notification after saving when supported by special logic. |
debug / debug0 | Enables debug behavior in individual profiles or historical custom flows. |
Import, Integration, and Special Logic
| Property | Effect |
|---|
import_dialog | Dialog for import processes. |
import_excel | Excel import configuration. |
database_connection | Database connection for import or report profiles. |
controller | Special controller for a profile. |
mode | Mode for special renderers, importers, or reports. |
constants | Profile-specific constants for templates, queries, or controllers. |
variables | Variables for templates, reports, or customer-specific logic. |
keyinfo_query | Query for contextual key information. |
keyinfo_dql | DQL for contextual key information. |
keyinfo_function | Function used to determine contextual information. |
folder_mask | Target or context mask for folder profiles. |
filename_field | Field that provides file names or export names. |
has_obj_name | Hint for special logic that obj_name is available. |
center_on | Center or focus field in special lists. |
layout | Layout variant for customer-specific pages. |
style | Style variant, mostly custom or portal-specific. |
Client Support Matrix
The following matrix shows which profile properties are interpreted by the classic Microclient and/or by the WebUI. An x means the client supports the property directly or through generic profile, table, or form renderers. Empty cells do not necessarily mean the key is useless; it may still be read by customer-specific templates, jobs, imports, or special controllers.
| Property | Microclient | WebUI | Notes |
|---|
id, label, title, profile_type, mask, table_name, type | x | x | Basic profile identity and technical mapping. |
fields, tab_ids, visible_tabs, edit_tabs, form, form_columns, form_height, label_spacing, width, height | x | x | Generic form, tab, and report rendering. |
invoice_tab_ids, detail_page_template, edit_side_panel, table | | x | WebUI-specific detail and table behavior. |
properties_dialog, main_dialog, initial_window_width, initial_window_height, split_window, portlet_menu, button_ids, import_dialog | x | | Classic Microclient behavior. |
result_columns, result_columns_short, short_result_columns, columns, query, params, dql_template, initial_search, result_limit, limit_field, map_results, report_type, refresh_on | x | x | Search, reports, and list rendering. |
double_click_action | x | | Classic list action. |
menu, show_menu, context_menu, buttons, action, attachments, references, list_versions | x | x | Navigation and object actions. |
acl, insert_grp, read_only_disabled, show_subscription, notify_on_save, debug, debug0 | x | x | Security, visibility, and diagnostics. |
import_excel, database_connection, controller, mode, constants, variables, keyinfo_query, keyinfo_dql, keyinfo_function, folder_mask, filename_field, has_obj_name, center_on, layout, style | x | x | Integration and special logic, depending on renderer or controller. |
Field Configuration
The fields list defines individual properties of a profile. Field entries are used by forms, details, searches, imports, result lists, and table columns.
Field Identity and Storage
| Property | Effect |
|---|
id | Technical field ID. Usually corresponds to an aspect property or virtual field. |
label | Visible field label. |
type | Field type, such as string, date, datetime, int, float, bool, textarea, html, or select. |
aspect | Aspect where the field is stored when it differs from the profile mask. |
property | Alternative or explicit backend property name. |
default | Default value used during creation or rendering. |
value | Fixed or calculated value in special contexts. |
multi / multivalue | Marks the field as multi-value. |
Field Display and Layout
| Property | Effect |
|---|
visible | Controls whether the field is visible. |
hidden | Hides the field while it may still be technically available. |
readonly | Makes the field readonly. |
required | Marks the field as mandatory. |
tab_id | Assigns the field to a tab. |
group / field_group | Assigns the field to a visual or logical group. |
width | Field width in the form or table. |
height | Field height, mainly for text areas or special widgets. |
placeholder | Placeholder text. |
description / help | Help text or explanatory hint. |
css_class / style | Custom styling hook. |
Field Search and Tables
| Property | Effect |
|---|
searchable | Makes the field available for search. |
sortable | Allows sorting by this field. |
filterable | Allows filtering by this field. |
result_column | Marks the field as a result column in some legacy configurations. |
column_width | Width used in result tables. |
formatter | Formatter used for display. |
renderer | Renderer used by WebUI or special pages. |
Field Values and Assistance
| Property | Effect |
|---|
value_assistance | Configures value assistance or lookup behavior. |
values | Static list of possible values. |
query | Query used to load values. |
dql | DQL used to load values. |
depends_on | Field dependency for dynamic values. |
map / mapping | Mapping from lookup results to fields. |
autocomplete | Enables autocomplete behavior. |
Field Validation and Behavior
| Property | Effect |
|---|
validator | Validation rule or function. |
regex | Regular expression validation. |
min / max | Numeric or length limits. |
on_change | Action triggered when the field changes. |
refresh_on_change | Reloads dependent UI elements after change. |
calculated | Marks the field as calculated. |
expression | Expression used for calculated or conditional behavior. |
Table Configuration
The table block is used by the modern WebUI table route, usually /webui/profile_table?profile_id=<profile>.
| Property | Effect |
|---|
enabled | Enables the profile table. |
route | Route used to open the table. |
title | Table title. |
description | Description shown on admin or overview pages. |
icon | Icon used in admin navigation and table headers. |
acl | Roles allowed to see or use the table. |
query / dql | Data query for the table. |
result_columns | Columns shown in the table. |
default_sort | Default sorting. Follow project DQL rules and avoid DESC. |
page_size | Default number of rows per page. |
actions | Row, toolbar, or bulk actions. |
create / edit / delete | Enables or configures CRUD behavior. |
quick_filter | Configures quick filter behavior. |
export | Enables export options. |
Practical Notes
- Use
id values consistently; they are part of URLs, object metadata, imports, and references.
- Prefer explicit
table definitions for modern WebUI admin tables.
- Keep labels and descriptions translatable. UI-visible text must be maintained in the relevant language tables.
- For multi-value fields, check how the selected renderer expands values. Queries that join multi-values can otherwise produce duplicate result rows.
- Avoid DQL
ORDER BY ... DESC; use the project-compatible sort format.
- When changing inherited profiles, verify the effective profile after startup because inherited list entries are merged by
id.