feat: release regional radar and mailbox integrations
deploy / deploy (push) Canceled after 0s

This commit is contained in:
Jens
2026-07-22 05:12:07 +02:00
parent 598d3ec18a
commit 551d0f46c2
131 changed files with 6209 additions and 336 deletions
+33 -12
View File
@@ -1,5 +1,7 @@
from __future__ import annotations
import base64
import hashlib
import os
from pathlib import Path
from urllib.parse import urlparse
@@ -17,6 +19,16 @@ def env_list(name: str, default: str = "") -> list[str]:
return [item.strip() for item in os.getenv(name, default).split(",") if item.strip()]
def env_int_range(name: str, default: int, *, minimum: int, maximum: int) -> int:
try:
value = int(os.getenv(name, str(default)))
except ValueError as exc:
raise ImproperlyConfigured(f"{name} moet een geheel getal zijn.") from exc
if not minimum <= value <= maximum:
raise ImproperlyConfigured(f"{name} moet tussen {minimum} en {maximum} liggen.")
return value
def _validate_production_security(
*,
debug: bool,
@@ -218,10 +230,28 @@ CELERY_WORKER_PREFETCH_MULTIPLIER = 1
CELERY_TASK_TIME_LIMIT = 300
CELERY_TASK_SOFT_TIME_LIMIT = 270
CELERY_TIMEZONE = TIME_ZONE
IMAP_MAX_MESSAGES_PER_POLL = env_int_range(
"IMAP_MAX_MESSAGES_PER_POLL", 200, minimum=1, maximum=1000
)
IMAP_MAX_MESSAGE_BYTES = env_int_range(
"IMAP_MAX_MESSAGE_BYTES", 1000000, minimum=1024, maximum=10000000
)
IMAP_CONNECT_TIMEOUT_SECONDS = env_int_range(
"IMAP_CONNECT_TIMEOUT_SECONDS", 15, minimum=3, maximum=60
)
MAILBOX_CREDENTIAL_KEYS = env_list("MAILBOX_CREDENTIAL_KEYS")
if DEBUG and not MAILBOX_CREDENTIAL_KEYS:
MAILBOX_CREDENTIAL_KEYS = [
base64.urlsafe_b64encode(
hashlib.sha256(f"vacatureradar-mailbox:{SECRET_KEY}".encode()).digest()
).decode("ascii")
]
CELERY_BEAT_SCHEDULE = {
"poll-imap": {
"task": "apps.sources.tasks.poll_imap_inbox",
"schedule": 600.0,
"schedule-mailbox-polls": {
"task": "apps.sources.tasks.schedule_mailbox_polls",
"schedule": 300.0,
},
"schedule-due-sources": {
"task": "apps.sources.tasks.schedule_due_sources",
@@ -276,15 +306,6 @@ DATA_UPLOAD_MAX_MEMORY_SIZE = int(os.getenv("DATA_UPLOAD_MAX_MEMORY_SIZE", str(8
FILE_UPLOAD_MAX_MEMORY_SIZE = 0
DATA_UPLOAD_MAX_NUMBER_FILES = 0
IMAP_ENABLED = env_bool("IMAP_ENABLED", False)
IMAP_HOST = os.getenv("IMAP_HOST", "")
IMAP_PORT = int(os.getenv("IMAP_PORT", "993"))
IMAP_USER = os.getenv("IMAP_USER", "")
IMAP_PASSWORD = os.getenv("IMAP_PASSWORD", "")
IMAP_MAILBOX = os.getenv("IMAP_MAILBOX", "INBOX")
IMAP_USE_SSL = env_bool("IMAP_USE_SSL", True)
IMAP_MARK_SEEN = env_bool("IMAP_MARK_SEEN", False)
OLLAMA_ENABLED = env_bool("OLLAMA_ENABLED", False)
OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", "http://localhost:11434")
OLLAMA_MODEL = os.getenv("OLLAMA_MODEL", "")