@xenon-device-management/xenon 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +446 -0
- package/lib/package.json +207 -0
- package/lib/public/assets/Layouts-7IT8aFLI.js +11 -0
- package/lib/public/assets/Layouts-DPMls9vh.css +1 -0
- package/lib/public/assets/ai-settings-BbnfgdEx.js +11 -0
- package/lib/public/assets/apps-CRMrI4_p.js +16 -0
- package/lib/public/assets/apps-CcM77dgg.css +1 -0
- package/lib/public/assets/badge-B1nKs8zj.css +1 -0
- package/lib/public/assets/badge-CSvl5xIU.js +11 -0
- package/lib/public/assets/button-CJlKn4PZ.css +1 -0
- package/lib/public/assets/button-CvLaGFYj.js +26 -0
- package/lib/public/assets/calendar-6w-D6Oaw.js +6 -0
- package/lib/public/assets/clock-DcdeWBPr.js +6 -0
- package/lib/public/assets/cpu-DiSoXT9n.js +6 -0
- package/lib/public/assets/device-explorer-CajM63OJ.js +193 -0
- package/lib/public/assets/device-explorer-CxdUAoTL.css +1 -0
- package/lib/public/assets/index-ByQwMN5T.js +174 -0
- package/lib/public/assets/index-C1DBaoSh.js +1 -0
- package/lib/public/assets/index-qzCez_kk.css +1 -0
- package/lib/public/assets/lock-B23ibZmo.js +6 -0
- package/lib/public/assets/maintenance-settings-CirzA6yG.js +6 -0
- package/lib/public/assets/mouse-pointer-2-Cz76SHFb.js +6 -0
- package/lib/public/assets/plus-BBwlIevt.js +6 -0
- package/lib/public/assets/session-dashboard-C2k7FFv_.css +1 -0
- package/lib/public/assets/session-dashboard-HPDtwPOZ.js +62 -0
- package/lib/public/assets/settings-DrZsZwdc.js +1 -0
- package/lib/public/assets/trash-2-DQpvzJec.js +6 -0
- package/lib/public/assets/useSocket-Dxsqae2a.js +16 -0
- package/lib/public/assets/webhook-settings-CDPgsgkb.css +1 -0
- package/lib/public/assets/webhook-settings-Cp-B4Nrw.js +1 -0
- package/lib/public/assets/zap-DovP6iow.js +6 -0
- package/lib/public/favicon.ico +0 -0
- package/lib/public/favicon.png +0 -0
- package/lib/public/favicon.svg +9 -0
- package/lib/public/index.html +46 -0
- package/lib/public/logo.svg +17 -0
- package/lib/public/logo192.png +0 -0
- package/lib/public/logo512.png +0 -0
- package/lib/public/manifest.json +25 -0
- package/lib/public/robots.txt +3 -0
- package/lib/schema.json +348 -0
- package/lib/src/InternalHttpClient.js +212 -0
- package/lib/src/PluginContext.js +29 -0
- package/lib/src/XenonCapabilityManager.js +199 -0
- package/lib/src/app/index.js +167 -0
- package/lib/src/app/routers/apps.js +79 -0
- package/lib/src/app/routers/config.js +131 -0
- package/lib/src/app/routers/control.js +835 -0
- package/lib/src/app/routers/dashboard.js +301 -0
- package/lib/src/app/routers/grid.js +352 -0
- package/lib/src/app/routers/reservation.js +190 -0
- package/lib/src/app/routers/webhook.js +83 -0
- package/lib/src/app/swagger-docs.js +203 -0
- package/lib/src/app/swagger.js +366 -0
- package/lib/src/chromeUtils.js +148 -0
- package/lib/src/commands/handle.js +19 -0
- package/lib/src/commands/index.js +8 -0
- package/lib/src/config.js +73 -0
- package/lib/src/dashboard/asset-manager.js +84 -0
- package/lib/src/dashboard/commands.js +284 -0
- package/lib/src/dashboard/event-manager.js +699 -0
- package/lib/src/dashboard/services/app-service.js +134 -0
- package/lib/src/dashboard/services/failure-analysis-service.js +173 -0
- package/lib/src/dashboard/services/session-service.js +113 -0
- package/lib/src/data-service/CircuitBreaker.js +83 -0
- package/lib/src/data-service/config-service.js +155 -0
- package/lib/src/data-service/db.js +122 -0
- package/lib/src/data-service/device-service.js +320 -0
- package/lib/src/data-service/device-store.interface.js +2 -0
- package/lib/src/data-service/device-store.js +345 -0
- package/lib/src/data-service/pending-sessions-service.js +25 -0
- package/lib/src/data-service/pluginArgs.js +25 -0
- package/lib/src/data-service/prisma-service.js +31 -0
- package/lib/src/data-service/prisma-store.js +385 -0
- package/lib/src/data-service/queue-service.js +150 -0
- package/lib/src/data-service/web-config-service.js +130 -0
- package/lib/src/device-managers/AndroidDeviceManager.js +1155 -0
- package/lib/src/device-managers/ChromeDriverManager.js +68 -0
- package/lib/src/device-managers/HealthMonitorService.js +325 -0
- package/lib/src/device-managers/IOSDeviceManager.js +351 -0
- package/lib/src/device-managers/NodeDevices.js +82 -0
- package/lib/src/device-managers/android/AndroidStreamService.js +370 -0
- package/lib/src/device-managers/android/DeviceLockManager.js +45 -0
- package/lib/src/device-managers/cloud/CapabilityManager.js +26 -0
- package/lib/src/device-managers/cloud/Devices.js +86 -0
- package/lib/src/device-managers/iOSTracker.js +44 -0
- package/lib/src/device-managers/index.js +89 -0
- package/lib/src/device-managers/ios/IOSDiscoveryService.js +268 -0
- package/lib/src/device-managers/ios/IOSStreamService.js +893 -0
- package/lib/src/device-managers/ios/WDAClient.js +866 -0
- package/lib/src/device-utils.js +663 -0
- package/lib/src/enums/Capabilities.js +8 -0
- package/lib/src/enums/Cloud.js +11 -0
- package/lib/src/enums/Platform.js +9 -0
- package/lib/src/enums/SessionType.js +9 -0
- package/lib/src/enums/SocketEvents.js +15 -0
- package/lib/src/helpers/UniversalMjpegProxy.js +273 -0
- package/lib/src/helpers/index.js +229 -0
- package/lib/src/index.js +95 -0
- package/lib/src/interceptors/CommandInterceptor.js +524 -0
- package/lib/src/interfaces/ICloudManager.js +2 -0
- package/lib/src/interfaces/IDevice.js +2 -0
- package/lib/src/interfaces/IDeviceFilterOptions.js +2 -0
- package/lib/src/interfaces/IDeviceManager.js +2 -0
- package/lib/src/interfaces/IOptions.js +2 -0
- package/lib/src/interfaces/IPluginArgs.js +55 -0
- package/lib/src/interfaces/ISessionCapability.js +2 -0
- package/lib/src/logger.js +225 -0
- package/lib/src/plugin.js +244 -0
- package/lib/src/prisma.js +12 -0
- package/lib/src/profiling/AndroidAppProfiler.js +213 -0
- package/lib/src/proxy/wd-command-proxy.js +221 -0
- package/lib/src/scripts/generate-database-migration.js +59 -0
- package/lib/src/scripts/initialize-database.js +55 -0
- package/lib/src/scripts/install-go-ios.js +66 -0
- package/lib/src/scripts/prepare-prisma.js +89 -0
- package/lib/src/services/AICommandService.js +143 -0
- package/lib/src/services/AIService.js +466 -0
- package/lib/src/services/CleanupService.js +141 -0
- package/lib/src/services/EventBus.js +74 -0
- package/lib/src/services/InspectorService.js +395 -0
- package/lib/src/services/MetricsService.js +134 -0
- package/lib/src/services/NetworkConditioningService.js +173 -0
- package/lib/src/services/NotificationService.js +163 -0
- package/lib/src/services/RequestLogService.js +252 -0
- package/lib/src/services/ResourceIsolationService.js +122 -0
- package/lib/src/services/SecurityService.js +120 -0
- package/lib/src/services/ServerManager.js +284 -0
- package/lib/src/services/SessionHeartbeatService.js +158 -0
- package/lib/src/services/SessionLifecycleService.js +572 -0
- package/lib/src/services/SocketClient.js +71 -0
- package/lib/src/services/SocketServer.js +87 -0
- package/lib/src/services/TracingService.js +132 -0
- package/lib/src/services/VideoPipelineService.js +220 -0
- package/lib/src/services/healing/FuzzyXmlHealingProvider.js +333 -0
- package/lib/src/services/healing/HealEtalonService.js +98 -0
- package/lib/src/services/healing/HealedLocatorGenerator.js +132 -0
- package/lib/src/services/healing/HealingOrchestrator.js +165 -0
- package/lib/src/services/healing/LlmHealingProvider.js +77 -0
- package/lib/src/services/healing/OcrHealingProvider.js +119 -0
- package/lib/src/services/healing/ResilioTreeHealingProvider.js +100 -0
- package/lib/src/services/healing/VisualAiHealingProvider.js +90 -0
- package/lib/src/services/healing/types.js +12 -0
- package/lib/src/services/omni-vision/OmniVisionService.js +718 -0
- package/lib/src/services/omni-vision/VisionAssertionService.js +68 -0
- package/lib/src/sessions/CloudSession.js +42 -0
- package/lib/src/sessions/LocalSession.js +313 -0
- package/lib/src/sessions/RemoteSession.js +287 -0
- package/lib/src/sessions/SessionManager.js +238 -0
- package/lib/src/sessions/XenonSession.js +44 -0
- package/lib/src/types/CLIArgs.js +2 -0
- package/lib/src/types/CloudArgs.js +2 -0
- package/lib/src/types/CloudSchema.js +131 -0
- package/lib/src/types/DeviceType.js +2 -0
- package/lib/src/types/DeviceUpdate.js +2 -0
- package/lib/src/types/IOSDevice.js +2 -0
- package/lib/src/types/Platform.js +2 -0
- package/lib/src/types/SessionStatus.js +11 -0
- package/lib/src/validators/CapabilityValidator.js +93 -0
- package/lib/test/e2e/android/conf.spec.js +43 -0
- package/lib/test/e2e/android/conf2.spec.js +44 -0
- package/lib/test/e2e/android/conf3.spec.js +44 -0
- package/lib/test/e2e/e2ehelper.js +113 -0
- package/lib/test/e2e/hubnode/forward-request.spec.js +224 -0
- package/lib/test/e2e/hubnode/hubnode.spec.js +214 -0
- package/lib/test/e2e/ios/conf1.spec.js +39 -0
- package/lib/test/e2e/ios/conf2.spec.js +39 -0
- package/lib/test/e2e/plugin-harness.js +236 -0
- package/lib/test/e2e/plugin.spec.js +97 -0
- package/lib/test/e2e/telemetry_verification.spec.js +83 -0
- package/lib/test/e2e/video-recording-test.spec.js +63 -0
- package/lib/test/helpers/test-container.js +112 -0
- package/lib/test/integration/androidDevices.spec.js +137 -0
- package/lib/test/integration/cliArgs.js +73 -0
- package/lib/test/integration/ios/01iOSSimulator.spec.js +291 -0
- package/lib/test/integration/ios/02iOSDevices.spec.js +75 -0
- package/lib/test/integration/testHelpers.js +74 -0
- package/lib/test/unit/AndroidDeviceManager.spec.js +178 -0
- package/lib/test/unit/ChromeDriverManager.spec.js +26 -0
- package/lib/test/unit/CleanupService.spec.js +21 -0
- package/lib/test/unit/DeviceModel.spec.js +157 -0
- package/lib/test/unit/FuzzyXmlHealingProvider.test.js +294 -0
- package/lib/test/unit/GetAdbOriginal.js +42 -0
- package/lib/test/unit/HealingCascade.test.js +128 -0
- package/lib/test/unit/IOSDeviceManager.spec.js +261 -0
- package/lib/test/unit/RemoteIOs.spec.js +78 -0
- package/lib/test/unit/ResilioTreeHealingProvider.test.js +96 -0
- package/lib/test/unit/commands.spec.js +27 -0
- package/lib/test/unit/config.spec.js +27 -0
- package/lib/test/unit/device-service.spec.js +307 -0
- package/lib/test/unit/device-utils.spec.js +313 -0
- package/lib/test/unit/fixtures/device.config.js +4 -0
- package/lib/test/unit/fixtures/devices.js +89 -0
- package/lib/test/unit/helpers.spec.js +62 -0
- package/lib/test/unit/omni-vision.spec.js +100 -0
- package/lib/test/unit/plugin.spec.js +133 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/package.json +207 -0
- package/prisma/data.db +0 -0
- package/prisma/dev.db +0 -0
- package/prisma/dev.db-journal +0 -0
- package/prisma/migrations/20231011074725_initial_tables/migration.sql +47 -0
- package/prisma/migrations/20231226115334_update_session_log/migration.sql +2 -0
- package/prisma/migrations/20251204113710_add_video_recording_enabled/migration.sql +29 -0
- package/prisma/migrations/20251204132449_add_log_table/migration.sql +11 -0
- package/prisma/migrations/20251205050111_add_profiling_support/migration.sql +47 -0
- package/prisma/migrations/20251205050947_add_is_error_field/migration.sql +24 -0
- package/prisma/migrations/20260126201337_add_app_model/migration.sql +18 -0
- package/prisma/migrations/20260130115722_add_performance_trace_and_xenon_sync/migration.sql +2 -0
- package/prisma/migrations/20260130135114_add_device_models/migration.sql +57 -0
- package/prisma/migrations/20260130140655_make_systemport_optional/migration.sql +45 -0
- package/prisma/migrations/20260130140932_make_device_fields_optional/migration.sql +45 -0
- package/prisma/migrations/20260130141040_final_schema_fix/migration.sql +45 -0
- package/prisma/migrations/20260130143234_add_device_health_fields/migration.sql +4 -0
- package/prisma/migrations/20260130144921_add_failure_category/migration.sql +2 -0
- package/prisma/migrations/20260131151456_add_webhook_config/migration.sql +10 -0
- package/prisma/migrations/20260201094507_add_device_tags/migration.sql +11 -0
- package/prisma/migrations/20260201103410_add_managed_process/migration.sql +15 -0
- package/prisma/migrations/20260201140637_add_web_config/migration.sql +22 -0
- package/prisma/migrations/20260201162232_add_session_progress/migration.sql +2 -0
- package/prisma/migrations/20260201174231_add_total_healed_count/migration.sql +2 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +210 -0
- package/schema.json +348 -0
- package/scripts/build-xenon.sh +32 -0
- package/scripts/dev/debug-gemini.ts +44 -0
- package/scripts/generate-types-from-schema.js +86 -0
- package/scripts/install-compatible-driver.js +39 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA foreign_keys=OFF;
|
|
3
|
+
CREATE TABLE "new_Session" (
|
|
4
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
5
|
+
"build_id" TEXT,
|
|
6
|
+
"name" TEXT,
|
|
7
|
+
"status" TEXT NOT NULL DEFAULT 'running',
|
|
8
|
+
"desired_capabilities" TEXT NOT NULL,
|
|
9
|
+
"session_capabilities" TEXT NOT NULL,
|
|
10
|
+
"node_id" TEXT NOT NULL,
|
|
11
|
+
"has_live_video" BOOLEAN NOT NULL,
|
|
12
|
+
"video_recording_enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
13
|
+
"video_recording" TEXT,
|
|
14
|
+
"startTime" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
15
|
+
"endTime" DATETIME,
|
|
16
|
+
"failure_reason" TEXT,
|
|
17
|
+
"device_udid" TEXT NOT NULL,
|
|
18
|
+
"device_platform" TEXT NOT NULL,
|
|
19
|
+
"device_version" TEXT NOT NULL,
|
|
20
|
+
"device_name" TEXT,
|
|
21
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
22
|
+
"updatedAt" DATETIME NOT NULL,
|
|
23
|
+
CONSTRAINT "Session_build_id_fkey" FOREIGN KEY ("build_id") REFERENCES "Build" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
24
|
+
);
|
|
25
|
+
INSERT INTO "new_Session" ("build_id", "createdAt", "desired_capabilities", "device_name", "device_platform", "device_udid", "device_version", "endTime", "failure_reason", "has_live_video", "id", "name", "node_id", "session_capabilities", "startTime", "status", "updatedAt", "video_recording") SELECT "build_id", "createdAt", "desired_capabilities", "device_name", "device_platform", "device_udid", "device_version", "endTime", "failure_reason", "has_live_video", "id", "name", "node_id", "session_capabilities", "startTime", "status", "updatedAt", "video_recording" FROM "Session";
|
|
26
|
+
DROP TABLE "Session";
|
|
27
|
+
ALTER TABLE "new_Session" RENAME TO "Session";
|
|
28
|
+
PRAGMA foreign_key_check;
|
|
29
|
+
PRAGMA foreign_keys=ON;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "Log" (
|
|
3
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"session_id" TEXT NOT NULL,
|
|
5
|
+
"log_type" TEXT NOT NULL,
|
|
6
|
+
"message" TEXT NOT NULL,
|
|
7
|
+
"timestamp" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
8
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
9
|
+
"updatedAt" DATETIME NOT NULL,
|
|
10
|
+
CONSTRAINT "Log_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "Session" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
|
11
|
+
);
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "Profiling" (
|
|
3
|
+
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
4
|
+
"session_id" TEXT NOT NULL,
|
|
5
|
+
"cpu" TEXT,
|
|
6
|
+
"memory" TEXT,
|
|
7
|
+
"total_cpu_used" TEXT,
|
|
8
|
+
"total_memory_used" TEXT,
|
|
9
|
+
"raw_cpu_log" TEXT,
|
|
10
|
+
"raw_memory_log" TEXT,
|
|
11
|
+
"timestamp" DATETIME NOT NULL,
|
|
12
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
13
|
+
"updatedAt" DATETIME NOT NULL,
|
|
14
|
+
CONSTRAINT "Profiling_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "Session" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
-- RedefineTables
|
|
18
|
+
PRAGMA foreign_keys=OFF;
|
|
19
|
+
CREATE TABLE "new_Session" (
|
|
20
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
21
|
+
"build_id" TEXT,
|
|
22
|
+
"name" TEXT,
|
|
23
|
+
"status" TEXT NOT NULL DEFAULT 'running',
|
|
24
|
+
"desired_capabilities" TEXT NOT NULL,
|
|
25
|
+
"session_capabilities" TEXT NOT NULL,
|
|
26
|
+
"node_id" TEXT NOT NULL,
|
|
27
|
+
"has_live_video" BOOLEAN NOT NULL,
|
|
28
|
+
"video_recording_enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
29
|
+
"video_recording" TEXT,
|
|
30
|
+
"startTime" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
31
|
+
"endTime" DATETIME,
|
|
32
|
+
"failure_reason" TEXT,
|
|
33
|
+
"is_profiling_available" BOOLEAN NOT NULL DEFAULT false,
|
|
34
|
+
"device_info" TEXT,
|
|
35
|
+
"device_udid" TEXT NOT NULL,
|
|
36
|
+
"device_platform" TEXT NOT NULL,
|
|
37
|
+
"device_version" TEXT NOT NULL,
|
|
38
|
+
"device_name" TEXT,
|
|
39
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
40
|
+
"updatedAt" DATETIME NOT NULL,
|
|
41
|
+
CONSTRAINT "Session_build_id_fkey" FOREIGN KEY ("build_id") REFERENCES "Build" ("id") ON DELETE SET NULL ON UPDATE CASCADE
|
|
42
|
+
);
|
|
43
|
+
INSERT INTO "new_Session" ("build_id", "createdAt", "desired_capabilities", "device_name", "device_platform", "device_udid", "device_version", "endTime", "failure_reason", "has_live_video", "id", "name", "node_id", "session_capabilities", "startTime", "status", "updatedAt", "video_recording", "video_recording_enabled") SELECT "build_id", "createdAt", "desired_capabilities", "device_name", "device_platform", "device_udid", "device_version", "endTime", "failure_reason", "has_live_video", "id", "name", "node_id", "session_capabilities", "startTime", "status", "updatedAt", "video_recording", "video_recording_enabled" FROM "Session";
|
|
44
|
+
DROP TABLE "Session";
|
|
45
|
+
ALTER TABLE "new_Session" RENAME TO "Session";
|
|
46
|
+
PRAGMA foreign_key_check;
|
|
47
|
+
PRAGMA foreign_keys=ON;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA foreign_keys=OFF;
|
|
3
|
+
CREATE TABLE "new_SessionLog" (
|
|
4
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
5
|
+
"session_id" TEXT NOT NULL,
|
|
6
|
+
"command_name" TEXT,
|
|
7
|
+
"url" TEXT NOT NULL,
|
|
8
|
+
"method" TEXT NOT NULL,
|
|
9
|
+
"title" TEXT NOT NULL,
|
|
10
|
+
"subtitle" TEXT,
|
|
11
|
+
"body" TEXT,
|
|
12
|
+
"response" TEXT NOT NULL,
|
|
13
|
+
"screenshot" TEXT,
|
|
14
|
+
"is_success" BOOLEAN,
|
|
15
|
+
"is_error" BOOLEAN NOT NULL DEFAULT false,
|
|
16
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
17
|
+
"updatedAt" DATETIME NOT NULL,
|
|
18
|
+
CONSTRAINT "SessionLog_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "Session" ("id") ON DELETE RESTRICT ON UPDATE CASCADE
|
|
19
|
+
);
|
|
20
|
+
INSERT INTO "new_SessionLog" ("body", "command_name", "createdAt", "id", "is_success", "method", "response", "screenshot", "session_id", "subtitle", "title", "updatedAt", "url") SELECT "body", "command_name", "createdAt", "id", "is_success", "method", "response", "screenshot", "session_id", "subtitle", "title", "updatedAt", "url" FROM "SessionLog";
|
|
21
|
+
DROP TABLE "SessionLog";
|
|
22
|
+
ALTER TABLE "new_SessionLog" RENAME TO "SessionLog";
|
|
23
|
+
PRAGMA foreign_key_check;
|
|
24
|
+
PRAGMA foreign_keys=ON;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "App" (
|
|
3
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"name" TEXT NOT NULL,
|
|
5
|
+
"filename" TEXT NOT NULL,
|
|
6
|
+
"filepath" TEXT NOT NULL,
|
|
7
|
+
"mimetype" TEXT NOT NULL,
|
|
8
|
+
"size" INTEGER NOT NULL,
|
|
9
|
+
"packageName" TEXT,
|
|
10
|
+
"version" TEXT,
|
|
11
|
+
"platform" TEXT,
|
|
12
|
+
"md5" TEXT,
|
|
13
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
14
|
+
"updatedAt" DATETIME NOT NULL
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
-- CreateIndex
|
|
18
|
+
CREATE UNIQUE INDEX "App_md5_key" ON "App"("md5");
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "Device" (
|
|
3
|
+
"udid" TEXT NOT NULL,
|
|
4
|
+
"host" TEXT NOT NULL,
|
|
5
|
+
"systemPort" INTEGER NOT NULL,
|
|
6
|
+
"proxyPort" INTEGER,
|
|
7
|
+
"proxyHost" TEXT,
|
|
8
|
+
"wdaLocalPort" INTEGER,
|
|
9
|
+
"name" TEXT NOT NULL,
|
|
10
|
+
"state" TEXT NOT NULL,
|
|
11
|
+
"sdk" TEXT NOT NULL,
|
|
12
|
+
"platform" TEXT NOT NULL,
|
|
13
|
+
"deviceType" TEXT NOT NULL,
|
|
14
|
+
"busy" BOOLEAN NOT NULL,
|
|
15
|
+
"userBlocked" BOOLEAN NOT NULL,
|
|
16
|
+
"realDevice" BOOLEAN NOT NULL,
|
|
17
|
+
"session_id" TEXT,
|
|
18
|
+
"offline" BOOLEAN DEFAULT false,
|
|
19
|
+
"mjpegServerPort" INTEGER,
|
|
20
|
+
"lastCmdExecutedAt" REAL,
|
|
21
|
+
"totalUtilizationTimeMilliSec" REAL NOT NULL DEFAULT 0,
|
|
22
|
+
"sessionStartTime" REAL NOT NULL DEFAULT 0,
|
|
23
|
+
"newCommandTimeout" INTEGER,
|
|
24
|
+
"cloud" TEXT,
|
|
25
|
+
"derivedDataPath" TEXT,
|
|
26
|
+
"chromeDriverPath" TEXT,
|
|
27
|
+
"capability" TEXT,
|
|
28
|
+
"adbRemoteHost" TEXT,
|
|
29
|
+
"adbPort" INTEGER,
|
|
30
|
+
"nodeId" TEXT,
|
|
31
|
+
"screenWidth" TEXT,
|
|
32
|
+
"screenHeight" TEXT,
|
|
33
|
+
"dashboard_link" TEXT,
|
|
34
|
+
"total_session_count" INTEGER DEFAULT 0,
|
|
35
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
36
|
+
"updatedAt" DATETIME NOT NULL,
|
|
37
|
+
|
|
38
|
+
PRIMARY KEY ("udid", "host")
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
-- CreateTable
|
|
42
|
+
CREATE TABLE "PendingSession" (
|
|
43
|
+
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
44
|
+
"capability_id" TEXT NOT NULL,
|
|
45
|
+
"capability" TEXT NOT NULL,
|
|
46
|
+
"createdAt" REAL NOT NULL
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
-- CreateTable
|
|
50
|
+
CREATE TABLE "CLIArgs" (
|
|
51
|
+
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
52
|
+
"args" TEXT NOT NULL,
|
|
53
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
-- CreateIndex
|
|
57
|
+
CREATE UNIQUE INDEX "PendingSession_capability_id_key" ON "PendingSession"("capability_id");
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA foreign_keys=OFF;
|
|
3
|
+
CREATE TABLE "new_Device" (
|
|
4
|
+
"udid" TEXT NOT NULL,
|
|
5
|
+
"host" TEXT NOT NULL,
|
|
6
|
+
"systemPort" INTEGER,
|
|
7
|
+
"proxyPort" INTEGER,
|
|
8
|
+
"proxyHost" TEXT,
|
|
9
|
+
"wdaLocalPort" INTEGER,
|
|
10
|
+
"name" TEXT NOT NULL,
|
|
11
|
+
"state" TEXT NOT NULL,
|
|
12
|
+
"sdk" TEXT NOT NULL,
|
|
13
|
+
"platform" TEXT NOT NULL,
|
|
14
|
+
"deviceType" TEXT NOT NULL,
|
|
15
|
+
"busy" BOOLEAN NOT NULL,
|
|
16
|
+
"userBlocked" BOOLEAN NOT NULL,
|
|
17
|
+
"realDevice" BOOLEAN NOT NULL,
|
|
18
|
+
"session_id" TEXT,
|
|
19
|
+
"offline" BOOLEAN DEFAULT false,
|
|
20
|
+
"mjpegServerPort" INTEGER,
|
|
21
|
+
"lastCmdExecutedAt" REAL,
|
|
22
|
+
"totalUtilizationTimeMilliSec" REAL NOT NULL DEFAULT 0,
|
|
23
|
+
"sessionStartTime" REAL NOT NULL DEFAULT 0,
|
|
24
|
+
"newCommandTimeout" INTEGER,
|
|
25
|
+
"cloud" TEXT,
|
|
26
|
+
"derivedDataPath" TEXT,
|
|
27
|
+
"chromeDriverPath" TEXT,
|
|
28
|
+
"capability" TEXT,
|
|
29
|
+
"adbRemoteHost" TEXT,
|
|
30
|
+
"adbPort" INTEGER,
|
|
31
|
+
"nodeId" TEXT,
|
|
32
|
+
"screenWidth" TEXT,
|
|
33
|
+
"screenHeight" TEXT,
|
|
34
|
+
"dashboard_link" TEXT,
|
|
35
|
+
"total_session_count" INTEGER DEFAULT 0,
|
|
36
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
37
|
+
"updatedAt" DATETIME NOT NULL,
|
|
38
|
+
|
|
39
|
+
PRIMARY KEY ("udid", "host")
|
|
40
|
+
);
|
|
41
|
+
INSERT INTO "new_Device" ("adbPort", "adbRemoteHost", "busy", "capability", "chromeDriverPath", "cloud", "createdAt", "dashboard_link", "derivedDataPath", "deviceType", "host", "lastCmdExecutedAt", "mjpegServerPort", "name", "newCommandTimeout", "nodeId", "offline", "platform", "proxyHost", "proxyPort", "realDevice", "screenHeight", "screenWidth", "sdk", "sessionStartTime", "session_id", "state", "systemPort", "totalUtilizationTimeMilliSec", "total_session_count", "udid", "updatedAt", "userBlocked", "wdaLocalPort") SELECT "adbPort", "adbRemoteHost", "busy", "capability", "chromeDriverPath", "cloud", "createdAt", "dashboard_link", "derivedDataPath", "deviceType", "host", "lastCmdExecutedAt", "mjpegServerPort", "name", "newCommandTimeout", "nodeId", "offline", "platform", "proxyHost", "proxyPort", "realDevice", "screenHeight", "screenWidth", "sdk", "sessionStartTime", "session_id", "state", "systemPort", "totalUtilizationTimeMilliSec", "total_session_count", "udid", "updatedAt", "userBlocked", "wdaLocalPort" FROM "Device";
|
|
42
|
+
DROP TABLE "Device";
|
|
43
|
+
ALTER TABLE "new_Device" RENAME TO "Device";
|
|
44
|
+
PRAGMA foreign_key_check;
|
|
45
|
+
PRAGMA foreign_keys=ON;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA foreign_keys=OFF;
|
|
3
|
+
CREATE TABLE "new_Device" (
|
|
4
|
+
"udid" TEXT NOT NULL,
|
|
5
|
+
"host" TEXT NOT NULL,
|
|
6
|
+
"systemPort" INTEGER,
|
|
7
|
+
"proxyPort" INTEGER,
|
|
8
|
+
"proxyHost" TEXT,
|
|
9
|
+
"wdaLocalPort" INTEGER,
|
|
10
|
+
"name" TEXT,
|
|
11
|
+
"state" TEXT,
|
|
12
|
+
"sdk" TEXT,
|
|
13
|
+
"platform" TEXT,
|
|
14
|
+
"deviceType" TEXT,
|
|
15
|
+
"busy" BOOLEAN DEFAULT false,
|
|
16
|
+
"userBlocked" BOOLEAN DEFAULT false,
|
|
17
|
+
"realDevice" BOOLEAN DEFAULT true,
|
|
18
|
+
"session_id" TEXT,
|
|
19
|
+
"offline" BOOLEAN DEFAULT false,
|
|
20
|
+
"mjpegServerPort" INTEGER,
|
|
21
|
+
"lastCmdExecutedAt" REAL,
|
|
22
|
+
"totalUtilizationTimeMilliSec" REAL NOT NULL DEFAULT 0,
|
|
23
|
+
"sessionStartTime" REAL NOT NULL DEFAULT 0,
|
|
24
|
+
"newCommandTimeout" INTEGER,
|
|
25
|
+
"cloud" TEXT,
|
|
26
|
+
"derivedDataPath" TEXT,
|
|
27
|
+
"chromeDriverPath" TEXT,
|
|
28
|
+
"capability" TEXT,
|
|
29
|
+
"adbRemoteHost" TEXT,
|
|
30
|
+
"adbPort" INTEGER,
|
|
31
|
+
"nodeId" TEXT,
|
|
32
|
+
"screenWidth" TEXT,
|
|
33
|
+
"screenHeight" TEXT,
|
|
34
|
+
"dashboard_link" TEXT,
|
|
35
|
+
"total_session_count" INTEGER DEFAULT 0,
|
|
36
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
37
|
+
"updatedAt" DATETIME NOT NULL,
|
|
38
|
+
|
|
39
|
+
PRIMARY KEY ("udid", "host")
|
|
40
|
+
);
|
|
41
|
+
INSERT INTO "new_Device" ("adbPort", "adbRemoteHost", "busy", "capability", "chromeDriverPath", "cloud", "createdAt", "dashboard_link", "derivedDataPath", "deviceType", "host", "lastCmdExecutedAt", "mjpegServerPort", "name", "newCommandTimeout", "nodeId", "offline", "platform", "proxyHost", "proxyPort", "realDevice", "screenHeight", "screenWidth", "sdk", "sessionStartTime", "session_id", "state", "systemPort", "totalUtilizationTimeMilliSec", "total_session_count", "udid", "updatedAt", "userBlocked", "wdaLocalPort") SELECT "adbPort", "adbRemoteHost", "busy", "capability", "chromeDriverPath", "cloud", "createdAt", "dashboard_link", "derivedDataPath", "deviceType", "host", "lastCmdExecutedAt", "mjpegServerPort", "name", "newCommandTimeout", "nodeId", "offline", "platform", "proxyHost", "proxyPort", "realDevice", "screenHeight", "screenWidth", "sdk", "sessionStartTime", "session_id", "state", "systemPort", "totalUtilizationTimeMilliSec", "total_session_count", "udid", "updatedAt", "userBlocked", "wdaLocalPort" FROM "Device";
|
|
42
|
+
DROP TABLE "Device";
|
|
43
|
+
ALTER TABLE "new_Device" RENAME TO "Device";
|
|
44
|
+
PRAGMA foreign_key_check;
|
|
45
|
+
PRAGMA foreign_keys=ON;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
-- RedefineTables
|
|
2
|
+
PRAGMA foreign_keys=OFF;
|
|
3
|
+
CREATE TABLE "new_Device" (
|
|
4
|
+
"udid" TEXT NOT NULL,
|
|
5
|
+
"host" TEXT NOT NULL,
|
|
6
|
+
"systemPort" INTEGER,
|
|
7
|
+
"proxyPort" INTEGER,
|
|
8
|
+
"proxyHost" TEXT,
|
|
9
|
+
"wdaLocalPort" INTEGER,
|
|
10
|
+
"name" TEXT DEFAULT 'unknown',
|
|
11
|
+
"state" TEXT DEFAULT 'available',
|
|
12
|
+
"sdk" TEXT DEFAULT 'unknown',
|
|
13
|
+
"platform" TEXT DEFAULT 'unknown',
|
|
14
|
+
"deviceType" TEXT DEFAULT 'real',
|
|
15
|
+
"busy" BOOLEAN DEFAULT false,
|
|
16
|
+
"userBlocked" BOOLEAN DEFAULT false,
|
|
17
|
+
"realDevice" BOOLEAN DEFAULT true,
|
|
18
|
+
"session_id" TEXT,
|
|
19
|
+
"offline" BOOLEAN DEFAULT false,
|
|
20
|
+
"mjpegServerPort" INTEGER,
|
|
21
|
+
"lastCmdExecutedAt" REAL,
|
|
22
|
+
"totalUtilizationTimeMilliSec" REAL NOT NULL DEFAULT 0,
|
|
23
|
+
"sessionStartTime" REAL NOT NULL DEFAULT 0,
|
|
24
|
+
"newCommandTimeout" INTEGER,
|
|
25
|
+
"cloud" TEXT,
|
|
26
|
+
"derivedDataPath" TEXT,
|
|
27
|
+
"chromeDriverPath" TEXT,
|
|
28
|
+
"capability" TEXT,
|
|
29
|
+
"adbRemoteHost" TEXT,
|
|
30
|
+
"adbPort" INTEGER,
|
|
31
|
+
"nodeId" TEXT,
|
|
32
|
+
"screenWidth" TEXT,
|
|
33
|
+
"screenHeight" TEXT,
|
|
34
|
+
"dashboard_link" TEXT,
|
|
35
|
+
"total_session_count" INTEGER DEFAULT 0,
|
|
36
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
37
|
+
"updatedAt" DATETIME NOT NULL,
|
|
38
|
+
|
|
39
|
+
PRIMARY KEY ("udid", "host")
|
|
40
|
+
);
|
|
41
|
+
INSERT INTO "new_Device" ("adbPort", "adbRemoteHost", "busy", "capability", "chromeDriverPath", "cloud", "createdAt", "dashboard_link", "derivedDataPath", "deviceType", "host", "lastCmdExecutedAt", "mjpegServerPort", "name", "newCommandTimeout", "nodeId", "offline", "platform", "proxyHost", "proxyPort", "realDevice", "screenHeight", "screenWidth", "sdk", "sessionStartTime", "session_id", "state", "systemPort", "totalUtilizationTimeMilliSec", "total_session_count", "udid", "updatedAt", "userBlocked", "wdaLocalPort") SELECT "adbPort", "adbRemoteHost", "busy", "capability", "chromeDriverPath", "cloud", "createdAt", "dashboard_link", "derivedDataPath", "deviceType", "host", "lastCmdExecutedAt", "mjpegServerPort", "name", "newCommandTimeout", "nodeId", "offline", "platform", "proxyHost", "proxyPort", "realDevice", "screenHeight", "screenWidth", "sdk", "sessionStartTime", "session_id", "state", "systemPort", "totalUtilizationTimeMilliSec", "total_session_count", "udid", "updatedAt", "userBlocked", "wdaLocalPort" FROM "Device";
|
|
42
|
+
DROP TABLE "Device";
|
|
43
|
+
ALTER TABLE "new_Device" RENAME TO "Device";
|
|
44
|
+
PRAGMA foreign_key_check;
|
|
45
|
+
PRAGMA foreign_keys=ON;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "WebhookConfig" (
|
|
3
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"url" TEXT NOT NULL,
|
|
5
|
+
"type" TEXT NOT NULL DEFAULT 'slack',
|
|
6
|
+
"events" TEXT NOT NULL,
|
|
7
|
+
"active" BOOLEAN NOT NULL DEFAULT true,
|
|
8
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
9
|
+
"updatedAt" DATETIME NOT NULL
|
|
10
|
+
);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
-- AlterTable
|
|
2
|
+
ALTER TABLE "Device" ADD COLUMN "batteryLevel" INTEGER;
|
|
3
|
+
ALTER TABLE "Device" ADD COLUMN "reservationReason" TEXT;
|
|
4
|
+
ALTER TABLE "Device" ADD COLUMN "reservedBy" TEXT;
|
|
5
|
+
ALTER TABLE "Device" ADD COLUMN "reservedUntil" REAL;
|
|
6
|
+
ALTER TABLE "Device" ADD COLUMN "storageFree" TEXT;
|
|
7
|
+
ALTER TABLE "Device" ADD COLUMN "tags" TEXT;
|
|
8
|
+
ALTER TABLE "Device" ADD COLUMN "thermalStatus" TEXT;
|
|
9
|
+
|
|
10
|
+
-- AlterTable
|
|
11
|
+
ALTER TABLE "WebhookConfig" ADD COLUMN "payloadTemplate" TEXT;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
-- CreateTable
|
|
2
|
+
CREATE TABLE "ManagedProcess" (
|
|
3
|
+
"id" TEXT NOT NULL PRIMARY KEY,
|
|
4
|
+
"pid" INTEGER NOT NULL,
|
|
5
|
+
"name" TEXT NOT NULL,
|
|
6
|
+
"udid" TEXT NOT NULL,
|
|
7
|
+
"port" INTEGER,
|
|
8
|
+
"type" TEXT NOT NULL,
|
|
9
|
+
"metadata" TEXT,
|
|
10
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
11
|
+
"updatedAt" DATETIME NOT NULL
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
-- CreateIndex
|
|
15
|
+
CREATE UNIQUE INDEX "ManagedProcess_pid_key" ON "ManagedProcess"("pid");
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Warnings:
|
|
3
|
+
|
|
4
|
+
- You are about to drop the `ManagedProcess` table. If the table is not empty, all the data it contains will be lost.
|
|
5
|
+
|
|
6
|
+
*/
|
|
7
|
+
-- DropTable
|
|
8
|
+
PRAGMA foreign_keys=off;
|
|
9
|
+
DROP TABLE "ManagedProcess";
|
|
10
|
+
PRAGMA foreign_keys=on;
|
|
11
|
+
|
|
12
|
+
-- CreateTable
|
|
13
|
+
CREATE TABLE "WebConfig" (
|
|
14
|
+
"id" TEXT NOT NULL PRIMARY KEY DEFAULT 'global',
|
|
15
|
+
"name" TEXT NOT NULL,
|
|
16
|
+
"value" TEXT NOT NULL,
|
|
17
|
+
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
18
|
+
"updatedAt" DATETIME NOT NULL
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
-- CreateIndex
|
|
22
|
+
CREATE UNIQUE INDEX "WebConfig_name_key" ON "WebConfig"("name");
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
generator client {
|
|
2
|
+
provider = "prisma-client-js"
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
datasource db {
|
|
6
|
+
provider = "sqlite"
|
|
7
|
+
url = env("DATABASE_URL")
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
model Build {
|
|
11
|
+
id String @id @default(uuid())
|
|
12
|
+
name String?
|
|
13
|
+
createdAt DateTime @default(now())
|
|
14
|
+
updatedAt DateTime @updatedAt
|
|
15
|
+
sessions Session[]
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
model Session {
|
|
19
|
+
id String @id
|
|
20
|
+
build_id String?
|
|
21
|
+
name String?
|
|
22
|
+
status String @default("running")
|
|
23
|
+
desired_capabilities String
|
|
24
|
+
session_capabilities String
|
|
25
|
+
node_id String
|
|
26
|
+
has_live_video Boolean
|
|
27
|
+
video_recording_enabled Boolean @default(true)
|
|
28
|
+
video_recording String?
|
|
29
|
+
startTime DateTime @default(now())
|
|
30
|
+
endTime DateTime?
|
|
31
|
+
failure_reason String?
|
|
32
|
+
is_profiling_available Boolean @default(false)
|
|
33
|
+
device_info String?
|
|
34
|
+
device_udid String
|
|
35
|
+
device_platform String
|
|
36
|
+
device_version String
|
|
37
|
+
device_name String?
|
|
38
|
+
createdAt DateTime @default(now())
|
|
39
|
+
updatedAt DateTime @updatedAt
|
|
40
|
+
performance_trace String? @map("performance_trace")
|
|
41
|
+
failure_category String?
|
|
42
|
+
ai_analysis String?
|
|
43
|
+
tags String?
|
|
44
|
+
trace_id String?
|
|
45
|
+
Log Log[]
|
|
46
|
+
Profiling Profiling[]
|
|
47
|
+
build Build? @relation(fields: [build_id], references: [id])
|
|
48
|
+
SessionLog SessionLog[]
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
model SessionLog {
|
|
52
|
+
id String @id @default(uuid())
|
|
53
|
+
session_id String
|
|
54
|
+
command_name String?
|
|
55
|
+
url String
|
|
56
|
+
method String
|
|
57
|
+
title String
|
|
58
|
+
subtitle String?
|
|
59
|
+
body String?
|
|
60
|
+
response String
|
|
61
|
+
screenshot String?
|
|
62
|
+
is_success Boolean?
|
|
63
|
+
is_error Boolean @default(false)
|
|
64
|
+
is_healed Boolean @default(false)
|
|
65
|
+
original_selector String?
|
|
66
|
+
healed_selector String?
|
|
67
|
+
healing_confidence Float?
|
|
68
|
+
createdAt DateTime @default(now())
|
|
69
|
+
updatedAt DateTime @updatedAt
|
|
70
|
+
duration Int?
|
|
71
|
+
span_id String?
|
|
72
|
+
trace_id String?
|
|
73
|
+
session Session @relation(fields: [session_id], references: [id])
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
model Log {
|
|
77
|
+
id String @id @default(uuid())
|
|
78
|
+
session_id String
|
|
79
|
+
log_type String
|
|
80
|
+
message String
|
|
81
|
+
timestamp DateTime @default(now())
|
|
82
|
+
createdAt DateTime @default(now())
|
|
83
|
+
updatedAt DateTime @updatedAt
|
|
84
|
+
session Session @relation(fields: [session_id], references: [id])
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
model Profiling {
|
|
88
|
+
id Int @id @default(autoincrement())
|
|
89
|
+
session_id String
|
|
90
|
+
cpu String?
|
|
91
|
+
memory String?
|
|
92
|
+
total_cpu_used String?
|
|
93
|
+
total_memory_used String?
|
|
94
|
+
raw_cpu_log String?
|
|
95
|
+
raw_memory_log String?
|
|
96
|
+
timestamp DateTime
|
|
97
|
+
createdAt DateTime @default(now())
|
|
98
|
+
updatedAt DateTime @updatedAt
|
|
99
|
+
session Session @relation(fields: [session_id], references: [id])
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
model App {
|
|
103
|
+
id String @id @default(uuid())
|
|
104
|
+
name String
|
|
105
|
+
filename String
|
|
106
|
+
filepath String
|
|
107
|
+
mimetype String
|
|
108
|
+
size Int
|
|
109
|
+
packageName String?
|
|
110
|
+
version String?
|
|
111
|
+
platform String?
|
|
112
|
+
md5 String? @unique
|
|
113
|
+
createdAt DateTime @default(now())
|
|
114
|
+
updatedAt DateTime @updatedAt
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
model Device {
|
|
118
|
+
udid String
|
|
119
|
+
host String
|
|
120
|
+
systemPort Int?
|
|
121
|
+
proxyPort Int?
|
|
122
|
+
proxyHost String?
|
|
123
|
+
wdaLocalPort Int?
|
|
124
|
+
name String? @default("unknown")
|
|
125
|
+
state String? @default("available")
|
|
126
|
+
sdk String? @default("unknown")
|
|
127
|
+
platform String? @default("unknown")
|
|
128
|
+
deviceType String? @default("real")
|
|
129
|
+
busy Boolean? @default(false)
|
|
130
|
+
userBlocked Boolean? @default(false)
|
|
131
|
+
realDevice Boolean? @default(true)
|
|
132
|
+
session_id String?
|
|
133
|
+
offline Boolean? @default(false)
|
|
134
|
+
mjpegServerPort Int?
|
|
135
|
+
lastCmdExecutedAt Float?
|
|
136
|
+
totalUtilizationTimeMilliSec Float @default(0)
|
|
137
|
+
sessionStartTime Float @default(0)
|
|
138
|
+
newCommandTimeout Int?
|
|
139
|
+
cloud String?
|
|
140
|
+
derivedDataPath String?
|
|
141
|
+
chromeDriverPath String?
|
|
142
|
+
capability String?
|
|
143
|
+
adbRemoteHost String?
|
|
144
|
+
adbPort Int?
|
|
145
|
+
nodeId String?
|
|
146
|
+
screenWidth String?
|
|
147
|
+
screenHeight String?
|
|
148
|
+
dashboard_link String?
|
|
149
|
+
total_session_count Int? @default(0)
|
|
150
|
+
createdAt DateTime @default(now())
|
|
151
|
+
updatedAt DateTime @updatedAt
|
|
152
|
+
healthCheckError String?
|
|
153
|
+
healthStatus String? @default("Healthy")
|
|
154
|
+
lastHealthCheckAt Float?
|
|
155
|
+
batteryLevel Int?
|
|
156
|
+
reservationReason String?
|
|
157
|
+
reservedBy String?
|
|
158
|
+
reservedUntil Float?
|
|
159
|
+
storageFree String?
|
|
160
|
+
tags String?
|
|
161
|
+
thermalStatus String?
|
|
162
|
+
sessionProgress String? @default("")
|
|
163
|
+
totalHealedCount Int? @default(0)
|
|
164
|
+
ip String? @default("")
|
|
165
|
+
|
|
166
|
+
@@id([udid, host])
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
model PendingSession {
|
|
170
|
+
id Int @id @default(autoincrement())
|
|
171
|
+
capability_id String @unique
|
|
172
|
+
capability String
|
|
173
|
+
createdAt Float
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
model CLIArgs {
|
|
177
|
+
id Int @id @default(autoincrement())
|
|
178
|
+
args String
|
|
179
|
+
createdAt DateTime @default(now())
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
model WebhookConfig {
|
|
183
|
+
id String @id @default(uuid())
|
|
184
|
+
url String
|
|
185
|
+
type String @default("slack")
|
|
186
|
+
events String
|
|
187
|
+
active Boolean @default(true)
|
|
188
|
+
createdAt DateTime @default(now())
|
|
189
|
+
updatedAt DateTime @updatedAt
|
|
190
|
+
payloadTemplate String?
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
model WebConfig {
|
|
194
|
+
id String @id @default("global")
|
|
195
|
+
name String @unique
|
|
196
|
+
value String
|
|
197
|
+
createdAt DateTime @default(now())
|
|
198
|
+
updatedAt DateTime @updatedAt
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
model LocatorEtalon {
|
|
202
|
+
id String @id @default(uuid())
|
|
203
|
+
selector String @unique
|
|
204
|
+
strategy String
|
|
205
|
+
attributes String
|
|
206
|
+
nodeName String
|
|
207
|
+
lastSeen DateTime @default(now())
|
|
208
|
+
createdAt DateTime @default(now())
|
|
209
|
+
updatedAt DateTime @updatedAt
|
|
210
|
+
}
|