45 lines
2.3 KiB
Python
45 lines
2.3 KiB
Python
import json
|
||
import secrets
|
||
|
||
# Standardfarben des Cores (core/config.py DEFAULT_COLORS) – Basis für neue Tenants
|
||
DEFAULT_COLORS = {
|
||
"accent": "#327F24", "accent_dark": "#235A19", "accent_mid": "#3E9130", "accent_light": "#EAF4E7",
|
||
"accent_xlight": "#F3FAF1", "bg": "#F1F5F0", "surface": "#FFFFFF", "surface2": "#F6FAF5",
|
||
"border": "#DCE8D9", "border2": "#BDD1B8", "text": "#444444", "text_2": "#666666", "text_3": "#9AA89A",
|
||
"red": "#DC2626", "progress_to": "#8bbf43",
|
||
}
|
||
|
||
COLOR_LABELS = {
|
||
"accent": "Akzent", "accent_dark": "Akzent dunkel", "accent_mid": "Akzent mittel", "accent_light": "Akzent hell",
|
||
"accent_xlight": "Akzent extra hell", "bg": "Seitenhintergrund", "surface": "Karten", "surface2": "Karten 2",
|
||
"border": "Rahmen", "border2": "Rahmen 2", "text": "Text", "text_2": "Text sekundär", "text_3": "Text tertiär",
|
||
"red": "Rot (Hinweis)", "progress_to": "Fortschritt (Verlauf-Ende)",
|
||
}
|
||
|
||
# Secret-Schlüssel = Env-Namen im Container (siehe infra/deploy.py)
|
||
REQUIRED_SECRETS = ["OIDC_CLIENT_ID", "OIDC_CLIENT_SECRET", "SESSION_SECRET"] # Rückfall; maßgeblich ist das Schema des Cores (contract.required_secrets)
|
||
OPTIONAL_SECRETS = ["MISTRAL_API_KEY"]
|
||
SECRET_HELP = {
|
||
"OIDC_CLIENT_ID": "Client-ID aus login.onyva.dev (manuell angelegt)",
|
||
"OIDC_CLIENT_SECRET": "Client-Secret aus login.onyva.dev",
|
||
"SESSION_SECRET": "Signiert Session-Cookies – kann hier erzeugt werden",
|
||
"COST_INGEST_KEY": "Optional – Schlüssel für die Kostenerfassung (Cost-API); ohne Key bleibt sie inaktiv",
|
||
"MISTRAL_API_KEY": "Nur nötig bei STT-Provider „mistral“ (bei „cortecs“ wird der geteilte Key genutzt)",
|
||
"ADMIN_BUNDLE_TOKEN": "Token, mit dem der Container sein Bundle bei der Admin-Plattform abholt",
|
||
}
|
||
|
||
|
||
def new_token() -> str:
|
||
return secrets.token_urlsafe(48)
|
||
|
||
|
||
def skeleton_config(tenant_id: str, name: str) -> dict:
|
||
return {
|
||
"id": tenant_id, "name": name, "title": f"{name} – Gesprächsprotokoll",
|
||
"description": f"Gesprächsprotokoll-Tool für {name}", "ai_detect_org": name,
|
||
"org_short": name, "org_profile": "",
|
||
"flags": {}, "stt": {"provider": "cortecs", "model": "voxtral-mini-transcribe-2602"},
|
||
"colors": dict(DEFAULT_COLORS),
|
||
"office": {"name": name, "subtitle": "", "address": "", "tel": "", "email": "", "website": ""},
|
||
}
|