Test local pentru fișiere JSONL de coadă offline pe mini PC. Se raportează doar metadata către Guard, fără replay.
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.
#!/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."