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:
| Property | Description |
|---|---|
Auth | Authenticator type: DB (database table), TextFile, OSDB, or Null (no auth) |
IsPassepartoutEnabled | Enable a master password that bypasses normal authentication |
PassepartoutPassword | The master password value |
IsClearPassword | Store passwords in clear text (not recommended for production) |
Defaults/UserName | Pre-filled user name on the login form |
Defaults/Password | Pre-filled password on the login form |
Server settings
The Server node configures the built-in HTTP server:
| Property | Default | Description |
|---|---|---|
Port | 8080 | TCP port for the HTTP server |
ThreadPoolSize | 20 | Number 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:
| Property | Default | Description |
|---|---|---|
ClientWidth | 1000 | Window client width in pixels |
ClientHeight | 900 | Window client height in pixels |
Maximized | False | Start the window maximized |
Resizable | True | Allow the user to resize the window |
Position | poScreenCenter | Window position (TPosition value) |
BorderIcons/biSystemMenu | True | Show the system menu icon |
BorderIcons/biMinimize | True | Show the minimize button |
BorderIcons/biMaximize | True | Show the maximize button |
BorderIcons/biHelp | False | Show 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:
| Property | Description |
|---|---|
Theme / ThemeMode | Light, Dark, or Auto (follows OS preference) |
Theme/Primary-Color | CSS color name or hex value for the accent color |
Theme/Font-Family | Font family for the entire application |
Theme/Font-Size | Base font size (e.g. 13px) |
Theme/IconStyle | Material 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:
| Property | Example | Description |
|---|---|---|
Date | dd/mm/yyyy | Date display format |
Time | hh:nn | Time display format |
Currency | € | Currency 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)
