#!/bin/sh set -eu ENV_FILE=${1:-/volume1/docker/nodedc-platform/platform/.env.synology} if [ ! -f "$ENV_FILE" ]; then echo "ERROR: env file not found: $ENV_FILE" >&2 exit 1 fi if grep -q '^EXTERNAL_DATA_PLANE_PG_PASS=' "$ENV_FILE"; then echo "External Data Plane database credential already exists; no change made." exit 0 fi if ! command -v openssl >/dev/null 2>&1; then echo "ERROR: openssl is required to generate the database password." >&2 exit 1 fi umask 077 TMP_FILE=$(mktemp "${ENV_FILE}.external-data-plane.XXXXXX") trap 'rm -f "$TMP_FILE"' EXIT HUP INT TERM PASSWORD=$(openssl rand -hex 32) cp "$ENV_FILE" "$TMP_FILE" printf '\n# External Data Plane — generated locally; do not reuse an internal API token.\n' >> "$TMP_FILE" printf 'EXTERNAL_DATA_PLANE_TIMESCALE_IMAGE=timescale/timescaledb-ha:pg16.14-ts2.28.2-all\n' >> "$TMP_FILE" printf 'EXTERNAL_DATA_PLANE_PG_DB=nodedc_data_plane\n' >> "$TMP_FILE" printf 'EXTERNAL_DATA_PLANE_PG_USER=nodedc_data_plane\n' >> "$TMP_FILE" printf 'EXTERNAL_DATA_PLANE_PG_PASS=%s\n' "$PASSWORD" >> "$TMP_FILE" printf 'EXTERNAL_DATA_PLANE_HOST_BIND=127.0.0.1:18106\n' >> "$TMP_FILE" printf 'EXTERNAL_DATA_PLANE_DATABASE_POOL_SIZE=10\n' >> "$TMP_FILE" printf 'EXTERNAL_DATA_PLANE_RAW_RETENTION_DAYS=14\n' >> "$TMP_FILE" printf 'EXTERNAL_DATA_PLANE_MAX_BATCH_BYTES=5242880\n' >> "$TMP_FILE" mv "$TMP_FILE" "$ENV_FILE" trap - EXIT HUP INT TERM echo "External Data Plane database configuration was added. The generated password was not printed."