diff --git a/.github/workflows/on_main.yml b/.github/workflows/on_main.yml index 8ad473e..d1ce9ac 100644 --- a/.github/workflows/on_main.yml +++ b/.github/workflows/on_main.yml @@ -14,7 +14,7 @@ jobs: runs-on: "ubuntu-latest" steps: - - uses: VatsalJagani/splunk-app-action@v6 + - uses: VatsalJagani/splunk-app-action@v7 env: SPLUNK_APP_ACTION_1: "rm -rf backup_app_icons" SPLUNK_APP_ACTION_2: "rm -f .gitignore" diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index fcfc437..0670d82 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -10,7 +10,12 @@ jobs: runs-on: "ubuntu-latest" steps: - - uses: VatsalJagani/splunk-app-action@v6 + - uses: VatsalJagani/splunk-app-action@v7 + env: + SPLUNK_APP_ACTION_1: "rm -rf backup_app_icons" + SPLUNK_APP_ACTION_2: "rm -f .gitignore" + SPLUNK_APP_ACTION_3: "rm -rf Note_*" + SPLUNK_APP_ACTION_4: "rm -rf images" with: app_dir: "." to_make_permission_changes: true diff --git a/README.md b/README.md index fd307ae..81abc73 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ The Splunk app auto updates MaxMind database. The database update happens automa * Author - CrossRealms International Inc. * Creates Index - False * Compatible with: - * Splunk Enterprise version: 9.0.x + * Splunk Enterprise version: 10.2.x, 10.4.x * OS: Platform independent * Browser: Google Chrome, Mozilla Firefox, Safari @@ -104,6 +104,12 @@ KNOWN LIMITATION RELEASE NOTES ------------- +Version 4.2.0 (July 2026) +* Added compatibility with Python 3.13 while retaining Python 3.9 / existing Splunk support. + * Replaced the `six` compatibility shim with the standard library `urllib.parse`. + * MaxMind database archive extraction uses the `data` filter on Python 3.12+ and falls back gracefully on older interpreters. +* Dependencies pinned to versions compatible with both Python 3.9 and 3.13 (Splunk Python SDK 2.1.1, requests 2.32.5). + Version 4.1.0 (April 2025) * Added support for downloading the MaxMind GeoIP2 database file (paid tier). diff --git a/app.manifest b/app.manifest index ab05d0f..f62bc13 100644 --- a/app.manifest +++ b/app.manifest @@ -5,7 +5,7 @@ "id": { "group": null, "name": "splunk_maxmind_db_auto_update", - "version": "4.1.0" + "version": "4.2.0" }, "author": [ { diff --git a/bin/mmdb_utils.py b/bin/mmdb_utils.py index 579804e..29df3c3 100644 --- a/bin/mmdb_utils.py +++ b/bin/mmdb_utils.py @@ -5,7 +5,7 @@ import requests import tarfile import shutil -from six.moves.urllib.parse import quote +from urllib.parse import quote import splunk.entity as entity import splunk.appserver.mrsparkle.lib.util as splunk_lib_util @@ -342,7 +342,10 @@ def download_mmdb_database(self, account_id, license_key, database_file, proxy_u try: # Extract the downloaded file with tarfile.open(DB_TEMP_DOWNLOAD, "r:gz") as tar: - tar.extractall(DB_DIR_TEMP_PATH) + try: + tar.extractall(DB_DIR_TEMP_PATH, filter='data') + except TypeError: # python 3.9 + tar.extractall(DB_DIR_TEMP_PATH) except tarfile.ReadError as e: msg = f"Unable to extract downloaded MaxMind database. {e}" logger.exception(msg) diff --git a/default/app.conf b/default/app.conf index 40c098d..cf624e5 100644 --- a/default/app.conf +++ b/default/app.conf @@ -11,10 +11,10 @@ label = Auto Update MaxMind Database [launcher] author = CrossRealms International Inc. description = This Splunk App Auto Update MaxMind Database (used for iplocation command) -version = 4.1.0 +version = 4.2.0 [id] -version = 4.1.0 +version = 4.2.0 [package] id = splunk_maxmind_db_auto_update diff --git a/default/commands.conf b/default/commands.conf index cc5bf2a..fa506c3 100644 --- a/default/commands.conf +++ b/default/commands.conf @@ -2,3 +2,4 @@ filename = maxmind_db_update_command.py chunked = true python.version = python3 +python.required = 3.13, 3.9 diff --git a/default/restmap.conf b/default/restmap.conf index f3fe1f4..14be381 100644 --- a/default/restmap.conf +++ b/default/restmap.conf @@ -7,3 +7,4 @@ handlertype = python handlerfile = rh_maxmind_configuration.py handleractions = list,edit python.version = python3 +python.required = 3.13, 3.9 diff --git a/images/app_configuration_page.png b/images/app_configuration_page.png new file mode 100644 index 0000000..01b3041 Binary files /dev/null and b/images/app_configuration_page.png differ