#!/usr/bin/bash

# enable job control
set -m

# automatically set auto-export
set -a

export FAIL2BAN=Disabled
export BACKUP="Internal"
export DR=Disabled


export DEFAULT_ITEM=Site

if [ "$DOMAIN" == "" ]; then DOMAIN=example.com; fi
# load in the secrets



config_start_checksum() {
    START_CHECKSUM=$(sha512sum /etc/exaba/exaba-iam.env 2>/dev/null)
}

config_now_checksum() {
    NOW_CHECKSUM=$(sha512sum /etc/exaba/exaba-iam.env 2>/dev/null)
}




generate_password() {
    EXABA_IAM_DEFAULTUSER_PASSWORD="administrator"$(/usr/bin/exaba-cli random generate -q -t alphalower -l 6 --seed $EXABA_SEED)
}

exaba_seedhash() {
    EXABA_SEEDHASH=$(/usr/bin/exaba-cli random generate -q -t hex -l 6 --seed $EXABA_SEED --key HASH)
}

exaba_generateseed() {
    EXABA_SEED=$(/usr/bin/exaba-cli random generate -q -t u128)
    exaba_seedhash
    generate_password
}




load_env() {
    if [ -f /etc/exaba/exaba-iam.env ]; then source /etc/exaba/exaba-iam.env >/dev/null 2>&1; fi
    config_start_checksum

    if [ "$EXABA_SEED" == "" ]; then
	exaba_generateseed
    fi
    # calc the hash, internal only
    exaba_seedhash    

    if [ "$EXABA_IAM_DEFAULTUSER_ALLOWLOGIN" == "" ]; then
	EXABA_IAM_DEFAULTUSER_ALLOWLOGIN=true
    fi

    if [ "$EXABA_IAM_DEFAULTUSER_USERNAME" == "" ]; then
	EXABA_IAM_DEFAULTUSER_USERNAME=admin
    fi

    if [ "$EXABA_IAM_SERVER_PORT" == "" ]; then
	EXABA_IAM_SERVER_PORT=9002
    fi

    if [ "$EXABA_IAM_SERVER_HOST" == "" ]; then
	EXABA_IAM_SERVER_HOST=0.0.0.0
    fi

    if [ "$EXABA_IAM_USE_MAIL" == "" ]; then
	EXABA_IAM_SMTP_ENABLED=false
    fi

    if [ "$EXABA_IAM_CERTMODE" == "" ]; then
	if [ -f "/etc/exaba/certs/"pri*.pem ]; then
	    EXABA_IAM_CERTMODE=Exaba
	    EXABA_IAM_TLS_CERTPATH=/etc/exaba/certs/cert*.pem
	    EXABA_IAM_TLS_KEYPATH=/etc/exaba/certs/pri*.pem
	else
	    EXABA_IAM_CERTMODE=None
	fi
    fi
    DEFAULT_ITEM_CERTS=$EXABA_IAM_CERTMODE

    if [ "$EXABA_IAM_MISC_ACCESSKEYPREFIX" == "" ]; then
	EXABA_IAM_MISC_ACCESSKEYPREFIX="eXa"
    fi
    
    

}


load_env
if [ "$EXABA_IAM_MISC_MAXMINDGEODATABASE" == "/var/maxmind/GeoLite2-City.mmdb" ]; then
    DEFAULT_ITEM_GEOIP="Maxmind®"
else
    DEFAULT_ITEM_GEOIP="Disabled"
fi







menu_admin() {
    local ad
    ad=$(whiptail --inputbox "Admin username (e.g. admin):" 10 60 "$EXABA_IAM_DEFAULTUSER_USERNAME" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_DEFAULTUSER_USERNAME="$ad"
}

menu_password() {
    local ad
    ad=$(whiptail --inputbox "Password for $ADMINUSER (>=12 length):" 10 60 "$EXABA_IAM_DEFAULTUSER_PASSWORD" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_DEFAULTUSER_PASSWORD="$ad"
}

menu_iam_server() {
    local iam1
    iam1=$(whiptail --inputbox "IAM Server: (e.g. 0.0.0.0)" 10 60 "$EXABA_IAM_SERVER_HOST" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_SERVER_HOST="$iam1"
}

menu_iam_port() {
    local iamport
    iamport=$(whiptail --inputbox "IAM Port (e.g. 9002/443)" 10 60 "$EXABA_IAM_SERVER_PORT" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_SERVER_PORT="$iamport"
}


menu_prefix() {
    local prefix
    prefix=$(whiptail --inputbox "Unique Prefix Access Key ($IAM1):" 10 50 "$EXABA_IAM_MISC_ACCESSKEYPREFIX" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_MISC_ACCESSKEYPREFIX="$prefix"
}


change_smtp() {
    local smtp
    smtp=$(whiptail --inputbox "SMTP Server:" 10 50 "$EXABA_IAM_SMTP_SERVER" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_SMTP_SERVER=$smtp
}


change_tls() {
    local tls
    tls=$(whiptail --title "Exaba Install Mode" \
  --radiolist "Select TLS (space to select):" 15 60 3 \
  "none"     "Insecure/plaintext connection (25)"                ON \
  "required" "Plaintext connection/STARTTLS (587)" OFF \
  "wrapper"  "Wrapped in TLS (465)"     OFF \
  3>&1 1>&2 2>&3)
    case "$tls" in
	none)
	    EXABA_IAM_SMTP_PORT=25
	    ;;
	required)
	    EXABA_IAM_SMTP_PORT=587
	    ;;
	wrapper)
	    EXABA_IAM_SMTP_PORT=465
	    ;;
    esac

    EXABA_IAM_SMTP_TLS=$tls
}


change_port() {
    local port
    port=$(whiptail --inputbox "SMTP Port:" 10 50 "$EXABA_IAM_SMTP_PORT" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_SMTP_PORT=$port
}

change_username() {
    local username
    username=$(whiptail --inputbox "SMTP User:" 10 50 "$EXABA_IAM_SMTP_USERNAME" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_SMTP_USERNAME=$username
    EXABA_IAM_SMTP_FROM=$username
}


change_password() {
    local pw
    pw=$(whiptail --inputbox "SMTP Password:" 10 50 "$EXABA_IAM_SMTP_PASSWORD" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_SMTP_PASSWORD=$pw
}


change_from() {
    local from
    from=$(whiptail --inputbox "SMTP From Address:" 10 50 "$EXABA_IAM_SMTP_FROM" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_SMTP_FROM=$from
}


change_alertto() {
    local al
    al=$(whiptail --inputbox "SMTP Alert To Address:" 10 50 "$EXABA_IAM_SMTP_ALERTTO" 3>&1 1>&2 2>&3) || return 1
    EXABA_IAM_SMTP_ALERTTO=$al
}


testemail() {
    echo "Trying to send test email..."
    res=$(/usr/bin/exaba-iam-email-tester 2>&1)
    # if the email test is sent, then enable SMTP otherwise no
    if [ $? -eq 0 ]; then
	EXABA_IAM_SMTP_ENABLED=true
    fi
    
    whiptail --title "Test Email Results" --msgbox "$res""\n\nSMTP Enabled: $EXABA_IAM_SMTP_ENABLED" 20 70
}


menu_geoip() {
    OPTIONS=(
	"Disabled"  "  No GeoIP database"
    )

    if [ -f /var/maxmind/GeoLite2-City.mmdb ]; then
	OPTIONS+=(
	    "Maxmind®" "  Maxmind®   (/var/maxmind/GeoLite2-City.mmdb)"
	)
    fi

    ret=$(whiptail --title "Select GeoIP opption"  --default-item "$DEFAULT_ITEM_GEOIP" --menu "Choose an option:"  17 70 0  \
		   "${OPTIONS[@]}" \
		   3>&1 1>&2 2>&3)
    if [ $? -ne 0 ]; then return; fi


    if [ "$ret" == "Maxmind®" ]; then
	EXABA_IAM_MISC_MAXMINDGEODATABASE=/var/maxmind/GeoLite2-City.mmdb
	DEFAULT_ITEM_GEOIP=$ret
    else
	EXABA_IAM_MISC_MAXMINDGEODATABASE=
	DEFAULT_ITEM_GEOIP="Disabled"
    fi

}



menu_mail_server() {
    SER1=$EXABA_IAM_SMTP_SERVER
    SER2=$EXABA_IAM_SMTP_TLS
    SER3=$EXABA_IAM_SMTP_PORT
    SER4=$EXABA_IAM_SMTP_USERNAME
    SER5=$EXABA_IAM_SMTP_PASSWORD
    SER6=$EXABA_IAM_SMTP_FROM
    SER7=$EXABA_IAM_SMTP_ALERTTO

    while true
    do
	ret=$(whiptail --title ""  --default-item "$DEFAULT_ITEM_SERVER" --menu "Choose an option:"  17 70 0  \
		       "SMTP"      "  SMTP             ($EXABA_IAM_SMTP_SERVER)" \
		       "TLS"       "  TLS              ($EXABA_IAM_SMTP_TLS)" \
		       "Port"      "  SMTP Port        ($EXABA_IAM_SMTP_PORT)" \
		       "User"      "  SMTP User        ($EXABA_IAM_SMTP_USERNAME)" \
		       "Password"  "  SMTP Password    " \
		       "From"      "  Email address    ($EXABA_IAM_SMTP_FROM)" \
		       "AlertTo"   "  To Email address ($EXABA_IAM_SMTP_ALERTTO)" \
		       "TestEmail" "  Sent test email  ($EXABA_IAM_SMTP_ENABLED) " \
		       "Use"       "  Use credentials" \
		       3>&1 1>&2 2>&3)

	exit_status=$?

	DEFAULT_ITEM_SERVER="$ret"

	if [ "$ret" == "Use" ]
	then
	    break;
	fi


	if [[ $exit_status -ne 0 ]]; then
	    EXABA_IAM_SMTP_SERVER=$SER1
	    EXABA_IAM_SMTP_TLS=$SER2
	    EXABA_IAM_SMTP_PORT=$SER3
	    EXABA_IAM_SMTP_USERNAME=$SER4
	    EXABA_IAM_SMTP_PASSWORD=$SER5
	    EXABA_IAM_SMTP_FROM=$SER6
	    EXABA_IAM_SMTP_ALERTTO=$SER7

	    break
	fi

	case $ret in
	    SMTP)
		change_smtp
		;;
	    TLS)
		change_tls
		;;
	    Port)
		change_port
		;;
	    User)
		change_username
		;;
	    Password)
		change_password
		;;
	    From)
		change_from
		;;
	    AlertTo)
		change_alertto
		;;
	    TestEmail)
		testemail
		;;
	esac
    done
}

if [ "$EXABA_IAM_CERTMODE" == "None" ]; then
    unset EXABA_IAM_TLS_CERTPATH
    unset EXABA_IAM_TLS_KEYPATH
elif [ "$EXABA_IAM_TLS_CERTPATH" == "/etc/exaba/certs/certificate-chain.pem" ]; then
    EXABA_IAM_CERTMODE=Exaba
    DEFAULT_ITEM_CERTS=Exaba
elif [ "$EXABA_IAM_TLS_CERTPATH" == "$(ls /etc/letsencrypt/live/*/fullchain.pem | head -n 1)" ]; then
    EXABA_IAM_CERTMODE=LE
    DEFAULT_ITEM_CERTS=LE
fi


menu_certs() {
    local menu

    OPTIONS=(
	"None"  "  No certificates"
    )
    # Add Exaba option if pem exists
    if [ -f /etc/exaba/certs/certificate-chain.pem ]; then
	OPTIONS+=(
	    "Exaba" "  Self-signed Certs  (/etc/exaba/certs/)"
	)
    fi
    # Add LE option if pem exists
    if [ -f "/etc/letsencrypt/live/"*"/fullchain.pem" ]; then
	OPTIONS+=(
	    "LE"    "  Let's Encrypt      (/etc/letsencrypt/live/)"
	)
    fi

    ret=$(whiptail --title "" \
               --default-item "$DEFAULT_ITEM_CERTS" \
               --menu "Choose an option:" 17 70 0 \
               "${OPTIONS[@]}" \
               3>&1 1>&2 2>&3)

    exit_status=$?
    if [ $exit_status -ne 0 ]; then return; fi

    DEFAULT_ITEM_CERTS=$ret

    EXABA_IAM_CERTMODE=$ret
}



grade_from_percent() {
    local p="$1"
    p="${p%%%}"   # strip trailing %

    # Validate numeric
    if ! [[ "$p" =~ ^[0-9]+([.][0-9]+)?$ ]]; then
        GRADE="Invalid"
        return 1
    fi

    if [ "$p" -lt 60 ]; then
        GRADE="C"
    elif [ "$p" -le 75 ]; then
        GRADE="B-"
    elif [ "$p" -le 80 ]; then
        GRADE="B"
    elif [ "$p" -le 85 ]; then
        GRADE="B+"
    elif [ "$p" -le 90 ]; then
        GRADE="A-"
    elif [ "$p" -le 95 ]; then
        GRADE="A"
    else
        GRADE="A+"
    fi
}


admin_menu_config() {
    while true
    do

    ret=$(whiptail --title "Admin Configuration"  --default-item "$DEFAULT_ADMIN_ITEM" --menu "Choose an option:"  --cancel-button "Back" 21 70 0  \
		   "Admin"    " Admin username        ($EXABA_IAM_DEFAULTUSER_USERNAME)" \
		   "Password" " Admin password        " \
		   "Login"    " Un-named Admin login  ($EXABA_IAM_DEFAULTUSER_ALLOWLOGIN)" \
		   3>&1 1>&2 2>&3)

    exit_status=$?

    if [ "$exit_status" -ne 0 ]; then return; fi

    DEFAULT_ADMIN_ITEM="$ret"

    case $ret in
	Admin)
	    menu_admin
	    ;;
	Password)
	    menu_password
	    ;;
	Login)
	    if [ "$EXABA_IAM_DEFAULTUSER_ALLOWLOGIN" == "true" ]
	    then
		EXABA_IAM_DEFAULTUSER_ALLOWLOGIN=false
	    else
		EXABA_IAM_DEFAULTUSER_ALLOWLOGIN=true
	    fi
	    ;;
    esac
    done

}



new_site() {
    if [ "$EXABA_SEED" != "" ]; then
	whiptail --title "Exaba Site Seed Creation" --yesno "Are you sure? \n\nSelecting this option will create a new seed, which is used to create the machine-to-machine (M2M) auth. This will invalidate prior M2M auth, so select it wisely." --defaultno 15 70
	if [ $? -ne 0 ]; then
	    return;
	fi
    fi

    EXABA_SEED=$(/usr/bin/exaba-cli random generate -q -t u128)
    exaba_seedhash

    generate_password

    whiptail --title "Seed / password" --msgbox "Seed: $EXABA_SEED\n\nUsername: $EXABA_IAM_DEFAULTUSER_USERNAME\n\nPassword: $EXABA_IAM_DEFAULTUSER_PASSWORD" 20 70    
    
}

prime_entropy() {
    curl -sfS "https://entropy1.exaba.com/entropy?source=$HOSTNAME" >> /dev/random
    ret=$?
    
    if [ $ret -eq 0 ]; then
	msg="/dev/random primed from enternal entropy"
    elif [ $ret -eq 22 ]; then
	msg="external priming rate limited, try again in 15 minutes"
    else
	msg="external priming failed. code: $ret"
    fi
    
    whiptail --title "Prime entropy" --msgbox "$msg" 20 70    

}


join_site() {
    if [ "$EXABA_SEED" != "" ]; then
	whiptail --yesno "Are you sure? This will invalidate prior M2M auth" --defaultno 10 70
	if [ $? -ne 0 ]; then
	    return;
	fi
    fi

    local ad
    ad=$(whiptail --inputbox "Exaba Setup Seed (e.g. u128 number):" 10 60 "" 3>&1 1>&2 2>&3) || return 1

    EXABA_SEED=$ad
    exaba_seedhash

    generate_password
}

generate_ids_secrets() {
    EXABA_IAM_M2MUSERS_MAXIOID=$(/usr/bin/exaba-cli random generate -q -t base62 -l 30 --seed $EXABA_SEED --key EXABA_IAM_M2MUSERS_MAXIOID)
    EXABA_IAM_M2MUSERS_MAXIOSECRET=$(/usr/bin/exaba-cli random generate -q -t base62 -l 60 --seed $EXABA_SEED --key EXABA_IAM_M2MUSERS_MAXIOSECRET)

    EXABA_IAM_M2MUSERS_SYNCID=$(/usr/bin/exaba-cli random generate -q -t base62 -l 30 --seed $EXABA_SEED --key EXABA_IAM_M2MUSERS_SYNCID)
    EXABA_IAM_M2MUSERS_SYNCSECRET=$(/usr/bin/exaba-cli random generate -q -t base62 -l 60 --seed $EXABA_SEED --key EXABA_IAM_M2MUSERS_SYNCSECRET)

    EXABA_IAM_M2MUSERS_KMSID=$(/usr/bin/exaba-cli random generate -q -t base62 -l 30 --seed $EXABA_SEED --key EXABA_IAM_M2MUSERS_KMSID)
    EXABA_IAM_M2MUSERS_KMSSECRET=$(/usr/bin/exaba-cli random generate -q -t base62 -l 60 --seed $EXABA_SEED --key EXABA_IAM_M2MUSERS_KMSSECRET)
}



admin_site() {
    while true
    do

    ret=$(whiptail --title "Site Seed Configuration (Hash: $EXABA_SEEDHASH)"  --default-item "$DEFAULT_SITE_ITEM" --menu "Choose an option:"  --cancel-button "Back" 13 70 0  \
		   "New"    " Create new site seed   " \
		   "Join"   " Join existing site seed " \
		   3>&1 1>&2 2>&3)

    exit_status=$?

    if [ "$exit_status" -ne 0 ]; then return; fi

    DEFAULT_SITE_ITEM="$ret"

    case $ret in
	New)
	    new_site
	    ;;
	Join)
	    join_site
	    ;;
    esac
    done

}











HOST=$(hostname)

while true
do
    # start at 60
    SCORE=60
    if [ "$DR" != "Disabled" ]; then SCORE=$[SCORE+30]; fi
    if [ "$BACKUP" != "Disabled" ]; then SCORE=$[SCORE+15]; fi
    if [ "$GEOIP" != "Disabled" ]; then SCORE=$[SCORE+5]; fi

    grade_from_percent $SCORE

    ret=$(whiptail --title "Exaba IAM Configuration ($HOST)"  --default-item "$DEFAULT_ITEM" --menu "Choose an option:"  21 70 0  \
		   "Seed"     " Configure Site Seed      (seed hash: $EXABA_SEEDHASH)" \
		   "Admin"    " Configure Admin Password ($EXABA_IAM_DEFAULTUSER_USERNAME)" \
		   "Certs"    " Configure TLS Certs      ($EXABA_IAM_CERTMODE)"\
		   "IAM"      " Configure IAM Server     ($EXABA_IAM_SERVER_HOST)" \
		   "Port"     " Configure IAM Port       ($EXABA_IAM_SERVER_PORT)" \
		   "Prefix"   " Configure Key Prefix     ($EXABA_IAM_MISC_ACCESSKEYPREFIX)" \
		   "Mail"     " Configure Mail Server    ($EXABA_IAM_SMTP_ENABLED)" \
		   "Entropy"  " Network Entropy Prime    (Quantum RNG)"\
		   "Limits"   " Access/Account limits " \
		   "GeoIP"    " Map IP -> Geography      ($DEFAULT_ITEM_GEOIP)" \
		   "Backup"   " IAM Server Backup        ($BACKUP)" \
		   "DR"       " Disaster Recovery        ($DR)" \
		   "Save"     " Save and Exit" \
		   3>&1 1>&2 2>&3)

    exit_status=$?

    DEFAULT_ITEM="$ret"


    if [ "$ret" == "Save" ]
    then
	config_now_checksum

	if [ "$START_CHECKSUM" == "$NOW_CHECKSUM" ]
	then
	    break
	else
	    whiptail --msgbox "The config file /etc/exaba/exaba-iam.env has changed under us. Reloading file." 20 70
	    load_env
	fi

    fi

    if [[ $exit_status -ne 0 ]]; then
	exit 1
    fi


    case $ret in
	Seed)
	    admin_site
	    ;;
	Admin)
	    admin_menu_config
	    ;;
	IAM)
	    menu_iam
	    ;;
	Port)
	    menu_iam_port
	    ;;
	Prefix)
	    menu_prefix
	    ;;
	Mail)
	    menu_mail_server
	    ;;
	Certs)
	    menu_certs
	    ;;
	GeoIP)
	    menu_geoip
	    ;;
	Entropy)
	    prime_entropy
	    ;;
	*)
    esac

done


if [ "$EXABA_IAM_CERTMODE" == "Exaba" ]; then
    EXABA_IAM_TLS_CERTPATH=/etc/exaba/certs/certificate-chain.pem
    EXABA_IAM_TLS_KEYPATH=/etc/exaba/certs/private-key.pem
elif [ "$EXABA_IAM_CERTMODE" == "LE" ]; then
    EXABA_IAM_TLS_CERTPATH=/etc/letsencrypt/live/iam.dcit.nz/fullchain.pem
    EXABA_IAM_TLS_KEYPATH=/etc/letsencrypt/live/iam.dcit.nz/privkey.pem
fi


generate_ids_secrets


cat <<EOF > /etc/exaba/exaba-iam.env
##
## Created ... $(date)
##
EXABA_SEED=$EXABA_SEED
EXABA_IAM_SERVER_HOST=$EXABA_IAM_SERVER_HOST
EXABA_IAM_SERVER_PORT=$EXABA_IAM_SERVER_PORT
EXABA_IAM_DEFAULTUSER_USERNAME=$EXABA_IAM_DEFAULTUSER_USERNAME
EXABA_IAM_DEFAULTUSER_PASSWORD=$EXABA_IAM_DEFAULTUSER_PASSWORD
EXABA_IAM_DEFAULTUSER_ALLOWLOGIN=$EXABA_IAM_DEFAULTUSER_ALLOWLOGIN
EXABA_IAM_MISC_ACCESSKEYPREFIX=$EXABA_IAM_MISC_ACCESSKEYPREFIX
EXABA_IAM_CERTMODE=$EXABA_IAM_CERTMODE
EXABA_IAM_TLS_CERTPATH=$EXABA_IAM_TLS_CERTPATH
EXABA_IAM_TLS_KEYPATH=$EXABA_IAM_TLS_KEYPATH
EXABA_IAM_SMTP_ENABLED=$EXABA_IAM_SMTP_ENABLED
EXABA_IAM_M2MUSERS_MAXIOID=$EXABA_IAM_M2MUSERS_MAXIOID
EXABA_IAM_M2MUSERS_MAXIOSECRET=$EXABA_IAM_M2MUSERS_MAXIOSECRET
EXABA_IAM_M2MUSERS_SYNCID=$EXABA_IAM_M2MUSERS_SYNCID
EXABA_IAM_M2MUSERS_SYNCSECRET=$EXABA_IAM_M2MUSERS_SYNCSECRET
EXABA_IAM_M2MUSERS_KMSID=${EXABA_IAM_M2MUSERS_KMSID}
EXABA_IAM_M2MUSERS_KMSSECRET=${EXABA_IAM_M2MUSERS_KMSSECRET}

EOF


# geoip

if [ "$EXABA_IAM_MISC_MAXMINDGEODATABASE" != "" ]; then
    cat <<EOF >>/etc/exaba/exaba-iam.env
EXABA_IAM_MISC_MAXMINDGEODATABASE=${EXABA_IAM_MISC_MAXMINDGEODATABASE}

EOF

fi



#smtp

if [ "$EXABA_IAM_SMTP_ENABLED" == "true" ];
then
    cat <<EOF >> /etc/exaba/exaba-iam.env
EXABA_IAM_SMTP_SERVER=$EXABA_IAM_SMTP_SERVER
EXABA_IAM_SMTP_TLS=$EXABA_IAM_SMTP_TLS
EXABA_IAM_SMTP_PORT=$EXABA_IAM_SMTP_PORT
EXABA_IAM_SMTP_USERNAME=$EXABA_IAM_SMTP_USERNAME
EXABA_IAM_SMTP_PASSWORD=$EXABA_IAM_SMTP_PASSWORD
EXABA_IAM_SMTP_FROM=$EXABA_IAM_SMTP_FROM
EXABA_IAM_SMTP_ALERTTO=$EXABA_IAM_SMTP_ALERTTO

EOF
    
fi


