#!/bin/bash set -euo pipefail SUPPLY_URL="${SUPPLY_URL:-http://127.0.0.1:8081}" CONSUMER="${CONSUMER:-sub2api-bridge}" CURSOR="" # Create bridge log table in sub2api database docker exec sub2api-postgres psql -U sub2api -d sub2api -c " CREATE TABLE IF NOT EXISTS supply_bridge_log ( id SERIAL PRIMARY KEY, event_id TEXT NOT NULL, package_id BIGINT, status TEXT, result TEXT, detail TEXT, created_at TIMESTAMPTZ DEFAULT NOW() );" 2>/dev/null || true while true; do RESP=$(curl -fsS -X POST "${SUPPLY_URL}/internal/supply-intelligence/gateway/consume-once?consumer=${CONSUMER}&cursor=${CURSOR}" 2>/dev/null || echo '{}') NEXT_CURSOR=$(echo "$RESP" | jq -r '.next_cursor // empty') ITEMS_LEN=$(echo "$RESP" | jq '.items | length') if [ "$ITEMS_LEN" -eq 0 ]; then sleep 10 continue fi echo "$RESP" | jq -c '.items[]' | while read -r item; do EVENT_ID=$(echo "$item" | jq -r '.event_id') PKG_ID=$(echo "$item" | jq -r '.package_id') STATUS=$(echo "$item" | jq -r '.gateway_sync_status') RESULT=$(echo "$item" | jq -r '.result') DETAIL=$(echo "$item" | jq -r '.detail // empty') echo "$(date -Is) bridge event=$EVENT_ID package=$PKG_ID status=$STATUS result=$RESULT" # Insert into sub2api database docker exec sub2api-postgres psql -U sub2api -d sub2api -c \ "INSERT INTO supply_bridge_log (event_id, package_id, status, result, detail) VALUES ('$EVENT_ID', $PKG_ID, '$STATUS', '$RESULT', '$DETAIL');" 2>/dev/null || true done CURSOR="$NEXT_CURSOR" if [ -z "$CURSOR" ]; then sleep 10 fi done