AAI 26.0.0: Directory and File Structure Change Mapping
search cancel

AAI 26.0.0: Directory and File Structure Change Mapping

book

Article ID: 454129

calendar_today

Updated On:

Products

Automation Analytics & Intelligence

Issue/Introduction

This topic is a map, not a tutorial — it shows what's where and links out to the topic that explains the why and how for each piece.
If you already know you're looking for a specific log file or setting, Where Did My Logs and Configuration Go? has the full, detailed walkthrough;
use this topic instead when you want to see the whole layout at once, before and after the upgrade.

New to terms like mTLS, keystore, or WAR? This article uses those terms without redefining them.
See: AAI Glossary — Terms Used in the 26.0.0 Upgrade Documentation

Environment

  • AAI 26.0.0 and later.
  • Applies to upgrades from AAI 24.4.0 to 26.0.0.
  • The tables in this article describe the VM/traditional installer layout only, on both sides of the upgrade.
    Kubernetes/OpenShift (Helm) deployments didn't exist prior to 26.0.0, so there's no "before" layout to compare
    — see the Kubernetes/OpenShift section near the end of this article for how configuration and logs are organized there instead.

Cause

Not applicable. This is a directory/file structure reference map, not a resolution to a specific reported problem.

Resolution

Prerequisites

  • Shell access to your AAI installation (VM). No other tools are required to read this article — the commands shown are for confirming the layout on your own system, and use only what ships with the OS.

Table 1 — Pre-26.0.0 (24.4.0) layout

Everything below lives on disk under one installation root, referred to here as $AAI_HOME (Linux) or %AAI_HOME% (Windows).

$AAI_HOME/
├── jaws.sh (Linux) / jaws.bat (Windows)        — service control entry point
├── jaws.sh.vmoptions (Linux) / equivalent .vmoptions file (Windows)  — JVM heap/GC flags
│
└── jboss/standalone/
    ├── configuration/
    │   ├── standalone.xml                      — server listeners, datasource, cache subsystem
    │   ├── jaws.properties                     — main runtime settings
    │   ├── jaws-database.xml                   — database connection settings
    │   ├── ehcache.xml                         — cache configuration
    │   ├── log4j2.yml                          — server logging configuration
    │   ├── application.keystore                — your HTTPS keystore
    │   ├── aaiconnectorkey.p12                 — connector keystore
    │   └── connectortrust.p12                  — connector truststore
    │
    └── log/
        ├── jaws.log                            — main server log
        ├── server.log                          — main server log
        ├── alertService.log                    — co-hosted component log
        ├── reportingService.log                — co-hosted component log
        ├── simulationService.log               — co-hosted component log
        ├── subscriptions.log                   — co-hosted component log
        ├── audit.log                           — co-hosted component log
        ├── collectorService.log                — co-hosted component log
        ├── eem.sdk.log                         — co-hosted component log
        ├── eem.network.log                     — co-hosted component log
        ├── eem.perf.log                        — co-hosted component log
        ├── predictions.log                     — co-hosted component log
        ├── maintenance.log                     — co-hosted component log
        ├── telemetryService.log                — co-hosted component log
        └── activemq.log                        — co-hosted component log
LocationTypeNotes
$AAI_HOME/jaws.sh (Linux) / jaws.bat (Windows)Entry pointService control
$AAI_HOME/jaws.sh.vmoptions (Linux) / equivalent .vmoptions file (Windows)ConfigJVM heap/GC flags
jboss/standalone/configuration/standalone.xmlConfigServer listeners, datasource, cache subsystem
jboss/standalone/configuration/jaws.propertiesConfigMain runtime settings
jboss/standalone/configuration/jaws-database.xmlConfigDatabase connection settings
jboss/standalone/configuration/ehcache.xmlConfigCache configuration
jboss/standalone/configuration/log4j2.ymlConfigServer logging configuration
jboss/standalone/configuration/application.keystoreConfig (certificate)Your HTTPS keystore
jboss/standalone/configuration/aaiconnectorkey.p12connectortrust.p12Config (certificate)Connector keystore/truststore
jboss/standalone/log/LogsAll server and co-hosted component logs (main server log, alert, reporting, simulation, subscriptions, audit, and others)

Table 2 — 26.0.0 layout

$AAI_HOME/
├── aai.sh (Linux) / aai.bat (Windows)          — service control entry point
├── aai.sh.vmoptions (Linux) / aai.vmoptions (Windows)  — JVM heap/GC flags
│
├── configuration/                              — new in 26.0.0, centralized settings
│   ├── aai.properties                          — ports, TLS, routing, main runtime settings
│   ├── aai-jboss-log4j2.yml                    — server + co-hosted component logging config
│   ├── eiam.config                             — eEM/EIAM SDK settings
│   ├── opensearch.properties                   — search/indexing (OpenSearch) connection settings
│   ├── frontend-gateway-log4j2.yml             — per-service logging config
│   ├── denormalizer-log4j2.yml                 — per-service logging config
│   ├── mcpserver-log4j2.yml                    — per-service logging config
│   ├── ai-insights-log4j2.yml                  — per-service logging config
│   └── automation-ai-log4j2.yml                — per-service logging config
│
├── jboss/standalone/configuration/             — legacy directory, still in active use
│   ├── standalone.xml                          — server listeners, datasource, cache subsystem (unchanged)
│   ├── jaws-database.xml                       — database connection settings (unchanged)
│   ├── ehcache.xml                             — cache configuration (unchanged)
│   ├── application.keystore                    — your HTTPS keystore (unchanged by the upgrade)
│   ├── aai-server.p12                          — NEW: internal service-mesh mTLS keystore
│   ├── root-ca.p12                             — NEW: internal service-mesh mTLS truststore
│   ├── aaiconnectorkey.p12                     — connector keystore (now scoped to Frontend Gateway/customer-CA use)
│   └── connectortrust.p12                      — connector truststore (now scoped to Frontend Gateway/customer-CA use)
│
├── externalServices/                           — new in 26.0.0, one subdirectory per service
│   ├── FrontendGateway/
│   ├── Denormalizer/
│   ├── MCP/
│   ├── AutomationAI/
│   └── AIInsights/
│
└── log/                                        — new in 26.0.0 (moved from jboss/standalone/log/)
    ├── jaws.log                                — main server log
    ├── server.log                              — main server log
    ├── alertService.log                        — co-hosted component log
    ├── reportingService.log                    — co-hosted component log
    ├── simulationService.log                   — co-hosted component log
    ├── subscriptions.log                       — co-hosted component log
    ├── audit.log                               — co-hosted component log
    ├── collectorService.log                    — co-hosted component log
    ├── eem.sdk.log                             — co-hosted component log
    ├── eem.network.log                         — co-hosted component log
    ├── eem.perf.log                            — co-hosted component log
    ├── predictions.log                         — co-hosted component log
    ├── maintenance.log                         — co-hosted component log
    ├── telemetryService.log                    — co-hosted component log
    ├── activemq.log                            — co-hosted component log
    ├── aai.eem.log                             — AAI's own eEM-related logging (new)
    ├── frontendGateway.log
    ├── denormalizer.log
    ├── mcp.log
    ├── aiinsights.log
    ├── automationai.log
    └── aai-opensearch.log                      — only present if you run OpenSearch yourself and point AAI at it
LocationTypeNotes
$AAI_HOME/aai.sh / aai.batEntry pointRenamed from jaws.*
$AAI_HOME/aai.sh.vmoptions (Linux) / aai.vmoptions (Windows)ConfigSame mechanism as before, renamed
configuration/aai.properties (NEW)ConfigNew consolidated runtime settings — ports, TLS, routing. Hand-edited only; nothing validates it until the server starts
configuration/aai-jboss-log4j2.yml (NEW)ConfigServer and co-hosted component logging, moved here from the legacy directory
configuration/eiam.config (NEW)ConfigeEM/eIAM SDK settings
configuration/opensearch.properties (NEW)ConfigSearch/indexing (OpenSearch) connection settings
configuration/frontend-gateway-log4j2.ymldenormalizer-log4j2.ymlmcpserver-log4j2.ymlai-insights-log4j2.ymlautomation-ai-log4j2.yml (NEW)ConfigOne logging config file per new service
jboss/standalone/configuration/standalone.xmljaws-database.xmlehcache.xmlConfigUnchanged from 24.4.0, same location
jboss/standalone/configuration/application.keystoreConfig (certificate)Unchanged — still your original HTTPS keystore, same location
jboss/standalone/configuration/aai-server.p12root-ca.p12 (NEW)Config (certificate)New internal service-mesh mTLS keystore/truststore, generated automatically
jboss/standalone/configuration/aaiconnectorkey.p12connectortrust.p12Config (certificate)Still present, same location — now scoped to the Frontend Gateway/customer-CA external-connector workflow only (see note below)
externalServices/FrontendGateway/Denormalizer/MCP/AutomationAI/AIInsights/ (NEW)One directory per new service
log/ (NEW)LogsServer and co-hosted component logs (moved here), plus aai.eem.log and one new log file per new service (frontendGateway.logdenormalizer.logmcp.logaiinsights.logautomationai.log), plus aai-opensearch.log if you run OpenSearch yourself

How to confirm the 26.0.0 layout on your own system:

Linux:

ls -la $AAI_HOME $AAI_HOME/configuration $AAI_HOME/jboss/standalone/configuration $AAI_HOME/externalServices $AAI_HOME/log

Windows (PowerShell):

dir "$env:AAI_HOME", "$env:AAI_HOME\configuration", "$env:AAI_HOME\jboss\standalone\configuration", "$env:AAI_HOME\externalServices", "$env:AAI_HOME\log"

Table 3 — What moved or changed (upgrade mapping)

The tree below is the 26.0.0 layout again, this time labeled with what happened to each item during the upgrade instead of what it's for:

$AAI_HOME/
├── aai.sh / aai.bat                            [RENAMED — was jaws.sh / jaws.bat]
├── aai.sh.vmoptions / aai.vmoptions            [RENAMED — same mechanism, was jaws.sh.vmoptions / equivalent]
│
├── configuration/                              [NEW]
│   ├── aai.properties                          [NEW — settings previously spread across jaws.properties and standalone.xml]
│   ├── aai-jboss-log4j2.yml                    [MOVED — was jboss/standalone/configuration/log4j2.yml]
│   ├── eiam.config                             [NEW]
│   ├── opensearch.properties                   [NEW]
│   └── (5 per-service *-log4j2.yml files)      [NEW — one per new service below]
│
├── jboss/standalone/configuration/             [UNCHANGED location — still active, not legacy leftovers]
│   ├── standalone.xml, jaws-database.xml, ehcache.xml   [UNCHANGED]
│   ├── application.keystore                    [UNCHANGED — same HTTPS certificate as before the upgrade]
│   ├── aai-server.p12, root-ca.p12             [NEW — internal service-mesh mTLS, don't confuse with the items below]
│   └── aaiconnectorkey.p12, connectortrust.p12 [UNCHANGED files — scope narrowed to Frontend Gateway/customer-CA use only]
│
├── externalServices/                           [NEW]
│   └── FrontendGateway/, Denormalizer/, MCP/, AutomationAI/, AIInsights/   [NEW]
│
└── log/                                        [MOVED — was jboss/standalone/log/]
    ├── jaws.log                                [MOVED, same filename]
    ├── server.log                              [MOVED, same filename]
    ├── alertService.log                        [MOVED, same filename]
    ├── reportingService.log                    [MOVED, same filename]
    ├── simulationService.log                   [MOVED, same filename]
    ├── subscriptions.log                       [MOVED, same filename]
    ├── audit.log                               [MOVED, same filename]
    ├── collectorService.log                    [MOVED, same filename]
    ├── eem.sdk.log                             [MOVED, same filename]
    ├── eem.network.log                         [MOVED, same filename]
    ├── eem.perf.log                            [MOVED, same filename]
    ├── predictions.log                         [MOVED, same filename]
    ├── maintenance.log                         [MOVED, same filename]
    ├── telemetryService.log                    [MOVED, same filename]
    ├── activemq.log                            [MOVED, same filename]
    ├── aai.eem.log                             [NEW]
    ├── frontendGateway.log                     [NEW]
    ├── denormalizer.log                        [NEW]
    ├── mcp.log                                 [NEW]
    ├── aiinsights.log                          [NEW]
    └── automationai.log                        [NEW]
Concern24.4.026.0.0What changed
Server and co-hosted logging configjboss/standalone/configuration/log4j2.ymlconfiguration/aai-jboss-log4j2.ymlMoved to the new top-level configuration directory
Main runtime settings (ports, TLS, routing)Spread across jaws.properties and standalone.xmlNew: configuration/aai.propertiesNew consolidated file
Database connection, cache configjaws-database.xmlehcache.xmlSame locationNo change
HTTPS keystoreapplication.keystoreSame locationNo change — still your original certificate
Internal service-mesh mTLS certsDid not existNew: aai-server.p12root-ca.p12New in 26.0.0, generated automatically at install/upgrade time
Connector / customer-CA certsaaiconnectorkey.p12connectortrust.p12 (fed the shared connector keystore/truststore directly)Same files, same locationScope narrowed to the Frontend Gateway/customer-CA external-connector workflow — the internal mesh uses the new certs above instead
Server and co-hosted component logsjboss/standalone/log/log/ (new top-level directory)Moved out from under jboss/standalone/
eEM-specific loggingNot separated outNew: log/aai.eem.logNew in 26.0.0
New service directories and logs (Frontend Gateway, Denormalizer, MCP, Automation AI, AI Insights)Did not existNew: externalServices/<Service>/log/<service>.logNew in 26.0.0 — five independently-managed services
JVM heap/GC optionsjaws.sh.vmoptionsaai.sh.vmoptionsSame location and mechanism, renamed

The two things people most often miss:

  • The old configuration/ directory didn't move — a new one was added alongside it. 
    jboss/standalone/configuration/ is not gone and is not just legacy leftovers; standalone.xmljaws-database.xmlehcache.xml,
    and your keystores genuinely still live there, and are still hand-edited there when needed. The new top-level configuration/ directory is a separate, additional location — not a replacement.
  • aai-server.p12 and root-ca.p12 are new, not carried over. They sit in the same legacy directory as your original application.keystore, which makes them easy to mistake for pre-existing files
    — they aren't. They're generated automatically as part of the upgrade for the new internal service-mesh mTLS, and they're separate from your original HTTPS keystore and from the connector certs you may already have in place.

On Kubernetes/OpenShift: no single tree — organized per component instead

There is no equivalent of the VM tables above to ls your way through, because there's no single host or persistent filesystem holding everything, and no pre-26.0.0 layout to compare against
— this deployment model didn't exist before 26.0.0. Instead:

  • Every component (Frontend Gateway, Denormalizer, MCP Service, Automation AI, AI Insights, OpenSearch, and the AAI Server itself) runs as its own pod.
  • Logs are per-pod. A given component's logs live only on that pod (or a per-component volume path scoped by pod name)
    — there's no shared log/ directory to browse the way there is on VM.
  • Configuration is per-component, not per-pod, and mostly not durable. Most configuration files are baked into the container image and reset on every pod restart
    — a file you find inside a running pod is not reliable evidence of what will be there after the next restart. The genuine, durable source of truth for your settings is your Helm release values, not a file path.
  • The one exception: the server/co-hosted logging configuration file is the one configuration file that's actually backed by persistent storage as a real, editable file, in both environments.

How to confirm this on your own system:

kubectl get pods -n <namespace> | grep aai-
helm get values <release-name> -n <namespace>

Full detail on the merge behavior, which settings are hand-editable, and how to find your release name/namespace if you don't already know them: Where Did My Logs and Configuration Go?

Additional Information