Where Are AAA Configuration Files Located? AzerothAuctionAssassin Data Directory Guide

All AzerothAuctionAssassin (AAA) configuration files reside in the AzerothAuctionAssassinData/ directory at the project root, storing JSON configs for scan parameters, desired items, pets, and automated backups alongside runtime logs.

The AzerothAuctionAssassin scanner, maintained in the ff14-advanced-market-search/azerothauctionassassin repository, relies on persistent JSON files to drive its market sniping logic. These AAA configuration files are centrally managed in a dedicated data folder that the application constructs relative to the current working directory on every launch.

AzerothAuctionAssassinData Directory Structure

When the application starts, it builds absolute paths using os.path.join(os.getcwd(), "AzerothAuctionAssassinData", "<filename>.json") as implemented in [AzerothAuctionAssassin.py](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/AzerothAuctionAssassin.py#L207-L218). This directory contains the core JSON configuration files, sub-folders for backups, and region-specific realm ID mappings.

Primary JSON Configuration Files

The following files control the scanner's behavior and are created automatically on first launch if missing:

  • mega_data.json – Stores API credentials, Discord webhook URLs, scan intervals, and global application settings.
  • desired_items.json – Contains the list of specific World of Warcraft item IDs to monitor and their price thresholds.
  • desired_pets.json – Tracks battle pet IDs the scanner should watch for auction sniping.
  • desired_ilvl.json – Defines global item-level filters with minimum and maximum bounds.
  • desired_ilvl_list.json – Holds per-item-level pricing rules, including price caps and bonus modifiers.
  • desired_pet_ilvl_list.json – Manages pet-level specific pricing configurations and bonuses.
  • *-wow-connected-realm-ids.json – Region-specific mappings (EU, NA, classic) connecting realm names to Blizzard API IDs.

Backup and Logging Subdirectories

The AzerothAuctionAssassinData/ folder includes two critical subdirectories for data safety and debugging:

  • backup/ – Contains timestamped copies of all JSON configuration files. The application automatically generates backups here every time a configuration is saved, using the pattern YYYYMMDDHHMMSS_<filename>.json.
  • logs/ – Stores runtime diagnostic logs and application output for troubleshooting scan operations.

How AAA Loads Configuration Files

The Python backend resolves all configuration paths dynamically relative to the execution directory. In [AzerothAuctionAssassin.py](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/AzerothAuctionAssassin.py#L207-L218), the path construction logic ensures cross-platform compatibility:

import os
import json

def load_mega_data():
    """Load the core configuration from AzerothAuctionAssassinData."""
    config_path = os.path.join(
        os.getcwd(), 
        "AzerothAuctionAssassinData", 
        "mega_data.json"
    )
    with open(config_path, encoding="utf-8") as f:
        return json.load(f)

For the Node.js/Electron frontend, the GUI imports configurations through file dialogs and merges them into the running MegaData instance, as seen in [node-ui/renderer.js](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/node-ui/renderer.js#L100-L108):

importConfigBtn.addEventListener('click', async () => {
  const file = await dialog.showOpenDialog({ 
    filters: [{ name: "JSON", extensions: ["json"] }] 
  });
  if (!file.canceled) {
    const data = await readJson(file.filePaths[0]);
    megaData.loadRaw(data);
  }
});

Automatic Backup Mechanism

AAA automatically preserves configuration history to prevent data loss. The backup_config method in [AzerothAuctionAssassin.py](https://github.com/ff14-advanced-market-search/azerothauctionassassin/blob/main/AzerothAuctionAssassin.py#L2883-L2890) creates timestamped snapshots:

from datetime import datetime
import os
import json

def backup_config(self, config_name: str, config_data: dict):
    backup_dir = os.path.join(os.getcwd(), "AzerothAuctionAssassinData", "backup")
    os.makedirs(backup_dir, exist_ok=True)
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    backup_path = os.path.join(backup_dir, f"{timestamp}_{config_name}.json")
    
    with open(backup_path, "w", encoding="utf-8") as f:
        json.dump(config_data, f, indent=2)

Version Control and Gitignore Rules

User-generated configuration files are explicitly excluded from version control to prevent credential leakage and merge conflicts. The root .gitignore file lists:

AzerothAuctionAssassinData/desired_ilvl.json
AzerothAuctionAssassinData/desired_ilvl_list.json
AzerothAuctionAssassinData/desired_pet_ilvl_list.json
AzerothAuctionAssassinData/desired_items.json
AzerothAuctionAssassinData/desired_pets.json
AzerothAuctionAssassinData/mega_data.json
AzerothAuctionAssassinData/backup/*
AzerothAuctionAssassinData/logs/*

Only example templates (prefixed with example_) and realm ID mapping files are tracked in the repository, allowing users to copy and customize their own versions without affecting upstream code.

Summary

  • All AAA configuration files live in the AzerothAuctionAssassinData/ directory relative to the application root.
  • Core JSON files include mega_data.json for API settings, desired_items.json for item watch lists, and desired_pets.json for pet monitoring.
  • Path resolution uses os.path.join(os.getcwd(), "AzerothAuctionAssassinData", ...) throughout the Python codebase.
  • Automatic backups are stored in AzerothAuctionAssassinData/backup/ with timestamps.
  • Git exclusion prevents personal data and logs from being committed via .gitignore rules.

Frequently Asked Questions

Where exactly are AAA configuration files stored on disk?

All configuration files are stored in the AzerothAuctionAssassinData/ folder located at the project root. The application constructs this path dynamically using os.getcwd() combined with the directory name, ensuring it always looks for files relative to where the executable or Python script is launched.

What information does mega_data.json contain?

The mega_data.json file contains the master configuration for the AzerothAuctionAssassin scanner, including Blizzard API keys, Discord webhook URLs for notifications, scan interval timings, and global application preferences. This is the first file loaded on startup and is required for the scanner to authenticate with Blizzard's auction house API.

Does AAA automatically back up configuration changes?

Yes, the application automatically creates timestamped backups every time a configuration file is saved. These backups are stored in the AzerothAuctionAssassinData/backup/ subdirectory with filenames following the pattern YYYYMMDDHHMMSS_<filename>.json, allowing users to roll back to previous settings if needed.

Can I manually edit AAA JSON configuration files?

Yes, all JSON configuration files in AzerothAuctionAssassinData/ are human-readable and can be edited manually with any text editor. The files use standard JSON formatting with indentations, and changes take effect the next time the scanner loads the configuration or restarts. However, ensure valid JSON syntax is maintained to prevent parsing errors on startup.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →