* feat: enhance authentication logging with detailed error and info messages - Added logging for various authentication events in the Adapter and its subclasses, including email validation, user existence checks, and password strength validation. - Implemented error handling for GitHub OAuth email retrieval, ensuring proper logging of unexpected responses and missing primary emails. - Updated logging configuration in local and production settings to include a dedicated logger for authentication events. * chore: address copilot comments * chore: addressed some additional comments * chore: update log * fix: lint
104 lines
3 KiB
Python
104 lines
3 KiB
Python
# Copyright (c) 2023-present Plane Software, Inc. and contributors
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
# See the LICENSE file for details.
|
|
|
|
"""Production settings"""
|
|
|
|
import os
|
|
|
|
from .common import * # noqa
|
|
|
|
# SECURITY WARNING: don't run with debug turned on in production!
|
|
DEBUG = int(os.environ.get("DEBUG", 0)) == 1
|
|
|
|
# Honor the 'X-Forwarded-Proto' header for request.is_secure()
|
|
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
|
|
|
|
INSTALLED_APPS += ("scout_apm.django",) # noqa
|
|
|
|
|
|
# Scout Settings
|
|
SCOUT_MONITOR = os.environ.get("SCOUT_MONITOR", False)
|
|
SCOUT_KEY = os.environ.get("SCOUT_KEY", "")
|
|
SCOUT_NAME = "Plane"
|
|
|
|
LOG_DIR = os.path.join(BASE_DIR, "logs") # noqa
|
|
|
|
if not os.path.exists(LOG_DIR):
|
|
os.makedirs(LOG_DIR)
|
|
|
|
# Logging configuration
|
|
LOGGING = {
|
|
"version": 1,
|
|
"disable_existing_loggers": True,
|
|
"formatters": {
|
|
"verbose": {"format": "%(asctime)s [%(process)d] %(levelname)s %(name)s: %(message)s"},
|
|
"json": {
|
|
"()": "pythonjsonlogger.jsonlogger.JsonFormatter",
|
|
"fmt": "%(levelname)s %(asctime)s %(module)s %(name)s %(message)s",
|
|
},
|
|
},
|
|
"handlers": {
|
|
"console": {
|
|
"class": "logging.StreamHandler",
|
|
"formatter": "json",
|
|
"level": "INFO",
|
|
},
|
|
"file": {
|
|
"class": "plane.utils.logging.SizedTimedRotatingFileHandler",
|
|
"filename": (
|
|
os.path.join(BASE_DIR, "logs", "plane-debug.log") # noqa
|
|
if DEBUG
|
|
else os.path.join(BASE_DIR, "logs", "plane-error.log") # noqa
|
|
),
|
|
"when": "s",
|
|
"maxBytes": 1024 * 1024 * 1,
|
|
"interval": 1,
|
|
"backupCount": 5,
|
|
"formatter": "json",
|
|
"level": "DEBUG" if DEBUG else "ERROR",
|
|
},
|
|
},
|
|
"loggers": {
|
|
"plane.api.request": {
|
|
"level": "DEBUG" if DEBUG else "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
"plane.api": {
|
|
"level": "DEBUG" if DEBUG else "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
"plane.worker": {
|
|
"level": "DEBUG" if DEBUG else "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
"plane.exception": {
|
|
"level": "DEBUG" if DEBUG else "ERROR",
|
|
"handlers": ["console", "file"],
|
|
"propagate": False,
|
|
},
|
|
"plane.external": {
|
|
"level": "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
"plane.mongo": {
|
|
"level": "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
"plane.authentication": {
|
|
"level": "DEBUG" if DEBUG else "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
"plane.migrations": {
|
|
"level": "DEBUG" if DEBUG else "INFO",
|
|
"handlers": ["console"],
|
|
"propagate": False,
|
|
},
|
|
},
|
|
}
|