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
Co-authored-by: Cursor <cursoragent@cursor.com>
39 lines
1.1 KiB
Python
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")
|