unrealon 2.0.7__tar.gz → 2.0.8__tar.gz

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.
Files changed (138) hide show
  1. {unrealon-2.0.7/unrealon.egg-info → unrealon-2.0.8}/PKG-INFO +1 -1
  2. {unrealon-2.0.7 → unrealon-2.0.8}/pyproject.toml +1 -1
  3. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/enums/__init__.py +10 -0
  4. unrealon-2.0.8/unrealon-core/src/unrealon_core/enums/events.py +98 -0
  5. unrealon-2.0.8/unrealon-core/src/unrealon_core/enums/jobs.py +32 -0
  6. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/enums/types.py +1 -0
  7. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/__init__.py +9 -0
  8. unrealon-2.0.8/unrealon-core/src/unrealon_core/models/authentication.py +24 -0
  9. {unrealon-2.0.7 → unrealon-2.0.8/unrealon.egg-info}/PKG-INFO +1 -1
  10. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon.egg-info/SOURCES.txt +3 -0
  11. {unrealon-2.0.7 → unrealon-2.0.8}/LICENSE +0 -0
  12. {unrealon-2.0.7 → unrealon-2.0.8}/MANIFEST.in +0 -0
  13. {unrealon-2.0.7 → unrealon-2.0.8}/README.md +0 -0
  14. {unrealon-2.0.7 → unrealon-2.0.8}/setup.cfg +0 -0
  15. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/README.md +0 -0
  16. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/__init__.py +0 -0
  17. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/cli/__init__.py +0 -0
  18. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/cli/browser_cli.py +0 -0
  19. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/cli/cookies_cli.py +0 -0
  20. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/cli/interactive_mode.py +0 -0
  21. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/cli/main.py +0 -0
  22. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/core/__init__.py +0 -0
  23. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/core/browser_manager.py +0 -0
  24. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/dto/__init__.py +0 -0
  25. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/dto/bot_detection.py +0 -0
  26. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/dto/models/config.py +0 -0
  27. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/dto/models/core.py +0 -0
  28. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/dto/models/dataclasses.py +0 -0
  29. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/dto/models/detection.py +0 -0
  30. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/dto/models/enums.py +0 -0
  31. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/dto/models/statistics.py +0 -0
  32. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/managers/__init__.py +0 -0
  33. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/managers/captcha.py +0 -0
  34. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/managers/cookies.py +0 -0
  35. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/managers/logger_bridge.py +0 -0
  36. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/managers/page_wait_manager.py +0 -0
  37. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/managers/profile.py +0 -0
  38. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/stealth/__init__.py +0 -0
  39. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/stealth/bypass_techniques.pyc +0 -0
  40. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/stealth/manager.pyc +0 -0
  41. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/stealth/nodriver_stealth.pyc +0 -0
  42. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/stealth/playwright_stealth.pyc +0 -0
  43. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/stealth/scanner_tester.pyc +0 -0
  44. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-browser/src/unrealon_browser/stealth/undetected_chrome.pyc +0 -0
  45. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/__init__.py +0 -0
  46. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/config/__init__.py +0 -0
  47. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/config/environment.py +0 -0
  48. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/config/urls.py +0 -0
  49. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/enums/status.py +0 -0
  50. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/error_handling/__init__.py +0 -0
  51. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/error_handling/circuit_breaker.py +0 -0
  52. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/error_handling/error_context.py +0 -0
  53. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/error_handling/recovery.py +0 -0
  54. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/error_handling/retry.py +0 -0
  55. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/exceptions/__init__.py +0 -0
  56. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/exceptions/base.py +0 -0
  57. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/exceptions/communication.py +0 -0
  58. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/exceptions/driver.py +0 -0
  59. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/exceptions/proxy.py +0 -0
  60. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/exceptions/task.py +0 -0
  61. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/exceptions/validation.py +0 -0
  62. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/arq_context.py +0 -0
  63. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/arq_responses.py +0 -0
  64. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/base.py +0 -0
  65. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/bridge_stats.py +0 -0
  66. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/communication.py +0 -0
  67. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/connection_stats.py +0 -0
  68. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/driver.py +0 -0
  69. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/driver_details.py +0 -0
  70. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/logging.py +0 -0
  71. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/task.py +0 -0
  72. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/typed_responses.py +0 -0
  73. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/__init__.py +0 -0
  74. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/base.py +0 -0
  75. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/broadcast.py +0 -0
  76. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/config.py +0 -0
  77. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/driver.py +0 -0
  78. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/errors.py +0 -0
  79. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/heartbeat.py +0 -0
  80. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/logging.py +0 -0
  81. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/proxy.py +0 -0
  82. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/tasks.py +0 -0
  83. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket/utils.py +0 -0
  84. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/models/websocket_session.py +0 -0
  85. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/monitoring/__init__.py +0 -0
  86. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/monitoring/alerts.py +0 -0
  87. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/monitoring/dashboard.py +0 -0
  88. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/monitoring/health_check.py +0 -0
  89. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/monitoring/metrics.py +0 -0
  90. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/utils/__init__.py +0 -0
  91. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/utils/time.py +0 -0
  92. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-core/src/unrealon_core/version.py +0 -0
  93. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/__init__.py +0 -0
  94. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/core_module/__init__.py +0 -0
  95. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/core_module/base.py +0 -0
  96. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/core_module/config.py +0 -0
  97. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/core_module/event_manager.py +0 -0
  98. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/core_module/protocols.py +0 -0
  99. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/core_module/registry.py +0 -0
  100. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/decorators/__init__.py +0 -0
  101. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/decorators/retry.py +0 -0
  102. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/decorators/schedule.py +0 -0
  103. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/decorators/task.py +0 -0
  104. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/decorators/timing.py +0 -0
  105. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/__init__.py +0 -0
  106. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/communication/__init__.py +0 -0
  107. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/communication/session.py +0 -0
  108. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/communication/websocket_client.py +0 -0
  109. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/core/__init__.py +0 -0
  110. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/core/config.py +0 -0
  111. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/core/driver.py +0 -0
  112. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/factory/__init__.py +0 -0
  113. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/factory/manager_factory.py +0 -0
  114. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/lifecycle/__init__.py +0 -0
  115. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/lifecycle/daemon.py +0 -0
  116. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/lifecycle/initialization.py +0 -0
  117. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/lifecycle/shutdown.py +0 -0
  118. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/monitoring/__init__.py +0 -0
  119. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/monitoring/health.py +0 -0
  120. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/utilities/__init__.py +0 -0
  121. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/utilities/logging.py +0 -0
  122. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/driver/utilities/serialization.py +0 -0
  123. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/managers/__init__.py +0 -0
  124. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/managers/base.py +0 -0
  125. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/managers/browser.py +0 -0
  126. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/managers/cache.py +0 -0
  127. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/managers/http.py +0 -0
  128. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/managers/logger.py +0 -0
  129. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/managers/proxy.py +0 -0
  130. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/managers/registry.py +0 -0
  131. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/managers/threading.py +0 -0
  132. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/managers/update.py +0 -0
  133. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/utils/__init__.py +0 -0
  134. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon-driver/src/unrealon_driver/utils/time.py +0 -0
  135. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon.egg-info/dependency_links.txt +0 -0
  136. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon.egg-info/entry_points.txt +0 -0
  137. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon.egg-info/requires.txt +0 -0
  138. {unrealon-2.0.7 → unrealon-2.0.8}/unrealon.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unrealon
3
- Version: 2.0.7
3
+ Version: 2.0.8
4
4
  Summary: Enterprise-grade web scraping platform with AI-powered automation and real-time orchestration capabilities
5
5
  Author-email: UnrealOn Team <team@unrealon.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "unrealon"
7
- version = "2.0.7"
7
+ version = "2.0.8"
8
8
  description = "Enterprise-grade web scraping platform with AI-powered automation and real-time orchestration capabilities"
9
9
  authors = [
10
10
  {name = "UnrealOn Team", email = "team@unrealon.com"}
@@ -9,6 +9,8 @@ Phase 1: Foundation enums with strict validation
9
9
 
10
10
  from .status import DriverStatus, TaskStatus, ProxyStatus, LogLevel
11
11
  from .types import MessageType, ProxyType, TaskPriority
12
+ from .events import EventType, SystemEventType, RedisEventType
13
+ from .jobs import ARQJobName
12
14
 
13
15
  __all__ = [
14
16
  # Status enums
@@ -21,4 +23,12 @@ __all__ = [
21
23
  "MessageType",
22
24
  "ProxyType",
23
25
  "TaskPriority",
26
+
27
+ # Event enums
28
+ "EventType",
29
+ "SystemEventType",
30
+ "RedisEventType",
31
+
32
+ # Job enums
33
+ "ARQJobName",
24
34
  ]
@@ -0,0 +1,98 @@
1
+ """
2
+ Event type enums for UnrealOn system.
3
+
4
+ Centralized event type definitions used across all services.
5
+ """
6
+ from enum import Enum
7
+
8
+
9
+ class EventType(str, Enum):
10
+ """
11
+ Event types used in Redis PubSub and system events.
12
+
13
+ These events are used for communication between services:
14
+ - RPC server publishes events
15
+ - Django consumes events via Redis PubSub
16
+ - System events are stored in database
17
+ """
18
+
19
+ # Driver lifecycle events
20
+ DRIVER_REGISTER = "driver_register"
21
+ DRIVER_DISCONNECT = "driver_disconnect"
22
+
23
+ # Parser events (Django-specific naming)
24
+ PARSER_REGISTERED = "parser_registered"
25
+ PARSER_HEARTBEAT = "parser_heartbeat"
26
+ PARSER_DISCONNECTED = "parser_disconnected"
27
+ PARSER_ERROR = "parser_error"
28
+ PARSER_LOG = "parser_log"
29
+
30
+ # Session events
31
+ SESSION_STARTED = "session_started"
32
+ SESSION_COMPLETED = "session_completed"
33
+ SESSION_FAILED = "session_failed"
34
+
35
+ # Command events
36
+ COMMAND_ISSUED = "command_issued"
37
+ COMMAND_COMPLETED = "command_completed"
38
+ COMMAND_FAILED = "command_failed"
39
+
40
+ # System events
41
+ SYSTEM_STARTUP = "system_startup"
42
+ SYSTEM_SHUTDOWN = "system_shutdown"
43
+ SYSTEM_ERROR = "system_error"
44
+
45
+
46
+ class SystemEventType(str, Enum):
47
+ """
48
+ System event types for Django database storage.
49
+
50
+ These match the choices in Django's SystemEvent model.
51
+ """
52
+
53
+ # Parser events
54
+ PARSER_REGISTERED = "parser_registered"
55
+ PARSER_HEARTBEAT = "parser_heartbeat"
56
+ PARSER_DISCONNECTED = "parser_disconnected"
57
+ PARSER_ERROR = "parser_error"
58
+
59
+ # Session events
60
+ SESSION_STARTED = "session_started"
61
+ SESSION_COMPLETED = "session_completed"
62
+ SESSION_FAILED = "session_failed"
63
+
64
+ # Command events
65
+ COMMAND_ISSUED = "command_issued"
66
+ COMMAND_COMPLETED = "command_completed"
67
+ COMMAND_FAILED = "command_failed"
68
+
69
+ # System events
70
+ SYSTEM_STARTUP = "system_startup"
71
+ SYSTEM_SHUTDOWN = "system_shutdown"
72
+ SYSTEM_ERROR = "system_error"
73
+
74
+
75
+ class RedisEventType(str, Enum):
76
+ """
77
+ Redis PubSub event types.
78
+
79
+ These are the event types published to Redis channels
80
+ for inter-service communication.
81
+ """
82
+
83
+ # Driver lifecycle (from RPC to Django)
84
+ DRIVER_REGISTER = "driver_register"
85
+ DRIVER_DISCONNECT = "driver_disconnect"
86
+
87
+ # Parser events (internal Django events)
88
+ PARSER_HEARTBEAT = "parser_heartbeat"
89
+ PARSER_LOG = "parser_log"
90
+
91
+ # Session events
92
+ SESSION_STARTED = "session_started"
93
+ SESSION_COMPLETED = "session_completed"
94
+ SESSION_FAILED = "session_failed"
95
+
96
+ # Command events
97
+ COMMAND_COMPLETED = "command_completed"
98
+ COMMAND_FAILED = "command_failed"
@@ -0,0 +1,32 @@
1
+ """
2
+ ARQ job name enums for UnrealOn system.
3
+
4
+ Centralized job name definitions used across all services.
5
+ """
6
+ from enum import Enum
7
+
8
+
9
+ class ARQJobName(str, Enum):
10
+ """
11
+ ARQ job names used in the system.
12
+
13
+ These are the job function names that can be enqueued
14
+ and processed by ARQ workers.
15
+ """
16
+
17
+ # Driver management jobs
18
+ REGISTER_DRIVER = "register_driver"
19
+ DRIVER_DISCONNECT = "driver_disconnect"
20
+ GET_DRIVER_STATUS = "get_driver_status"
21
+ LIST_AVAILABLE_DRIVERS = "list_available_drivers"
22
+
23
+ # Task management jobs
24
+ ASSIGN_TASK_TO_DRIVER = "assign_task_to_driver"
25
+
26
+ # System jobs
27
+ PING = "ping"
28
+ PROCESS_DRIVER_HEARTBEAT = "process_driver_heartbeat"
29
+
30
+ # Lifecycle jobs
31
+ STARTUP = "startup"
32
+ SHUTDOWN = "shutdown"
@@ -58,6 +58,7 @@ class MessageType(str, Enum):
58
58
  PONG = "pong" # Pong response
59
59
  ERROR = "error" # Error message
60
60
  ACK = "ack" # Acknowledgment
61
+ MONITOR_REGISTER = "monitor_register" # Monitor client registration
61
62
 
62
63
  def is_driver_lifecycle(self) -> bool:
63
64
  """Check if message is related to driver lifecycle."""
@@ -46,6 +46,11 @@ from .logging import (
46
46
  LogMetrics
47
47
  )
48
48
 
49
+ from .authentication import (
50
+ APIKeyAuthRequest,
51
+ APIKeyAuthResponse
52
+ )
53
+
49
54
  __all__ = [
50
55
  # Base models
51
56
  "UnrealOnBaseModel",
@@ -76,4 +81,8 @@ __all__ = [
76
81
  "LogEntry",
77
82
  "LogQuery",
78
83
  "LogMetrics",
84
+
85
+ # Authentication models
86
+ "APIKeyAuthRequest",
87
+ "APIKeyAuthResponse",
79
88
  ]
@@ -0,0 +1,24 @@
1
+ """
2
+ Authentication models for UnrealOn system.
3
+
4
+ Provides Pydantic models for API key authentication between services.
5
+ """
6
+ from typing import Optional, List
7
+ from pydantic import Field
8
+
9
+ from .base import UnrealOnBaseModel
10
+
11
+
12
+ class APIKeyAuthRequest(UnrealOnBaseModel):
13
+ """API key authentication request."""
14
+ api_key: str = Field(min_length=1, description="API key for authentication")
15
+ parser_id: str = Field(min_length=1, description="Parser requesting authentication")
16
+
17
+
18
+ class APIKeyAuthResponse(UnrealOnBaseModel):
19
+ """API key authentication response."""
20
+ success: bool = Field(description="Whether authentication was successful")
21
+ user_id: Optional[int] = Field(default=None, description="Authenticated user ID")
22
+ username: Optional[str] = Field(default=None, description="Authenticated username")
23
+ permissions: List[str] = Field(default_factory=list, description="User permissions")
24
+ error: Optional[str] = Field(default=None, description="Error message if failed")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unrealon
3
- Version: 2.0.7
3
+ Version: 2.0.8
4
4
  Summary: Enterprise-grade web scraping platform with AI-powered automation and real-time orchestration capabilities
5
5
  Author-email: UnrealOn Team <team@unrealon.com>
6
6
  License: MIT
@@ -38,6 +38,8 @@ unrealon-core/src/unrealon_core/config/__init__.py
38
38
  unrealon-core/src/unrealon_core/config/environment.py
39
39
  unrealon-core/src/unrealon_core/config/urls.py
40
40
  unrealon-core/src/unrealon_core/enums/__init__.py
41
+ unrealon-core/src/unrealon_core/enums/events.py
42
+ unrealon-core/src/unrealon_core/enums/jobs.py
41
43
  unrealon-core/src/unrealon_core/enums/status.py
42
44
  unrealon-core/src/unrealon_core/enums/types.py
43
45
  unrealon-core/src/unrealon_core/error_handling/__init__.py
@@ -55,6 +57,7 @@ unrealon-core/src/unrealon_core/exceptions/validation.py
55
57
  unrealon-core/src/unrealon_core/models/__init__.py
56
58
  unrealon-core/src/unrealon_core/models/arq_context.py
57
59
  unrealon-core/src/unrealon_core/models/arq_responses.py
60
+ unrealon-core/src/unrealon_core/models/authentication.py
58
61
  unrealon-core/src/unrealon_core/models/base.py
59
62
  unrealon-core/src/unrealon_core/models/bridge_stats.py
60
63
  unrealon-core/src/unrealon_core/models/communication.py
File without changes
File without changes
File without changes
File without changes