mirror of
https://github.com/blackboxprogramming/lucidia.git
synced 2026-03-17 04:57:15 -05:00
Synced from BlackRoad-OS-Inc/blackroad-operator/orgs/personal/lucidia BlackRoad OS — Pave Tomorrow. RoadChain-SHA2048: fe729062952871e7 RoadChain-Identity: alexa@sovereign RoadChain-Full: fe729062952871e77147cf6d938b799096e87d9024d7005a14c9e209e12e8ad0c825b624c7bc649fc7eeb4c284fdcab8231af77980065cc04d9f36fca479ffc2346ed3c1b73de6f240d8f9485f47c995ad5b81142f7179b84932c67914dff1c08db039349ba28fca36cb57688093bf0199268dd1c2f3448c9383000bc77cc9663066ff57b834370afc8838b18466ea9029908018b961555cccaabf2ce21649cf3cabc7f64bdcc4abdf2da259b210c342835a2cecf92bdd3b4e109b4d6e622f6934e13b2b123607bd61ce3d0f20454c9ab594f9284cffe18716619c52db57ce5f4ee2856cb96e1fa3748fe1fe65435bec297c5ab3ab58d570ec1064aea29931dd
79 lines
2.1 KiB
Bash
Executable File
79 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# setup-email-routing.sh — Configure Cloudflare Email Routing for agent addresses
|
|
# Usage: ./setup-email-routing.sh <cloudflare_zone_id> <destination_email>
|
|
# Requires: CLOUDFLARE_API_TOKEN env var
|
|
|
|
set -euo pipefail
|
|
|
|
GREEN='\033[0;32m'; CYAN='\033[0;36m'; RED='\033[0;31m'; DIM='\033[2m'; NC='\033[0m'
|
|
|
|
ZONE_ID="${1:-}"
|
|
DEST="${2:-alexa@blackroad.io}"
|
|
CF_TOKEN="${CLOUDFLARE_API_TOKEN:-}"
|
|
|
|
[[ -z "$ZONE_ID" ]] && echo -e "${RED}Usage: $0 <zone_id> [destination_email]${NC}" && exit 1
|
|
[[ -z "$CF_TOKEN" ]] && echo -e "${RED}Set CLOUDFLARE_API_TOKEN${NC}" && exit 1
|
|
|
|
CF_API="https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/email/routing/rules"
|
|
|
|
declare -a ADDRESSES=(
|
|
"lucidia@blackroad.io"
|
|
"alice@blackroad.io"
|
|
"octavia@blackroad.io"
|
|
"prism@blackroad.io"
|
|
"echo@blackroad.io"
|
|
"cipher@blackroad.io"
|
|
"aria@blackroad.io"
|
|
"shellfish@blackroad.io"
|
|
"cece@blackroad.io"
|
|
"agents@blackroad.io"
|
|
"security@blackroad.io"
|
|
"ops@blackroad.io"
|
|
"hello@blackroad.io"
|
|
"identity@blackroad.io"
|
|
"l@blackroad.io"
|
|
"dreamer@blackroad.io"
|
|
"vault@blackroad.io"
|
|
"pentest@blackroad.io"
|
|
"red@blackroad.io"
|
|
"data@blackroad.io"
|
|
"memory@blackroad.io"
|
|
"archive@blackroad.io"
|
|
"design@blackroad.io"
|
|
"ux@blackroad.io"
|
|
"compute@blackroad.io"
|
|
"arch@blackroad.io"
|
|
"analytics@blackroad.io"
|
|
)
|
|
|
|
echo -e "\n${CYAN}Setting up Cloudflare Email Routing → ${DEST}${NC}\n"
|
|
|
|
ok=0; fail=0
|
|
for addr in "${ADDRESSES[@]}"; do
|
|
payload=$(python3 -c "
|
|
import json,sys
|
|
addr,dest=sys.argv[1],sys.argv[2]
|
|
rule={
|
|
'actions':[{'type':'forward','value':[dest]}],
|
|
'enabled':True,
|
|
'matchers':[{'field':'to','type':'literal','value':addr}],
|
|
'name':f'Route {addr}'
|
|
}
|
|
print(json.dumps(rule))" "$addr" "$DEST")
|
|
|
|
resp=$(curl -s -o /dev/null -w "%{http_code}" -X POST "$CF_API" \
|
|
-H "Authorization: Bearer $CF_TOKEN" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$payload")
|
|
|
|
if [[ "$resp" == "200" || "$resp" == "201" ]]; then
|
|
echo -e " ${GREEN}✓${NC} ${addr} → ${DEST}"
|
|
(( ok++ ))
|
|
else
|
|
echo -e " ${RED}✗${NC} ${addr} (HTTP ${resp})"
|
|
(( fail++ ))
|
|
fi
|
|
done
|
|
|
|
echo -e "\n${DIM}Done: ${ok} created, ${fail} failed${NC}"
|