Skip to main content

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.

Loading and Transformation

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

PropertyEffect
idUnique functional profile ID. Used by profile_id, obj_profile, imports, and table links.
labelVisible profile name in dialogs, details, tables, and menus.
titleAlternative title for reports or special dialogs.
profile_typeValidity context of the profile. Common values are insert, view, search, table, internal, and folder. Can be a string or list.
maskTechnical mask or aspect. Can be a string or list. Generic table logic often uses the first entry as main aspect.
table_nameAlternative technical table or aspect name, mostly used by table and import logic.
typeFunctional special type interpreted by legacy or custom logic.

Forms and Details

PropertyEffect
fieldsFields visible, editable, searchable, or technically relevant in this profile.
tab_idsTabs for generic detail pages. Fields with tab_id are assigned to these tabs.
invoice_tab_idsInvoice-specific tab list for invoice detail pages.
visible_tabsRestricts or controls visible tabs in legacy or customer-specific forms.
edit_tabsTabs for edit dialogs when edit and view pages differ.
properties_dialogPath to a Microclient or YAML properties dialog.
main_dialogMain dialog for special legacy forms.
detail_page_templateCustom HTML detail page instead of generic detail rendering.
formReport or special form configuration, often with tabs, input fields, or filters.
form_columnsNumber of columns in generic form layout.
form_heightDialog or form height.
label_spacingLabel and spacing behavior in forms.
initial_window_widthInitial Microclient window width.
initial_window_heightInitial Microclient window height.
widthContext-specific width of dialog, report, or form area.
heightContext-specific height of dialog, report, or form area.
edit_side_panelEnables or configures side-panel editing in special WebUI views.
split_windowControls split-window behavior in older Microclient or viewer flows.
PropertyEffect
result_columnsResult-list or table columns on profile level. Used when table.result_columns is missing.
result_columns_shortShorter column variant for compact lists.
short_result_columnsAlternative name for compact result columns.
columnsColumns for reports or special lists.
tableModern table configuration for profile tables.
queryDQL or SQL query for report or list profiles.
paramsParameter list for queries or value-assistance configuration.
dql_templateDQL template used by generic reports or customer-specific lists.
initial_searchDefault search values or initial search behavior.
result_limitMaximum number of results in reports or searches.
limit_fieldField used for limits or client filtering.
map_resultsMapping for query results in reports or special lists.
report_typeReport variant or renderer selection.
refresh_onEvents or fields that trigger a list or report reload.
double_click_actionAction executed when a result row is double-clicked.
PropertyEffect
menuMenu integration or menu definition for classic navigation.
show_menuControls whether menu entries are shown.
context_menuContext menu for objects or table rows.
portlet_menuMenu entries for portlets or dashboards.
button_idsEnabled buttons in classic dialogs.
buttonsDirect button configuration in customer-specific profiles.
actionTarget action, URL, import action, or Microclient action.
attachmentsConfiguration for attachments or related documents.
referencesReference relationships or linked objects.
list_versionsControls whether versions are shown in lists or details.

Security and Visibility

PropertyEffect
aclRole or ACL restriction on profile level. Used by menus, reports, or special views.
insert_grpRoles or groups allowed to create or import objects with this profile.
read_only_disabledChanges readonly behavior in certain forms.
show_subscriptionControls subscription or notification functions.
notify_on_saveSends a notification after saving when supported by special logic.
debug / debug0Enables debug behavior in individual profiles or historical custom flows.

Import, Integration, and Special Logic

PropertyEffect
import_dialogDialog for import processes.
import_excelExcel import configuration.
database_connectionDatabase connection for import or report profiles.
controllerSpecial controller for a profile.
modeMode for special renderers, importers, or reports.
constantsProfile-specific constants for templates, queries, or controllers.
variablesVariables for templates, reports, or customer-specific logic.
keyinfo_queryQuery for contextual key information.
keyinfo_dqlDQL for contextual key information.
keyinfo_functionFunction used to determine contextual information.
folder_maskTarget or context mask for folder profiles.
filename_fieldField that provides file names or export names.
has_obj_nameHint for special logic that obj_name is available.
center_onCenter or focus field in special lists.
layoutLayout variant for customer-specific pages.
styleStyle 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.

PropertyMicroclientWebUINotes
id, label, title, profile_type, mask, table_name, typexxBasic profile identity and technical mapping.
fields, tab_ids, visible_tabs, edit_tabs, form, form_columns, form_height, label_spacing, width, heightxxGeneric form, tab, and report rendering.
invoice_tab_ids, detail_page_template, edit_side_panel, tablexWebUI-specific detail and table behavior.
properties_dialog, main_dialog, initial_window_width, initial_window_height, split_window, portlet_menu, button_ids, import_dialogxClassic 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_onxxSearch, reports, and list rendering.
double_click_actionxClassic list action.
menu, show_menu, context_menu, buttons, action, attachments, references, list_versionsxxNavigation and object actions.
acl, insert_grp, read_only_disabled, show_subscription, notify_on_save, debug, debug0xxSecurity, 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, stylexxIntegration 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

PropertyEffect
idTechnical field ID. Usually corresponds to an aspect property or virtual field.
labelVisible field label.
typeField type, such as string, date, datetime, int, float, bool, textarea, html, or select.
aspectAspect where the field is stored when it differs from the profile mask.
propertyAlternative or explicit backend property name.
defaultDefault value used during creation or rendering.
valueFixed or calculated value in special contexts.
multi / multivalueMarks the field as multi-value.

Field Display and Layout

PropertyEffect
visibleControls whether the field is visible.
hiddenHides the field while it may still be technically available.
readonlyMakes the field readonly.
requiredMarks the field as mandatory.
tab_idAssigns the field to a tab.
group / field_groupAssigns the field to a visual or logical group.
widthField width in the form or table.
heightField height, mainly for text areas or special widgets.
placeholderPlaceholder text.
description / helpHelp text or explanatory hint.
css_class / styleCustom styling hook.

Field Search and Tables

PropertyEffect
searchableMakes the field available for search.
sortableAllows sorting by this field.
filterableAllows filtering by this field.
result_columnMarks the field as a result column in some legacy configurations.
column_widthWidth used in result tables.
formatterFormatter used for display.
rendererRenderer used by WebUI or special pages.

Field Values and Assistance

PropertyEffect
value_assistanceConfigures value assistance or lookup behavior.
valuesStatic list of possible values.
queryQuery used to load values.
dqlDQL used to load values.
depends_onField dependency for dynamic values.
map / mappingMapping from lookup results to fields.
autocompleteEnables autocomplete behavior.

Field Validation and Behavior

PropertyEffect
validatorValidation rule or function.
regexRegular expression validation.
min / maxNumeric or length limits.
on_changeAction triggered when the field changes.
refresh_on_changeReloads dependent UI elements after change.
calculatedMarks the field as calculated.
expressionExpression 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>.

PropertyEffect
enabledEnables the profile table.
routeRoute used to open the table.
titleTable title.
descriptionDescription shown on admin or overview pages.
iconIcon used in admin navigation and table headers.
aclRoles allowed to see or use the table.
query / dqlData query for the table.
result_columnsColumns shown in the table.
default_sortDefault sorting. Follow project DQL rules and avoid DESC.
page_sizeDefault number of rows per page.
actionsRow, toolbar, or bulk actions.
create / edit / deleteEnables or configures CRUD behavior.
quick_filterConfigures quick filter behavior.
exportEnables 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.