Skip to content

Config Editor

The Config Editor provides a tree-based interface for editing the application's Config.yaml file. Each major section of the configuration has a specialized editor panel with appropriate controls and validation.

Editor layout

The tree panel displays the top-level config nodes. Clicking a node opens its specialized editor in the right panel. Nodes that don't have a specialized editor use the default YAML tree editor with right-click context menus.

Database connections

The Databases node shows all configured database connections. Each connection has a specialized panel with fields for the connection driver, server, database name, credentials, and driver-specific options.

Supported database drivers:

  • FD (FireDAC) — MSSQL, Firebird, PostgreSQL, MySQL, Oracle, SQLite, and more
  • DBX (DBExpress) — MSSQL, Firebird, Oracle
  • ADO — MSSQL via OLEDB/ODBC

The Test Connection button validates the connection parameters against the live database.

Authentication

The Auth node configures user authentication:

PropertyDescription
AuthAuthenticator type: DB (database table), TextFile, OSDB, or Null (no auth)
IsPassepartoutEnabledEnable a master password that bypasses normal authentication
PassepartoutPasswordThe master password value
IsClearPasswordStore passwords in clear text (not recommended for production)
Defaults/UserNamePre-filled user name on the login form
Defaults/PasswordPre-filled password on the login form

Server settings

The Server node configures the built-in HTTP server:

PropertyDefaultDescription
Port8080TCP port for the HTTP server
ThreadPoolSize20Number of threads in the connection pool
BindAddress(empty)Bind to a specific interface (e.g. 127.0.0.1 for Desktop Embedded Mode)

Layout defaults

The Defaults node contains application-wide defaults for field sizing, label formatting, grid paging, and window dimensions. See Config File — Defaults for the complete reference.

Desktop settings

The Desktop node configures the Desktop Embedded Mode window properties:

PropertyDefaultDescription
ClientWidth1000Window client width in pixels
ClientHeight900Window client height in pixels
MaximizedFalseStart the window maximized
ResizableTrueAllow the user to resize the window
PositionpoScreenCenterWindow position (TPosition value)
BorderIcons/biSystemMenuTrueShow the system menu icon
BorderIcons/biMinimizeTrueShow the minimize button
BorderIcons/biMaximizeTrueShow the maximize button
BorderIcons/biHelpFalseShow the help button

These properties are annotated with RTTI attributes (YamlNode, YamlSubNode) on TKDesktopConfig and TKDesktopBorderIconsConfig in Kitto.Metadata.SubNodes.pas, so the right-click context menu in KIDEx shows all available options with descriptions and default values.

Theme settings

The theme is configured at the top level of Config.yaml:

PropertyDescription
Theme / ThemeModeLight, Dark, or Auto (follows OS preference)
Theme/Primary-ColorCSS color name or hex value for the accent color
Theme/Font-FamilyFont family for the entire application
Theme/Font-SizeBase font size (e.g. 13px)
Theme/IconStyleMaterial Design Icon style: filled, outlined, round, sharp, two-tone

See CSS Theming for details on CSS custom properties and how to customize the application appearance.

UserFormats

The UserFormats node controls date, time, and numeric formatting:

PropertyExampleDescription
Datedd/mm/yyyyDate display format
Timehh:nnTime display format
CurrencyCurrency symbol
Decimal,Decimal separator
Thousand.Thousands separator

See Config File — UserFormats for details.

Right-click context menu

For any node in the config tree, right-clicking shows the available child nodes and properties based on RTTI discovery. This is especially useful for complex nested structures where you might not remember all available options.

The menu items are organized as:

  • Required nodes — shown first, with bold labels
  • Optional nodes — shown with default values when applicable
  • Sub-nodes — expandable sections for nested configuration blocks
  • Containers — nodes that can hold multiple children (e.g. database connections)

Released under Apache License, Version 2.0.