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]