Third Eye कैसे काम करता है?

यह पेज बताता है कि अलग-अलग Windows computers का चालू/बंद समय सुरक्षित तरीके से central MySQL database तक कैसे पहुँचता है।

Windows Computer
Uptime Agent
Local SQLite Queue
PHP API
Central MySQL
1

हर computer को register किया जाता है

हर computer को एक अलग System Code, जैसे SYS-001, दिया जाता है। Registration के बाद उस system के लिए एक अलग API token बनता है। MySQL में token का plain text नहीं, केवल उसका सुरक्षित hash रखा जाता है।

2

Windows Agent अपने-आप शुरू होता है

Windows start होते ही Third Eye Agent background service के रूप में चलता है। यह user login का इंतज़ार नहीं करता और कोई visible window नहीं खोलता।

3

नई uptime session शुरू होती है

Agent एक नया session_uuid बनाता है और AGENT_STARTED तथा SYSTEM_START events तैयार करता है। इस समय computer name और Windows version जैसी basic जानकारी भी भेजने के लिए रखी जाती है।

4

पहले local SQLite में data save होता है

हर event पहले C:\ProgramData\UptimeAgent\data\uptime_agent.db में save होता है। इसलिए internet या server बंद होने पर भी startup, heartbeat और shutdown का data खोता नहीं है। SQLite केवल temporary offline queue है; official database नहीं है।

5

Heartbeat से computer के चलने की जानकारी मिलती है

Default रूप से हर 60 seconds में HEARTBEAT event बनता है। इससे central server को पता चलता है कि computer अभी चल रहा था और पिछली valid activity किस समय हुई।

6

Internet/API की availability जाँची जाती है

Agent केवल Wi-Fi या LAN connected देखकर internet available नहीं मानता। वह PHP API तक event sync करके वास्तविक connectivity check करता है। Connection बंद हो तो NETWORK_DISCONNECTED, और वापस आने पर NETWORK_CONNECTED event queue में जुड़ता है।

7

Pending events batch में PHP API को भेजे जाते हैं

जब API reachable हो, agent pending SQLite events को अधिकतम 50 events के batch में sync_events.php को भेजता है। API token request को authenticate करता है और PHP API event को validate करके MySQL में save करती है। सफल sync के बाद ही local event का status synced होता है।

8

Duplicate और छेड़छाड़ से सुरक्षा

हर event का अलग event_uuid होता है, इसलिए retry होने पर MySQL में duplicate row नहीं बनती। हर event में sequence number, previous hash और HMAC-SHA256 hash होता है। Local SQLite में पुराना event edit करने पर hash chain नहीं मिलेगी और agent आगे चलने से रुक जाएगा।

9

Normal shutdown दर्ज होता है

Windows service सामान्य रूप से stop होने पर SYSTEM_SHUTDOWN event local queue में save करती है। API तक पहुँच होने पर उसी समय sync होता है; नहीं होने पर अगली startup के बाद sync होगा। Central session का end time और total running seconds update हो जाते हैं।

10

Power failure या crash का पता चलता है

अगर computer अचानक बंद हो जाए तो shutdown event नहीं बनता। अगली बार SYSTEM_START आने पर server पुरानी running session को unexpected_shutdown के रूप में close करता है। End time के लिए last heartbeat को प्राथमिकता मिलती है।

महत्वपूर्ण: Central MySQL database ही final और authoritative record है। Local SQLite सिर्फ internet न होने की स्थिति में सुरक्षित temporary queue का काम करती है।

नया सिस्टम कैसे जोड़ें?

हर नए computer के लिए अलग System ID और API Token बनाना जरूरी है। उदाहरण के लिए पहला computer SYS-0001, दूसरा SYS-0002 और तीसरा SYS-0003 होगा।

  1. अगला System ID चुनें: पहले से उपयोग हुए IDs देखने के बाद अगला unique ID लें, जैसे SYS-0002
  2. System register करें: Server के api/register_agent.php endpoint से उस System ID के लिए registration करें। सफल registration पर unique API Token मिलता है; इसे सुरक्षित रखें क्योंकि token plain text में दोबारा नहीं दिखता।
  3. Installer चलाएँ: नए computer में UptimeAgentSetup-1.1.0.exe को Run as administrator चलाएँ।
  4. Wizard में details भरें: Server URL में http://localhost/allerp/widget/track/api (local server के लिए) या live server का URL भरें। फिर System ID और उसी system का API Token भरें।
  5. Verification करें: Installer service start कर देगा। कुछ समय बाद systems table में last_seen update होगा, systemdata में first-time hardware details आएँगी और uptime_sessions में नई session दिखेगी।