{"brand":"Finvora","version":2,"architecture":{"frontend":"dist/ — static HTML, CSS and browser JavaScript; never receives provider secrets or database keys","backend":"server.mjs + server/ — HTTP/SSE API, provider proxy, validation, persistence and encryption","database":"SQLite WAL at data/finvora.sqlite","transport":"Same-origin HTTP/SSE locally; production must terminate TLS before public access"},"dataClasses":[{"id":"live-transient","persistence":"memory only","examples":["BTC ticker/book/depth/trades","Gold live tick","online presence"],"privacy":"public market / transient operational"},{"id":"public-cache","persistence":"SQLite with TTL","examples":["GoldPrice.dev REST","FRED series","CFTC reports","official macro calendar and filing metadata","physical gold quotes"],"privacy":"public/licensed market data; not encrypted because it is non-personal"},{"id":"private-persistent","persistence":"SQLite encrypted columns","examples":["chat nickname","chat message body","device preferences"],"privacy":"AES-256-GCM at rest with per-record AAD"},{"id":"secret-server-only","persistence":".env or environment","examples":["GOLDPRICE_API_KEY","FINVORA_DATA_KEY"],"privacy":"never serialized to browser or audit payloads"},{"id":"presentation-demo","persistence":"frontend source only","examples":["home market table demo","download cards","product tour"],"privacy":"clearly labeled demo; not treated as realtime"}],"routes":[{"path":"/","surface":"Finvora website","data":"presentation-demo","menus":["行情中心","资讯与 AI","产品能力","下载中心","数据与安全","战情终端"]},{"path":"/terminal.html?asset=btc","surface":"BTC/USDT terminal","data":"live-transient + public-cache","menus":["预测与情绪","总览","资金","订单流","技术结构","数据覆盖","消息事件","仓位测算"]},{"path":"/terminal.html?asset=xau","surface":"XAU/USD terminal","data":"live-transient + public-cache","menus":["预测与情绪","黄金总览","技术共振","结构关键位","报价流","定价与实物","宏观与持仓","事件因子","数据质量"]}],"research":{"endpoint":"/api/research?asset=btc|xau","models":["unchanged-price baseline","log drift","rolling linear trend","damped Holt","regularized AR(1)"],"evaluation":"v5 coherent 14-day price mixture; purged selection/calibration/holdout; reported metrics exclude spot/news conditioning; not a trading backtest","goldSampling":"real UTC daily OHLC with elapsed-time estimators and exact observed validation dates; future calendar scenarios, not verified trading sessions","sentiment":"auditable asset-context and text-tone rules; not a trained/calibrated financial NLP model","newsUniverse":"all acquired relevant provider records, independent of UI pagination; stale/future/expired inputs excluded with reasons; not a complete all-market newswire","newsConditioning":"bounded asset-context rules and released numerical surprises; theme caps and decay; upcoming calendar adjusts risk only; joint model is not calibrated","guarantees":"none; scenario bands are not calibrated probabilities; price-only validation does not establish news-conditioned accuracy"},"providers":[{"name":"Binance Spot","assets":["BTC/USDT"],"transport":["server WebSocket to same-origin browser SSE","server REST proxy"],"frequency":"trade/depth/ticker realtime; klines incremental","persistence":"live memory plus bounded server cache","caveat":"single venue, USDT quote"},{"name":"GoldPrice.dev","assets":["XAU/USD","XAG/USD","forward","physical"],"transport":["server WebSocket","server REST proxy"],"frequency":"realtime plus endpoint-specific cadence","persistence":"SQLite TTL cache","caveat":"spot has no centralized volume/order book"},{"name":"FRED","assets":["USD index","rates","inflation expectations"],"transport":["server CSV"],"frequency":"daily","persistence":"SQLite TTL cache","caveat":"macro background, not realtime"},{"name":"CFTC","assets":["gold futures positioning"],"transport":["server public CSV"],"frequency":"weekly","persistence":"SQLite TTL cache","caveat":"reporting lag; not spot flow"},{"name":"Official event baseline","assets":["BTC","XAU"],"transport":["Fed/ECB/CFTC RSS","BLS ICS","BEA JSON","SEC submissions JSON"],"frequency":"10-minute to 6-hour provider-specific polling cache","persistence":"SQLite TTL cache with explicit stale fallback","caveat":"official schedules do not include market consensus; source-language titles remain unchanged"},{"name":"Commercial event enhancement","assets":["BTC","XAU"],"transport":["Trading Economics or FMP server-side REST"],"frequency":"contract and plan dependent","persistence":"SQLite TTL cache with explicit stale fallback","caveat":"disabled unless a server-side key and explicit redistribution acknowledgement are configured"},{"name":"Browser Intl","assets":["timezone detection"],"transport":["local browser API"],"frequency":"on page initialization or manual selection","persistence":"encrypted preference only","caveat":"network geolocation is disabled by default and requires an explicit operator opt-in"}],"controls":["Strict input length and identifier validation","Same-origin mutation checks and bounded per-IP in-memory mutation rate limits","Parameterized SQLite statements","AES-256-GCM authenticated encryption for private fields","HMAC blind indexes for nickname uniqueness and audit subjects","CSP plus same-origin APIs; provider key stays server-side","No raw IP address stored; logs contain redacted bounded errors","Chat retention defaults to 30 days and is configurable","Production startup fails closed without HTTPS origin, trusted proxy, secrets, operator details and an upload scanner"]}