-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExample.env
More file actions
111 lines (87 loc) · 5.37 KB
/
Example.env
File metadata and controls
111 lines (87 loc) · 5.37 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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
export PORT=8080
# Slack
export SLACK_SIGNING_SECRET=""
export SLACK_BOT_TOKEN="xoxb-..."
export SLACK_USER_TOKEN="xoxp-..."
export SLACK_SEARCH_MAX_PAGES=10
# LLM (OpenAI-compatible)
export OPENAI_API_KEY="sk-..."
# Primary model used for answer generation and file analysis.
export OPENAI_MODEL="gpt-4o"
# Lighter model for routing decisions, SQL generation, and intent detection.
# Falls back to OPENAI_MODEL when empty.
export OPENAI_LESSER_MODEL="gpt-4o-mini"
# Jira
export JIRA_BASE_URL="https://yourcompany.atlassian.net"
export JIRA_EMAIL="bot@yourcompany.com"
export JIRA_API_TOKEN="ATATT..."
# Comma-separated list of Jira project keys to include in default searches.
# Leave empty to search across all projects the bot has access to.
export JIRA_PROJECT_KEYS="PROJ,BACKEND,OPS"
# Maps human-readable names (lowercase) to Jira keys.
# Format: name1:KEY1,name2:KEY2,...
# Useful for aliases not obvious from the project name. The bot auto-generates
# a full project catalog from the Jira API at startup (docs/jira_projects.md).
export JIRA_PROJECT_NAME_MAP="backend:BACKEND,ops:OPS,frontend:FE"
# Output path for the auto-generated Jira project catalog Markdown file.
# Default: ./docs/jira_projects.md
# export JIRA_PROJECTS_PATH="./docs/jira_projects.md"
# Enable Jira issue creation via the bot (default: false).
export JIRA_CREATE_ENABLED=false
# Display name of the bot (used in prompts and messages).
export BOT_NAME="Jarvis"
# Metabase integration — on startup the bot documents all databases/tables/fields
# and uses that schema to write SQL queries when answering analytical questions.
export METABASE_BASE_URL="https://metabase.yourcompany.com"
# API key created in Metabase: Admin → Settings → Authentication → API Keys
# (requires Metabase ≥ 0.47).
export METABASE_API_KEY="mb_..."
# Output path for the generated schema Markdown file.
# Default: ./docs/metabase_schema.md
export METABASE_SCHEMA_PATH="./docs/metabase_schema.md"
# Environment label written to the schema file header (e.g. production, staging).
export METABASE_ENV="production"
# Timeout for SQL queries via /api/dataset. Increase for slow databases like
# Redshift. Accepts Go duration strings: 5m, 3m30s, 120s. Default: 5m.
export METABASE_QUERY_TIMEOUT="5m"
# ── CSV export ────────────────────────────────────────────────────────────────
# Externally reachable base URL used to build download links for CSV exports.
# Required for the CSV export feature. Typically an ngrok URL when running locally.
export PUBLIC_BASE_URL="https://your-tunnel.ngrok-free.app"
# ── Outline Wiki (optional) ───────────────────────────────────────────────────
# Configure to enable documentation search from your Outline wiki.
# The bot uses the search API to find relevant docs and passes them as context.
#
# API root URL:
# - Cloud (app.getoutline.com): https://app.getoutline.com/api
# - Self-hosted: https://wiki.yourcompany.com/api
export OUTLINE_BASE_URL="https://app.getoutline.com/api"
#
# Personal access token: Outline → Settings → API → Create token
export OUTLINE_API_KEY="ol_api_..."
# ── Google Drive (optional) ───────────────────────────────────────────────────
# Configure to enable Google Drive document search.
# The bot searches Drive files whose full-text contains the query, extracts the
# content, and passes it as context to the LLM.
# Requires a Google service account with Drive read access to the shared files.
# Option A — raw JSON (preferred for Docker/CI, avoids mounting files):
export GOOGLE_DRIVE_CREDENTIALS_JSON='{"type":"service_account","project_id":"...","private_key_id":"...","private_key":"-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----\n","client_email":"jarvis@project.iam.gserviceaccount.com","client_id":"...","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://oauth2.googleapis.com/token"}'
# Option B — path to credentials file (local dev):
# export GOOGLE_DRIVE_CREDENTIALS_PATH="./credentials.json"
# Optional: restrict search to a specific folder (use the folder ID from the URL).
# Leave empty to search the entire Drive the service account has access to.
# export GOOGLE_DRIVE_FOLDER_ID="1ABCxyz..."
# Max number of files returned per search query. Default: 5.
# export GOOGLE_DRIVE_SEARCH_LIMIT=5
# ── HubSpot CRM (optional) ────────────────────────────────────────────────────
# Configure HUBSPOT_API_KEY to enable HubSpot CRM integration.
# The bot can search contacts, companies, deals and tickets and use the results
# as context when answering CRM-related questions.
# Create a private app in HubSpot → Settings → Integrations → Private Apps
# and grant CRM read scopes (crm.objects.contacts.read, etc.).
export HUBSPOT_API_KEY="pat-na1-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# HubSpot API base URL. Default: https://api.hubapi.com
# export HUBSPOT_BASE_URL=https://api.hubapi.com
# Max results returned per object type per search query. Default: 10.
# export HUBSPOT_SEARCH_LIMIT=10
CHAT_API_KEY=123456