Files
Onyscribe-Admin/app/settings.py
RubenRWU 7d8c226da2 Onyscribe Admin: Initialer Stand
Admin-Plattform für die Tenants von Onyscribe: Editor mit Live-Vorschau (echter Core in Sandbox), Versionen, KI-Agent (Cortecs),
OIDC-Abgleich über die Login-Developer-API, Deploy-Engine (Mittwald, gesperrt ohne DEPLOY_LIVE, Freigabe pro Tenant),
Core-Vertrag (Schema/Manifest), Core-Releases mit Kompatibilitätsprüfung, Canary-Rollout und Rollback, Zustandsabgleich.
Runbook: docs/RUNBOOK_PARALLELTEST.md

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 15:30:26 +02:00

34 lines
1.3 KiB
Python

"""Zentrale Konfiguration (Env-getrieben)."""
from __future__ import annotations
import base64
import hashlib
import os
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent
if not os.getenv("ONYSCRIBE_SKIP_DOTENV"): # lokale Entwicklung: .env im Projektordner einlesen (Docker/Coolify setzen die Env direkt)
try:
from dotenv import load_dotenv
load_dotenv(ROOT / ".env", override=False) # echte Umgebungsvariablen haben Vorrang
except ImportError:
pass
DATA = ROOT / ".data"
DATA.mkdir(exist_ok=True)
DATABASE_URL = os.getenv("DATABASE_URL", f"sqlite:///{DATA / 'onyscribe-admin.db'}")
# Entwicklungs-Fallback: abgeleiteter Key. In Produktion SECRET_KEY setzen!
_raw = os.getenv("SECRET_KEY", "").strip()
SECRET_KEY = _raw or base64.urlsafe_b64encode(hashlib.sha256(b"onyscribe-admin-dev").digest()).decode()
AUTH_ENABLED = os.getenv("AUTH_ENABLED", "false").lower() == "true"
# Vendored Snapshot des Plattform-Cores (Preview führt den echten Core aus)
PLATFORM_DIR = Path(os.getenv("PLATFORM_DIR", ROOT / "vendor" / "platform"))
PREVIEW_CACHE = ROOT / ".preview-cache"
PREVIEW_CACHE.mkdir(exist_ok=True)
# Pfad zur bestehenden transkript-platform (nur für den Importer)
LEGACY_PLATFORM = Path(os.getenv("LEGACY_PLATFORM", ROOT.parent / "transkript-platform"))
APP_NAME = "Onyscribe Admin"