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:

  1. Environment variables are expanded (e.g. %ProgramData%)
  2. If the expanded path is absolute, it is used as-is
  3. 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.