Kairo-Jinkendo/backend/bootstrap.py
Lars 101376540a
All checks were successful
Deploy Development / deploy (push) Successful in 34s
Test Suite / pytest-backend (push) Successful in 9s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 18s
Test Suite / playwright-smoke (push) Successful in 12s
Erstregistrierung als Systemadmin plus Login/Register-Dialog im Frontend.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-04 20:19:02 +02:00

39 lines
1.1 KiB
Python

"""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")