wbxcallprov/.env.example
jmcqueen 63f35027f6
Some checks failed
CI / verify (push) Has been cancelled
Add daily store phone export to Webex space
Weekday 10am Eastern cron exports all Webex Calling locations whose
name starts with "Store" to a legacy-format CSV (+E164,Store XXXX),
diffs against the previous baseline, and posts the file plus a change
summary to a configured Webex space.

- src/webex/storePhones.js: paginated GET /telephony/config/locations
- src/services/storePhoneExport.js: CSV format, filename, diff, message
- src/webex/messages.js: bot-token multipart POST /messages with file
- src/jobs/storePhoneExport.js + cron in src/index.js
- scripts/exportStorePhones.js for manual runs (npm run export-store-phones)
- Persist baseline + archives under data/store-phone-export/ (gitignored)
- Dockerfile: create /app/data for volume mount in prod
- CI: align node-version with Dockerfile (20)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 14:57:45 -04:00

52 lines
2.1 KiB
Text

# Copy this file to .env and fill in real values.
# .env is git-ignored. NEVER commit real secrets.
# --- Webex bot (webex-node-bot-framework) ---
WEBEX_BOT_TOKEN=your-webex-bot-token
WEBEX_BOT_NAME=AEO Call Provisioning
WEBEX_BOT_USERNAME=aeoCallProvisioning@webex.bot
WEBEX_BOT_ID=your-webex-bot-id
# --- Webex service account (integration used for admin API calls) ---
WEBEX_SVC_CLIENT_ID=your-webex-integration-client-id
WEBEX_SVC_CLIENT_SECRET=your-webex-integration-client-secret
# Path to the JSON file that persists the service-account access/refresh tokens.
# Created and rewritten automatically by the token-refresh cron.
WEBEX_TOKEN_STORE=./config/wbxTokens.json
# --- Twilio (phone number validation) ---
TWILIO_ACCOUNT_SID=your-twilio-account-sid
TWILIO_AUTH_TOKEN=your-twilio-auth-token
# --- Store Info Web (SIW) ---
# SIW requests are proxied through the on-prem remote agent (see WS_* below),
# so the base URL and credentials are forwarded to the agent per-request. This
# bot never talks to SIW directly.
SIW_BASE_URL=https://storeinfoweb-prod.ae.com
SIW_USERNAME=your-siw-user
SIW_PASSWORD=your-siw-password
# --- Remote agent WebSocket bridge ---
# This bot listens on WS_PORT; the on-prem agent (a second instance of the
# netanalyzer remoteAgent.js) dials in with WS_URL=wss://.../ and this token
# as its Bearer credential. Rotate WS_TOKEN with any high-entropy string.
WS_PORT=8080
WS_TOKEN=change-me-to-a-long-random-string
# --- Google ---
# Simple REST API key used by Address Validation + Time Zone endpoints.
# All Google calls are proxied through the on-prem remote agent (see WS_*
# above) so requests originate from the IP subnet the key allow-lists.
GOOGLE_API_KEY=your-google-api-key
# --- Runtime ---
NODE_ENV=production
LOG_LEVEL=info
# --- Daily store phone export (weekdays 10:00 AM Eastern) ---
# Webex room/space ID to post the CSV into. The bot must be a member of
# this space. Leave unset to disable the scheduled export.
# STORE_PHONE_EXPORT_ROOM_ID=your-webex-room-id
# STORE_PHONE_EXPORT_TIMEZONE=America/New_York
# STORE_PHONE_EXPORT_DATA_DIR=./data/store-phone-export