Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
101 lines (91 loc) · 4.49 KB
/
Copy path.env.example
File metadata and controls
101 lines (91 loc) · 4.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
UW_SCAN_API_KEY=
# DB isolation rules (enforced by Settings.from_env → _enforce_db_isolation):
# UW_SCAN_DB_HOST=127.0.0.1 → UW_SCAN_DB_NAME must be option_wizard_local
# (local dev) or option_wizard_test (pytest)
# UW_SCAN_DB_HOST=100.66.147.98 → UW_SCAN_DB_NAME must be option_wizard
# (the Mac mini's prodlike instance)
# Per-machine override via .env.local (gitignored) — Settings.from_env loads
# .env.local first, then this file. On the MacBook, .env.local should set
# BOTH UW_SCAN_DB_HOST=100.66.147.98 AND UW_SCAN_DB_NAME=option_wizard when
# you want a browse-mini session. Override the tripwire for one-off scripts
# with UW_SCAN_ALLOW_DB_MISMATCH=1.
UW_SCAN_DB_HOST=127.0.0.1
UW_SCAN_DB_PORT=5432
UW_SCAN_DB_NAME=option_wizard_local
UW_SCAN_DB_SCHEMA=uw_scan
UW_SCAN_DB_USER=argon_app
# UW_SCAN_DB_PASSWORD: leave blank on MacBook for fully-local development
# (no password needed for socket-auth to local Postgres). For the Mac mini,
# bootstrap.sh generates a random password via `openssl rand` and writes it
# to .env + ~/.pgpass on the mini. Copy the printed password into the
# MacBook's .env.local when pointing UW_SCAN_DB_HOST at the mini.
UW_SCAN_DB_PASSWORD=
UW_SCAN_POLL_SECONDS=60
UW_SCAN_MAX_REQUESTS_PER_CYCLE=250
UW_SCAN_MAX_FLOW_ROWS=100
UW_SCAN_MAX_TV_SYMBOLS_PER_SOURCE=200
UW_SCAN_MAX_WATCHLIST_TICKERS=50
UW_SCAN_MAX_ANALYSIS_TICKERS=3
UW_SCAN_MAX_DEEP_SURFACE_TICKERS=8
UW_SCAN_MAX_EXPIRIES_PER_TICKER=4
UW_SCAN_MAX_OPTION_CONTRACT_PAGES=2
# OHLC provider — massive.com (Polygon-shaped REST API)
MASSIVE_API_KEY=
MASSIVE_BASE_URL=https://api.massive.com
# FRED official API — US rates mirror
FRED_API_KEY=
RATES_POLICY_PATH_URL=https://www.frenzycap.com/fedwatch
# Scheduler cadence
UW_SCAN_SPOT_REFRESH_SECONDS=300
UW_SCAN_FULL_SCAN_CRON=0 5-16 * * 1-5
UW_SCAN_OHLC_PULL_CRON=30 17 * * 1-5
UW_SCAN_RTH_TZ=America/New_York
# Worker sharding
# all = legacy single scheduler; uw/massive = provider-specific worker role.
# Run two uw workers and two massive workers with INDEX=0/1 and COUNT=2.
UW_SCAN_WORKER_ROLE=all
UW_SCAN_WORKER_INDEX=0
UW_SCAN_WORKER_COUNT=1
UW_SCAN_UW_WORKER_COUNT=0
UW_SCAN_MASSIVE_WORKER_COUNT=0
# Cloudflare R2 parquet lake — RETIRED (producer push died 2026-05-21). Leave
# these four blank: setting ALL of R2_ACCOUNT_ID / R2_ACCESS_KEY_ID /
# R2_SECRET_ACCESS_KEY / R2_BUCKET makes uw_scan.worker.scheduler refuse to
# boot (it would otherwise silently serve a lake frozen at the retirement
# date). The mounted local lake under ~/market-warehouse/ is the only
# supported source. R2_ENDPOINT_OVERRIDE is vestigial (defaults to
# https://<R2_ACCOUNT_ID>.r2.cloudflarestorage.com) and equally unused.
R2_ACCOUNT_ID=
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_BUCKET=
R2_ENDPOINT_OVERRIDE=
# Option surface capture (durable full-chain IV/greeks grid) + IB-vs-UW IV canary
OPTION_SURFACE_CAPTURE_ENABLED=true
OPTION_SURFACE_IV_CANARY_ENABLED=true
OPTION_SURFACE_IV_CANARY_WARN_THRESHOLD=0.02
# xenon read-only query API (IV canary + VRP macro entry-capture IB quotes)
# MacBook dev → keep default; mini prod → set XENON_QUERY_API_KEY (required even on localhost;
# missing/wrong key → HTTP 401, IB path silently no-ops to source='uw').
XENON_QUERY_API_URL=http://127.0.0.1:8321
# XENON_QUERY_API_KEY=your-xenon-api-key-here
# Bearer token helium presents on POST /api/agent-runs (the Flash ledger). Unset → POST answers 503
# (ingest disabled, reads still work). Generate with `openssl rand -hex 32`; same value in helium.env.
# UW_SCAN_AGENT_INGEST_TOKEN=
# VRP macro entry-capture (forward markout recorder — 8×/day, 30-cal-day EOD taper)
UW_SCAN_VRP_MACRO_ENTRY_CAPTURE_ENABLED=true
# Trade Insights AI — DeepSeek provider (Codex/Claude providers use local CLI
# OAuth, no env key needed; DeepSeek is HTTP-based and needs a bearer token)
TRADE_INSIGHTS_AI_DEEPSEEK_ENABLED=true
TRADE_INSIGHTS_AI_DEEPSEEK_MODEL=
TRADE_INSIGHTS_AI_DEEPSEEK_TIMEOUT_SECONDS=300
TRADE_INSIGHTS_AI_DEEPSEEK_WORKER_COUNT=2
# Bearer token, read in-process by the ai-deepseek worker at call time.
# Rotating it requires restarting that worker (env is frozen at fork).
DEEPSEEK_API_KEY=
# ── Parquet data lake (local mount; see docker-compose.yml x-common) ──
# In containers these MUST be set — the field defaults are home-dir paths
# that resolve to /root inside the image, where nothing is mounted.
LAKE_VOL_INDEX_ROOT=/lake/bronze/asset_class=volatility
LAKE_CREDIT_ETF_ROOT=/lake/bronze/asset_class=equity
MARKET_WAREHOUSE_LAKE=/lake