# ============================================================================= # StoreHealthAnalyzer Environment Configuration # Copy this file to .env and fill in your actual values. # NEVER commit .env — it is gitignored. # ============================================================================= # --- Logging --- # debug | info | warn | error (default: info) LOG_LEVEL=info # --- Webex Bot (required for bot functionality) --- WEBEX_ACCESS_TOKEN=your_webex_bot_access_token_here BOT_NAME=StoreHealthAnalyzer # --- Meraki (required for network device discovery and client status) --- MERAKI_API_KEY=your_meraki_api_key_here MERAKI_ORG_ID=your_meraki_organization_id_here # --- WebSocket Remote Agent --- WS_PORT=8080 # Token used to authenticate the remoteAgent.js when connecting to this server WS_TOKEN=generate_a_strong_random_token_here # For the remote agent process (remoteAgent.js), point to the main server WS_URL=ws://localhost:8080?token=generate_a_strong_random_token_here # --- SIW / Store Information Warehouse (proxied via remote agent) --- SIW_BASE_URL=https://your-siw-api.example.com/api SIW_USERNAME=your_siw_username SIW_PASSWORD=your_siw_password # --- Workspace ONE (MDM / AirWatch) --- WS1_BASE_URL=https://your-tenant.awmdm.com WS1_TOKEN_URL=https://your-tenant.awmdm.com/api/mdm/token WS1_CLIENT_ID=your_ws1_client_id WS1_CLIENT_SECRET=your_ws1_client_secret WS1_TENANT_CODE=your_ws1_tenant_code # --- Webex Service App (required for `st [number] phone` only) --- # Client ID/secret from the Service App registration in the Webex Developer Portal. WEBEX_CLIENT_ID=your_webex_service_app_client_id WEBEX_CLIENT_SECRET=your_webex_service_app_client_secret # Path to the rotating tokens JSON. Created/refreshed by `npm run webex:seed`. # Defaults to ./tokens/webex-service-tokens.json (resolved to absolute at runtime). WEBEX_TOKENS_PATH=./tokens/webex-service-tokens.json # --- Atlas / Xyte (required for `st [number] av` only) --- # Long-lived API key issued by the Atlas (hub.xyte.io) admin console. Sent # verbatim as the Authorization header (no rotation, no "Bearer" prefix). # Missing key surfaces as an inline banner in AV mode; MDM-tracked AV devices # (Apple TVs, video walls, music, LED) still render. ATLAS_AUTH_KEY=your_atlas_api_key # Optional override; defaults to https://hub.xyte.io/core/v1 if unset. ATLAS_BASE_URL=https://hub.xyte.io/core/v1