Kairo-Jinkendo/backend/bootstrap.py

39 lines
1.1 KiB
Python
Raw Permalink Normal View History

"""Bootstrap first admin user from environment (optional alternative to UI registration)."""
from __future__ import annotations
import os
from services.registration import provision_system_admin, user_count
def _env(name: str) -> str:
return os.getenv(name, "").strip()
def bootstrap_admin_if_needed() -> None:
if _env("SKIP_BOOTSTRAP").lower() in ("1", "true", "yes"):
return
email = _env("KAIRO_BOOTSTRAP_ADMIN_EMAIL")
password = _env("KAIRO_BOOTSTRAP_ADMIN_PASSWORD")
if not email or not password:
return
if user_count() > 0:
return
tenant_slug = _env("KAIRO_BOOTSTRAP_TENANT_SLUG") or "default"
tenant_name = _env("KAIRO_BOOTSTRAP_TENANT_NAME") or "Default Tenant"
display_name = _env("KAIRO_BOOTSTRAP_ADMIN_NAME") or "Kairo Admin"
provision_system_admin(
email=email,
password=password,
display_name=display_name,
tenant_slug=tenant_slug,
tenant_name=tenant_name,
source="env_bootstrap",
)
print(f"[bootstrap] Systemadmin und Tenant '{tenant_slug}' angelegt")