# [DEF:backend.src.scripts.init_auth_db:Module] # # @SEMANTICS: setup, database, auth, migration # @PURPOSE: Initializes the auth database and creates the necessary tables. # @LAYER: Scripts # @RELATION: CALLS -> backend.src.core.database.init_db # # @INVARIANT: Safe to run multiple times (idempotent). # [SECTION: IMPORTS] import sys import os from pathlib import Path # Add src to path sys.path.append(str(Path(__file__).parent.parent.parent)) from src.core.database import init_db, auth_engine from src.core.logger import logger, belief_scope from src.scripts.seed_permissions import seed_permissions # [/SECTION] # [DEF:run_init:Function] # @PURPOSE: Main entry point for the initialization script. # @POST: auth.db is initialized with the correct schema and seeded permissions. def run_init(): with belief_scope("init_auth_db"): logger.info("Initializing authentication database...") try: init_db() logger.info("Authentication database initialized successfully.") # Seed permissions seed_permissions() except Exception as e: logger.error(f"Failed to initialize authentication database: {e}") sys.exit(1) # [/DEF:run_init:Function] if __name__ == "__main__": run_init() # [/DEF:backend.src.scripts.init_auth_db:Module]