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.

Each main section carries the same icon in the tree and on its tab — a shield for AccessControl, a key for Login, an envelope for Email, a globe for Server, and so on — so the section you are on is recognisable in both places.

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: DB, DBCrypt, DBServer, OSDB, TextFile, LDAP, Nullor the id of an authenticator your application registers. The combo lists the standard ones and accepts anything you type: a value of its own is kept and shown again when you reopen the file.
IsPassepartoutEnabledEnable a master password that bypasses normal authentication
PassepartoutPasswordThe master password value. Not editable while the passepartout is off
IsClearPasswordStore passwords in clear text (not recommended for production)
DatabaseChoicesComma-separated Databases entries offered as an environment combo on the login page. See Database environment choice
Defaults/UserNamePre-filled user name on the login form
Defaults/PasswordPre-filled password on the login form
LoginTypePIN to validate a TOTP code instead of a password, empty for a normal login. See PIN login
BCryptCostValueCost of the bcrypt hash, 4 to 31, default 13. Shown for DBCrypt only
ValidatePassword/MessageMessage shown when a new password fails the rule below
ValidatePassword/RegExRegular expression a new password has to match. See Password strength

The SQL the authenticator runs is edited on the tabs below the parameters: ReadUserCommandText, SetPasswordCommandText, AfterAuthenticateCommandText, ResetPasswordCommandText and RegisterNewUserCommandText. Each starts from the framework default, which is shown in the editor and written to the file only if you change it — see Default SQL queries.

The whole group is shown for the database authenticators and for an authenticator of your own, which normally descends from TKDBAuthenticator and reads the same keys; it is hidden for TextFile, OSDB, DBServer and LDAP, which have their own panels.

The optional JWT envelope is a checkbox here: ticking it seeds a minimal JWT block, whose remaining keys are edited in the tree.

Email and SMTP

The Email node holds the account the application sends from, and its SMTP sub-node the server:

PropertyDefaultDescription
HostNameSMTP server host name
Port25Usually 25 without encryption, 587 with explicit TLS, 465 with implicit TLS
UserName, PasswordCredentials, left empty on a server that does not authenticate
UseTLSTrueEncrypt the connection. Without it the credentials travel in clear
TLSModeExplicitHow TLS is established: Explicit (STARTTLS on the plain port, the usual choice on 587), Implicit (TLS from the first byte, port 465), Required (explicit, and refuse to send if the server does not offer it)
VerifyCertificateTrueCheck the server certificate. False only for an internal server with a self-signed certificate, knowing the connection is then open to interception

Help Chat

The HelpChat node configures the assistant behind the application's help button: Enabled, the Greeting shown when the panel opens and the provider; the provider group (ApiKey, the model, MaxTokens, GroundingMaxPages and the SystemPrompt that precedes every conversation — leave it empty to keep the provider's own prompt); the documentation index used for grounding (DocIndex, DocBaseUrl); and the limits under Advanced (PoolSize, MessageMaxLength, HistoryMaxMessages). The system prompt is a multi-line field at the bottom of the provider group. See Help Chat for the runtime side.

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, and its tab edits them grouped by sub-node:

GroupProperties
GridPageRecordCount, DefaultAction
WindowWidth, Height
GeneralAlwaysNotifyChange
LayoutMemoWidth, MaxFieldWidth, MinFieldWidth, Char_Width_Factor, Char_Height_Factor, LabelSeparator, RequiredLabelTemplate
FormPanelLabelWidth, HideLabels
HelpHRef, HRefStyle, ShortText, LongText — an empty HRef means no help button

LabelSeparator deserves a note: an empty value is meaningful — it removes the separator after the label — so leaving the field blank keeps the node as it is instead of deleting it. 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 under the Theme node in Config.yaml:

PropertyDescription
Theme/ModeTheme mode: Light, Dark, or Auto (follows OS preference)
Theme/UserSelectionLet the end user pick the theme via the theme switcher (honoured only when Mode=Auto)
Theme/Font-FamilyFont family for the entire application (shared across modes)
Theme/Font-SizeBase font size, e.g. 13px (shared across modes)
Theme/IconStyleMaterial Design Icon style: filled, outlined, round, sharp, two-tone
Theme/IconSizeDefault icon size: Small, Medium, Large
Theme/Light/Primary-ColorAccent/chrome colour for light mode (CSS name or hex)
Theme/Dark/Primary-ColorAccent/chrome colour for dark mode (CSS name or hex)

Since Kittox 4.x the Theme node is a decorated config class (TKThemeConfig), so KIDEx discovers and edits its properties — including the Light/Dark sub-nodes — through the generic RTTI tree editor, like Server or Auth.

See the Themes page for the full reference and real-world examples, or CSS Theming for overriding individual CSS rules in application.css.

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.

A node the RTTI does not know is not listed, but you can still create it with Add custom node, the last entry of the menu: it adds a node you then name yourself. That is the way to write a key the editor does not offer yet — for instance the children of Defaults. See YAML Attributes.

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.