Configuration: settings.xml
The settings.xml file is the central configuration file for AppProfileSafe. It is located in the installation folder next to the application executable and is read on every startup by both the GUI and CLI.
XML namespace: urn:appprofilesafe:settings:v1
Default settings.xml
Below is the default configuration created on first launch:
<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns="urn:appprofilesafe:settings:v1" SchemaVersion="1.0.0">
<Paths>
<AppDefinitionsFolder>%ProgramData%\IT-Consulting Kinner\AppProfileSafe\AppDefinitions</AppDefinitionsFolder>
<MappingsFolder>%ProgramData%\IT-Consulting Kinner\AppProfileSafe\Mappings</MappingsFolder>
<AuditFolder>%ProgramData%\IT-Consulting Kinner\AppProfileSafe\Audit</AuditFolder>
<ReportFolder>%ProgramData%\IT-Consulting Kinner\AppProfileSafe\Report</ReportFolder>
<LicenseFilePath>%ProgramData%\IT-Consulting Kinner\AppProfileSafe\License\License.json</LicenseFilePath>
<PublicKeyPemPath>%ProgramData%\IT-Consulting Kinner\AppProfileSafe\Key\AppProfileSafe.pem</PublicKeyPemPath>
<EventPipelineConfigPath>%ProgramData%\IT-Consulting Kinner\AppProfileSafe\Config\eventpipeline.xml</EventPipelineConfigPath>
<SiemConfigPath>%ProgramData%\IT-Consulting Kinner\AppProfileSafe\Config\siem.xml</SiemConfigPath>
<WebhookConfigPath>%ProgramData%\IT-Consulting Kinner\AppProfileSafe\Config\webhook.xml</WebhookConfigPath>
<RedactionConfigPath>%ProgramData%\IT-Consulting Kinner\AppProfileSafe\Config\redaction.xml</RedactionConfigPath>
</Paths>
<Logging>
<MaxLogSizeBytes>10485760</MaxLogSizeBytes>
<MaxLogFiles>10</MaxLogFiles>
</Logging>
<Audit>
<RetentionDays>365</RetentionDays>
</Audit>
<Reporting>
<RetentionDays>365</RetentionDays>
<DefaultFormats>json</DefaultFormats>
</Reporting>
<Health>
<RetentionDays>30</RetentionDays>
</Health>
</Settings>
Paths Section
The <Paths> section defines where AppProfileSafe stores and reads all data. All paths support environment variables (e.g. %ProgramData%) and can be absolute or relative to the installation folder.
| Element | Default | Description |
|---|---|---|
AppDefinitionsFolder |
...\AppDefinitions | Folder containing application definition XML files. See What Is an Application Definition? |
MappingsFolder |
...\Mappings | Mapping configuration files. See What Is a Mapping File? |
AuditFolder |
...\Audit | Audit trail CSV files and import change reports. See Audit Logging. |
ReportFolder |
...\Report | Run reports and compliance reports. See Run Reports. |
LicenseFilePath |
...\License\License.json | Full path to the license JSON file. See How Licensing Works. |
PublicKeyPemPath |
...\Key\AppProfileSafe.pem | Full path to the RSA public key used for license signature verification. |
EventPipelineConfigPath |
...\Config\eventpipeline.xml | Full path to the event pipeline configuration. See Event Pipeline Architecture. |
SiemConfigPath |
...\Config\siem.xml | Full path to the SIEM forwarding configuration. See Event Pipeline Architecture. |
WebhookConfigPath |
...\Config\webhook.xml | Full path to the webhook forwarding configuration. See Event Pipeline Architecture. |
RedactionConfigPath |
...\Config\redaction.xml | Full path to the redaction rules configuration. See Event Pipeline Architecture. |
All paths shown above use the abbreviated prefix ... for %ProgramData%\IT-Consulting Kinner\AppProfileSafe.
Hardcoded paths (not configurable)
The following paths are determined automatically and cannot be changed via settings.xml or user settings:
| Path | Location | Description |
|---|---|---|
| Schema folder | <InstallDir>\Schema |
XSD schema files for configuration validation. See XML Schema Reference. |
| Log folder | <InstallDir>\Log |
Application log files. Always local to prevent file conflicts on network shares. See Where to Find Logs. |
| EventPipeline queue | <InstallDir>\EventPipeline |
Persistent event queue (queue.jsonl) with per-machine delivery state. Always local to avoid cross-client conflicts. |
Logging Section
Controls application log file rotation.
| Element | Default | Description |
|---|---|---|
MaxLogSizeBytes |
10485760 (10 MB) | Maximum size of a single log file in bytes before rotation occurs. |
MaxLogFiles |
10 | Maximum number of rotated log files to keep. Oldest files are deleted automatically. |
With the default settings, AppProfileSafe retains up to 100 MB of log data (10 files × 10 MB).
Audit Section
| Element | Default | Description |
|---|---|---|
RetentionDays |
365 | Number of days to retain audit log entries. Entries older than this are removed automatically. |
See Audit Logging for details on the audit trail format and integrity protection.
Reporting Section
| Element | Default | Description |
|---|---|---|
RetentionDays |
365 | Number of days to retain run reports and compliance reports. |
DefaultFormats |
json | Default output format(s) for run reports. Multiple formats can be comma-separated. |
See Run Reports and Compliance Reports for details.
Health Section
| Element | Default | Description |
|---|---|---|
RetentionDays |
30 | Number of days to retain health check snapshots. |
See Running & Interpreting Health Checks for details.
Important Behaviors
Schema Validation
On load, settings.xml is validated against its XSD schema (AppProfileSafe.Settings-v1.0.0.xsd) in the Schema\ folder of the installation directory. If validation fails, the application will not start.
Auto Write-Back
After loading, AppProfileSafe writes back a normalized version of settings.xml. This ensures that any missing elements are populated with their default values. A backup of the previous file is kept as settings.xml.bak. Hardcoded paths (Log folder, Schema folder, EventPipeline queue) are not written to settings.xml.
Missing Directories
All directories referenced in the <Paths> section are created automatically if they do not exist.
Path Resolution
Paths are resolved in the following order:
- Environment variables are expanded (e.g.
%ProgramData%) - If the expanded path is absolute, it is used as-is
- If the path is relative, it is resolved relative to the installation folder (the folder containing
settings.xml)
CLI: Overriding Paths with --userSettingsFile
In CLI mode, path values from settings.xml can be overridden using the --userSettingsFile parameter. This points to a separate XML file that contains only a <Paths> block — any path elements provided in the user settings file override the corresponding values from settings.xml. The Logging, Audit, Reporting, and Health sections always come from the base settings.xml and cannot be overridden.
The user settings file uses its own namespace (urn:appprofilesafe:usersettings:v1) and is validated against AppProfileSafe.UserSettings-v1.0.0.xsd. All path elements are optional — only the values you provide are overridden.
The following paths can be overridden: AppDefinitionsFolder, MappingsFolder, AuditFolder, ReportFolder, LicenseFilePath, PublicKeyPemPath, EventPipelineConfigPath, SiemConfigPath, WebhookConfigPath, and RedactionConfigPath. Hardcoded paths (Log folder, Schema folder, EventPipeline queue) cannot be overridden.
Example user settings file:
<?xml version="1.0" encoding="utf-8"?>
<UserSettings xmlns="urn:appprofilesafe:usersettings:v1">
<Paths>
<AppDefinitionsFolder>D:\CustomDefs</AppDefinitionsFolder>
<EventPipelineConfigPath>D:\TestConfig\eventpipeline.xml</EventPipelineConfigPath>
<SiemConfigPath>D:\TestConfig\siem.xml</SiemConfigPath>
</Paths>
</UserSettings>
Relative paths in the user settings file are resolved relative to the directory containing that file (not relative to the installation folder). See CLI Command Overview for usage examples.