Introduce weekly summary reports and a cleanup job, enhance dashboard UI, and adjust telemetry/build settings. - Add REPO_SOURCE to misc/api.func and include repo_source in telemetry payloads. - Implement weekly report generation/scheduling in alerts.go: new data types, HTML/plain templates, scheduler, SendWeeklyReport/TestWeeklyReport, and email/HTML helpers. - Add Cleaner (misc/data/cleanup.go) to detect and mark stuck installations as 'unknown' with scheduling and manual trigger APIs. - Enhance dashboard backend/frontend (misc/data/dashboard.go): optional days filter (allow 'All'), increase fetch page size, simplify fetchRecords, add quick filter buttons, detail & health modals, improved styles and chart options, and client-side record detail view. - Update Dockerfile (misc/data/Dockerfile): rename binaries to telemetry-service and build migrate from ./migration/migrate.go; copy adjusted in final image. - Add migration tooling (misc/data/migration/migrate.sh and migration.go) and other small service changes. These changes add operational reporting and cleanup capabilities, improve observability and UX of the dashboard, and align build and telemetry identifiers for the service.
68 lines
1.9 KiB
Bash
68 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# Migration script to import data from the old API to PocketBase
|
|
# Usage: ./migrate.sh [POCKETBASE_URL] [COLLECTION_NAME]
|
|
#
|
|
# Examples:
|
|
# ./migrate.sh # Uses defaults
|
|
# ./migrate.sh http://localhost:8090 # Custom PB URL
|
|
# ./migrate.sh http://localhost:8090 my_telemetry # Custom URL and collection
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
# Default values
|
|
POCKETBASE_URL="${1:-http://localhost:8090}"
|
|
POCKETBASE_COLLECTION="${2:-_dev_telemetry_data}"
|
|
|
|
echo "============================================="
|
|
echo " ProxmoxVED Data Migration Tool"
|
|
echo "============================================="
|
|
echo ""
|
|
echo "This script will migrate telemetry data from:"
|
|
echo " Source: https://api.htl-braunau.at/dev/data"
|
|
echo " Target: $POCKETBASE_URL"
|
|
echo " Collection: $POCKETBASE_COLLECTION"
|
|
echo ""
|
|
|
|
# Check if PocketBase is reachable
|
|
echo "🔍 Checking PocketBase connection..."
|
|
if ! curl -sf "$POCKETBASE_URL/api/health" >/dev/null 2>&1; then
|
|
echo "❌ Cannot reach PocketBase at $POCKETBASE_URL"
|
|
echo " Make sure PocketBase is running and the URL is correct."
|
|
exit 1
|
|
fi
|
|
echo "✅ PocketBase is reachable"
|
|
echo ""
|
|
|
|
# Check source API
|
|
echo "🔍 Checking source API..."
|
|
SUMMARY=$(curl -sf "https://api.htl-braunau.at/dev/data/summary" 2>/dev/null || echo "")
|
|
if [ -z "$SUMMARY" ]; then
|
|
echo "❌ Cannot reach source API"
|
|
exit 1
|
|
fi
|
|
|
|
TOTAL=$(echo "$SUMMARY" | grep -o '"total_entries":[0-9]*' | cut -d: -f2)
|
|
echo "✅ Source API is reachable ($TOTAL entries available)"
|
|
echo ""
|
|
|
|
# Confirm migration
|
|
read -p "⚠️ Do you want to start the migration? [y/N] " -n 1 -r
|
|
echo ""
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "Migration cancelled."
|
|
exit 0
|
|
fi
|
|
|
|
echo ""
|
|
echo "Starting migration..."
|
|
echo ""
|
|
|
|
# Run the Go migration script
|
|
cd "$SCRIPT_DIR"
|
|
POCKETBASE_URL="$POCKETBASE_URL" POCKETBASE_COLLECTION="$POCKETBASE_COLLECTION" go run migrate.go
|
|
|
|
echo ""
|
|
echo "Migration complete!"
|