-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
82 lines (70 loc) · 5.49 KB
/
Copy path.env.example
File metadata and controls
82 lines (70 loc) · 5.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# ─── Zoom App Credentials ─────────────────────────────────────────────────────
# Found in: Zoom App Marketplace → Your App → App Credentials
ZOOM_CLIENT_ID=your_zoom_client_id_here
ZOOM_CLIENT_SECRET=your_zoom_client_secret_here
ZOOM_ACCOUNT_ID=your_zoom_account_id_here
# ─── Zoom Team Chat Bot Settings ──────────────────────────────────────────────
# Found in: Zoom App Marketplace → Your App → Features → Team Chat Subscription
ZOOM_BOT_JID=your_bot_jid_here
ZOOM_VERIFICATION_TOKEN=your_verification_token_here
# ─── OAuth Redirect ───────────────────────────────────────────────────────────
# Must match the redirect URI registered in your Zoom App settings exactly.
# During development: https://your-ngrok-url.ngrok-free.app/auth/callback
ZOOM_REDIRECT_URI=https://your_tunnel_url_here/auth/callback
# ─── Anthropic / Claude ───────────────────────────────────────────────────────
# Used by the Team Chat Research Assistant flow (existing feature).
# Get your API key from: https://console.anthropic.com/
ANTHROPIC_API_KEY=your_anthropic_api_key_here
ANTHROPIC_MODEL=claude-sonnet-4-6
# ─── OpenAI ───────────────────────────────────────────────────────────────────
# Used by the AI task workflow layer: transcript → task extraction, meeting
# summaries, context Q&A, and approval-time review. If OPENAI_API_KEY is unset,
# the demo still runs using seeded mock suggestions.
# Get your API key from: https://platform.openai.com/api-keys
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-4.1-mini
# ─── Zoom MCP (Doc creation via AI Actions) ──────────────────────────────────
# The AI Actions flow ("Create Meeting Follow-up Doc") uses the OpenAI SDK's
# Responses API with the Zoom MCP server configured as a remote tool source.
# OpenAI itself acts as the MCP client and forwards the user's OAuth token to
# Zoom MCP, so no separate JSON-RPC client is needed on our side.
#
# Required user OAuth scope on your Zoom Marketplace app: docs:write:import
# (grants access to the create_new_file_with_markdown tool on Zoom MCP).
ZOOM_MCP_ENDPOINT=https://mcp.zoom.us/mcp/zoom/streamable
# ─── Zoom Tasks API ───────────────────────────────────────────────────────────
# When true, approving a suggestion will POST to the live Zoom Tasks API using
# the bot's Server-to-Server OAuth token. When false (default), creates are
# logged locally only — useful for development before the Tasks scope is granted.
ZOOM_TASKS_API_ENABLED=false
# ─── Task Event Notifications ─────────────────────────────────────────────────
# Where the bot should post threaded updates when AI detects suggestions, a user
# approves/rejects, or a task is completed. Leave unset to disable notifications.
# JID = the channel or DM JID; USER_JID is the acting user JID (defaults to the
# channel JID, which is correct for DMs).
ZOOM_TASK_NOTIFICATIONS_JID=
ZOOM_TASK_NOTIFICATIONS_USER_JID=
# ─── Next.js Frontend ─────────────────────────────────────────────────────────
# Origin of the Express backend. Used by the Next.js dev/start scripts to proxy
# /api/* and by Server Components when fetching during render. Default works for
# local dev where Express runs on :4000 and Next on :3000.
EXPRESS_ORIGIN=http://localhost:4000
# Public URL of the Next.js app. Used by Express for:
# - the OAuth callback redirect (sends user back to the dashboard)
# - legacy URL redirects (/webview, /meeting-assistant, /meeting-tasks → Next.js)
# Set this to your Next.js ngrok tunnel URL once the Zoom Marketplace home URL
# points there. Locally, leave the default.
FRONTEND_PUBLIC_URL=http://localhost:3000
# ─── RTMS (Real-Time Media Streaming) ────────────────────────────────────────
# Found in: Zoom App Marketplace → Your App → Feature → Event Subscriptions
# This is the "Secret Token" from the event subscription configuration.
# If your RTMS events share the same subscription as other webhooks, this may
# be the same value as ZOOM_VERIFICATION_TOKEN. If separate, set it here.
ZOOM_WEBHOOK_SECRET_TOKEN=your_webhook_secret_token_here
# Log level for the @zoom/rtms SDK. Set to "debug" to see raw transcript frames.
# Values: error | warn | info | debug
LOG_LEVEL=info
# ─── Server ───────────────────────────────────────────────────────────────────
PORT=4000
SESSION_SECRET=change-this-to-a-long-random-string-in-production
FRONTEND_ORIGIN=http://localhost:3000