fix: improve API startup process manage.py detection (#9856)

This commit is contained in:
Josema Camacho
2026-01-22 12:34:18 +01:00
committed by GitHub
parent 1208005a94
commit 799826758e

View File

@@ -35,10 +35,12 @@ class ApiConfig(AppConfig):
from api.compliance import load_prowler_compliance
# Generate required cryptographic keys if not present, but only if:
# `"manage.py" not in sys.argv`: If an external server (e.g., Gunicorn) is running the app
# `"manage.py" not in sys.argv[0]`: If an external server (e.g., Gunicorn) is running the app
# `os.environ.get("RUN_MAIN")`: If it's not a Django command or using `runserver`,
# only the main process will do it
if "manage.py" not in sys.argv or os.environ.get("RUN_MAIN"):
if (len(sys.argv) >= 1 and "manage.py" not in sys.argv[0]) or os.environ.get(
"RUN_MAIN"
):
self._ensure_crypto_keys()
# Commands that don't need Neo4j
@@ -51,9 +53,10 @@ class ApiConfig(AppConfig):
"check_and_fix_socialaccount_sites_migration",
]
# Skip Neo4j initialization during tests or specific Django commands
if getattr(settings, "TESTING", False) or (
"manage.py" in sys.argv
and len(sys.argv) > 1
len(sys.argv) > 1
and "manage.py" in sys.argv[0]
and sys.argv[1] in SKIP_NEO4J_DJANGO_COMMANDS
):
logger.info(