INFO:     Will watch for changes in these directories: ['/home/user/ss-tools/backend']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [7952] using StatReload
INFO:     Started server process [7968]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
Error loading plugin module backup: No module named 'yaml'
Error loading plugin module migration: No module named 'yaml'
INFO:     127.0.0.1:36934 - "HEAD /docs HTTP/1.1" 200 OK
INFO:     127.0.0.1:55006 - "GET /settings HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:55006 - "GET /settings/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:55010 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:55010 - "GET /plugins/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:55010 - "GET /settings HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:55010 - "GET /settings/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:55010 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:55010 - "GET /plugins/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:55010 - "GET /settings HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:55010 - "GET /settings/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:35508 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:35508 - "GET /plugins/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:49820 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:49820 - "GET /plugins/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:49822 - "GET /settings HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:49822 - "GET /settings/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:49822 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:49822 - "GET /plugins/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:49908 - "GET /settings HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:49908 - "GET /settings/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:49922 - "OPTIONS /settings/environments HTTP/1.1" 200 OK
[2025-12-20 19:14:15,576][INFO][superset_tools_app] [ConfigManager.save_config][Coherence:OK] Configuration saved context={'path': '/home/user/ss-tools/config.json'}
INFO:     127.0.0.1:49922 - "POST /settings/environments HTTP/1.1" 200 OK
INFO:     127.0.0.1:49922 - "GET /settings HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:49922 - "GET /settings/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:49922 - "OPTIONS /settings/environments/7071dab6-881f-49a2-b850-c004b3fc11c0/test HTTP/1.1" 200 OK
INFO:     127.0.0.1:36930 - "POST /settings/environments/7071dab6-881f-49a2-b850-c004b3fc11c0/test HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py", line 403, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/fastapi/applications.py", line 1135, in __call__
    await super().__call__(scope, receive, send)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/applications.py", line 107, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/middleware/cors.py", line 93, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/middleware/cors.py", line 144, in simple_response
    await self.app(scope, receive, send)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/middleware/exceptions.py", line 63, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    raise exc
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
    await app(scope, receive, sender)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/routing.py", line 716, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/routing.py", line 736, in app
    await route.handle(scope, receive, send)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/routing.py", line 290, in handle
    await self.app(scope, receive, send)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/fastapi/routing.py", line 118, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    raise exc
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
    await app(scope, receive, sender)
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/fastapi/routing.py", line 104, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/fastapi/routing.py", line 428, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/ss-tools/backend/venv/lib/python3.12/site-packages/fastapi/routing.py", line 314, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/ss-tools/backend/src/api/routes/settings.py", line 103, in test_connection
    import httpx
ModuleNotFoundError: No module named 'httpx'
INFO:     127.0.0.1:45776 - "POST /settings/environments/7071dab6-881f-49a2-b850-c004b3fc11c0/test HTTP/1.1" 200 OK
INFO:     127.0.0.1:45784 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:45784 - "GET /plugins/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:41628 - "GET /settings HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:41628 - "GET /settings/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:41628 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:41628 - "GET /plugins/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:60184 - "GET /settings HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:60184 - "GET /settings/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:60184 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:60184 - "GET /plugins/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:60184 - "GET /settings HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:60184 - "GET /settings/ HTTP/1.1" 200 OK
WARNING:  StatReload detected changes in 'src/core/plugin_loader.py'. Reloading...
INFO:     Shutting down
INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [7968]
INFO:     Started server process [12178]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
WARNING:  StatReload detected changes in 'src/dependencies.py'. Reloading...
INFO:     Shutting down
INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [12178]
INFO:     Started server process [12451]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
Plugin 'Superset Dashboard Backup' (ID: superset-backup) loaded successfully.
Plugin 'Superset Dashboard Migration' (ID: superset-migration) loaded successfully.
INFO:     127.0.0.1:37334 - "GET / HTTP/1.1" 200 OK
INFO:     127.0.0.1:37334 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO:     127.0.0.1:39932 - "GET / HTTP/1.1" 200 OK
INFO:     127.0.0.1:39932 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO:     127.0.0.1:39932 - "GET / HTTP/1.1" 200 OK
INFO:     127.0.0.1:39932 - "GET / HTTP/1.1" 200 OK
INFO:     127.0.0.1:54900 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:49280 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
INFO:     127.0.0.1:49280 - "GET /plugins/ HTTP/1.1" 200 OK
WARNING:  StatReload detected changes in 'src/api/routes/plugins.py'. Reloading...
INFO:     Shutting down
INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [12451]
INFO:     Started server process [15016]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
Plugin 'Superset Dashboard Backup' (ID: superset-backup) loaded successfully.
Plugin 'Superset Dashboard Migration' (ID: superset-migration) loaded successfully.
INFO:     127.0.0.1:59340 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
DEBUG: list_plugins called. Found 0 plugins.
INFO:     127.0.0.1:59340 - "GET /plugins/ HTTP/1.1" 200 OK
WARNING:  StatReload detected changes in 'src/dependencies.py'. Reloading...
INFO:     Shutting down
INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [15016]
INFO:     Started server process [15257]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
Plugin 'Superset Dashboard Backup' (ID: superset-backup) loaded successfully.
Plugin 'Superset Dashboard Migration' (ID: superset-migration) loaded successfully.
DEBUG: dependencies.py initialized. PluginLoader ID: 139922613090976
DEBUG: dependencies.py initialized. PluginLoader ID: 139922627375088
INFO:     127.0.0.1:57464 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
DEBUG: get_plugin_loader called. Returning PluginLoader ID: 139922627375088
DEBUG: list_plugins called. Found 0 plugins.
INFO:     127.0.0.1:57464 - "GET /plugins/ HTTP/1.1" 200 OK
WARNING:  StatReload detected changes in 'src/core/plugin_loader.py'. Reloading...
INFO:     Shutting down
INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [15257]
INFO:     Started server process [15533]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
DEBUG: Loading plugin backup as src.plugins.backup
Plugin 'Superset Dashboard Backup' (ID: superset-backup) loaded successfully.
DEBUG: Loading plugin migration as src.plugins.migration
Plugin 'Superset Dashboard Migration' (ID: superset-migration) loaded successfully.
DEBUG: dependencies.py initialized. PluginLoader ID: 140371031142384
INFO:     127.0.0.1:46470 - "GET /plugins HTTP/1.1" 307 Temporary Redirect
DEBUG: get_plugin_loader called. Returning PluginLoader ID: 140371031142384
DEBUG: list_plugins called. Found 2 plugins.
DEBUG: Plugin: superset-backup
DEBUG: Plugin: superset-migration
INFO:     127.0.0.1:46470 - "GET /plugins/ HTTP/1.1" 200 OK
WARNING:  StatReload detected changes in 'src/api/routes/settings.py'. Reloading...
INFO:     Shutting down
INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [15533]
INFO:     Started server process [15827]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Shutting down
INFO:     Waiting for application shutdown.
INFO:     Application shutdown complete.
INFO:     Finished server process [15827]
INFO:     Stopping reloader process [7952]
