From 4f4cf35ab6649dd02d0130e1395f89cf10b70dd5 Mon Sep 17 00:00:00 2001 From: usmannasir Date: Wed, 25 Jun 2025 19:54:18 +0500 Subject: [PATCH] bug fix: mysql tables --- api/urls.py | 11 ++++++++ api/views.py | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/api/urls.py b/api/urls.py index f842bd2f6..6b30cf00f 100644 --- a/api/urls.py +++ b/api/urls.py @@ -29,4 +29,15 @@ urlpatterns = [ re_path(r'^cyberPanelVersion$', views.cyberPanelVersion, name='cyberPanelVersion'), re_path(r'^runAWSBackups$', views.runAWSBackups, name='runAWSBackups'), re_path(r'^submitUserCreation$', views.submitUserCreation, name='submitUserCreation'), + + # AI Scanner API endpoints for external workers + re_path(r'^ai-scanner/authenticate$', views.aiScannerAuthenticate, name='aiScannerAuthenticateAPI'), + re_path(r'^ai-scanner/files/list$', views.aiScannerListFiles, name='aiScannerListFilesAPI'), + re_path(r'^ai-scanner/files/content$', views.aiScannerGetFileContent, name='aiScannerGetFileContentAPI'), + re_path(r'^ai-scanner/callback$', views.aiScannerCallback, name='aiScannerCallbackAPI'), + + # Real-time monitoring endpoints + re_path(r'^ai-scanner/status-webhook$', views.aiScannerStatusWebhook, name='aiScannerStatusWebhookAPI'), + re_path(r'^ai-scanner/callback/status-webhook$', views.aiScannerStatusWebhook, name='aiScannerStatusWebhookCallbackAPI'), # Alternative URL for worker compatibility + re_path(r'^ai-scanner/scan/(?P[^/]+)/live-progress$', views.aiScannerLiveProgress, name='aiScannerLiveProgressAPI'), ] diff --git a/api/views.py b/api/views.py index 17b54f9bf..d1aec1344 100644 --- a/api/views.py +++ b/api/views.py @@ -758,3 +758,76 @@ def deleteFirewallRule(request): data_ret = {'submitUserDeletion': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data) + + +# AI Scanner API endpoints for external workers +@csrf_exempt +def aiScannerAuthenticate(request): + """AI Scanner worker authentication endpoint""" + try: + from aiScanner.api import authenticate_worker + return authenticate_worker(request) + except Exception as e: + logging.writeToFile(f'[API] AI Scanner authenticate error: {str(e)}') + data_ret = {'error': 'Authentication service unavailable'} + return HttpResponse(json.dumps(data_ret), status=500) + + +@csrf_exempt +def aiScannerListFiles(request): + """AI Scanner file listing endpoint""" + try: + from aiScanner.api import list_files + return list_files(request) + except Exception as e: + logging.writeToFile(f'[API] AI Scanner list files error: {str(e)}') + data_ret = {'error': 'File listing service unavailable'} + return HttpResponse(json.dumps(data_ret), status=500) + + +@csrf_exempt +def aiScannerGetFileContent(request): + """AI Scanner file content endpoint""" + try: + from aiScanner.api import get_file_content + return get_file_content(request) + except Exception as e: + logging.writeToFile(f'[API] AI Scanner get file content error: {str(e)}') + data_ret = {'error': 'File content service unavailable'} + return HttpResponse(json.dumps(data_ret), status=500) + + +@csrf_exempt +def aiScannerCallback(request): + """AI Scanner scan completion callback endpoint""" + try: + from aiScanner.api import scan_callback + return scan_callback(request) + except Exception as e: + logging.writeToFile(f'[API] AI Scanner callback error: {str(e)}') + data_ret = {'error': 'Callback service unavailable'} + return HttpResponse(json.dumps(data_ret), status=500) + + +# Real-time monitoring API endpoints +@csrf_exempt +def aiScannerStatusWebhook(request): + """AI Scanner real-time status webhook endpoint""" + try: + from aiScanner.status_api import receive_status_update + return receive_status_update(request) + except Exception as e: + logging.writeToFile(f'[API] AI Scanner status webhook error: {str(e)}') + data_ret = {'error': 'Status webhook service unavailable'} + return HttpResponse(json.dumps(data_ret), status=500) + + +def aiScannerLiveProgress(request, scan_id): + """AI Scanner live progress endpoint""" + try: + from aiScanner.status_api import get_live_scan_progress + return get_live_scan_progress(request, scan_id) + except Exception as e: + logging.writeToFile(f'[API] AI Scanner live progress error: {str(e)}') + data_ret = {'error': 'Live progress service unavailable'} + return HttpResponse(json.dumps(data_ret), status=500)