Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
236 lines (205 loc) · 9.95 KB
/
Copy path.env.example
File metadata and controls
236 lines (205 loc) · 9.95 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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
# Verikan Configuration
# Copy this file to .env and fill in your values
# =============================================================================
# Application Settings
# =============================================================================
ENVIRONMENT=development
DEBUG=true
# =============================================================================
# API Server
# =============================================================================
API_HOST=0.0.0.0
API_PORT=8000
API_WORKERS=4
# =============================================================================
# LLM Configuration (REQUIRED)
# =============================================================================
# Anthropic API key for Claude - Get from https://console.anthropic.com/
ANTHROPIC_API_KEY=
# Model settings
LLM_MODEL=claude-sonnet-5
LLM_TEMPERATURE=0.0
LLM_MAX_TOKENS=8192
# Verified-answer matching (issue #64): a low-latency model acts as a semantic
# gate so a query for "crime in 2023" no longer matches a verified answer for
# "crime in 2025". Defaults are sensible; override only to tune.
VERIFIED_MATCH_LLM_ENABLED=true
VERIFIED_MATCH_MODEL=claude-haiku-4-5
# Stage-1 keyword retrieval threshold (wide net of candidates for the gate).
VERIFIED_MATCH_CANDIDATE_THRESHOLD=0.30
VERIFIED_MATCH_MAX_CANDIDATES=3
# Minimum gate confidence required to accept a match.
VERIFIED_MATCH_CONFIDENCE_THRESHOLD=0.80
# Stricter keyword-only bar used when the gate is unavailable.
VERIFIED_MATCH_FALLBACK_THRESHOLD=0.75
VERIFIED_MATCH_CIRCUIT_BREAKER_THRESHOLD=3
# Notebook review (issue #131, third signal): every generated notebook gets an
# adversarial method review that merges into the
# notebook_verification confidence factor. Empty model = use LLM_MODEL.
NOTEBOOK_REVIEW_ENABLED=true
NOTEBOOK_REVIEW_MODEL=
NOTEBOOK_REVIEW_TIMEOUT_SECONDS=120
# Chat follow-up understanding: a low-latency model decides whether a message
# in an ongoing chat is a new question (rewritten to be self-contained) or a
# request to revise the previous answer's notebook. Fails open to
# treating every message as standalone.
FOLLOWUP_LLM_ENABLED=true
FOLLOWUP_MODEL=claude-haiku-4-5
# =============================================================================
EMBEDDING_MODEL=text-embedding-3-large
EMBEDDING_DIMENSIONS=3072
# =============================================================================
# Cache - Redis (Optional - for response caching)
# =============================================================================
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=
CACHE_TTL_DEFAULT=86400
# =============================================================================
# Data Commons (Optional)
# =============================================================================
DATA_COMMONS_API_URL=https://api.datacommons.org
DATA_COMMONS_API_KEY=
# =============================================================================
# CKAN Configuration (Optional - for CKAN data sources)
# =============================================================================
CKAN_URL=https://data.dathere.com
CKAN_API_KEY=
# Fair Store — the CKAN that mirrors every registered portal. Seeds for the
# admin panel's Fair Store page (values saved there take precedence). The token
# is a CKAN sysadmin API token; it is only ever sent to FAIRSTORE_URL's host.
# FAIRSTORE_URL=https://fairstore.example.org
# FAIRSTORE_API_KEY=
# WPRDC (Western PA Regional Data Center) - City of Pittsburgh open data
WPRDC_CKAN_URL=https://data.wprdc.org
WPRDC_ORGANIZATION=city-of-pittsburgh
# =============================================================================
# OpenRouter (Optional - for qsv describegpt AI-enhanced data dictionaries)
# Get from https://openrouter.ai/keys
# =============================================================================
OPENROUTER_API_KEY=
# =============================================================================
# Pinecone Vector Store (Optional - for CKAN semantic search)
# =============================================================================
PINECONE_API_KEY=
PINECONE_INDEX_NAME=ckan-dathere-index
PINECONE_NAMESPACE=ckan-namespace
# =============================================================================
# Federal Data Source API Keys (RECOMMENDED)
# These enable live data fetching from government sources
# =============================================================================
# Bureau of Labor Statistics (BLS) - Get from https://www.bls.gov/developers/
# Enables: Unemployment rates, CPI/inflation, employment statistics
BLS_API_KEY=
# Census Bureau - Get from https://api.census.gov/data/key_signup.html
# Enables: Population, income, poverty, housing, education data
CENSUS_API_KEY=
# Bureau of Economic Analysis (BEA) - Get from https://apps.bea.gov/API/signup/
# Enables: GDP data (national and state level)
BEA_API_KEY=
# Federal Reserve Economic Data (FRED) - Get from https://fred.stlouisfed.org/docs/api/api_key.html
# Enables: GDP, interest rates, inflation, monetary data
FRED_API_KEY=
# =============================================================================
# Confidence Thresholds
# =============================================================================
CONFIDENCE_THRESHOLD_HIGH=0.85
CONFIDENCE_THRESHOLD_MEDIUM=0.70
CONFIDENCE_THRESHOLD_LOW=0.50
# =============================================================================
# Agent Configuration
# =============================================================================
MAX_RETRIEVAL_ATTEMPTS=2
ESCALATION_CONFIDENCE_THRESHOLD=0.50
# =============================================================================
# Session Management
# =============================================================================
SESSION_TIMEOUT_MINUTES=30
MAX_SESSIONS_PER_USER=5
# =============================================================================
# Auth0 Social Login (Optional)
# =============================================================================
# Set AUTH0_ENABLED=true to show the "Sign in with Social Login" button and
# enable the /auth/auth0/* routes. Users that successfully authenticate with
# Auth0 must also be on the approved-members list before a session is created.
AUTH0_ENABLED=false
AUTH0_DOMAIN=your-tenant.us.auth0.com
AUTH0_CLIENT_ID=your-auth0-client-id
AUTH0_CLIENT_SECRET=your-auth0-client-secret
# Must match the callback URL registered in the Auth0 application settings
AUTH0_CALLBACK_URL=http://localhost:8501/api/v1/auth/auth0/callback
# Comma-separated initial seed for the approved-members list (only used when
# the stored list is empty). Managed via the admin panel afterwards.
APPROVED_MEMBERS=
# Comma-separated usernames or emails that should have admin access on first
# run (only used when roles.json is empty). Managed via the admin panel
# afterwards. Admin access is required to review submissions, manage users,
# and change settings.
ADMIN_USERS=
# =============================================================================
# Census MCP Server (Optional - for census_mcp data source)
# =============================================================================
# Local path to the Census MCP server project directory
CENSUS_MCP_DIR=
# =============================================================================
# GitHub Notebook Publishing (Optional)
# Defaults below can be overridden from the admin panel.
# =============================================================================
GITHUB_PUBLISH_ENABLED=false
GITHUB_TOKEN=
GITHUB_REPO=your-org/your-notebooks-repo
GITHUB_BRANCH=main
GITHUB_DRAFTS_FOLDER=drafts
GITHUB_VERIFIED_FOLDER=verified
# How often to pull verified notebooks from GitHub in the background.
# Set to 0 to disable the background sync (lazy on-read sync still applies).
GITHUB_SYNC_INTERVAL_HOURS=4.0
# =============================================================================
# Admin Email Notifications - SMTP (Optional)
# =============================================================================
ADMIN_NOTIFICATIONS_ENABLED=false
SMTP_HOST=
SMTP_PORT=587
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_USE_TLS=true
SMTP_FROM_EMAIL=
# Comma-separated list of admin email addresses to notify
ADMIN_NOTIFICATION_RECIPIENTS=
# Public base URL used to build links in admin emails
APP_BASE_URL=http://localhost:8080
# === Storage backend ===
# When GCS_BUCKET is set, persistent state (verified-notebook index,
# blobs, settings) is stored in Google Cloud Storage. Empty / unset
# uses the local filesystem under the repo root — fine for dev and
# single-instance deploys.
GCS_BUCKET=
# Set to "true" on any deploy with >1 instance (Cloud Run autoscaling,
# blue/green, multi-region). When truthy, GCS_BUCKET must be set AND
# GCS init must succeed — refuses to start otherwise. Without this
# guard, a misconfigured multi-instance deploy silently falls back to
# per-instance local storage and corrupts the index.
REQUIRE_SHARED_STORAGE=
# --- Typed Standards evidence signing (datHere content profile) ----------
# All OFF by default.
# Master switch: sign published packages with the key below (Ed25519ph).
EVIDENCE_SIGNING_ENABLED=false
# 64-hex-char Ed25519 private seed (32 random bytes). Generate with any python:
# python3 -c "import secrets; print(secrets.token_bytes(32).hex())"
# Treat as a secret (prefer GCP Secret Manager in production).
EVIDENCE_SIGNING_KEY_SEED=
# Key id published in the trust registry; must match the package's kid.
EVIDENCE_SIGNING_KID=your-org:your-key-2026
# The publishing host — the trust-registry ORIGIN that is the publisher identity
# (must match what you register in typedstandards.org's host directory).
EVIDENCE_HOST=your-host.example.com
EVIDENCE_SIGNER_DISPLAY_NAME=Your Organization
# Best-effort attestation legs (independent of each other).
# RFC 3161 trusted timestamp via FreeTSA
EVIDENCE_TIMESTAMP_ENABLED=false
# Sigstore Rekor transparency-log entry
EVIDENCE_REKOR_ENABLED=false
# Embed the commitment view into published .ipynb + commit the canonical
# package JSON beside it. Mutates the public GitHub artifact — enable last.
EVIDENCE_EMBED_ENABLED=false