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>
This commit is contained in:
33
app/settings.py
Normal file
33
app/settings.py
Normal file
@@ -0,0 +1,33 @@
|
||||
"""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"
|
||||
Reference in New Issue
Block a user