Based on the git diff provided, here's a concise and descriptive commit message:

feat: add security event taxonomy and optimize park queryset

- Add comprehensive security_event_types ChoiceGroup with categories for authentication, MFA, password, account, session, and API key events
- Include severity levels, icons, and CSS classes for each event type
- Fix park queryset optimization by using select_related for OneToOne location relationship
- Remove location property fields (latitude/longitude) from values() call as they are not actual DB columns
- Add proper location fields (city, state, country) to values() for map display

This change enhances security event tracking capabilities and resolves a queryset optimization issue where property decorators were incorrectly used in values() queries.
This commit is contained in:
pacnpal
2026-01-10 16:41:31 -05:00
parent 96df23242e
commit 2b66814d82
26 changed files with 2055 additions and 112 deletions

View File

@@ -114,6 +114,26 @@ ACCOUNT_LOGIN_BY_CODE_MAX_ATTEMPTS = config("ACCOUNT_LOGIN_BY_CODE_MAX_ATTEMPTS"
ACCOUNT_LOGIN_BY_CODE_TIMEOUT = config("ACCOUNT_LOGIN_BY_CODE_TIMEOUT", default=300, cast=int)
# =============================================================================
# Headless API Configuration
# =============================================================================
# https://docs.allauth.org/en/latest/headless/configuration.html
# Frontend URL for email links (password reset, email verification, etc.)
HEADLESS_FRONTEND_URLS = {
"account_confirm_email": config("FRONTEND_URL", default="http://localhost:5173") + "/auth/callback?key={key}",
"account_reset_password": config("FRONTEND_URL", default="http://localhost:5173") + "/auth/reset-password?key={key}",
"account_signup": config("FRONTEND_URL", default="http://localhost:5173") + "/auth?tab=signup",
"socialaccount_login_error": config("FRONTEND_URL", default="http://localhost:5173") + "/auth?error=social",
}
# Set to True since our frontend is a separate SPA
HEADLESS_ONLY = config("HEADLESS_ONLY", default=False, cast=bool)
# Allow both "app" and "browser" clients for flexibility
# "browser" uses cookies, "app" uses Authorization header
HEADLESS_CLIENTS = ("app", "browser")
# =============================================================================
# Celery Configuration
# =============================================================================