feat: expose signed platform health status
This commit is contained in:
@@ -9,13 +9,31 @@ fi
|
||||
project_root=${PLATFORM_ROOT:-/opt/data-terminal-cloud/current}
|
||||
install -d -m 0700 /etc/data-terminal-cloud
|
||||
install -d -m 0750 /var/lib/data-terminal-cloud-monitor
|
||||
platform_env="$project_root/deploy/server/.env"
|
||||
if [[ -r "$platform_env" && ! -s /etc/data-terminal-cloud/platform-health-callback-secret ]]; then
|
||||
platform_health_secret=$(sed -n 's/^PLATFORM_HEALTH_CALLBACK_SECRET=//p' "$platform_env" | head -n1)
|
||||
if (( ${#platform_health_secret} >= 32 )); then
|
||||
umask 077
|
||||
printf '%s\n' "$platform_health_secret" >/etc/data-terminal-cloud/platform-health-callback-secret
|
||||
fi
|
||||
fi
|
||||
if [[ -s /etc/data-terminal-cloud/platform-health-callback-secret ]]; then
|
||||
chmod 0600 /etc/data-terminal-cloud/platform-health-callback-secret
|
||||
fi
|
||||
if [[ ! -s /etc/data-terminal-cloud/monitor-webhook-secret ]]; then
|
||||
umask 077
|
||||
openssl rand -base64 48 >/etc/data-terminal-cloud/monitor-webhook-secret
|
||||
fi
|
||||
chmod 0600 /etc/data-terminal-cloud/monitor-webhook-secret
|
||||
if [[ ! -e /etc/data-terminal-cloud/monitor.env ]]; then
|
||||
cat >/etc/data-terminal-cloud/monitor.env <<'EOF'
|
||||
public_origin=$(sed -n 's/^PUBLIC_ORIGIN=//p' "$platform_env" 2>/dev/null | head -n1)
|
||||
report_url=
|
||||
if [[ "$public_origin" == https://* && -s /etc/data-terminal-cloud/platform-health-callback-secret ]]; then
|
||||
report_url="$public_origin/callbacks/v1/platform-health"
|
||||
fi
|
||||
cat >/etc/data-terminal-cloud/monitor.env <<EOF
|
||||
PLATFORM_HEALTH_REPORT_URL=$report_url
|
||||
PLATFORM_HEALTH_REPORT_SECRET_FILE=/etc/data-terminal-cloud/platform-health-callback-secret
|
||||
ALERT_WEBHOOK_URL=
|
||||
ALERT_WEBHOOK_SECRET_FILE=/etc/data-terminal-cloud/monitor-webhook-secret
|
||||
EOF
|
||||
|
||||
Reference in New Issue
Block a user