export DISCORD_BRIDGE_YAML_VERSION=v2 export ENTRYPOINT_CONF_VERSION=v3 export HOMESERVER_YAML_VERSION=v36 export LOG_CONFIG_VERSION=v2 export SHARED_SECRET_AUTH_VERSION=v2 export SIGNAL_BRIDGE_YAML_VERSION=v6 export TELEGRAM_BRIDGE_YAML_VERSION=v6 export NGINX_CONFIG_VERSION=v13 export WK_SERVER_VERSION=v1 export WK_CLIENT_VERSION=v2 export MAS_CONFIG_VERSION=v1 export PG_BACKUP_VERSION=v2 export ADMIN_CONFIG_VERSION=v1 ensure_mas_database () { if ! psql -U synapse -d postgres -v ON_ERROR_STOP=1 -Atqc "SELECT 1 FROM pg_database WHERE datname = 'mas'" | grep -qx 1 then psql -U synapse -d postgres -v ON_ERROR_STOP=1 -c "CREATE DATABASE mas OWNER synapse" fi } # Local helper: fetch homeserver.yaml from app, push to mas, then syn2mas check + dry-run. prepare_mas_migration () { local hs_local syn_cfg syn_cfg=/tmp/homeserver.yaml cleanup_prepare_mas_migration() { rm -f "homeserver.yaml" } trap cleanup_prepare_mas_migration EXIT echo "Fetching /data/homeserver.yaml from app to homeserver.yaml (abra app run … cat)..." if ! abra app run -t "$DOMAIN" app cat /data/homeserver.yaml > "homeserver.yaml" then return 1 fi if [ ! -s "homeserver.yaml" ]; then echo "Error: fetched homeserver.yaml is empty." >&2 return 1 fi echo "Copying into mas:/tmp" abra app cp "$DOMAIN" "homeserver.yaml" "mas:/tmp" || return 1 echo "Running mas-cli syn2mas check..." abra app run -t "$DOMAIN" mas -- mas-cli syn2mas check \ --config /etc/mas/config.yaml \ --synapse-config "$syn_cfg" || return 1 echo "Running mas-cli syn2mas migrate --dry-run..." abra app run -t "$DOMAIN" mas -- mas-cli syn2mas migrate \ --config /etc/mas/config.yaml \ --synapse-config "$syn_cfg" \ --dry-run || return 1 trap - EXIT cleanup_prepare_mas_migration } set_admin () { admin=akadmin if [ -n "$1" ] then admin=$1 fi psql -U synapse -c "UPDATE users SET admin = 1 WHERE name = '@$admin:$DOMAIN'"; } set_bridge_tokens() { if [ -z "$1" ]; then echo "Error: Missing parameter. Usage: set_bridge_tokens " return 1 fi BRIDGETYPE=$1 echo "retrieve tokens from registration.yaml..." output=$(abra app run $DOMAIN app cat /${BRIDGETYPE}-data/registration.yaml) if [ $? -ne 0 ]; then echo "Error: Failed to retrieve registration.yaml for ${BRIDGETYPE} bridge:" echo "$output" return 1 fi hs_token=$(echo "$output" | sed -n 's/^hs_token:[[:space:]]*\(.*\)$/\1/p') as_token=$(echo "$output" | sed -n 's/^as_token:[[:space:]]*\(.*\)$/\1/p') echo "HS Token: $hs_token" echo "AS Token: $as_token" echo "UNDEPLOY $DOMAIN?" abra app undeploy $DOMAIN echo "Replacing tokens:" abra app secret rm $DOMAIN ${BRIDGETYPE}_as_token abra app secret insert $DOMAIN ${BRIDGETYPE}_as_token v1 $as_token abra app secret rm $DOMAIN ${BRIDGETYPE}_hs_token abra app secret insert $DOMAIN ${BRIDGETYPE}_hs_token v1 $hs_token echo "Redeploying $DOMAIN..." abra app deploy -n $DOMAIN }