HiveOps Browser: Agent Download & Properties File Features
Summary
Add two new menu items to the File menu:
- Download Agent - Downloads hiveops-agent binary from API endpoint
- Create Agent Properties - Opens popup to create hiveops.properties and ext/ej.properties files
Files to Modify
| File |
Changes |
src/main/main.js |
Add menu items, window handlers, IPC handlers |
src/main/preload.js |
Add IPC bridge methods |
src/main/api-client.js |
Add downloadAgent() method |
New Files to Create
| File |
Purpose |
src/renderer/agent-properties.html |
Properties form dialog UI (tabbed) |
src/renderer/agent-properties.js |
Properties form logic |
src/renderer/download-progress.html |
Download progress dialog |
Feature 1: Download Agent
- Location: File menu, after "License Management"
- Label: "Download Agent"
Behavior
- Auto-detect platform (Windows/Linux/macOS)
- Show native save dialog with default filename
- Download from API:
GET /api/v1/agent/download?platform={platform}
- Show progress dialog during download
- Set executable permissions on Linux/macOS
- Show success/error message
Feature 2: Create Agent Properties
- Location: File menu, after "Download Agent"
- Label: "Create Agent Properties"
UI Design: Tabbed Dialog
Two tabs: Main Config and Journal Extension
Tab 1: Main Config (hiveops.properties)
Section: HiveOps Management Server
| Field |
Default |
Description |
mgmt.endpoint |
https://mgmt.directlx.dev/ |
HiveOps management server URL |
mgmt.api.key |
(empty) |
API key for management server |
Section: SmartJournal Server (Journal Upload)
| Field |
Default |
Description |
server.endpoint |
(required) |
SmartJournal server URL |
server.host |
(empty) |
Override HTTP host header |
server.to.connect |
10000 |
Connection timeout (ms) |
server.to.read |
10000 |
Read timeout (ms) |
heartbeat.interval |
5 |
Heartbeat interval (minutes) |
Section: ATM Identification
| Field |
Default |
Description |
atm.id |
(required) |
ATM identifier (4-40 chars) |
atm.transit |
(empty) |
ATM transit code |
country |
US |
ISO 3166-1 country code (2 chars) |
Section: Windows Registry (collapsible, optional)
| Field |
Default |
Description |
atm.idRegistryKey |
(empty) |
Registry key for ATM ID |
atm.idRegistryValue |
(empty) |
Registry value for ATM ID |
atm.transitRegistryKey |
(empty) |
Registry key for transit |
atm.transitRegistryValue |
(empty) |
Registry value for transit |
Section: Incident Integration
| Field |
Default |
Description |
incident.endpoint |
http://localhost:8080 |
Incident server URL |
incident.events.enabled |
true |
Enable event reporting |
incident.events.recheck.delay.msec |
5000 |
Recheck delay (ms) |
incident.events.batch.size |
100 |
Event batch size |
incident.to.connect |
10000 |
Incident connect timeout |
incident.to.read |
30000 |
Incident read timeout |
Section: Task Settings
| Field |
Default |
Description |
task.network.cap |
0.5 |
Network utilization cap (0-1) |
task.network.retries |
5 |
Upload retry attempts |
Section: Directories
| Field |
Default |
Description |
ext.directory |
ext |
Extensions directory |
script.directory |
(empty) |
Scripts directory |
modules.disabled |
(empty) |
Comma-separated disabled modules |
Tab 2: Journal Extension (ext/ej.properties)
Section: Journal Location
| Field |
Default |
Description |
journal.dir |
/opt/hiveops/journal |
Journal directory path |
type |
MAINJOURNAL |
Journal type identifier |
Section: Journal Format
| Field |
Default |
Description |
journal.jrntype |
(dropdown) |
Journal parser type |
filename.format |
{YYYY}{MM}{DD}.jrn |
Filename pattern |
file.format |
UTF8 |
File encoding (UTF8/UTF16LE) |
journal.jrntype options:
- PT
- SCOTIABANK_CB
- SCOTIABANK
- HYOSUNG_HIP
- HYOSUNG_FIS
Section: Upload Settings
| Field |
Default |
Description |
chunk.max |
100000 |
Max chunk size (bytes) |
chunk.delay.msec |
0 |
Delay between chunks (ms) |
update.delay.msec |
300000 |
Verification delay (ms) |
Save Behavior
- User clicks "Save Properties"
- Show folder picker dialog
- Create selected folder structure:
chosen-folder/
├── hiveops.properties
└── ext/
└── ej.properties
- Show success message with path
Implementation Order
- api-client.js - Add
downloadAgent() method
- preload.js - Add IPC bridge methods
- main.js - Add menu items, windows, IPC handlers
- download-progress.html - Progress bar UI
- agent-properties.html - Tabbed form with all fields
- agent-properties.js - Form handling, validation, save logic
Verification
- Launch app:
npm start
- File menu should show "Download Agent" and "Create Agent Properties"
- Test Download Agent:
- Verify save dialog appears
- Verify progress bar during download
- Verify executable permissions set (Linux/macOS)
- Test Create Agent Properties:
- Verify tabbed dialog opens
- Fill required fields (atm.id, server.endpoint, mgmt.endpoint)
- Click Save, choose folder
- Verify
hiveops.properties and ext/ej.properties created with correct content