DERIOX GUARD M9.8

Offline Queue Local File Test

Test local pentru fișiere JSONL de coadă offline pe mini PC. Se raportează doar metadata către Guard, fără replay.

Queue score100
Reports1
Gateways1
Queue files1
Replay0
Cameras0
M9.8 creează fișiere locale de queue și raportează metadata. Nu face replay, nu pornește service/cron, nu activează producție, camere, stream sau media.
DashboardGatewaysReportsCommandsQueue ScriptAuditAPI StatusDownload ScriptM9.7 Status

M9.8 Offline Queue Local File Test

M9.8 tests the local offline queue file mechanism on the mini PC. The script creates local JSONL queue files and reports only metadata to Guard. It does not replay queued events, does not start service/cron, does not enable production, camera discovery, streams, media or billing.

last_report=2026-05-29 23:43:37 · local_only=1 · replay=0 · service=0 · camera=0

Offline queue local file test script

#!/bin/bash
set -e

echo "=================================================="
echo "DERIOX GUARD - OFFLINE QUEUE LOCAL FILE TEST M9.8"
echo "=================================================="
echo "This creates local JSONL queue test files and reports metadata to Guard."
echo "It does NOT replay queued events, does NOT start service/cron,"
echo "does NOT scan cameras and does NOT send camera passwords, streams or media."
echo ""

CONF="/etc/deriox-guard/agent.env"
GUARD_URL="https://guard.deriox.ro"
AGENT_NAME="mini-pc-pilot-01"
GATEWAY_UUID=""
QUEUE_DIR="/var/lib/deriox-guard/queue/outbox"

if [ -f "$CONF" ]; then
  # shellcheck disable=SC1090
  source "$CONF" || true
  if [ -n "${DERIOX_GUARD_URL:-}" ]; then GUARD_URL="$DERIOX_GUARD_URL"; fi
  if [ -n "${DERIOX_AGENT_NAME:-}" ]; then AGENT_NAME="$DERIOX_AGENT_NAME"; fi
  if [ -n "${DERIOX_GATEWAY_UUID:-}" ]; then GATEWAY_UUID="$DERIOX_GATEWAY_UUID"; fi
  if [ -n "${DERIOX_QUEUE_DIR:-}" ]; then QUEUE_DIR="$DERIOX_QUEUE_DIR/outbox"; fi
fi

HOST_NAME="$(hostname 2>/dev/null || echo unknown)"
MACHINE_ID="$(cat /etc/machine-id 2>/dev/null || hostname)"
MACHINE_HASH="$(printf "%s" "$MACHINE_ID" | sha256sum | awk '{print $1}')"

if [ -z "$GATEWAY_UUID" ]; then
  GATEWAY_UUID="manual-${HOST_NAME}-$(printf "%s" "$MACHINE_HASH" | awk '{print substr($1,1,16)}')"
fi

mkdir -p "$QUEUE_DIR"
chmod 700 "$(dirname "$QUEUE_DIR")" "$QUEUE_DIR" 2>/dev/null || true

STAMP="$(date +%Y%m%d_%H%M%S)"
QUEUE_FILE="$QUEUE_DIR/deriox-guard-queue-test-$STAMP.jsonl"

cat > "$QUEUE_FILE" <<EOF
{"event":"offline_queue_test","version":"m9.8","gateway_uuid":"$GATEWAY_UUID","agent_name":"$AGENT_NAME","host_name":"$HOST_NAME","sequence":1,"camera_access":0,"stream":0,"media":0,"production":0}
{"event":"offline_queue_test","version":"m9.8","gateway_uuid":"$GATEWAY_UUID","agent_name":"$AGENT_NAME","host_name":"$HOST_NAME","sequence":2,"camera_access":0,"stream":0,"media":0,"production":0}
{"event":"offline_queue_test","version":"m9.8","gateway_uuid":"$GATEWAY_UUID","agent_name":"$AGENT_NAME","host_name":"$HOST_NAME","sequence":3,"camera_access":0,"stream":0,"media":0,"production":0}
EOF

chmod 600 "$QUEUE_FILE" 2>/dev/null || true

TOTAL_FILES="$(find "$QUEUE_DIR" -maxdepth 1 -type f -name "*.jsonl" 2>/dev/null | wc -l | tr -d ' ')"
TOTAL_BYTES="$(find "$QUEUE_DIR" -maxdepth 1 -type f -name "*.jsonl" -printf '%s\n' 2>/dev/null | awk '{s+=$1} END{print s+0}')"
CREATED_EVENTS="$(wc -l < "$QUEUE_FILE" | tr -d ' ')"
CREATED_BYTES="$(wc -c < "$QUEUE_FILE" | tr -d ' ')"

PAYLOAD=$(cat <<JSON
{
  "gateway_uuid": "$GATEWAY_UUID",
  "agent_name": "$AGENT_NAME",
  "agent_version": "m9.8-offline-queue-local-file-test",
  "host_name": "$HOST_NAME",
  "queue_dir": "$QUEUE_DIR",
  "created_file_count": 1,
  "created_event_count": $CREATED_EVENTS,
  "created_file_bytes": $CREATED_BYTES,
  "total_queue_files": $TOTAL_FILES,
  "total_queue_bytes": $TOTAL_BYTES,
  "manual_run": 1,
  "local_file_test_only": 1,
  "queue_replay_enabled": 0,
  "service_autostart_enabled": 0,
  "cron_enabled": 0,
  "production_go_live_enabled": 0,
  "real_camera_access_enabled": 0,
  "camera_discovery_enabled": 0,
  "stream_link_enabled": 0,
  "media_enabled": 0,
  "billing_enabled": 0
}
JSON
)

echo "Gateway UUID: $GATEWAY_UUID"
echo "Queue file:   $QUEUE_FILE"
echo "Events:       $CREATED_EVENTS"
echo "Total files:  $TOTAL_FILES"
echo "Endpoint:     $GUARD_URL/api/gateway/mini-pc/offline-queue/report"
echo ""

curl -k -sS \
  -H "Content-Type: application/json" \
  -X POST "$GUARD_URL/api/gateway/mini-pc/offline-queue/report" \
  --data "$PAYLOAD"

echo ""
echo "M9.8 offline queue local file test complete."
echo "No replay was performed."