HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: //var/packages/ActiveInsight/target/sdk-plugin/synomibclient_event.sh
#!/bin/bash
# Copyright (c) 2019 Synology Inc. All rights reserved.

SYNOMIB_PKG_NAME="Syno.ActiveInsight"
SYNOMIB_PKG_VERSION="1.0"
SYNOMIB_PKG_VENDOR="Synology Inc."
SYNOMIB_PKG_MODVER="1.0"
SYNOMIB_RESOURCE_MONITOR="/var/packages/ActiveInsight/target/bin/synomibresourcemonitor"
WHITE_LIST=(
	"DiskStatusUnc"
	"EBoxHDEcc"
	"EBoxHDEccRaidDegraded"
	"EboxFanResume"
	"EboxFanStop"
	"HDEcc"
	"HDEccRaidDegraded"
	"ImproperShutdown"
	"ImproperShutdownFrequently"
	"InternalFanResume"
	"InternalFanStop"
	"OOM"
	"RedundantPowerRecoveredProvide"
	"RedundantPowerStopProvide"
	"TPLUNReachHardLimitPW"
	"TPLUNReachSoftLimit"
	"ext4_fs_err"
	"file_cksum_err"
	"VolumeCrashedGeneral"
	"RaidGroupCrashed"
	"RaidGroupDegraded"
	"SSDCacheCrashed"
	"SSDCacheDegraded"
	"SSDCacheMissing"
	"SSDCacheCrashedV2"
	"SSDCacheDegradedV2"
	"DiskTemperatureAbnormal"
	"OverheatShutdownDisk"
	"DataVolumeFull"
	"DataVolumeLowCapacity"
	"DiskStatusWarning"
	"DiskStatusCritical"
	"DiskStatusFailing"
)
FORBIDDEN_METADATA_KEYS=(
	"%COMPANY_NAME%"
	"%HOSTNAME%"
	"%IP_ADDR%"
	"%HTTP_URL%"
	"%DATE%"
	"%TIME%"
	"%OSNAME%"
	"%HOST_SN%"
	"%DISKSTATION%"
	"%HTTPS_URL%"
)

IsEventKeyInWhiteList() {
	local event_key="$1"
	for element in "${WHITE_LIST[@]}"; do
		if [[ "$element" == "$event_key" ]]; then
			return 0
		fi
	done
	return 1
}

case $1 in
	--sdk-mod-ver)
		/bin/echo "${SYNOMIB_PKG_MODVER}"
	;;
	--name)
		/bin/echo "${SYNOMIB_PKG_NAME}"
	;;
	--pkg-ver)
		/bin/echo "${SYNOMIB_PKG_VERSION}"
	;;
	--vendor)
		/bin/echo "${SYNOMIB_PKG_VENDOR}"
	;;
	--pre)
		exit 0
	;;
	--post)
		app="${PACKAGE}"
		appVersion="${VERSION%%-*}"
		eventKey="${KEY}"

		if [[ "${PACKAGE}" != "dsm" ]]; then
			exit 0
		fi
		if ! IsEventKeyInWhiteList "${eventKey}"; then
			exit 0
		fi

		license=$(/var/packages/ActiveInsight/target/bin/synomibresourcemonitor license)
		if [[ "${license}" != "PREMIUM" ]]; then
			exit 0
		fi

		filteredParameters="${PARAMETERS}"
		for key in "${FORBIDDEN_METADATA_KEYS[@]}"; do
			filteredParameters=$(echo "$filteredParameters" | jq -c "del(.\"$key\")")
		done

		"${SYNOMIB_RESOURCE_MONITOR}" send-event --app "${app}" --app_version "${appVersion}" --event_key "${eventKey}" --metadata "${filteredParameters}"
	;;
	*)
		/bin/echo "Usage: $0 --sdk-mod-ver|--name|--pkg-ver|--vendor|--pre|--post"
	;;
esac